X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Externals%2Fcross-compiler%2FMakefile;h=52397094ff266bb43309ddd1d4550fa4d3a09d6d;hb=96d72268a3a1cfddcbd71353881e8bfadc17db5e;hp=0326b4494d009c5bb17f12dbff13692b7fcf08e1;hpb=5fc2955d2f3e3ffcc10ce713317771b72842d910;p=tpg%2Facess2.git diff --git a/Externals/cross-compiler/Makefile b/Externals/cross-compiler/Makefile index 0326b449..52397094 100644 --- a/Externals/cross-compiler/Makefile +++ b/Externals/cross-compiler/Makefile @@ -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