Mercurial > hg > aboriginal
annotate build.sh @ 9:6cd344d090de
Switch in make headers_install, fix the uclibc cleanup stage to actually work,
and remove the changes to the gcc source (getting gcc to try sane paths is
a lost cause, I'm going to try the wrapper script instead).
author | Rob Landley <rob@landley.net> |
---|---|
date | Tue, 28 Nov 2006 17:29:44 -0500 |
parents | 0068264ad65a |
children | 11b76d1cc1cd |
rev | line source |
---|---|
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
1 #!/bin/sh |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
2 |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
3 # Memo: How should I pass this in? |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
4 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
5 ARCH=x86_64 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
6 |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
7 function dienow() |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
8 { |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
9 echo "Exiting due to errors" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
10 exit 1 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
11 } |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
12 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
13 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
14 function dotprogress() |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
15 { |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
16 x=0 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
17 while read i |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
18 do |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
19 x=$[$x + 1] |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
20 if [[ "$x" -eq 25 ]] |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
21 then |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
22 x=0 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
23 echo -n . |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
24 fi |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
25 done |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
26 echo |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
27 } |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
28 |
8
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
29 # Extract package $1, use work directory $2 (or $1 if no $2), use source |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
30 # directory $3 (or $1 if no $3) |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
31 |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
32 function setupfor() |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
33 { |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
34 echo "=== Building $1" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
35 echo -n "Extracting" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
36 cd "${WORK}" && |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
37 { tar xvjf "${SOURCES}/${STAGE}/$1".tar.bz2 || dienow |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
38 } | dotprogress |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
39 if [ -z "$2" ] |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
40 then |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
41 cd "$1"* || dienow |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
42 else |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
43 mkdir "$2" |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
44 cd "$2" || dienow |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
45 fi |
8
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
46 export CURSRC="$1" |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
47 [ ! -z "$3" ] && CURSRC="$3" |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
48 export CURSRC=`echo "${WORK}/${CURSRC}"*` |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
49 [ ! -d "${CURSRC}" ] && dienow |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
50 } |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
51 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
52 # Setup |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
53 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
54 umask 022 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
55 unset CFLAGS CXXFLAGS |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
56 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
57 # Find/create directories |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
58 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
59 TOP=`pwd` |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
60 export SOURCES="${TOP}/sources" |
8
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
61 export CROSS="${TOP}/build/cross-compiler/" |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
62 export WORK="${TOP}/build/temp" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
63 mkdir -p "${CROSS}" "${WORK}" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
64 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
65 [ $? -ne 0 ] && dienow |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
66 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
67 # For bash: check the $PATH for new executables added after startup. |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
68 set +h |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
69 # Put the cross compiler in the path |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
70 export PATH=${CROSS}/bin:/bin:/usr/bin |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
71 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
72 # Which platform are we building for? |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
73 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
74 [ "$ARCH" == x86_64 ] && export BUILD64="-m64" |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
75 export CROSS_HOST=i686-pc-linux-gnu |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
76 export CROSS_TARGET=${ARCH}-unknown-linux-gnu |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
77 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
78 export STAGE=build-cross |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
79 |
9
6cd344d090de
Switch in make headers_install, fix the uclibc cleanup stage to actually work,
Rob Landley <rob@landley.net>
parents:
8
diff
changeset
|
80 setupfor linux |
6cd344d090de
Switch in make headers_install, fix the uclibc cleanup stage to actually work,
Rob Landley <rob@landley.net>
parents:
8
diff
changeset
|
81 make headers_install ARCH="${ARCH}" INSTALL_HDR_PATH="${CROSS}" |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
82 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
83 [ $? -ne 0 ] && dienow |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
84 |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
85 setupfor binutils build-binutils |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
86 "${CURSRC}/configure" --prefix="${CROSS}" --host=${CROSS_HOST} \ |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
87 --target=${CROSS_TARGET} --with-lib-path=lib --disable-nls \ |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
88 --disable-shared --enable-64-bit-bfd --disable-multilib && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
89 make configure-host && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
90 make && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
91 make install && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
92 cd .. && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
93 cp binutils-*/include/libiberty.h "${CROSS}/include" && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
94 rm -rf binutils-* build-binutils |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
95 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
96 [ $? -ne 0 ] && dienow |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
97 |
8
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
98 setupfor gcc-core build-gcc gcc- |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
99 "${CURSRC}/configure" --prefix="${CROSS}" --host=${CROSS_HOST} \ |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
100 --target=${CROSS_TARGET} --with-local-prefix="${CROSS}" \ |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
101 --disable-multilib --disable-nls --disable-shared --disable-threads \ |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
102 --enable-languages=c && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
103 make all-gcc && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
104 make install-gcc && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
105 cd .. && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
106 rm -rf "${CURSRC}" build-gcc |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
107 |
8
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
108 [ $? -ne 0 ] && dienow |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
109 |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
110 setupfor uClibc |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
111 make TARGET_ARCH=${ARCH} CROSS=${CROSS_TARGET}- defconfig && |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
112 make TARGET_ARCH=${ARCH} CROSS=${CROSS_TARGET}- KERNEL_SOURCE="${CROSS}" && |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
113 make TARGET_ARCH=${ARCH} CROSS=${CROSS_TARGET}- utils && |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
114 # The kernel headers are already installed, but uClibc's install will try to |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
115 # be "helpful" and copy them over themselves, at which point hilarity ensues. |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
116 # Make it not do that. |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
117 rm include/{asm,asm-generic,linux} && |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
118 make RUNTIME_PREFIX="${CROSS}" DEVEL_PREFIX="${CROSS}" \ |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
119 install_runtime install_dev && |
0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
Rob Landley <rob@landley.net>
parents:
3
diff
changeset
|
120 cd .. && |
9
6cd344d090de
Switch in make headers_install, fix the uclibc cleanup stage to actually work,
Rob Landley <rob@landley.net>
parents:
8
diff
changeset
|
121 rm -rf uClibc-* |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
122 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
123 [ $? -ne 0 ] && dienow |