diff options
author | H. Peter Anvin <hpa@zytor.com> | 2005-03-03 20:40:39 +0000 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2005-03-03 20:40:39 +0000 |
commit | 32f3670c1655369d88bcbb723e54cdcc4b7c6732 (patch) | |
tree | 267a990769d9294794edacbda68866a3bd90bbc6 | |
parent | 251cabd48c8188736f3a6f5346646c221163132f (diff) | |
download | klibc-32f3670c1655369d88bcbb723e54cdcc4b7c6732.tar.gz |
Split CROSS and KCROSS; x86-64 needs asm-i386 in addition to asm-x86_64;klibc-0.206
some architectures need to reference their own asm-$(ARCH) by name.
-rw-r--r-- | MCONFIG | 9 | ||||
-rw-r--r-- | Makefile | 24 | ||||
-rw-r--r-- | klcc.in | 14 | ||||
-rw-r--r-- | klibc/arch/x86_64/MCONFIG | 3 |
4 files changed, 31 insertions, 19 deletions
@@ -3,6 +3,14 @@ # 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 @@ -22,7 +30,6 @@ 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/) -CROSS = CC = $(CROSS)gcc LD = $(CROSS)ld KLIBSRC = $(SRCROOT)/klibc diff --git a/Makefile b/Makefile index eb8f55570d15c4..6c0c472286c282 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ $(CROSS)klibc.config: Makefile rm -f $@ echo 'ARCH=$(ARCH)' >> $@ echo 'CROSS=$(CROSS)' >> $@ + echo 'KCROSS=$(KCROSS)' >> $@ echo "CC=$(shell bash -c 'type -p $(CC)')" >> $@ echo "LD=$(shell bash -c 'type -p $(LD)')" >> $@ echo 'REQFLAGS=$(filter-out -I%,$(REQFLAGS))' >> $@ @@ -49,19 +50,20 @@ local-install: $(CROSS)klcc mkdir -p $(INSTALLROOT)$(mandir)/man1 mkdir -p $(INSTALLROOT)$(SHLIBDIR) mkdir -p $(INSTALLROOT)$(INSTALLDIR) - -rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include - mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include - mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)lib - mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)bin - set -xe ; for d in linux asm asm-generic ; do \ + -rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib + mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin + set -xe ; for d in linux asm-$(ARCH) asm-generic $(ASMARCH); do \ mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d ; \ - cp -rfL $(KRNLSRC)/include/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d/. ; \ - cp -rfL $(KRNLOBJ)/include/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d/. ; \ + cp -rfL $(KRNLSRC)/include/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \ + cp -rfL $(KRNLOBJ)/include/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \ [ ! -d $(KRNLOBJ)/include2/$$d ] || \ - cp -rfL $(KRNLOBJ)/include2/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d/. ; \ + cp -rfL $(KRNLOBJ)/include2/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \ done - cp -rf include/. $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/. - $(INSTALL_DATA) klcc.1 $(INSTALLROOT)$(mandir)/man1/$(CROSS)klcc.1 - $(INSTALL_EXEC) $(CROSS)klcc $(INSTALLROOT)$(bindir) + cd $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include && ln -sf asm-$(ARCH) asm + cp -rf include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. + $(INSTALL_DATA) klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1 + $(INSTALL_EXEC) $(KCROSS)klcc $(INSTALLROOT)$(bindir) -include MCONFIG @@ -1,19 +1,19 @@ # -*- perl -*- # Standard includes -@includes = ("-I${INSTALLDIR}/${CROSS}include/arch/${ARCH}", - "-I${INSTALLDIR}/${CROSS}include/bits${BITSIZE}", - "-I${INSTALLDIR}/${CROSS}include"); +@includes = ("-I${INSTALLDIR}/${KCROSS}include/arch/${ARCH}", + "-I${INSTALLDIR}/${KCROSS}include/bits${BITSIZE}", + "-I${INSTALLDIR}/${KCROSS}include"); # Default optimization options (for compiles without -g) @optopt = @OPTFLAGS; @goptopt = ('-O'); # Options and libraries to pass to ld; shared versus static -@staticopt = ("$INSTALLDIR/${CROSS}lib/crt0.o"); -@staticlib = ("$INSTALLDIR/${CROSS}lib/libc.a"); -@sharedopt = (@EMAIN, "$INSTALLDIR/${CROSS}lib/interp.o"); -@sharedlib = ('-R', "$INSTALLDIR/lib/${CROSS}libc.so"); +@staticopt = ("$INSTALLDIR/${KCROSS}lib/crt0.o"); +@staticlib = ("$INSTALLDIR/${KCROSS}lib/libc.a"); +@sharedopt = (@EMAIN, "$INSTALLDIR/${KCROSS}lib/interp.o"); +@sharedlib = ('-R', "$INSTALLDIR/${KCROSS}lib/libc.so"); # Returns the language (-x option string) for a specific extension. sub filename2lang($) { diff --git a/klibc/arch/x86_64/MCONFIG b/klibc/arch/x86_64/MCONFIG index a2a23676336b8a..13b6e391f9910e 100644 --- a/klibc/arch/x86_64/MCONFIG +++ b/klibc/arch/x86_64/MCONFIG @@ -26,3 +26,6 @@ LDFLAGS = -m elf_x86_64 # 2 MB - normal binaries start at 4 MB SHAREDFLAGS = -Ttext 0x00200200 +# Additional asm- directories needed during installation +ASMARCH = asm-i386 + |