annotate mini-native.sh @ 516:f846099333ac

I can see the man pages being potentially useful, but info pages are a complete waste of space.
author Rob Landley <rob@landley.net>
date Tue, 02 Dec 2008 03:00:11 -0600
parents d6182f514567
children 89b2e2c55b28
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
177
6b4844b708b9 dash->bash.
Rob Landley <rob@landley.net>
parents: 164
diff changeset
1 #!/bin/bash
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
2
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
3 # Get lots of predefined environment variables and shell functions.
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
4
503
e98ed40c55ef Move include.sh to sources/include.sh. End user doesn't call it directly, shouldn't be at top level.
Rob Landley <rob@landley.net>
parents: 496
diff changeset
5 source sources/include.sh
96
137ba51ee993 Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents: 85
diff changeset
6
395
c2b290c1df40 Upgrade BUILD_SHORT to make a small busybox+uClibc system in /usr, with top level symlinks (/bin, /lib, etc) and adjustments to boot script and run-emulator.
Rob Landley <rob@landley.net>
parents: 390
diff changeset
7 # Purple. And why not?
485
b0438691e9e1 Move color selection into ./config. (The default colors don't look great on a white background.)
Rob Landley <rob@landley.net>
parents: 484
diff changeset
8 echo -e "$NATIVE_COLOR"
b0438691e9e1 Move color selection into ./config. (The default colors don't look great on a white background.)
Rob Landley <rob@landley.net>
parents: 484
diff changeset
9 echo "=== Building minimal native development environment"
395
c2b290c1df40 Upgrade BUILD_SHORT to make a small busybox+uClibc system in /usr, with top level symlinks (/bin, /lib, etc) and adjustments to boot script and run-emulator.
Rob Landley <rob@landley.net>
parents: 390
diff changeset
10
96
137ba51ee993 Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents: 85
diff changeset
11 rm -rf "${NATIVE}"
137ba51ee993 Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents: 85
diff changeset
12
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
13 if [ ! -z "${NATIVE_TOOLSDIR}" ]
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
14 then
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
15 TOOLS="${NATIVE}/tools"
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
16 mkdir -p "${TOOLS}/bin" || dienow
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
17
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
18 # Tell the wrapper script where to find the dynamic linker.
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
19 export UCLIBC_DYNAMIC_LINKER=/tools/lib/ld-uClibc.so.0
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
20 export UCLIBC_RPATH=/tools/lib
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
21 else
482
3e9d715e4a11 Rename CROSS_BUILD_STATIC, NATIVE_NOTOOLSDIR, NATIVE_NOTOOLCHAIN and make them work properly.
Rob Landley <rob@landley.net>
parents: 479
diff changeset
22 mkdir -p "${NATIVE}"/{tmp,proc,sys,dev,etc} || dienow
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
23 TOOLS="${NATIVE}/usr"
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
24 for i in bin sbin lib
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
25 do
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
26 mkdir -p "$TOOLS/$i" || dienow
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
27 ln -s "usr/$i" "${NATIVE}/$i" || dienow
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
28 done
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
29 fi
395
c2b290c1df40 Upgrade BUILD_SHORT to make a small busybox+uClibc system in /usr, with top level symlinks (/bin, /lib, etc) and adjustments to boot script and run-emulator.
Rob Landley <rob@landley.net>
parents: 390
diff changeset
30
424
e39509d8d925 Install uClibc and kernel .config files into src directory of mini-native.
Rob Landley <rob@landley.net>
parents: 423
diff changeset
31 # Copy qemu setup script and so on.
e39509d8d925 Install uClibc and kernel .config files into src directory of mini-native.
Rob Landley <rob@landley.net>
parents: 423
diff changeset
32
e39509d8d925 Install uClibc and kernel .config files into src directory of mini-native.
Rob Landley <rob@landley.net>
parents: 423
diff changeset
33 cp -r "${SOURCES}/native/." "${TOOLS}/" || dienow
e39509d8d925 Install uClibc and kernel .config files into src directory of mini-native.
Rob Landley <rob@landley.net>
parents: 423
diff changeset
34
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
35 # Build and install Linux kernel.
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
36
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
37 setupfor linux
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
38 # Install Linux kernel headers (for use by uClibc).
278
f878f79763c7 Use make -j to install kernel headers.
Rob Landley <rob@landley.net>
parents: 223
diff changeset
39 make headers_install -j "$CPUS" ARCH="${KARCH}" INSTALL_HDR_PATH="${TOOLS}" &&
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
40 # build bootable kernel for target
387
f0ceae67ebd0 Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents: 374
diff changeset
41 make ARCH="${KARCH}" KCONFIG_ALLCONFIG="${CONFIG_DIR}/miniconfig-linux" \
f0ceae67ebd0 Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents: 374
diff changeset
42 allnoconfig &&
424
e39509d8d925 Install uClibc and kernel .config files into src directory of mini-native.
Rob Landley <rob@landley.net>
parents: 423
diff changeset
43 cp .config "${TOOLS}"/src/config-linux &&
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 177
diff changeset
44 make -j $CPUS ARCH="${KARCH}" CROSS_COMPILE="${ARCH}-" &&
306
358ef8a27085 Break up run-$ARCH.sh, move more temp files into temp dir, fix deletion logic.
Rob Landley <rob@landley.net>
parents: 301
diff changeset
45 cp "${KERNEL_PATH}" "${WORK}/zImage-${ARCH}" &&
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
46 cd ..
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
47
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
48 cleanup linux
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
49
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
50 # Build and install uClibc. (We could just copy the one from the compiler
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
51 # toolchain, but this is cleaner.)
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
52
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
53 setupfor uClibc
400
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
54 if unstable uClibc
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
55 then
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
56 CONFIGFILE=miniconfig-alt-uClibc
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
57 BUILDIT="install -j $CPUS"
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
58 else
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
59 CONFIGFILE=miniconfig-uClibc
470
919121ba6c5c Move uClibc 0.9.30 build from unstable to stable (and an unrelated fix: symlink uClibc++.a like .so).
Rob Landley <rob@landley.net>
parents: 456
diff changeset
60 BUILDIT="install -j $CPUS"
400
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
61 fi
456
2a308aa24aec Make gcc stop putting stuff in a lib64 directory on x86-64 even when we --disable-multilib, and remove spurious uClibc warnings about trying to use the cross compiler to "make allnoconfig".
Rob Landley <rob@landley.net>
parents: 453
diff changeset
62 make CROSS="${ARCH}=" KCONFIG_ALLCONFIG="${CONFIG_DIR}"/$CONFIGFILE allnoconfig &&
424
e39509d8d925 Install uClibc and kernel .config files into src directory of mini-native.
Rob Landley <rob@landley.net>
parents: 423
diff changeset
63 cp .config "${TOOLS}"/src/config-uClibc &&
68
fd2cf40fcd02 Install the uClibc utils install into /tools/bin. (Including readelf.)
Rob Landley <rob@landley.net>
parents: 66
diff changeset
64 make CROSS="${ARCH}-" KERNEL_HEADERS="${TOOLS}/include" PREFIX="${TOOLS}/" \
400
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
65 RUNTIME_PREFIX=/ DEVEL_PREFIX=/ UCLIBC_LDSO_NAME=ld-uClibc $BUILDIT &&
68
fd2cf40fcd02 Install the uClibc utils install into /tools/bin. (Including readelf.)
Rob Landley <rob@landley.net>
parents: 66
diff changeset
66 # utils_install wants to put stuff in usr/bin instead of bin.
400
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
67 # make BLAH=blah utils
f60b1189c0ea Teach build to use recent uClibc snapshot when USE_UNSTABLE=uClibc
Rob Landley <rob@landley.net>
parents: 395
diff changeset
68 # install -m 755 utils/{readelf,ldd,ldconfig} "${TOOLS}/bin" &&
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
69 cd ..
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
70
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
71 cleanup uClibc
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
72
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents: 310
diff changeset
73 # Build and install toybox
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents: 310
diff changeset
74
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents: 310
diff changeset
75 setupfor toybox
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents: 310
diff changeset
76 make defconfig &&
389
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
77 if [ -z "$USE_TOYBOX" ]
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
78 then
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
79 make CROSS="${ARCH}-" &&
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
80 cp toybox "$TOOLS/bin" &&
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
81 ln -s toybox "$TOOLS/bin/patch" &&
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
82 ln -s toybox "$TOOLS/bin/oneit" &&
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
83 cd ..
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
84 else
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
85 make install_flat PREFIX="${TOOLS}"/bin CROSS="${ARCH}-" &&
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
86 rm "${TOOLS}"/bin/sh && # Bash won't install if this exists.
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
87 cd ..
becb1084a427 Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents: 387
diff changeset
88 fi
311
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents: 310
diff changeset
89
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents: 310
diff changeset
90 cleanup toybox
a791ca629d9c Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents: 310
diff changeset
91
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
92 # Build and install busybox
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
93
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
94 setupfor busybox
453
61a26b8092bf Busybox defconfig has become useless, so switch busybox to build via allyesconfig minus symbols to be disabled.
Rob Landley <rob@landley.net>
parents: 447
diff changeset
95 make allyesconfig KCONFIG_ALLCONFIG="${SOURCES}/trimconfig-busybox" &&
358
9829e6cc8637 Update busybox from 1.2.2 to 1.11.0. Toybox i still used for oneit and patch,
Rob Landley <rob@landley.net>
parents: 351
diff changeset
96 make -j $CPUS CROSS_COMPILE="${ARCH}-" &&
9829e6cc8637 Update busybox from 1.2.2 to 1.11.0. Toybox i still used for oneit and patch,
Rob Landley <rob@landley.net>
parents: 351
diff changeset
97 make busybox.links &&
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
98 cp busybox "${TOOLS}/bin"
453
61a26b8092bf Busybox defconfig has become useless, so switch busybox to build via allyesconfig minus symbols to be disabled.
Rob Landley <rob@landley.net>
parents: 447
diff changeset
99
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
100 [ $? -ne 0 ] && dienow
453
61a26b8092bf Busybox defconfig has become useless, so switch busybox to build via allyesconfig minus symbols to be disabled.
Rob Landley <rob@landley.net>
parents: 447
diff changeset
101
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
102 for i in $(sed 's@.*/@@' busybox.links)
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
103 do
358
9829e6cc8637 Update busybox from 1.2.2 to 1.11.0. Toybox i still used for oneit and patch,
Rob Landley <rob@landley.net>
parents: 351
diff changeset
104 ln -s busybox "${TOOLS}/bin/$i" # || dienow
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
105 done
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
106 cd ..
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
107
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
108 cleanup busybox
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
109
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
110 if [ -z "${NATIVE_TOOLSDIR}" ]
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
111 then
482
3e9d715e4a11 Rename CROSS_BUILD_STATIC, NATIVE_NOTOOLSDIR, NATIVE_NOTOOLCHAIN and make them work properly.
Rob Landley <rob@landley.net>
parents: 479
diff changeset
112 sed -i -e 's@/tools/@/usr/@g' "${TOOLS}/bin/qemu-setup.sh" || dienow
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
113 fi
395
c2b290c1df40 Upgrade BUILD_SHORT to make a small busybox+uClibc system in /usr, with top level symlinks (/bin, /lib, etc) and adjustments to boot script and run-emulator.
Rob Landley <rob@landley.net>
parents: 390
diff changeset
114
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
115 if [ -z "$NATIVE_TOOLCHAIN" ]
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
116 then
510
d6182f514567 A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents: 503
diff changeset
117 # If we're not installing a compiler, delete the headers, static libs,
d6182f514567 A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents: 503
diff changeset
118 # and example source code.
d6182f514567 A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents: 503
diff changeset
119
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
120 rm -rf "${TOOLS}"/include &&
510
d6182f514567 A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents: 503
diff changeset
121 rm -rf "${TOOLS}"/lib/*.a &&
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
122 rm -rf "${TOOLS}/src" || dienow
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
123
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
124 elif [ "$NATIVE_TOOLCHAIN" == "headers" ]
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
125 then
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
126
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
127 # If you want to use a compiler other than gcc, you need to keep the headers,
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
128 # so do nothing here.
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
129 echo
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
130
310
3a1ae92d6f6a Teach BUILD_SHORT to remove include files (saving ~5 megs), and move the
Rob Landley <rob@landley.net>
parents: 306
diff changeset
131 else
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
132
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
133 # Build and install native binutils
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
134
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
135 setupfor binutils build-binutils
62
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 53
diff changeset
136 CC="${ARCH}-gcc" AR="${ARCH}-ar" "${CURSRC}/configure" --prefix="${TOOLS}" \
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 53
diff changeset
137 --build="${CROSS_HOST}" --host="${CROSS_TARGET}" --target="${CROSS_TARGET}" \
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 53
diff changeset
138 --disable-nls --disable-shared --disable-multilib --program-prefix= \
417
6dd7e870b1d4 No shipping package should ever use -Werror, no idea what new gcc versions will decide to warn on. (Fixes build on ubuntu 8.10.)
Rob Landley <rob@landley.net>
parents: 414
diff changeset
139 --disable-werror $BINUTILS_FLAGS &&
293
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
140 make -j $CPUS configure-host &&
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 177
diff changeset
141 make -j $CPUS &&
293
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
142 make -j $CPUS install &&
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
143 cd .. &&
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
144 mkdir -p "${TOOLS}/include" &&
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
145 cp binutils/include/libiberty.h "${TOOLS}/include"
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
146
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
147 cleanup binutils build-binutils
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
148
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
149 # Build and install native gcc, with c++ support this time.
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
150
223
f6973e090c4f Update mini-native for the new tarball strategy.
Rob Landley <rob@landley.net>
parents: 221
diff changeset
151 setupfor gcc-core build-gcc
f6973e090c4f Update mini-native for the new tarball strategy.
Rob Landley <rob@landley.net>
parents: 221
diff changeset
152 setupfor gcc-g++ build-gcc gcc-core
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
153 # GCC tries to "help out in the kitchen" by screwing up the linux include
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
154 # files. Cut out those bits with sed and throw them away.
295
bbfb6e7bf7e6 Add first pass at Super Hitachi platform.
Rob Landley <rob@landley.net>
parents: 294
diff changeset
155 sed -i 's@^STMP_FIX.*@@' "${CURSRC}/gcc/Makefile.in" &&
46
eeddef87a747 Still doesn't work, but doesn't work better.
Rob Landley <rob@landley.net>
parents: 44
diff changeset
156 # GCC has some deep assumptions about the name of the cross-compiler it should
eeddef87a747 Still doesn't work, but doesn't work better.
Rob Landley <rob@landley.net>
parents: 44
diff changeset
157 # be using. These assumptions are wrong, and lots of redundant corrections
294
87df194d555d Back to gcc 4.1.2 until I find a large enough rock to fix the soft-float thing.
Rob Landley <rob@landley.net>
parents: 293
diff changeset
158 # are required to make it stop.
87df194d555d Back to gcc 4.1.2 until I find a large enough rock to fix the soft-float thing.
Rob Landley <rob@landley.net>
parents: 293
diff changeset
159 CC="${ARCH}-gcc" GCC_FOR_TARGET="${ARCH}-gcc" CC_FOR_TARGET="${ARCH}-gcc" \
87df194d555d Back to gcc 4.1.2 until I find a large enough rock to fix the soft-float thing.
Rob Landley <rob@landley.net>
parents: 293
diff changeset
160 AR="${ARCH}-ar" AR_FOR_TARGET="${ARCH}-ar" AS="${ARCH}-as" LD="${ARCH}-ld" \
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
161 NM="${ARCH}-nm" NM_FOR_TARGET="${ARCH}-nm" CXX_FOR_TARGET="${ARCH}-g++" \
294
87df194d555d Back to gcc 4.1.2 until I find a large enough rock to fix the soft-float thing.
Rob Landley <rob@landley.net>
parents: 293
diff changeset
162 "${CURSRC}/configure" --prefix="${TOOLS}" --disable-multilib \
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
163 --build="${CROSS_HOST}" --host="${CROSS_TARGET}" --target="${CROSS_TARGET}" \
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
164 --enable-long-long --enable-c99 --enable-shared --enable-threads=posix \
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
165 --enable-__cxa_atexit --disable-nls --enable-languages=c,c++ \
445
c2215a078923 On arm, gcc has an internal compiler error building dwarf2 exceptions in mini-native. (Yes, it dies builing _itself_.) Switch to setjmp/longjmp excpetions.
Rob Landley <rob@landley.net>
parents: 443
diff changeset
166 --disable-libstdcxx-pch --enable-sjlj-exceptions --program-prefix="" \
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
167 $GCC_FLAGS &&
293
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
168 make -j $CPUS configure-host &&
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 177
diff changeset
169 make -j $CPUS all-gcc &&
456
2a308aa24aec Make gcc stop putting stuff in a lib64 directory on x86-64 even when we --disable-multilib, and remove spurious uClibc warnings about trying to use the cross compiler to "make allnoconfig".
Rob Landley <rob@landley.net>
parents: 453
diff changeset
170 # Work around gcc bug; we disabled multilib but it doesn't always notice.
2a308aa24aec Make gcc stop putting stuff in a lib64 directory on x86-64 even when we --disable-multilib, and remove spurious uClibc warnings about trying to use the cross compiler to "make allnoconfig".
Rob Landley <rob@landley.net>
parents: 453
diff changeset
171 ln -s lib "$TOOLS/lib64" &&
293
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
172 make -j $CPUS install-gcc &&
456
2a308aa24aec Make gcc stop putting stuff in a lib64 directory on x86-64 even when we --disable-multilib, and remove spurious uClibc warnings about trying to use the cross compiler to "make allnoconfig".
Rob Landley <rob@landley.net>
parents: 453
diff changeset
173 rm "$TOOLS/lib64" &&
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
174 ln -s gcc "${TOOLS}/bin/cc" &&
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
175 # Now we need to beat libsupc++ out of gcc (which uClibc++ needs to build).
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
176 # But don't want to build the whole of libstdc++-v3 because
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
177 # A) we're using uClibc++ instead, B) the build breaks.
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
178 make -j $CPUS configure-target-libstdc++-v3 &&
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
179 cd "$CROSS_TARGET"/libstdc++-v3/libsupc++ &&
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
180 make -j $CPUS &&
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
181 mv .libs/libsupc++.a "$TOOLS"/lib &&
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
182 cd ../../../..
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
183
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
184 cleanup gcc-core build-gcc
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
185
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
186 # Move the gcc internal libraries and headers somewhere sane, and
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
187 # build and install gcc wrapper script.
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
188
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
189 mkdir -p "${TOOLS}"/gcc &&
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
190 mv "${TOOLS}"/lib/gcc/*/*/include "${TOOLS}"/gcc/include &&
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
191 mv "${TOOLS}"/lib/gcc/*/* "${TOOLS}"/gcc/lib &&
390
a9a9eee9e620 Teach the wrapper script to do the libgcc_s --as-needed stuff when
Rob Landley <rob@landley.net>
parents: 389
diff changeset
192 mv "${TOOLS}/bin/gcc" "${TOOLS}/bin/rawgcc" &&
a9a9eee9e620 Teach the wrapper script to do the libgcc_s --as-needed stuff when
Rob Landley <rob@landley.net>
parents: 389
diff changeset
193 "${ARCH}-gcc" "${SOURCES}"/toys/gcc-uClibc.c -Os -s -o "${TOOLS}/bin/gcc" \
432
b697ea9d73f3 Use the wrapper for g++, and clean up compiler install slightly better.
Rob Landley <rob@landley.net>
parents: 424
diff changeset
194 -DGCC_UNWRAPPED_NAME='"rawgcc"' -DGIMME_AN_S &&
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
195
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
196 # Wrap C++
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
197 mv "${TOOLS}/bin/g++" "${TOOLS}/bin/rawg++" &&
432
b697ea9d73f3 Use the wrapper for g++, and clean up compiler install slightly better.
Rob Landley <rob@landley.net>
parents: 424
diff changeset
198 ln "${TOOLS}/bin/gcc" "${TOOLS}/bin/g++" &&
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
199 rm "${TOOLS}/bin/c++" &&
432
b697ea9d73f3 Use the wrapper for g++, and clean up compiler install slightly better.
Rob Landley <rob@landley.net>
parents: 424
diff changeset
200 ln -s g++ "${TOOLS}/bin/c++"
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
201
432
b697ea9d73f3 Use the wrapper for g++, and clean up compiler install slightly better.
Rob Landley <rob@landley.net>
parents: 424
diff changeset
202 cleanup "${TOOLS}"/{lib/gcc,gcc/lib/install-tools,bin/${ARCH}-unknown-*}
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
203
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
204 # Tell future packages to link against the libraries in mini-native,
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
205 # rather than the ones in the cross compiler directory.
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
206
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
207 export WRAPPER_TOPDIR="${TOOLS}"
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
208
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
209 # Build and install uClibc++
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
210
447
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
211 setupfor uClibc++
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
212 CROSS= make defconfig &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
213 sed -r -i 's/(UCLIBCXX_HAS_(TLS|LONG_DOUBLE))=y/# \1 is not set/' .config &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
214 sed -r -i '/UCLIBCXX_RUNTIME_PREFIX=/s/".*"/""/' .config &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
215 CROSS= make oldconfig &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
216 CROSS="$ARCH"- make &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
217 CROSS= make install PREFIX="${TOOLS}/c++" &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
218
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
219 # Move libraries somewhere useful.
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
220
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
221 mv "${TOOLS}"/c++/lib/* "${TOOLS}"/lib &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
222 rm -rf "${TOOLS}"/c++/{lib,bin} &&
470
919121ba6c5c Move uClibc 0.9.30 build from unstable to stable (and an unrelated fix: symlink uClibc++.a like .so).
Rob Landley <rob@landley.net>
parents: 456
diff changeset
223 ln -s libuClibc++.so "${TOOLS}"/lib/libstdc++.so &&
479
06d7357c87fd Fix uClibc++ cleanup.
Rob Landley <rob@landley.net>
parents: 470
diff changeset
224 ln -s libuClibc++.a "${TOOLS}"/lib/libstdc++.a &&
06d7357c87fd Fix uClibc++ cleanup.
Rob Landley <rob@landley.net>
parents: 470
diff changeset
225 cd ..
447
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
226
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
227 cleanup uClibc++
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
228
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
229 # Build and install make
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
230
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
231 setupfor make
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
232 CC="${ARCH}-gcc" ./configure --prefix="${TOOLS}" --build="${CROSS_HOST}" \
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
233 --host="${CROSS_TARGET}" &&
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 177
diff changeset
234 make -j $CPUS &&
293
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
235 make -j $CPUS install &&
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
236 cd ..
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
237
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
238 cleanup make
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
239
482
3e9d715e4a11 Rename CROSS_BUILD_STATIC, NATIVE_NOTOOLSDIR, NATIVE_NOTOOLCHAIN and make them work properly.
Rob Landley <rob@landley.net>
parents: 479
diff changeset
240 # Remove the busybox /bin/sh link so the bash install doesn't get upset.
3e9d715e4a11 Rename CROSS_BUILD_STATIC, NATIVE_NOTOOLSDIR, NATIVE_NOTOOLCHAIN and make them work properly.
Rob Landley <rob@landley.net>
parents: 479
diff changeset
241
3e9d715e4a11 Rename CROSS_BUILD_STATIC, NATIVE_NOTOOLSDIR, NATIVE_NOTOOLCHAIN and make them work properly.
Rob Landley <rob@landley.net>
parents: 479
diff changeset
242 rm "$TOOLS"/bin/sh
3e9d715e4a11 Rename CROSS_BUILD_STATIC, NATIVE_NOTOOLSDIR, NATIVE_NOTOOLCHAIN and make them work properly.
Rob Landley <rob@landley.net>
parents: 479
diff changeset
243
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
244 # Build and install bash. (Yes, this is an old version. I prefer it.)
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
245 # I plan to replace it with toysh anyway.
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
246
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
247 setupfor bash
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
248 # wire around some tests ./configure can't run when cross-compiling.
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
249 cat > config.cache << EOF &&
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
250 ac_cv_func_setvbuf_reversed=no
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
251 bash_cv_sys_named_pipes=yes
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
252 bash_cv_have_mbstate_t=yes
66
57f77c25b39d Hit uClibc build with a large rock so it stops inserting hardwired paths in
Rob Landley <rob@landley.net>
parents: 63
diff changeset
253 bash_cv_getenv_redef=no
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
254 EOF
157
dff36fab9e7e Of course there's a bug. (The ranlib fix was apparently a NOP, this should
Rob Landley <rob@landley.net>
parents: 155
diff changeset
255 CC="${ARCH}-gcc" RANLIB="${ARCH}-ranlib" ./configure --prefix="${TOOLS}" \
153
106f3875f606 The bash build continues to be stupid. Force RANLIB.
Rob Landley <rob@landley.net>
parents: 131
diff changeset
256 --build="${CROSS_HOST}" --host="${CROSS_TARGET}" --cache-file=config.cache \
106f3875f606 The bash build continues to be stupid. Force RANLIB.
Rob Landley <rob@landley.net>
parents: 131
diff changeset
257 --without-bash-malloc --disable-readline &&
183
d2a27709d3b6 Fixup the -j stuff to actually work. (typo in gcc, and uClibc can't use it.)
Rob Landley <rob@landley.net>
parents: 182
diff changeset
258 # note: doesn't work with -j
d2a27709d3b6 Fixup the -j stuff to actually work. (typo in gcc, and uClibc can't use it.)
Rob Landley <rob@landley.net>
parents: 182
diff changeset
259 make &&
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
260 make install &&
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
261 # Make bash the default shell.
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
262 ln -s bash "${TOOLS}/bin/sh" &&
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
263 cd ..
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
264
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
265 cleanup bash
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
266
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
267 setupfor distcc
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
268 ./configure --host="${ARCH}" --prefix="${TOOLS}" --with-included-popt &&
293
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
269 make -j $CPUS &&
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
270 make -j $CPUS install &&
484
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
271 mkdir -p "${TOOLS}/distcc" || dienow
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
272
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
273 for i in gcc cc g++ c++
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
274 do
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
275 ln -s ../bin/distcc "${TOOLS}/distcc/$i" || dienow
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
276 done
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
277 cd ..
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
278
301
309b574a5059 Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents: 295
diff changeset
279 cleanup distcc
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
280
83
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
281 # Put statically and dynamically linked hello world programs on there for
315
7fe514d773b9 Install setup script even for BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
282 # test purposes.
83
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
283
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
284 "${ARCH}-gcc" "${SOURCES}/toys/hello.c" -Os -s -o "${TOOLS}/bin/hello-dynamic" &&
315
7fe514d773b9 Install setup script even for BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
285 "${ARCH}-gcc" "${SOURCES}/toys/hello.c" -Os -s -static -o "${TOOLS}/bin/hello-static"
83
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
286
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
287 [ $? -ne 0 ] && dienow
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
288
516
f846099333ac I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents: 510
diff changeset
289 # Delete some unneeded files
f846099333ac I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents: 510
diff changeset
290
f846099333ac I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents: 510
diff changeset
291 rm -rf "${TOOLS}"/{info,libexec/gcc/*/*/install-tools}
f846099333ac I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents: 510
diff changeset
292
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
293 # End of NATIVE_TOOLCHAIN
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
294
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
295 fi
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
296
75
38e7e0cc3b9f Build mksquashfs in the non-short cross-compiler, and use it at the end of
Rob Landley <rob@landley.net>
parents: 68
diff changeset
297 # Clean up and package the result
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
298
53
3fd961e31444 Build a gcc wrapper for _target_, and add a "strip" command to halve the
Rob Landley <rob@landley.net>
parents: 52
diff changeset
299 "${ARCH}-strip" "${TOOLS}"/{bin/*,sbin/*,libexec/gcc/*/*/*}
3fd961e31444 Build a gcc wrapper for _target_, and add a "strip" command to halve the
Rob Landley <rob@landley.net>
parents: 52
diff changeset
300
75
38e7e0cc3b9f Build mksquashfs in the non-short cross-compiler, and use it at the end of
Rob Landley <rob@landley.net>
parents: 68
diff changeset
301 echo -n creating mini-native-"${ARCH}".tar.bz2 &&
482
3e9d715e4a11 Rename CROSS_BUILD_STATIC, NATIVE_NOTOOLSDIR, NATIVE_NOTOOLCHAIN and make them work properly.
Rob Landley <rob@landley.net>
parents: 479
diff changeset
302 cd "${BUILD}" &&
75
38e7e0cc3b9f Build mksquashfs in the non-short cross-compiler, and use it at the end of
Rob Landley <rob@landley.net>
parents: 68
diff changeset
303 { tar cjvf "mini-native-${ARCH}.tar.bz2" "mini-native-${ARCH}" || dienow
38e7e0cc3b9f Build mksquashfs in the non-short cross-compiler, and use it at the end of
Rob Landley <rob@landley.net>
parents: 68
diff changeset
304 } | dotprogress
38e7e0cc3b9f Build mksquashfs in the non-short cross-compiler, and use it at the end of
Rob Landley <rob@landley.net>
parents: 68
diff changeset
305
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
306 # Color back to normal
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
307 echo -e "\e[0mBuild complete"