Mercurial > hg > aboriginal
annotate build.sh @ 3:1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
author | landley@driftwood |
---|---|
date | Tue, 15 Aug 2006 23:32:28 -0400 |
parents | 9add2b1ccdfa |
children | 0068264ad65a |
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 |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
29 # Extract package $1, use work directory $2 (or $1 if no $2) |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
30 |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
31 function setupfor() |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
32 { |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
33 echo "=== Building $1" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
34 echo -n "Extracting" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
35 cd "${WORK}" && |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
36 { 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
|
37 } | dotprogress |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
38 if [ -z "$2" ] |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
39 then |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
40 cd "$1"* || dienow |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
41 else |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
42 mkdir "$2" |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
43 cd "$2" || dienow |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
44 fi |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
45 export CURSRC="${WORK}/$1"* |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
46 [ ! -d "${CURSRC}" ] && dienow |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
47 } |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
48 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
49 # Setup |
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 umask 022 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
52 unset CFLAGS CXXFLAGS |
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 # Find/create directories |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
55 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
56 TOP=`pwd` |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
57 export SOURCES="${TOP}/sources" |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
58 export CROSS="${TOP}/build/cross-compiler" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
59 export WORK="${TOP}/build/temp" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
60 mkdir -p "${CROSS}" "${WORK}" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
61 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
62 [ $? -ne 0 ] && dienow |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
63 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
64 # 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
|
65 set +h |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
66 # 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
|
67 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
|
68 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
69 # Which platform are we building for? |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
70 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
71 [ "$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
|
72 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
|
73 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
|
74 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
75 export STAGE=build-cross |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
76 |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
77 if false |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
78 then |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
79 |
1
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
80 echo === Install linux-headers. |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
81 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
82 setupfor linux-headers |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
83 #cd "${WORK}" |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
84 #tar xvjf "${SOURCES}"/build-cross/linux-headers.tar.bz2 && |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
85 #cd linux-headers* && |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
86 mkdir "${CROSS}"/include && |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
87 mv include/asm-${ARCH} "${CROSS}"/include/asm && |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
88 mv include/asm-generic "${CROSS}"/include && |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
89 mv include/linux "${CROSS}"/include && |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
90 cd .. |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
91 rm -rf linux-headers* |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
92 |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
93 [ $? -ne 0 ] && dienow |
9add2b1ccdfa
First version of new build script. Does nothing, but does it correctly.
landley@driftwood
parents:
diff
changeset
|
94 |
3
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
95 setupfor binutils build-binutils |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
96 "${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
|
97 --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
|
98 --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
|
99 make configure-host && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
100 make && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
101 make install && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
102 cd .. && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
103 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
|
104 rm -rf binutils-* build-binutils |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
105 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
106 [ $? -ne 0 ] && dienow |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
107 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
108 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
109 setupfor gcc-core build-gcc |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
110 # Remove /usr/libexec/gcc and /usr/lib/gcc from gcc's search path. (Don't grab |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
111 # random host libraries when cross-compiling, it's not polite.) |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
112 sed -ie 's/standard_exec_prefix_//;T;N;d' "${CURSRC}/gcc/gcc.c" && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
113 # Adjust StartFile Spec to point to cross libraries. |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
114 #echo -e "\n#undef STARTFILE_PREFIX_SPEC\n#define STARTFILE_PREFIX_SPEC \"${CROSS}/lib/\"" >> ../gcc-*/gcc/config/linux.h && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
115 # Adjust preprocessor's default search path |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
116 #sed -ire "s@(^CROSS_SYSTEM_HEADER_DIR =).*@\1 ${CROSS}/include@g" ../gcc-*/gcc/Makefile.in && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
117 "${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
|
118 --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
|
119 --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
|
120 --enable-languages=c && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
121 make all-gcc && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
122 make install-gcc && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
123 cd .. && |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
124 rm -rf "${CURSRC}" build-gcc |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
125 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
126 fi |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
127 |
1b721a51e9c6
Extract headers, build cross-binutils, build cross-gcc. Needs a C library.
landley@driftwood
parents:
1
diff
changeset
|
128 [ $? -ne 0 ] && dienow |