# 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
KRNLSRC = $(SRCROOT)/linux
KRNLOBJ = $(SRCROOT)/linux
+# klibc version information
+KLIBCVER = -D__KLIBC__=$(shell cut -d. -f1 < $(SRCROOT)/version) \
+ -D__KLIBC_MINOR__=$(shell cut -d. -f2 < $(SRCROOT)/version)
+
ARCH = $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
-CROSS =
CC = $(CROSS)gcc
LD = $(CROSS)ld
KLIBSRC = $(SRCROOT)/klibc
-I$(SRCROOT)/include/bits$(BITSIZE) \
-I$(SRCROOT)/include \
-I$(KRNLOBJ)/include -I$(KRNLOBJ)/include2 -I$(KRNLSRC)/include
-REQFLAGS = $(ARCHREQFLAGS) -nostdinc -iwithprefix include -D__KLIBC__ \
+REQFLAGS = $(ARCHREQFLAGS) $(KLIBCVER) -nostdinc -iwithprefix include \
$(INCLUDE)
LDFLAGS =
AR = $(CROSS)ar
# Static library paths
CRT0 = $(KLIBOBJ)/crt0.o
KLIBC = $(KLIBOBJ)/libc.a
-LIBGCC = $(shell $(CC) --print-libgcc)
+LIBGCC = $(shell $(CC) $(REQFLAGS) $(OPTFLAGS) --print-libgcc)
# Shared library paths
CRTSHARED = $(KLIBOBJ)/interp.o