# -*- makefile -*-
#
# Makefile configuration, without explicit rules
#

# CROSS is the prefix used for system tools like gcc, ld etc.
CROSS   = 

# KCROSS is the prefix we use for klibc installations.  This is usually
# the same as CROSS, but may be different, e.g. to install an i386
# cross-compilation suite on an x86-64 system, using the same gcc/binutils.
KCROSS ?= $(CROSS)

# Location for installation
prefix      = /usr
bindir      = $(prefix)/bin
libdir      = $(prefix)/lib
mandir      = $(prefix)/man
INSTALLDIR  = $(prefix)/lib/klibc
INSTALLROOT =

INSTALL_EXEC = install -m 755
INSTALL_DATA = install -m 644

# Eventually support separate compilation, but we don't have it yet...
OBJROOT = $(SRCROOT)

# Kernel trees (source and obj) - can potentially be different
KRNLSRC = $(SRCROOT)/linux
KRNLOBJ = $(SRCROOT)/linux

ARCH    = $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
CC	= $(CROSS)gcc
LD      = $(CROSS)ld
KLIBSRC = $(SRCROOT)/klibc
KLIBOBJ = $(OBJROOT)/klibc
INCLUDE = -I$(SRCROOT)/include/arch/$(ARCH) \
	  -I$(SRCROOT)/include/bits$(BITSIZE) \
	  -I$(SRCROOT)/include \
	  -I$(KRNLOBJ)/include -I$(KRNLOBJ)/include2 -I$(KRNLSRC)/include
REQFLAGS = $(ARCHREQFLAGS) -nostdinc -iwithprefix include -D__KLIBC__ \
	   $(INCLUDE)
LDFLAGS =
AR      = $(CROSS)ar
RANLIB  = $(CROSS)ranlib
NM	= $(CROSS)nm
PERL    = perl
OBJCOPY = $(CROSS)objcopy

STRIP      = $(CROSS)strip
STRIPFLAGS = --strip-all -R .comment -R .note
STRIPCMD   = $(STRIP) $(STRIPFLAGS)

HOST_CC      = gcc
HOST_CFLAGS  = -g -O
HOST_LDFLAGS = 
HOST_LIBS    =

# Static library paths
CRT0      = $(KLIBOBJ)/crt0.o
KLIBC     = $(KLIBOBJ)/libc.a
# Don't use libgcc for now, to see if anything breaks...
LIBGCC    = # $(shell $(CC) --print-libgcc)

# Shared library paths
CRTSHARED = $(KLIBOBJ)/interp.o
LIBSHARED = $(KLIBOBJ)/libc.so

#
# This indicates the location of the final version of the shared library.
# THIS MUST BE AN ABSOLUTE PATH WITH NO FINAL SLASH.
# Leave this empty to make it the root.
#
SHLIBDIR = /lib

# Enable this to make perror/strerror return real error messages
# This makes klibc.so and any static binary which uses these functions
# about 4K bigger.
ERRLIST = 1

# Include zlib in klibc.  This roughly triples the size of klibc!
ZLIB = 0

#
# Include arch-specific rule fragments
#
include $(KLIBSRC)/arch/$(ARCH)/MCONFIG

ifeq ($(DEBUG),y)
STRIP     = /bin/true -Since_we_are_debugging
OPTFLAGS += -O1 -g
endif

# How to tell the linker main() is the entrypoint
EMAIN ?= -e main
