chiark / gitweb /
[PATCH] klibc: version 1.0.3
[elogind.git] / klibc / MCONFIG
index d2aa23626c17ff535d991c6db9638345ea022b90..1141b78d474bed1d9c2361240dd11d1e4ce1b9e0 100644 (file)
@@ -3,30 +3,58 @@
 # 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
+
+# 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
 KLIBOBJ = $(OBJROOT)/klibc
-REQFLAGS = $(ARCHREQFLAGS) -nostdinc -iwithprefix include \
-         -D__KLIBC__ -DBITSIZE=$(BITSIZE) \
-         -I$(SRCROOT)/include/arch/$(ARCH) \
+INCLUDE = -I$(SRCROOT)/include/arch/$(ARCH) \
          -I$(SRCROOT)/include/bits$(BITSIZE) \
          -I$(SRCROOT)/include \
-         -I$(SRCROOT)/linux/include -I$(SRCROOT)/linux/include2
+         -I$(KRNLOBJ)/include -I$(KRNLOBJ)/include2 -I$(KRNLSRC)/include
+REQFLAGS = $(ARCHREQFLAGS) $(KLIBCVER) -nostdinc -iwithprefix include \
+          $(INCLUDE)
 LDFLAGS =
 AR      = $(CROSS)ar
 RANLIB  = $(CROSS)ranlib
 NM     = $(CROSS)nm
 PERL    = perl
-STRIP   = $(CROSS)strip --strip-all -R .comment -R .note
 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 = 
@@ -35,7 +63,7 @@ HOST_LIBS    =
 # 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
@@ -53,10 +81,18 @@ SHLIBDIR = /lib
 # 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