Blame


1 9c836066 2024-04-07 benni TOOLS != pwd
2 9c836066 2024-04-07 benni TOP = ${TOOLS}/..
3 9c836066 2024-04-07 benni STAMPS = ${TOOLS}/build/.stamps
4 9c836066 2024-04-07 benni PREFIX = ${TOOLS}
5 d83e2c2b 2024-02-19 benni TARGET = riscv64-unknown-linux-musl
6 e46639b3 2024-02-20 benni ARCH = rv64ia
7 9c836066 2024-04-07 benni U = ${TOOLS}/util
8 d83e2c2b 2024-02-19 benni
9 9c836066 2024-04-07 benni include ${TOP}/config.mk
10 9c836066 2024-04-07 benni
11 d83e2c2b 2024-02-19 benni BINUTILS_VER = 2.42
12 d83e2c2b 2024-02-19 benni GCC_VER = 13.2.0
13 d83e2c2b 2024-02-19 benni MUSL_VER = 1.2.4
14 d83e2c2b 2024-02-19 benni LINUX_VER = 6.6.17
15 d83e2c2b 2024-02-19 benni LINUX_MAJOR != echo ${LINUX_VER} | cut -d. -f1
16 d83e2c2b 2024-02-19 benni GMP_VER = 6.3.0
17 d83e2c2b 2024-02-19 benni MPFR_VER = 4.2.1
18 d83e2c2b 2024-02-19 benni MPC_VER = 1.3.1
19 d83e2c2b 2024-02-19 benni
20 9c836066 2024-04-07 benni GMAKE = $U/gmake
21 9c836066 2024-04-07 benni SUDO =
22 d83e2c2b 2024-02-19 benni
23 d83e2c2b 2024-02-19 benni all: build
24 d83e2c2b 2024-02-19 benni
25 d83e2c2b 2024-02-19 benni build: ${STAMPS}/libgcc-install
26 d83e2c2b 2024-02-19 benni
27 3528385d 2024-04-06 benni distclean: clean
28 3528385d 2024-04-06 benni rm -rf src
29 3528385d 2024-04-06 benni
30 d83e2c2b 2024-02-19 benni clean:
31 d83e2c2b 2024-02-19 benni rm -rf bin build include lib libexec ${TARGET} share
32 d83e2c2b 2024-02-19 benni
33 d83e2c2b 2024-02-19 benni test:
34 9c836066 2024-04-07 benni ${PREFIX}/bin/${TARGET}-gcc -o /dev/null $U/test.c
35 d83e2c2b 2024-02-19 benni
36 d83e2c2b 2024-02-19 benni download: src/binutils.tgz src/gcc.tgz src/musl.tgz src/linux.tgz src/gmp.tgz src/mpfr.tgz src/mpc.tgz
37 d83e2c2b 2024-02-19 benni extract: ${STAMPS}/binutils-extract ${STAMPS}/gcc-extract ${STAMPS}/musl-extract ${STAMPS}/linux-extract ${STAMPS}/gmp ${STAMPS}/mpfr ${STAMPS}/mpc
38 d83e2c2b 2024-02-19 benni
39 d83e2c2b 2024-02-19 benni headers: ${STAMPS}/linux-headers
40 d83e2c2b 2024-02-19 benni install-headers: ${STAMPS}/linux-hdrinst
41 d83e2c2b 2024-02-19 benni binutils: ${STAMPS}/binutils-build
42 d83e2c2b 2024-02-19 benni install-binutils: ${STAMPS}/binutils-install
43 d83e2c2b 2024-02-19 benni
44 d83e2c2b 2024-02-19 benni # DOWNLOAD
45 d83e2c2b 2024-02-19 benni
46 d83e2c2b 2024-02-19 benni src/binutils.tgz:
47 d83e2c2b 2024-02-19 benni mkdir -p src
48 9c836066 2024-04-07 benni $U/download $@ https://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VER}.tar.gz
49 d83e2c2b 2024-02-19 benni
50 d83e2c2b 2024-02-19 benni src/gcc.tgz:
51 d83e2c2b 2024-02-19 benni mkdir -p src
52 9c836066 2024-04-07 benni $U/download $@ https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-${GCC_VER}.tar.gz
53 d83e2c2b 2024-02-19 benni
54 d83e2c2b 2024-02-19 benni src/musl.tgz:
55 d83e2c2b 2024-02-19 benni mkdir -p src
56 9c836066 2024-04-07 benni $U/download $@ http://musl.libc.org/releases/musl-${MUSL_VER}.tar.gz
57 d83e2c2b 2024-02-19 benni
58 d83e2c2b 2024-02-19 benni src/linux.tgz:
59 d83e2c2b 2024-02-19 benni mkdir -p src
60 9c836066 2024-04-07 benni $U/download $@ https://mirrors.edge.kernel.org/pub/linux/kernel/v${LINUX_MAJOR}.x/linux-${LINUX_VER}.tar.gz
61 d83e2c2b 2024-02-19 benni
62 d83e2c2b 2024-02-19 benni src/gmp.tgz:
63 d83e2c2b 2024-02-19 benni mkdir -p src
64 9c836066 2024-04-07 benni $U/download $@ https://gmplib.org/download/gmp/gmp-${GMP_VER}.tar.gz
65 d83e2c2b 2024-02-19 benni
66 d83e2c2b 2024-02-19 benni src/mpfr.tgz:
67 d83e2c2b 2024-02-19 benni mkdir -p src
68 9c836066 2024-04-07 benni $U/download $@ https://www.mpfr.org/mpfr-current/mpfr-${MPFR_VER}.tar.gz
69 d83e2c2b 2024-02-19 benni
70 d83e2c2b 2024-02-19 benni src/mpc.tgz:
71 d83e2c2b 2024-02-19 benni mkdir -p src
72 9c836066 2024-04-07 benni $U/download $@ https://ftp.gnu.org/gnu/mpc/mpc-${MPC_VER}.tar.gz
73 d83e2c2b 2024-02-19 benni
74 d83e2c2b 2024-02-19 benni # EXTRACT
75 d83e2c2b 2024-02-19 benni
76 d83e2c2b 2024-02-19 benni ${STAMPS}/binutils-extract: src/binutils.tgz
77 d83e2c2b 2024-02-19 benni mkdir -p ${STAMPS}
78 d83e2c2b 2024-02-19 benni rm -rf build/binutils
79 d83e2c2b 2024-02-19 benni tar -C build -xzf src/binutils.tgz
80 d83e2c2b 2024-02-19 benni mv build/binutils-* build/binutils
81 d83e2c2b 2024-02-19 benni touch $@
82 d83e2c2b 2024-02-19 benni
83 d83e2c2b 2024-02-19 benni ${STAMPS}/gcc-extract: src/gcc.tgz
84 d83e2c2b 2024-02-19 benni mkdir -p ${STAMPS}
85 d83e2c2b 2024-02-19 benni rm -rf build/gcc
86 d83e2c2b 2024-02-19 benni tar -C build -xzf src/gcc.tgz
87 d83e2c2b 2024-02-19 benni mv build/gcc-* build/gcc
88 d83e2c2b 2024-02-19 benni cd build/gcc && ln -sf ../gmp ../mpfr ../mpc .
89 9c836066 2024-04-07 benni $U/fix-gcc ${TOOLS}/build/gcc
90 d83e2c2b 2024-02-19 benni touch $@
91 d83e2c2b 2024-02-19 benni
92 d83e2c2b 2024-02-19 benni ${STAMPS}/musl-extract: src/musl.tgz
93 d83e2c2b 2024-02-19 benni mkdir -p ${STAMPS}
94 d83e2c2b 2024-02-19 benni rm -rf build/musl
95 d83e2c2b 2024-02-19 benni tar -C build -xzf src/musl.tgz
96 d83e2c2b 2024-02-19 benni mv build/musl-* build/musl
97 d83e2c2b 2024-02-19 benni touch $@
98 d83e2c2b 2024-02-19 benni
99 d83e2c2b 2024-02-19 benni ${STAMPS}/linux-extract: src/linux.tgz
100 d83e2c2b 2024-02-19 benni mkdir -p ${STAMPS}
101 d83e2c2b 2024-02-19 benni rm -rf build/linux
102 d83e2c2b 2024-02-19 benni tar -C build -xzf src/linux.tgz
103 d83e2c2b 2024-02-19 benni mv build/linux-* build/linux
104 9c836066 2024-04-07 benni $U/fix-headers ${TOOLS}/build/linux/scripts/headers_install.sh
105 d83e2c2b 2024-02-19 benni touch $@
106 d83e2c2b 2024-02-19 benni
107 d83e2c2b 2024-02-19 benni ${STAMPS}/gmp: src/gmp.tgz
108 d83e2c2b 2024-02-19 benni mkdir -p ${STAMPS}
109 d83e2c2b 2024-02-19 benni tar -C build -xzf src/gmp.tgz
110 d83e2c2b 2024-02-19 benni mv build/gmp-* build/gmp
111 d83e2c2b 2024-02-19 benni touch $@
112 d83e2c2b 2024-02-19 benni
113 d83e2c2b 2024-02-19 benni ${STAMPS}/mpfr: src/mpfr.tgz
114 d83e2c2b 2024-02-19 benni mkdir -p ${STAMPS}
115 d83e2c2b 2024-02-19 benni tar -C build -xzf src/mpfr.tgz
116 d83e2c2b 2024-02-19 benni mv build/mpfr-* build/mpfr
117 d83e2c2b 2024-02-19 benni touch $@
118 d83e2c2b 2024-02-19 benni
119 d83e2c2b 2024-02-19 benni ${STAMPS}/mpc: src/mpc.tgz
120 d83e2c2b 2024-02-19 benni mkdir -p ${STAMPS}
121 d83e2c2b 2024-02-19 benni tar -C build -xzf src/mpc.tgz
122 d83e2c2b 2024-02-19 benni mv build/mpc-* build/mpc
123 d83e2c2b 2024-02-19 benni touch $@
124 d83e2c2b 2024-02-19 benni
125 d83e2c2b 2024-02-19 benni
126 d83e2c2b 2024-02-19 benni # KERNEL HEADERS
127 d83e2c2b 2024-02-19 benni
128 d83e2c2b 2024-02-19 benni ${STAMPS}/linux-headers: ${STAMPS}/linux-extract
129 9c836066 2024-04-07 benni (cd ${TOOLS}/build/linux && ${GMAKE} ARCH=riscv HOSTCC="${CC}" headers)
130 9c836066 2024-04-07 benni rm -f ${TOOLS}/build/linux/usr/include/Makefile
131 9c836066 2024-04-07 benni rm -f ${TOOLS}/build/linux/usr/include/headers_check.pl
132 d83e2c2b 2024-02-19 benni touch $@
133 d83e2c2b 2024-02-19 benni
134 d83e2c2b 2024-02-19 benni ${STAMPS}/linux-hdrinst: ${STAMPS}/linux-headers
135 d83e2c2b 2024-02-19 benni mkdir -p ${PREFIX}/${TARGET}
136 9c836066 2024-04-07 benni cd ${TOOLS}/build/linux && ${SUDO} cp -rf ${TOOLS}/build/linux/usr/include ${PREFIX}/${TARGET}/
137 d83e2c2b 2024-02-19 benni touch $@
138 d83e2c2b 2024-02-19 benni
139 d83e2c2b 2024-02-19 benni # BINUTILS
140 d83e2c2b 2024-02-19 benni
141 d83e2c2b 2024-02-19 benni ${STAMPS}/binutils-configure: ${STAMPS}/binutils-extract
142 9c836066 2024-04-07 benni mkdir -p ${TOOLS}/build/binutils/build
143 9c836066 2024-04-07 benni cd ${TOOLS}/build/binutils/build \
144 9c836066 2024-04-07 benni && CC="${CC}" CXX="${CXX}" ../configure \
145 d83e2c2b 2024-02-19 benni --prefix=${PREFIX} \
146 d83e2c2b 2024-02-19 benni --target=${TARGET} \
147 d83e2c2b 2024-02-19 benni --with-system-zlib \
148 d83e2c2b 2024-02-19 benni --with-arch=${ARCH} \
149 9c836066 2024-04-07 benni --without-zstd \
150 d83e2c2b 2024-02-19 benni --disable-nls \
151 d83e2c2b 2024-02-19 benni --disable-werror \
152 d83e2c2b 2024-02-19 benni --disable-multilib
153 d83e2c2b 2024-02-19 benni touch $@
154 d83e2c2b 2024-02-19 benni
155 d83e2c2b 2024-02-19 benni ${STAMPS}/binutils-build: ${STAMPS}/binutils-configure
156 9c836066 2024-04-07 benni (cd ${TOOLS}/build/binutils/build && ${GMAKE})
157 d83e2c2b 2024-02-19 benni touch $@
158 d83e2c2b 2024-02-19 benni
159 d83e2c2b 2024-02-19 benni ${STAMPS}/binutils-install: ${STAMPS}/binutils-build
160 9c836066 2024-04-07 benni (cd ${TOOLS}/build/binutils/build && ${SUDO} ${GMAKE} install)
161 d83e2c2b 2024-02-19 benni touch $@
162 d83e2c2b 2024-02-19 benni
163 d83e2c2b 2024-02-19 benni # GCC
164 d83e2c2b 2024-02-19 benni
165 d83e2c2b 2024-02-19 benni ${STAMPS}/gcc-configure: ${STAMPS}/gcc-extract ${STAMPS}/binutils-install ${STAMPS}/gmp ${STAMPS}/mpfr ${STAMPS}/mpc
166 9c836066 2024-04-07 benni mkdir -p ${TOOLS}/build/gcc/build
167 9c836066 2024-04-07 benni cd ${TOOLS}/build/gcc/build \
168 9c836066 2024-04-07 benni && CC="${CC}" CXX="${CXX}" ../configure \
169 d83e2c2b 2024-02-19 benni --prefix=${PREFIX} \
170 d83e2c2b 2024-02-19 benni --target=${TARGET} \
171 d83e2c2b 2024-02-19 benni --with-system-zlib \
172 d83e2c2b 2024-02-19 benni --with-arch=${ARCH} \
173 d83e2c2b 2024-02-19 benni --with-newlib \
174 d83e2c2b 2024-02-19 benni --without-headers \
175 d83e2c2b 2024-02-19 benni --enable-languages=c \
176 d83e2c2b 2024-02-19 benni --disable-nls \
177 d83e2c2b 2024-02-19 benni --disable-multilib \
178 d83e2c2b 2024-02-19 benni --disable-libssp \
179 d83e2c2b 2024-02-19 benni --disable-libsanitizer \
180 d83e2c2b 2024-02-19 benni --disable-libstdcxx \
181 d83e2c2b 2024-02-19 benni --disable-libgomp \
182 d83e2c2b 2024-02-19 benni --disable-libquadmath \
183 d83e2c2b 2024-02-19 benni --disable-libvtv \
184 d83e2c2b 2024-02-19 benni --disable-shared \
185 d83e2c2b 2024-02-19 benni --enable-static \
186 d83e2c2b 2024-02-19 benni --disable-threads
187 d83e2c2b 2024-02-19 benni touch $@
188 d83e2c2b 2024-02-19 benni
189 d83e2c2b 2024-02-19 benni ${STAMPS}/gcc-build: ${STAMPS}/gcc-configure
190 9c836066 2024-04-07 benni (cd ${TOOLS}/build/gcc/build && ${GMAKE} all-gcc)
191 d83e2c2b 2024-02-19 benni touch $@
192 d83e2c2b 2024-02-19 benni
193 d83e2c2b 2024-02-19 benni ${STAMPS}/gcc-install: ${STAMPS}/gcc-build
194 9c836066 2024-04-07 benni (cd ${TOOLS}/build/gcc/build && ${SUDO} ${GMAKE} install-gcc)
195 d83e2c2b 2024-02-19 benni touch $@
196 d83e2c2b 2024-02-19 benni
197 d83e2c2b 2024-02-19 benni # MUSL
198 d83e2c2b 2024-02-19 benni
199 d83e2c2b 2024-02-19 benni ${STAMPS}/musl-configure: ${STAMPS}/musl-extract ${STAMPS}/gcc-install
200 9c836066 2024-04-07 benni mkdir -p ${TOOLS}/build/musl/build
201 9c836066 2024-04-07 benni cd ${TOOLS}/build/musl/build && \
202 e46639b3 2024-02-20 benni CROSS_COMPILE=${PREFIX}/bin/${TARGET}- \
203 e46639b3 2024-02-20 benni ../configure \
204 d83e2c2b 2024-02-19 benni --prefix=${PREFIX}/${TARGET} \
205 d83e2c2b 2024-02-19 benni --target=${TARGET} \
206 d83e2c2b 2024-02-19 benni --disable-shared \
207 d83e2c2b 2024-02-19 benni --disable-wrapper \
208 d83e2c2b 2024-02-19 benni --enable-static
209 d83e2c2b 2024-02-19 benni touch $@
210 d83e2c2b 2024-02-19 benni
211 d83e2c2b 2024-02-19 benni ${STAMPS}/musl-build: ${STAMPS}/musl-configure ${STAMPS}/linux-hdrinst
212 9c836066 2024-04-07 benni (cd ${TOOLS}/build/musl/build && ${GMAKE})
213 d83e2c2b 2024-02-19 benni touch $@
214 d83e2c2b 2024-02-19 benni
215 d83e2c2b 2024-02-19 benni ${STAMPS}/musl-install: ${STAMPS}/musl-build
216 9c836066 2024-04-07 benni (cd ${TOOLS}/build/musl/build && ${SUDO} ${GMAKE} install)
217 d83e2c2b 2024-02-19 benni touch $@
218 d83e2c2b 2024-02-19 benni
219 d83e2c2b 2024-02-19 benni # LIBGCC
220 d83e2c2b 2024-02-19 benni
221 d83e2c2b 2024-02-19 benni ${STAMPS}/libgcc-build: ${STAMPS}/gcc-install ${STAMPS}/musl-install
222 9c836066 2024-04-07 benni (cd ${TOOLS}/build/gcc/build && ${GMAKE} all-target-libgcc)
223 d83e2c2b 2024-02-19 benni touch $@
224 d83e2c2b 2024-02-19 benni
225 d83e2c2b 2024-02-19 benni ${STAMPS}/libgcc-install: ${STAMPS}/libgcc-build
226 9c836066 2024-04-07 benni (cd ${TOOLS}/build/gcc/build && ${SUDO} ${GMAKE} install-target-libgcc)
227 d83e2c2b 2024-02-19 benni touch $@