Mercurial > hg > aboriginal
comparison build.sh @ 8:0068264ad65a
Some work I did back in october but hadn't checked in yet: let setupfor()
specify source directory to allow gcc to build out of tree. Add basic uClibc
build.
author | Rob Landley <rob@landley.net> |
---|---|
date | Tue, 28 Nov 2006 16:15:07 -0500 |
parents | 1b721a51e9c6 |
children | 6cd344d090de |
comparison
equal
deleted
inserted
replaced
7:f8c588578fa1 | 8:0068264ad65a |
---|---|
24 fi | 24 fi |
25 done | 25 done |
26 echo | 26 echo |
27 } | 27 } |
28 | 28 |
29 # Extract package $1, use work directory $2 (or $1 if no $2) | 29 # Extract package $1, use work directory $2 (or $1 if no $2), use source |
30 # directory $3 (or $1 if no $3) | |
30 | 31 |
31 function setupfor() | 32 function setupfor() |
32 { | 33 { |
33 echo "=== Building $1" | 34 echo "=== Building $1" |
34 echo -n "Extracting" | 35 echo -n "Extracting" |
40 cd "$1"* || dienow | 41 cd "$1"* || dienow |
41 else | 42 else |
42 mkdir "$2" | 43 mkdir "$2" |
43 cd "$2" || dienow | 44 cd "$2" || dienow |
44 fi | 45 fi |
45 export CURSRC="${WORK}/$1"* | 46 export CURSRC="$1" |
47 [ ! -z "$3" ] && CURSRC="$3" | |
48 export CURSRC=`echo "${WORK}/${CURSRC}"*` | |
46 [ ! -d "${CURSRC}" ] && dienow | 49 [ ! -d "${CURSRC}" ] && dienow |
47 } | 50 } |
48 | 51 |
49 # Setup | 52 # Setup |
50 | 53 |
53 | 56 |
54 # Find/create directories | 57 # Find/create directories |
55 | 58 |
56 TOP=`pwd` | 59 TOP=`pwd` |
57 export SOURCES="${TOP}/sources" | 60 export SOURCES="${TOP}/sources" |
58 export CROSS="${TOP}/build/cross-compiler" | 61 export CROSS="${TOP}/build/cross-compiler/" |
59 export WORK="${TOP}/build/temp" | 62 export WORK="${TOP}/build/temp" |
60 mkdir -p "${CROSS}" "${WORK}" | 63 mkdir -p "${CROSS}" "${WORK}" |
61 | 64 |
62 [ $? -ne 0 ] && dienow | 65 [ $? -ne 0 ] && dienow |
63 | 66 |
71 [ "$ARCH" == x86_64 ] && export BUILD64="-m64" | 74 [ "$ARCH" == x86_64 ] && export BUILD64="-m64" |
72 export CROSS_HOST=i686-pc-linux-gnu | 75 export CROSS_HOST=i686-pc-linux-gnu |
73 export CROSS_TARGET=${ARCH}-unknown-linux-gnu | 76 export CROSS_TARGET=${ARCH}-unknown-linux-gnu |
74 | 77 |
75 export STAGE=build-cross | 78 export STAGE=build-cross |
76 | |
77 if false | |
78 then | |
79 | 79 |
80 echo === Install linux-headers. | 80 echo === Install linux-headers. |
81 | 81 |
82 setupfor linux-headers | 82 setupfor linux-headers |
83 #cd "${WORK}" | 83 #cd "${WORK}" |
103 cp binutils-*/include/libiberty.h "${CROSS}/include" && | 103 cp binutils-*/include/libiberty.h "${CROSS}/include" && |
104 rm -rf binutils-* build-binutils | 104 rm -rf binutils-* build-binutils |
105 | 105 |
106 [ $? -ne 0 ] && dienow | 106 [ $? -ne 0 ] && dienow |
107 | 107 |
108 | 108 setupfor gcc-core build-gcc gcc- |
109 setupfor gcc-core build-gcc | |
110 # Remove /usr/libexec/gcc and /usr/lib/gcc from gcc's search path. (Don't grab | 109 # Remove /usr/libexec/gcc and /usr/lib/gcc from gcc's search path. (Don't grab |
111 # random host libraries when cross-compiling, it's not polite.) | 110 # random host libraries when cross-compiling, it's not polite.) |
112 sed -ie 's/standard_exec_prefix_//;T;N;d' "${CURSRC}/gcc/gcc.c" && | 111 sed -ie 's/standard_exec_prefix_//;T;N;d' "${CURSRC}/gcc/gcc.c" && |
113 # Adjust StartFile Spec to point to cross libraries. | 112 # Adjust StartFile Spec to point to cross libraries. |
114 #echo -e "\n#undef STARTFILE_PREFIX_SPEC\n#define STARTFILE_PREFIX_SPEC \"${CROSS}/lib/\"" >> ../gcc-*/gcc/config/linux.h && | 113 echo -e "\n#undef STARTFILE_PREFIX_SPEC\n#define STARTFILE_PREFIX_SPEC \"${CROSS}/lib/\"" >> ../gcc-*/gcc/config/linux.h && |
115 # Adjust preprocessor's default search path | 114 # Adjust preprocessor's default search path |
116 #sed -ire "s@(^CROSS_SYSTEM_HEADER_DIR =).*@\1 ${CROSS}/include@g" ../gcc-*/gcc/Makefile.in && | 115 sed -ire "s@(^CROSS_SYSTEM_HEADER_DIR =).*@\1 ${CROSS}/include@g" ../gcc-*/gcc/Makefile.in && |
117 "${CURSRC}/configure" --prefix="${CROSS}" --host=${CROSS_HOST} \ | 116 "${CURSRC}/configure" --prefix="${CROSS}" --host=${CROSS_HOST} \ |
118 --target=${CROSS_TARGET} --with-local-prefix="${CROSS}" \ | 117 --target=${CROSS_TARGET} --with-local-prefix="${CROSS}" \ |
119 --disable-multilib --disable-nls --disable-shared --disable-threads \ | 118 --disable-multilib --disable-nls --disable-shared --disable-threads \ |
120 --enable-languages=c && | 119 --enable-languages=c && |
121 make all-gcc && | 120 make all-gcc && |
122 make install-gcc && | 121 make install-gcc && |
123 cd .. && | 122 cd .. && |
124 rm -rf "${CURSRC}" build-gcc | 123 rm -rf "${CURSRC}" build-gcc |
125 | 124 |
126 fi | 125 [ $? -ne 0 ] && dienow |
126 | |
127 setupfor uClibc | |
128 make TARGET_ARCH=${ARCH} CROSS=${CROSS_TARGET}- defconfig && | |
129 make TARGET_ARCH=${ARCH} CROSS=${CROSS_TARGET}- KERNEL_SOURCE="${CROSS}" && | |
130 make TARGET_ARCH=${ARCH} CROSS=${CROSS_TARGET}- utils && | |
131 # The kernel headers are already installed, but uClibc's install will try to | |
132 # be "helpful" and copy them over themselves, at which point hilarity ensues. | |
133 # Make it not do that. | |
134 rm include/{asm,asm-generic,linux} && | |
135 make RUNTIME_PREFIX="${CROSS}" DEVEL_PREFIX="${CROSS}" \ | |
136 install_runtime install_dev && | |
137 cd .. && | |
138 rm -rf uClibc | |
127 | 139 |
128 [ $? -ne 0 ] && dienow | 140 [ $? -ne 0 ] && dienow |