From b4352c4fbbda784da673faa9bc75bc1c1b901f52 Mon Sep 17 00:00:00 2001
From: Jeroen Oortwijn <oortwijn@gmail.com>
Date: Mon, 25 Nov 2013 21:07:20 +0100
Subject: [PATCH] Fix for whitespace in paths
---
build/scripts/build_cross_tools_gcc4 | 140 +++++++++++++++++-----------------
1 file changed, 70 insertions(+), 70 deletions(-)
diff --git a/build/scripts/build_cross_tools_gcc4 b/build/scripts/build_cross_tools_gcc4
index c418bb0..ea778e3 100755
a
|
b
|
if [ `uname -s` = 'Haiku' ]; then
|
46 | 46 | buildHostSpec="--build=$buildhostMachine --host=$buildhostMachine" |
47 | 47 | fi |
48 | 48 | |
49 | | if [ ! -d $haikuSourceDir ]; then |
| 49 | if [ ! -d "$haikuSourceDir" ]; then |
50 | 50 | echo "No such directory: \"$haikuSourceDir\"" >&2 |
51 | 51 | exit 1 |
52 | 52 | fi |
53 | 53 | |
54 | | if [ ! -d $buildToolsDir ]; then |
| 54 | if [ ! -d "$buildToolsDir" ]; then |
55 | 55 | echo "No such directory: \"$buildToolsDir\"" >&2 |
56 | 56 | exit 1 |
57 | 57 | fi |
58 | 58 | |
59 | 59 | |
60 | 60 | # create the output dir |
61 | | mkdir -p $installDir || exit 1 |
| 61 | mkdir -p "$installDir" || exit 1 |
62 | 62 | |
63 | 63 | |
64 | 64 | # get absolute paths |
65 | 65 | currentDir=$(pwd) |
66 | 66 | |
67 | | cd $haikuSourceDir |
| 67 | cd "$haikuSourceDir" |
68 | 68 | haikuSourceDir=$(pwd) |
69 | | cd $currentDir |
| 69 | cd "$currentDir" |
70 | 70 | |
71 | | cd $buildToolsDir |
| 71 | cd "$buildToolsDir" |
72 | 72 | buildToolsDir=$(pwd) |
73 | | cd $currentDir |
| 73 | cd "$currentDir" |
74 | 74 | |
75 | | cd $installDir |
| 75 | cd "$installDir" |
76 | 76 | installDir=$(pwd) |
77 | | cd $currentDir |
| 77 | cd "$currentDir" |
78 | 78 | |
79 | | binutilsSourceDir=$buildToolsDir/binutils |
80 | | gccSourceDir=$buildToolsDir/gcc |
| 79 | binutilsSourceDir="$buildToolsDir/binutils" |
| 80 | gccSourceDir="$buildToolsDir/gcc" |
81 | 81 | |
82 | 82 | |
83 | 83 | # get gcc version |
84 | | gccVersion=$(cat $gccSourceDir/gcc/BASE-VER) |
| 84 | gccVersion=$(cat "$gccSourceDir/gcc/BASE-VER") |
85 | 85 | |
86 | 86 | if [ -z "$gccVersion" ]; then |
87 | 87 | echo "Failed to find out gcc version." >&2 |
… |
… |
fi
|
92 | 92 | # (which apparently doesn't work reliably on all the different host |
93 | 93 | # configurations and changes files which in turn appear as local changes |
94 | 94 | # to the VCS). |
95 | | find $binutilsSourceDir $gccSourceDir -name \*.info -print0 | xargs -0 touch |
| 95 | find "$binutilsSourceDir" "$gccSourceDir" -name \*.info -print0 | xargs -0 touch |
96 | 96 | |
97 | 97 | # create the object and installation directories for the cross compilation tools |
98 | | objDir=${installDir}-build |
99 | | binutilsObjDir=$objDir/binutils |
100 | | gccObjDir=$objDir/gcc |
101 | | stdcxxObjDir=$objDir/stdcxx |
102 | | sysrootDir=$installDir/sysroot |
103 | | tmpIncludeDir=$sysrootDir/boot/system/develop/headers |
104 | | tmpLibDir=$sysrootDir/boot/system/develop/lib |
| 98 | objDir="${installDir}-build" |
| 99 | binutilsObjDir="$objDir/binutils" |
| 100 | gccObjDir="$objDir/gcc" |
| 101 | stdcxxObjDir="$objDir/stdcxx" |
| 102 | sysrootDir="$installDir/sysroot" |
| 103 | tmpIncludeDir="$sysrootDir/boot/system/develop/headers" |
| 104 | tmpLibDir="$sysrootDir/boot/system/develop/lib" |
105 | 105 | |
106 | | rm -rf $installDir $objDir |
| 106 | rm -rf "$installDir" "$objDir" |
107 | 107 | |
108 | | mkdir -p $installDir $objDir $binutilsObjDir $gccObjDir $stdcxxObjDir \ |
109 | | $tmpIncludeDir $tmpLibDir || exit 1 |
110 | | mkdir -p $installDir/lib/gcc/$haikuMachine/$gccVersion |
| 108 | mkdir -p "$installDir" "$objDir" "$binutilsObjDir" "$gccObjDir" "$stdcxxObjDir" \ |
| 109 | "$tmpIncludeDir" "$tmpLibDir" || exit 1 |
| 110 | mkdir -p "$installDir/lib/gcc/$haikuMachine/$gccVersion" |
111 | 111 | |
112 | 112 | if [ "$HAIKU_USE_GCC_GRAPHITE" = 1 ]; then |
113 | | cloogSourceDir=$buildToolsDir/cloog |
114 | | gmpSourceDir=$buildToolsDir/gcc/gmp |
115 | | pplSourceDir=$buildToolsDir/ppl |
116 | | |
117 | | pplObjDir=$objDir/ppl |
118 | | gmpObjDir=$objDir/gmp |
119 | | cloogObjDir=$objDir/cloog |
120 | | mkdir -p $pplObjDir $gmpObjDir $cloogObjDir || exit 1 |
121 | | |
122 | | gccConfigureArgs="$gccConfigureArgs --with-cloog=$installDir \ |
123 | | --enable-cloog-backend=isl --with-ppl=$installDir \ |
124 | | --disable-cloog-version-check --with-gmp=$installDir \ |
| 113 | cloogSourceDir="$buildToolsDir/cloog" |
| 114 | gmpSourceDir="$buildToolsDir/gcc/gmp" |
| 115 | pplSourceDir="$buildToolsDir/ppl" |
| 116 | |
| 117 | pplObjDir="$objDir/ppl" |
| 118 | gmpObjDir="$objDir/gmp" |
| 119 | cloogObjDir="$objDir/cloog" |
| 120 | mkdir -p "$pplObjDir" "$gmpObjDir" "$cloogObjDir" || exit 1 |
| 121 | |
| 122 | gccConfigureArgs="$gccConfigureArgs --with-cloog=\"$installDir\" \ |
| 123 | --enable-cloog-backend=isl --with-ppl=\"$installDir\" \ |
| 124 | --disable-cloog-version-check --with-gmp=\"$installDir\" \ |
125 | 125 | --with-host-libstdcxx=\"-lstdc++\"" |
126 | 126 | fi |
127 | 127 | |
… |
… |
fi
|
133 | 133 | export LC_ALL=POSIX |
134 | 134 | |
135 | 135 | # build binutils |
136 | | cd $binutilsObjDir |
137 | | CFLAGS="-O2" CXXFLAGS="-O2" $binutilsSourceDir/configure \ |
138 | | --prefix=$installDir $buildHostSpec --target=$haikuMachine \ |
| 136 | cd "$binutilsObjDir" |
| 137 | CFLAGS="-O2" CXXFLAGS="-O2" "$binutilsSourceDir/configure" \ |
| 138 | --prefix="$installDir" $buildHostSpec --target=$haikuMachine \ |
139 | 139 | --enable-targets=$haikuMachine,i386-efi-pe,x86_64-efi-pe \ |
140 | 140 | --disable-nls --disable-shared --disable-werror \ |
141 | | --with-sysroot=$sysrootDir \ |
| 141 | --with-sysroot="$sysrootDir" \ |
142 | 142 | $binutilsConfigureArgs \ |
143 | 143 | || exit 1 |
144 | 144 | $MAKE $additionalMakeArgs || exit 1 |
145 | 145 | $MAKE $additionalMakeArgs install || exit 1 |
146 | 146 | |
147 | | export PATH=$PATH:$installDir/bin |
| 147 | export PATH=$PATH:"$installDir/bin" |
148 | 148 | |
149 | 149 | if [ "$HAIKU_USE_GCC_GRAPHITE" = 1 ]; then |
150 | 150 | # build gmp |
151 | | cd $gmpObjDir |
152 | | $gmpSourceDir/configure --prefix=$installDir \ |
| 151 | cd "$gmpObjDir" |
| 152 | "$gmpSourceDir/configure" --prefix="$installDir" \ |
153 | 153 | --disable-shared --enable-cxx || exit 1 |
154 | 154 | $MAKE $additionalMakeArgs || exit 1 |
155 | 155 | $MAKE $additionalMakeArgs install || exit 1 |
156 | 156 | |
157 | 157 | # build ppl |
158 | | cd $pplObjDir |
159 | | CFLAGS="-O2" CXXFLAGS="-O2" $pplSourceDir/configure --prefix=$installDir \ |
| 158 | cd "$pplObjDir" |
| 159 | CFLAGS="-O2" CXXFLAGS="-O2" "$pplSourceDir/configure" --prefix="$installDir" \ |
160 | 160 | --disable-nls --disable-shared --disable-watchdog \ |
161 | 161 | --disable-maintainer-mode || exit 1 |
162 | 162 | $MAKE $additionalMakeArgs AUTOCONF:=true AUTOHEADER:=true ACLOCAL:=true \ |
… |
… |
if [ "$HAIKU_USE_GCC_GRAPHITE" = 1 ]; then
|
165 | 165 | ACLOCAL:=true AUTOMAKE:=true || exit 1 |
166 | 166 | |
167 | 167 | # build cloog |
168 | | cd $cloogObjDir |
169 | | CFLAGS="-O2" CXXFLAGS="-O2" $cloogSourceDir/configure \ |
170 | | --prefix=$installDir --disable-nls --disable-shared \ |
171 | | --with-gmp-prefix=$installDir || exit 1 |
| 168 | cd "$cloogObjDir" |
| 169 | CFLAGS="-O2" CXXFLAGS="-O2" "$cloogSourceDir/configure" \ |
| 170 | --prefix="$installDir" --disable-nls --disable-shared \ |
| 171 | --with-gmp-prefix="$installDir" || exit 1 |
172 | 172 | $MAKE $additionalMakeArgs || exit 1 |
173 | 173 | $MAKE $additionalMakeArgs install || exit 1 |
174 | 174 | fi |
… |
… |
copy_headers()
|
184 | 184 | headers="$(find $sourceDir -name \*\.h)" |
185 | 185 | headers="$(echo $headers | sed -e s@$sourceDir/@@g)" |
186 | 186 | for f in $headers; do |
187 | | headerTargetDir=$targetDir/$(dirname $f) |
188 | | mkdir -p $headerTargetDir |
189 | | cp $sourceDir/$f $headerTargetDir |
| 187 | headerTargetDir="$targetDir/$(dirname $f)" |
| 188 | mkdir -p "$headerTargetDir" |
| 189 | cp "$sourceDir/$f" "$headerTargetDir" |
190 | 190 | done |
191 | 191 | } |
192 | 192 | |
193 | | copy_headers $haikuSourceDir/headers/config $tmpIncludeDir/config |
194 | | copy_headers $haikuSourceDir/headers/os $tmpIncludeDir/os |
195 | | copy_headers $haikuSourceDir/headers/posix $tmpIncludeDir/posix |
| 193 | copy_headers "$haikuSourceDir/headers/config" "$tmpIncludeDir/config" |
| 194 | copy_headers "$haikuSourceDir/headers/os" "$tmpIncludeDir/os" |
| 195 | copy_headers "$haikuSourceDir/headers/posix" "$tmpIncludeDir/posix" |
196 | 196 | |
197 | 197 | # configure gcc |
198 | | cd $gccObjDir |
199 | | CFLAGS="-O2" CXXFLAGS="-O2" $gccSourceDir/configure \ |
200 | | --prefix=$installDir $buildHostSpec --target=$haikuMachine \ |
| 198 | cd "$gccObjDir" |
| 199 | CFLAGS="-O2" CXXFLAGS="-O2" "$gccSourceDir/configure" \ |
| 200 | --prefix="$installDir" $buildHostSpec --target=$haikuMachine \ |
201 | 201 | --disable-nls --disable-shared --with-system-zlib \ |
202 | 202 | --enable-languages=c,c++ --enable-lto --enable-frame-pointer \ |
203 | | --with-sysroot=$sysrootDir \ |
| 203 | --with-sysroot="$sysrootDir" \ |
204 | 204 | $gccConfigureArgs \ |
205 | 205 | || exit 1 |
206 | 206 | |
… |
… |
$MAKE $additionalMakeArgs install || {
|
218 | 218 | |
219 | 219 | # build libraries for the kernel if the target arch requires it |
220 | 220 | if [ -n "$kernelCcFlags" ]; then |
221 | | $MAKE -C $haikuMachine/libgcc clean |
222 | | $MAKE -C $haikuMachine/libgcc CFLAGS="-g -O2 $kernelCcFlags" || { |
| 221 | $MAKE -C "$haikuMachine/libgcc" clean |
| 222 | $MAKE -C "$haikuMachine/libgcc" CFLAGS="-g -O2 $kernelCcFlags" || { |
223 | 223 | echo "Error: Building kernel libgcc failed." >&2 |
224 | 224 | exit 1 |
225 | 225 | } |
226 | 226 | |
227 | | cp $haikuMachine/libgcc/libgcc.a \ |
228 | | $installDir/$haikuMachine/lib/libgcc-kernel.a || exit 1 |
| 227 | cp "$haikuMachine/libgcc/libgcc.a" \ |
| 228 | "$installDir/$haikuMachine/lib/libgcc-kernel.a" || exit 1 |
229 | 229 | |
230 | | $MAKE -C $haikuMachine/libstdc++-v3/libsupc++ clean |
231 | | $MAKE -C $haikuMachine/libstdc++-v3/libsupc++ CFLAGS="-g -O2 $kernelCcFlags" \ |
| 230 | $MAKE -C "$haikuMachine/libstdc++-v3/libsupc++" clean |
| 231 | $MAKE -C "$haikuMachine/libstdc++-v3/libsupc++" CFLAGS="-g -O2 $kernelCcFlags" \ |
232 | 232 | CXXFLAGS="-g -O2 $kernelCcFlags" || { |
233 | 233 | echo "Error: Building kernel libsupc++ failed." >&2 |
234 | 234 | exit 1 |
235 | 235 | } |
236 | 236 | |
237 | | cp $haikuMachine/libstdc++-v3/libsupc++/.libs/libsupc++.a \ |
238 | | $installDir/$haikuMachine/lib/libsupc++-kernel.a || exit 1 |
| 237 | cp "$haikuMachine/libstdc++-v3/libsupc++/.libs/libsupc++.a" \ |
| 238 | "$installDir/$haikuMachine/lib/libsupc++-kernel.a" || exit 1 |
239 | 239 | fi |
240 | 240 | |
241 | 241 | # cleanup |
242 | 242 | |
243 | 243 | # remove the system headers from the installation dir |
244 | 244 | # Only the ones from the source tree should be used. |
245 | | rm -rf $installDir/$haikuMachine/sys-include |
| 245 | rm -rf "$installDir/$haikuMachine/sys-include" |
246 | 246 | |
247 | 247 | # remove the sysroot dir |
248 | | rm -rf $sysrootDir |
| 248 | rm -rf "$sysrootDir" |
249 | 249 | |
250 | 250 | # remove the objects dir |
251 | | rm -rf $objDir |
| 251 | rm -rf "$objDir" |
252 | 252 | |
253 | 253 | |
254 | 254 | echo "binutils and gcc for cross compilation have been built successfully!" |