Usermode/libposix - Header wrapping, mktemp
[tpg/acess2.git] / Externals / cross-compiler / Makefile
index 0326b44..5239709 100644 (file)
@@ -9,11 +9,19 @@ BINUTILS_DIR:=$(BINUTILS_ARCHIVE:%.tar.bz2=%)
 BINUTILS_CHANGES := config.sub bfd/config.bfd gas/configure.tgt ld/configure.tgt ld/emulparams/acess2_i386.sh ld/Makefile.in
 GCC_CHANGES := config.sub gcc/config.gcc gcc/config/acess2.h libgcc/config.host 
 
-ARCH?=i586
-PARLEVEL ?= 3
+ifeq ($(ARCH),x86)
+ BFDARCH:=i586
+else ifeq ($(ARCH),x86_64)
+ BFDARCH:=x86_64
+else
+ $(error Arch $(ARCH) is not supported by magic gcc makfile)
+endif
 
-TARGET=$(ARCH)-pc-acess2
+PARLEVEL ?= 1
+
+TARGET=$(BFDARCH)-pc-acess2
 PREFIX=$(shell pwd)/cross
+SYSROOT=$(shell pwd)/sysroot-$(ARCH)
 
 .PHONY: all clean binutils gcc include
 
@@ -21,15 +29,16 @@ all: include binutils gcc
 
 include:
        mkdir -p $(PREFIX)
-       rm -r $(PREFIX)/include
-       ln -s $(ACESSDIR)/Usermode/include $(PREFIX)/include
+       mkdir -p $(SYSROOT)/usr
+       -ln -s $(ACESSDIR)/Usermode/include $(SYSROOT)/usr/include
+       -ln -s $(ACESSDIR)/Usermode/Output/$(ARCH)/Libs $(SYSROOT)/usr/lib
 
 gcc: $(GCC_DIR) $(PREFIX)/bin/$(TARGET)-gcc
 
 binutils: $(BINUTILS_DIR) $(PREFIX)/bin/$(TARGET)-ld
 
 clean:
-       $(RM) -rf $(BINUTILS_DIR) build-*-$(ARCH)
+       $(RM) -rf $(BINUTILS_DIR) $(GCC_DIR) build-$(ARCH)
 
 $(BINUTILS_DIR) $(GCC_DIR): %: %.tar.bz2
        tar -xf $<
@@ -37,7 +46,7 @@ $(warning $(BINUTILS_DIR) $(GCC_DIR))
 
 $(GCC_DIR)/%: patches/gcc/%.patch
        @echo [PATCH] $@
-       @tar -xf $(GCC_ARCHIVE) $@
+       #@tar -xf $(GCC_ARCHIVE) $@
        @patch $@ $<
 $(GCC_DIR)/%: patches/gcc/%
        @echo [CP] $@
@@ -45,20 +54,30 @@ $(GCC_DIR)/%: patches/gcc/%
 
 $(BINUTILS_DIR)/%: patches/binutils/%.patch
        @echo [PATCH] $@
-       @tar -xf $(BINUTILS_ARCHIVE) $@
+       #@tar -xf $(BINUTILS_ARCHIVE) $@
        @patch $@ $<
 $(BINUTILS_DIR)/%: patches/binutils/%
        @echo [CP] $@
        @cp $< $@
 
-$(PREFIX)/bin/$(TARGET)-ld: $(addprefix $(BINUTILS_DIR)/,$(BINUTILS_CHANGES))
-       @mkdir -p build-binutils-$(ARCH)
-       @cd build-binutils-$(ARCH) && ../$(BINUTILS_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls
-       @cd build-binutils-$(ARCH) && make all install -j $(PARLEVEL)
+BDIR_GCC := build-$(ARCH)/gcc
+BDIR_BINUTILS := build-$(ARCH)/binutils
+
+$(BDIR_BINUTILS)/Makefile: $(addprefix $(BINUTILS_DIR)/,$(BINUTILS_CHANGES))
+       @mkdir -p $(BDIR_BINUTILS)
+       @cd $(BDIR_BINUTILS) && ../../$(BINUTILS_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls "--with-sysroot=$(SYSROOT)" --enable-shared
+
+$(PREFIX)/bin/$(TARGET)-ld: $(BDIR_BINUTILS)/Makefile
+       @make -C $(BDIR_BINUTILS) all -j $(PARLEVEL)
+       @make -C $(BDIR_BINUTILS) install
+
+$(BDIR_GCC)/Makefile: Makefile $(addprefix $(GCC_DIR)/,$(GCC_CHANGES))
+       @mkdir -p $(BDIR_GCC)
+       @cd $(BDIR_GCC) && PATH=$(PREFIX)/bin:$$PATH ../../$(GCC_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls --enable-langs=c,c++ --includedir=$(ACESSDIR)/Usermode/include "--with-sysroot=$(SYSROOT)"
 
-$(PREFIX)/bin/$(TARGET)-gcc:  $(addprefix $(GCC_DIR)/,$(GCC_CHANGES))
-       @mkdir -p build-gcc-$(ARCH)
-       cd build-gcc-$(ARCH) && PATH=$(PREFIX)/bin:$$PATH ../$(GCC_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls --enable-langs=c,c++ --includedir=$(ACESSDIR)/Usermode/include --libdir=$(ACESSDIR)/Usermode/Output/$(ARCH)/Lib
-       @cd build-gcc-$(ARCH) && PATH=$(PREFIX)/bin:$$PATH make all-gcc all-target-libgcc install-gcc install-target-libgcc -j $(PARLEVEL)
+$(PREFIX)/bin/$(TARGET)-gcc: $(BDIR_GCC)/Makefile
+       @PATH=$(PREFIX)/bin:$$PATH make -C $(BDIR_GCC) all-gcc -j $(PARLEVEL)
+       @PATH=$(PREFIX)/bin:$$PATH make -C $(BDIR_GCC) all-target-libgcc -j $(PARLEVEL)
+       @make -C $(BDIR_GCC) install-gcc install-target-libgcc
 
 

UCC git Repository :: git.ucc.asn.au