blob: a5d10424c2c3b0f2c2143a0f9381f94e8e5c73ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
UPSTREAM_VERSION := 4.5.1
UPSTREAM_TARBALL := gcc-$(UPSTREAM_VERSION).tar.bz2
UPSTREAM_URI := http://ftp.gnu.org/gnu/gcc/gcc-$(UPSTREAM_VERSION)/$(UPSTREAM_TARBALL)
UPSTREAM_BINUTILS_VERSION := 2.14
# Not a tarball; so sue me
UPSTREAM_BINUTILS_TARBALL := binutils-$(UPSTREAM_BINUTILS_VERSION)
UPSTREAM_BINUTILS_URI := https://adtools.svn.sourceforge.net/svnroot/adtools/tags/before-merge-with-binutils-2.18/binutils
UPSTREAM_GMP_VERSION := 4.3.2
UPSTREAM_GMP_TARBALL := gmp-$(UPSTREAM_GMP_VERSION).tar.bz2
UPSTREAM_GMP_URI := http://ftp.gnu.org/gnu/gmp/$(UPSTREAM_GMP_TARBALL)
# Would use 3.0.0, but that dislikes in-tree gmp sources
UPSTREAM_MPFR_VERSION := 2.4.2
UPSTREAM_MPFR_TARBALL := mpfr-$(UPSTREAM_MPFR_VERSION).tar.bz2
UPSTREAM_MPFR_URI := http://www.mpfr.org/mpfr-$(UPSTREAM_MPFR_VERSION)/$(UPSTREAM_MPFR_TARBALL)
UPSTREAM_MPC_VERSION := 0.8.2
UPSTREAM_MPC_TARBALL := mpc-$(UPSTREAM_MPC_VERSION).tar.gz
UPSTREAM_MPC_URI := http://www.multiprecision.org/mpc/download/$(UPSTREAM_MPC_TARBALL)
TOP := $(CURDIR)
RECIPES := $(TOP)/recipes
BUILDSTEPS := $(TOP)/build-steps
SRCDIR := $(TOP)/srcdir
BUILDDIR := $(TOP)/builddir
PREFIX ?= /usr/local/netsurf/cross/amiga68k/
TARGET_NAME := m68k-unknown-amigaos
.PHONY: all install
all: $(BUILDSTEPS)/toolchain.d
install: $(BUILDSTEPS)/install.d
$(BUILDSTEPS)/install.d: $(BUILDSTEPS)/toolchain.d
cd $(BUILDDIR)/binutils/target && make install
cd $(BUILDDIR) && make install
touch $@
$(BUILDSTEPS)/toolchain.d: $(BUILDSTEPS)/make.d $(BUILDSTEPS)/binutils.d
touch $@
$(BUILDSTEPS)/make.d: $(BUILDSTEPS)/configure.d
cd $(BUILDDIR) && PATH="$(BUILDDIR)/binutils/bootstrap/prefix/bin:$(PATH)" make all
touch $@
$(BUILDSTEPS)/configure.d: $(BUILDSTEPS)/srcdir-step3.d
cd $(BUILDDIR) && PATH="$(BUILDDIR)/binutils/bootstrap/prefix/bin:$(PATH)" $(SRCDIR)/configure --prefix=$(PREFIX) --target=$(TARGET_NAME) \
--with-cpu=m68040 --disable-threads --disable-nls --disable-c-mbchar \
--enable-languages=c --enable-checking=no --enable-c99 --with-cross-host \
--enable-multilib --without-x --enable-maintainer-mode
touch $@
$(BUILDSTEPS)/srcdir-step3.d: $(BUILDSTEPS)/srcdir-step2.d $(UPSTREAM_GMP_TARBALL) $(UPSTREAM_MPFR_TARBALL) $(UPSTREAM_MPC_TARBALL)
tar xjf $(UPSTREAM_GMP_TARBALL)
mv gmp-$(UPSTREAM_GMP_VERSION) $(SRCDIR)/gmp
tar xjf $(UPSTREAM_MPFR_TARBALL)
mv mpfr-$(UPSTREAM_MPFR_VERSION) $(SRCDIR)/mpfr
tar xzf $(UPSTREAM_MPC_TARBALL)
mv mpc-$(UPSTREAM_MPC_VERSION) $(SRCDIR)/mpc
touch $@
$(BUILDSTEPS)/srcdir-step2.d: $(BUILDSTEPS)/srcdir-step1.d
for p in `ls $(RECIPES)/patches/gcc/*.p` ; do patch -d $(SRCDIR) -p0 <$$p ; done
for dir in `find $(RECIPES)/files -type d | grep -v '\.svn' | sed 's#$(RECIPES)/files/##'` ; do mkdir -p $(SRCDIR)/$$dir ; done
for file in `find $(RECIPES)/files -type f | grep -v '\.svn' | sed 's#$(RECIPES)/files/##'` ; do cp -p $(RECIPES)/files/$$file $(SRCDIR)/$$file ; done
touch $@
$(BUILDSTEPS)/srcdir-step1.d: $(BUILDSTEPS)/orig.gcc.d $(BUILDSTEPS)/bootstrap-binutils.d
ln -s orig.gcc $(SRCDIR)
touch $@
$(BUILDSTEPS)/orig.gcc.d: $(BUILDSTEPS)/orig.gcc-$(UPSTREAM_TARBALL).d
tar xjf orig.gcc-$(UPSTREAM_TARBALL)
mv gcc-$(UPSTREAM_VERSION) orig.gcc
touch $@
$(BUILDSTEPS)/orig.gcc-$(UPSTREAM_TARBALL).d: $(BUILDSTEPS)/buildsteps.d orig.gcc-$(UPSTREAM_TARBALL)
touch $@
orig.gcc-$(UPSTREAM_TARBALL):
wget -q -O $@ $(UPSTREAM_URI)
# Ugh. Upstream binutils is not remotely 64-bit safe.
# Build a 32bit binary until this gets fixed
$(BUILDSTEPS)/binutils.d: $(UPSTREAM_BINUTILS_TARBALL)
mkdir -p $(BUILDDIR)/binutils/target
cd $(BUILDDIR)/binutils/target && CFLAGS="-m32" LDFLAGS="-m32" $(TOP)/binutils-$(UPSTREAM_BINUTILS_VERSION)/configure --prefix=$(PREFIX) --target=$(TARGET_NAME)
cd $(BUILDDIR)/binutils/target && make
touch $@
$(BUILDSTEPS)/bootstrap-binutils.d: $(UPSTREAM_BINUTILS_TARBALL)
mkdir -p $(BUILDDIR)/binutils/bootstrap
cd $(BUILDDIR)/binutils/bootstrap && CFLAGS="-m32" LDFLAGS="-m32" $(TOP)/binutils-$(UPSTREAM_BINUTILS_VERSION)/configure --prefix=$(BUILDDIR)/binutils/bootstrap/prefix --target=$(TARGET_NAME)
cd $(BUILDDIR)/binutils/bootstrap && make
cd $(BUILDDIR)/binutils/bootstrap && make install
touch $@
$(UPSTREAM_GMP_TARBALL):
wget -q -O $@ $(UPSTREAM_GMP_URI)
$(UPSTREAM_MPFR_TARBALL):
wget -q -O $@ $(UPSTREAM_MPFR_URI)
$(UPSTREAM_MPC_TARBALL):
wget -q -O $@ $(UPSTREAM_MPC_URI)
$(UPSTREAM_BINUTILS_TARBALL):
svn co $(UPSTREAM_BINUTILS_URI) $@
$(BUILDSTEPS)/buildsteps.d:
mkdir -p $(BUILDSTEPS)
touch $@
|