Usermode - Adding hacky pthreads support
[tpg/acess2.git] / Externals / cross-compiler / Makefile
index 4fcde2e..dbb6ad3 100644 (file)
@@ -1,27 +1,32 @@
 
--include ../../Makefile.cfg
+
+-include ../config.mk
 
 GCC_ARCHIVE:=$(lastword $(sort $(wildcard gcc-*.tar.bz2)))
 GCC_DIR:=$(GCC_ARCHIVE:%.tar.bz2=%)
 BINUTILS_ARCHIVE:=$(lastword $(sort $(wildcard binutils-*.tar.bz2)))
 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 
-
-ifeq ($(ARCH),x86)
- BFDARCH:=i586
-else ifeq ($(ARCH),x86_64)
- BFDARCH:=x86_64
-else
- $(error Arch $(ARCH) is not supported by magic gcc makfile)
+ifeq ($(GCC_ARCHIVE),)
+ $(warning Unable to find a GCC archive matching gcc-*.tar.bz2)
+ $(error No archive found)
 endif
+ifeq ($(BINUTILS_ARCHIVE),)
+ $(warning Unable to find a binutils archive matching binutils-*.tar.bz2)
+ $(error No archive found)
+endif
+
+BINUTILS_CHANGES := config.sub bfd/config.bfd gas/configure.tgt ld/configure.tgt ld/emulparams/acess2_i386.sh ld/emulparams/acess2_amd64.sh ld/Makefile.in
+GCC_CHANGES := config.sub gcc/config.gcc gcc/config/acess2.h libgcc/config.host gcc/config/acess2.opt
+# libstdc++-v3/crossconfig.m4 config/override.m4
 
-PARLEVEL ?= 1
+TARGET=$(HOST)
+GCC_TARGETS := gcc target-libgcc
+# target-libstdc++-v3 
 
-TARGET=$(BFDARCH)-pc-acess2
-PREFIX=$(shell pwd)/cross
-SYSROOT=$(shell pwd)/sysroot
+PREFIX := $(OUTDIR)-BUILD
+BDIR_GCC := build-$(ARCH)/gcc
+BDIR_BINUTILS := build-$(ARCH)/binutils
 
 .PHONY: all clean binutils gcc include
 
@@ -30,7 +35,8 @@ all: include binutils gcc
 include:
        mkdir -p $(PREFIX)
        mkdir -p $(SYSROOT)/usr
-       -ln -s $(ACESSDIR)/Usermode/include $(SYSROOT)/usr/include
+       ln -sf $(ACESSDIR)/Usermode/include $(SYSROOT)/usr/include
+       ln -sf $(ACESSDIR)/Usermode/Output/$(ARCH)/Libs $(SYSROOT)/usr/lib
 
 gcc: $(GCC_DIR) $(PREFIX)/bin/$(TARGET)-gcc
 
@@ -45,7 +51,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] $@
@@ -53,30 +59,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 $< $@
 
-BDIR_GCC := build-$(ARCH)/gcc
-BDIR_BINUTILS := build-$(ARCH)/binutils
+$(GCC_DIR)/libstdc++-v3/configure: $(GCC_DIR)/libstdc++-v3/crossconfig.m4
+       cd $(GCC_DIR)/libstdc++-v3/ && autoconf
 
 $(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
+       @cd $(BDIR_BINUTILS) && ../../$(BINUTILS_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls "--with-sysroot=$(SYSROOT)" --enable-shared --without-docdir
 
 $(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))
+$(BDIR_GCC)/Makefile: Makefile $(addprefix $(GCC_DIR)/,$(GCC_CHANGES)) $(GCC_DIR)/libstdc++-v3/configure
        @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)"
+       @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)" --without-docdir --enable-threads=posix
+       @echo "MAKEINFO = :" >> $(BDIR_GCC)/Makefile
 
 $(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
+       @PATH=$(PREFIX)/bin:$$PATH make -C $(BDIR_GCC) $(GCC_TARGETS:%=all-%) -j $(PARLEVEL)
+       @PATH=$(PREFIX)/bin:$$PATH make -C $(BDIR_GCC) $(GCC_TARGETS:%=install-%)
 
 

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