Externals/cross-compiler - Magic patchfiles
[tpg/acess2.git] / Externals / cross-compiler / Makefile
1
2 -include ../../Makefile.cfg
3
4 GCC_ARCHIVE:=$(lastword $(sort $(wildcard gcc-*.tar.bz2)))
5 GCC_DIR:=$(GCC_ARCHIVE:%.tar.bz2=%)
6 BINUTILS_ARCHIVE:=$(lastword $(sort $(wildcard binutils-*.tar.bz2)))
7 BINUTILS_DIR:=$(BINUTILS_ARCHIVE:%.tar.bz2=%)
8
9 BINUTILS_CHANGES := config.sub bfd/config.bfd gas/configure.tgt ld/configure.tgt ld/emulparams/acess2_i386.sh ld/Makefile.in
10 GCC_CHANGES := config.sub gcc/config.gcc gcc/config/acess2.h libgcc/config.host 
11
12 ARCH?=i586
13 PARLEVEL ?= 3
14
15 TARGET=$(ARCH)-pc-acess2
16 PREFIX=$(shell pwd)/cross
17
18 .PHONY: all clean binutils gcc include
19
20 all: include binutils gcc
21
22 include:
23         mkdir -p $(PREFIX)
24         rm -r $(PREFIX)/include
25         ln -s $(ACESSDIR)/Usermode/include $(PREFIX)/include
26
27 gcc: $(GCC_DIR) $(PREFIX)/bin/$(TARGET)-gcc
28
29 binutils: $(BINUTILS_DIR) $(PREFIX)/bin/$(TARGET)-ld
30
31 clean:
32         $(RM) -rf $(BINUTILS_DIR) build-*-$(ARCH)
33
34 $(BINUTILS_DIR) $(GCC_DIR): %: %.tar.bz2
35         tar -xf $<
36 $(warning $(BINUTILS_DIR) $(GCC_DIR))
37
38 $(GCC_DIR)/%: patches/gcc/%.patch
39         @echo [PATCH] $@
40         @tar -xf $(GCC_ARCHIVE) $@
41         @patch $@ $<
42 $(GCC_DIR)/%: patches/gcc/%
43         @echo [CP] $@
44         @cp $< $@
45
46 $(BINUTILS_DIR)/%: patches/binutils/%.patch
47         @echo [PATCH] $@
48         @tar -xf $(BINUTILS_ARCHIVE) $@
49         @patch $@ $<
50 $(BINUTILS_DIR)/%: patches/binutils/%
51         @echo [CP] $@
52         @cp $< $@
53
54 $(PREFIX)/bin/$(TARGET)-ld: $(addprefix $(BINUTILS_DIR)/,$(BINUTILS_CHANGES))
55         @mkdir -p build-binutils-$(ARCH)
56         @cd build-binutils-$(ARCH) && ../$(BINUTILS_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls
57         @cd build-binutils-$(ARCH) && make all install -j $(PARLEVEL)
58
59 $(PREFIX)/bin/$(TARGET)-gcc:  $(addprefix $(GCC_DIR)/,$(GCC_CHANGES))
60         @mkdir -p build-gcc-$(ARCH)
61         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
62         @cd build-gcc-$(ARCH) && PATH=$(PREFIX)/bin:$$PATH make all-gcc all-target-libgcc install-gcc install-target-libgcc -j $(PARLEVEL)
63
64

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