annotate mini-native.sh @ 331:d2820523ee06

When doing BUILD_SHORT (without development tools), use / instead of /tools.
author Rob Landley <rob@landley.net>
date Wed, 21 May 2008 17:52:45 -0500
parents 391ea980fffd
children 7f529baf0b57
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
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
5 source 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
137ba51ee993 Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents: 85
diff changeset
7 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
8
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
9 if [ -z "${BUILD_SHORT}" ]
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
10 then
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
11 TOOLS="${NATIVE}/tools"
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
12
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
13 # 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
14 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
15 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
16 else
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
17 TOOLS="${NATIVE}"
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
18 fi
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
19 mkdir -p "${TOOLS}/bin" || dienow
63
89cf9497824e Teach the native build about ld-uClibc.so.0 can living in /tools.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
20
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
21 # Purple. And why not?
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
22 echo -e "\e[35m"
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
23
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
24 # 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
25
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
26 setupfor linux
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
27 # 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
28 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
29 # build bootable kernel for target
85
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents: 83
diff changeset
30 make ARCH="${KARCH}" allnoconfig KCONFIG_ALLCONFIG="${WORK}/miniconfig-linux" &&
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 177
diff changeset
31 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
32 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
33 cd ..
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
34
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
35 cleanup linux
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
36
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
37 # 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
38 # 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
39
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
40 setupfor uClibc
131
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 129
diff changeset
41 make allnoconfig KCONFIG_ALLCONFIG="${WORK}/miniconfig-uClibc" &&
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
42 # Can't use -j here, build is unstable.
68
fd2cf40fcd02 Install the uClibc utils install into /tools/bin. (Including readelf.)
Rob Landley <rob@landley.net>
parents: 66
diff changeset
43 make CROSS="${ARCH}-" KERNEL_HEADERS="${TOOLS}/include" PREFIX="${TOOLS}/" \
122
2b748009f1a6 Fix x86_64 dynamic linker.
Rob Landley <rob@landley.net>
parents: 96
diff changeset
44 RUNTIME_PREFIX=/ DEVEL_PREFIX=/ UCLIBC_LDSO_NAME=ld-uClibc \
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
45 all install_runtime install_dev utils &&
68
fd2cf40fcd02 Install the uClibc utils install into /tools/bin. (Including readelf.)
Rob Landley <rob@landley.net>
parents: 66
diff changeset
46 # utils_install wants to put stuff in usr/bin instead of bin.
fd2cf40fcd02 Install the uClibc utils install into /tools/bin. (Including readelf.)
Rob Landley <rob@landley.net>
parents: 66
diff changeset
47 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
48 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
49
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
50 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
51
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
52 # 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
53
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
54 setupfor toybox
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
55
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
56 make defconfig &&
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
57 make install_flat PREFIX="${TOOLS}"/bin CROSS="${ARCH}-" &&
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
58 rm "${TOOLS}"/bin/sh && # Bash won't install if this exists.
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
59 cd ..
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
60
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
61 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
62
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
63 # Build and install busybox
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
64
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
65 setupfor busybox
310
3a1ae92d6f6a Teach BUILD_SHORT to remove include files (saving ~5 megs), and move the
Rob Landley <rob@landley.net>
parents: 306
diff changeset
66 cp "${SOURCES}/config-busybox" .config &&
3a1ae92d6f6a Teach BUILD_SHORT to remove include files (saving ~5 megs), and move the
Rob Landley <rob@landley.net>
parents: 306
diff changeset
67 yes "" | make oldconfig &&
3a1ae92d6f6a Teach BUILD_SHORT to remove include files (saving ~5 megs), and move the
Rob Landley <rob@landley.net>
parents: 306
diff changeset
68 #make defconfig &&
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 177
diff changeset
69 make -j $CPUS CROSS="${ARCH}-" &&
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
70 cp busybox "${TOOLS}/bin"
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
71 [ $? -ne 0 ] && dienow
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
72 for i in $(sed 's@.*/@@' busybox.links)
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
73 do
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
74 ln -s busybox "${TOOLS}/bin/$i" || dienow
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
75 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
76 cd ..
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
77
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
78 cleanup busybox
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
79
310
3a1ae92d6f6a Teach BUILD_SHORT to remove include files (saving ~5 megs), and move the
Rob Landley <rob@landley.net>
parents: 306
diff changeset
80 if [ ! -z "${BUILD_SHORT}" ]
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
81 then
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
82 # If you want to use tinycc, you need to keep the headers but don't need gcc.
321
1ff989975d2c Add ability to set BUILD_SHORT=headers to include header files without building
Rob Landley <rob@landley.net>
parents: 315
diff changeset
83 [ "$BUILD_SHORT" != "headers" ] && rm -rf "${TOOLS}"/include
310
3a1ae92d6f6a Teach BUILD_SHORT to remove include files (saving ~5 megs), and move the
Rob Landley <rob@landley.net>
parents: 306
diff changeset
84 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
85
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
86 # Build and install native binutils
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
87
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
88 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
89 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
90 --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
91 --disable-nls --disable-shared --disable-multilib --program-prefix= \
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 53
diff changeset
92 $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
93 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
94 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
95 make -j $CPUS install &&
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
96 cd .. &&
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
97 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
98 cp binutils/include/libiberty.h "${TOOLS}/include"
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
99
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
100 cleanup binutils build-binutils
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
101
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
102 # 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
103
223
f6973e090c4f Update mini-native for the new tarball strategy.
Rob Landley <rob@landley.net>
parents: 221
diff changeset
104 setupfor gcc-core build-gcc
f6973e090c4f Update mini-native for the new tarball strategy.
Rob Landley <rob@landley.net>
parents: 221
diff changeset
105 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
106 # 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
107 # 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
108 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
109 # 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
110 # 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
111 # 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
112 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
113 AR="${ARCH}-ar" AR_FOR_TARGET="${ARCH}-ar" AS="${ARCH}-as" LD="${ARCH}-ld" \
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
114 NM="${ARCH}-nm" NM_FOR_TARGET="${ARCH}-nm" \
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
115 "${CURSRC}/configure" --prefix="${TOOLS}" --disable-multilib \
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
116 --build="${CROSS_HOST}" --host="${CROSS_TARGET}" --target="${CROSS_TARGET}" \
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
117 --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
118 --enable-__cxa_atexit --disable-nls --enable-languages=c,c++ \
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
119 --disable-libstdcxx-pch --program-prefix="" $GCC_FLAGS &&
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
120 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
121 make -j $CPUS all-gcc &&
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
122 make -j $CPUS install-gcc &&
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
123 ln -s gcc "${TOOLS}/bin/cc" &&
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
124 cd ..
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
125
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
126 cleanup gcc-core build-gcc
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
127
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
128 # 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
129 # build and install gcc wrapper script.
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
130
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
131 mkdir -p "${TOOLS}"/gcc &&
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
132 mv "${TOOLS}"/lib/gcc/*/*/include "${TOOLS}"/gcc/include &&
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
133 mv "${TOOLS}"/lib/gcc/*/* "${TOOLS}"/gcc/lib &&
51
f96f7a24642a A native compiler doesn't have a cross-prefix.
Rob Landley <rob@landley.net>
parents: 50
diff changeset
134 mv "${TOOLS}/bin/gcc" "${TOOLS}/bin/gcc-unwrapped" &&
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
135 "${ARCH}-gcc" "${TOP}"/sources/toys/gcc-uClibc.c -Os -s -o "${TOOLS}/bin/gcc"
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
136
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
137 cleanup "${TOOLS}"/{lib/gcc,gcc/lib/install-tools}
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
138
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
139 # 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
140
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
141 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
142 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
143 --host="${CROSS_TARGET}" &&
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 177
diff changeset
144 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
145 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
146 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
147
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
148 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
149
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
150 # 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
151 # 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
152
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
153 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
154 # 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
155 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
156 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
157 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
158 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
159 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
160 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
161 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
162 --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
163 --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
164 # 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
165 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
166 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
167 # 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
168 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
169 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
170
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
171 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
172
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
173 setupfor distcc
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
174 ./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
175 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
176 make -j $CPUS install &&
284
353d72c420cc Native-side symlinks for distcc to use.
Rob Landley <rob@landley.net>
parents: 280
diff changeset
177 mkdir -p "${TOOLS}/distcc" &&
353d72c420cc Native-side symlinks for distcc to use.
Rob Landley <rob@landley.net>
parents: 280
diff changeset
178 ln -s ../bin/distcc "${TOOLS}/distcc/gcc" &&
353d72c420cc Native-side symlinks for distcc to use.
Rob Landley <rob@landley.net>
parents: 280
diff changeset
179 ln -s ../bin/distcc "${TOOLS}/distcc/cc"
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
180 cd ..
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
181
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
182 cleanup distcc
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
183
83
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
184 # 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
185 # 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
186
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
187 "${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
188 "${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
189
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
190 [ $? -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
191
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
192 fi
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
193
326
391ea980fffd Redo sources/native to be "cp -ar"'d into mini-native-$ARCH/tools verbatim.
Rob Landley <rob@landley.net>
parents: 321
diff changeset
194 # Copy qemu setup script and so on.
315
7fe514d773b9 Install setup script even for BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
195
326
391ea980fffd Redo sources/native to be "cp -ar"'d into mini-native-$ARCH/tools verbatim.
Rob Landley <rob@landley.net>
parents: 321
diff changeset
196 cp -r "${SOURCES}/native/." "${TOOLS}/" || dienow
315
7fe514d773b9 Install setup script even for BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
197
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
198 # Clean up and package the result
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
199
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
200 "${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
201
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
202 cd "${BUILD}"
81
6dd38c925bc4 Upgrade some packages, and other cleanups.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
203 #echo -n "Creating tools.sqf"
6dd38c925bc4 Upgrade some packages, and other cleanups.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
204 #("${WORK}/mksquashfs" "${NATIVE}/tools" "tools-${ARCH}.sqf" \
6dd38c925bc4 Upgrade some packages, and other cleanups.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
205 # -noappend -all-root -info || dienow) | dotprogress
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
206
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
207 echo -n creating mini-native-"${ARCH}".tar.bz2 &&
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
208 { 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
209 } | 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
210
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
211 # 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
212 echo -e "\e[0mBuild complete"