OLD | NEW |
1 #!/bin/bash -e | 1 #!/bin/bash -e |
2 | 2 |
3 # Script to install everything needed to build chromium (well, ideally, anyway) | 3 # Script to install everything needed to build chromium (well, ideally, anyway) |
4 # See http://code.google.com/p/chromium/wiki/LinuxBuildInstructions | 4 # See http://code.google.com/p/chromium/wiki/LinuxBuildInstructions |
5 # and http://code.google.com/p/chromium/wiki/LinuxBuild64Bit | 5 # and http://code.google.com/p/chromium/wiki/LinuxBuild64Bit |
6 | 6 |
7 install_gold() { | 7 install_gold() { |
8 # Gold is optional; it's a faster replacement for ld, | 8 # Gold is optional; it's a faster replacement for ld, |
9 # and makes life on 2GB machines much more pleasant. | 9 # and makes life on 2GB machines much more pleasant. |
10 | 10 |
| 11 # First make sure root can access this directory, as that's tripped up some fo
lks. |
| 12 if sudo touch xyz.$$ |
| 13 then |
| 14 sudo rm xyz.$$ |
| 15 else |
| 16 echo root cannot write to the current directory, not installing gold |
| 17 return |
| 18 fi |
| 19 |
11 BINUTILS=binutils-2.19.1 | 20 BINUTILS=binutils-2.19.1 |
12 BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 | 21 BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 |
13 BINUTILS_SHA1=88c91e36cde93433e4c4c2b2e3417777aad84526 | 22 BINUTILS_SHA1=88c91e36cde93433e4c4c2b2e3417777aad84526 |
14 | 23 |
15 test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL | 24 test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL |
16 if `sha1sum $BINUTILS.tar.bz2` != $BINUTILS_SHA1 | 25 if `sha1sum $BINUTILS.tar.bz2` != $BINUTILS_SHA1 |
17 then | 26 then |
18 echo Bad sha1sum for $BINUTILS.tar.bz2 | 27 echo Bad sha1sum for $BINUTILS.tar.bz2 |
19 exit 1 | 28 exit 1 |
20 fi | 29 fi |
(...skipping 18 matching lines...) Expand all Loading... |
39 this->failed_ = true; | 48 this->failed_ = true; |
40 } | 49 } |
41 | 50 |
42 __EOF__ | 51 __EOF__ |
43 | 52 |
44 tar -xjvf $BINUTILS.tar.bz2 | 53 tar -xjvf $BINUTILS.tar.bz2 |
45 cd $BINUTILS | 54 cd $BINUTILS |
46 patch -p1 < ../binutils-fix.patch | 55 patch -p1 < ../binutils-fix.patch |
47 ./configure --prefix=/usr/local/gold --enable-gold | 56 ./configure --prefix=/usr/local/gold --enable-gold |
48 make -j3 | 57 make -j3 |
49 sudo make install | 58 if sudo make install |
50 | 59 then |
51 # Still need to figure out graceful way of pointing gyp to use | 60 # Still need to figure out graceful way of pointing gyp to use |
52 # /usr/local/gold/bin/ld without requiring him to set environment | 61 # /usr/local/gold/bin/ld without requiring him to set environment |
53 # variables. That will go into bootstrap-linux.sh when it's ready. | 62 # variables. That will go into bootstrap-linux.sh when it's ready. |
54 echo "Installing gold as /usr/bin/ld." | 63 echo "Installing gold as /usr/bin/ld." |
55 echo "To uninstall, do 'cd /usr/bin; sudo rm ld; sudo mv ld.orig ld'" | 64 echo "To uninstall, do 'cd /usr/bin; sudo rm ld; sudo mv ld.orig ld'" |
56 test -f /usr/bin/ld && sudo mv /usr/bin/ld /usr/bin/ld.orig | 65 test -f /usr/bin/ld && sudo mv /usr/bin/ld /usr/bin/ld.orig |
57 sudo ln -fs /usr/local/gold/bin/ld /usr/bin/ld.gold | 66 sudo ln -fs /usr/local/gold/bin/ld /usr/bin/ld.gold |
58 sudo ln -fs /usr/bin/ld.gold /usr/bin/ld | 67 sudo ln -fs /usr/bin/ld.gold /usr/bin/ld |
| 68 else |
| 69 make install failed, not installing gold |
| 70 fi |
59 } | 71 } |
60 | 72 |
61 if ! egrep -q "Ubuntu 8.04|Ubuntu 8.10|Ubuntu 9.04" /etc/issue; then | 73 if ! egrep -q "Ubuntu 8.04|Ubuntu 8.10|Ubuntu 9.04" /etc/issue; then |
62 echo "Only Ubuntu 8.04, 8.10, and 9.04 are currently supported" >&2 | 74 echo "Only Ubuntu 8.04, 8.10, and 9.04 are currently supported" >&2 |
63 exit 1 | 75 exit 1 |
64 fi | 76 fi |
65 | 77 |
66 if ! uname -m | egrep -q "i686|x86_64"; then | 78 if ! uname -m | egrep -q "i686|x86_64"; then |
67 echo "Only x86 architectures are currently supported" >&2 | 79 echo "Only x86 architectures are currently supported" >&2 |
68 exit | 80 exit |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 touch "${tmp}/status" | 221 touch "${tmp}/status" |
210 | 222 |
211 [ -r /etc/apt/apt.conf ] && cp /etc/apt/apt.conf "${tmp}/apt/" | 223 [ -r /etc/apt/apt.conf ] && cp /etc/apt/apt.conf "${tmp}/apt/" |
212 cat >>"${tmp}/apt/apt.conf" <<-EOF | 224 cat >>"${tmp}/apt/apt.conf" <<-EOF |
213 Apt::Architecture "i386"; | 225 Apt::Architecture "i386"; |
214 Dir::Cache "${tmp}/cache"; | 226 Dir::Cache "${tmp}/cache"; |
215 Dir::Cache::Archives "${tmp}/"; | 227 Dir::Cache::Archives "${tmp}/"; |
216 Dir::State::Lists "${tmp}/apt/lists/"; | 228 Dir::State::Lists "${tmp}/apt/lists/"; |
217 Dir::State::status "${tmp}/status"; | 229 Dir::State::status "${tmp}/status"; |
218 EOF | 230 EOF |
219 | 231 |
220 # Download 32bit packages | 232 # Download 32bit packages |
221 echo "Computing list of available 32bit packages..." | 233 echo "Computing list of available 32bit packages..." |
222 apt-get -c="${tmp}/apt/apt.conf" update | 234 apt-get -c="${tmp}/apt/apt.conf" update |
223 | 235 |
224 echo "Downloading available 32bit packages..." | 236 echo "Downloading available 32bit packages..." |
225 apt-get -c="${tmp}/apt/apt.conf" \ | 237 apt-get -c="${tmp}/apt/apt.conf" \ |
226 --yes --download-only --force-yes --reinstall install \ | 238 --yes --download-only --force-yes --reinstall install \ |
227 ${lib_list} ${dbg_list} | 239 ${lib_list} ${dbg_list} |
228 | 240 |
229 # Open packages, remove everything that is not a library, move the | 241 # Open packages, remove everything that is not a library, move the |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 sed -e 's/[.]so[.][0-9].*/.so/' | | 326 sed -e 's/[.]so[.][0-9].*/.so/' | |
315 sort -u); do | 327 sort -u); do |
316 [ "x${i##*/}" = "xld-linux.so" ] && continue | 328 [ "x${i##*/}" = "xld-linux.so" ] && continue |
317 [ -r "$i" ] && continue | 329 [ -r "$i" ] && continue |
318 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | | 330 j="$(ls "$i."* | sed -e 's/.*[.]so[.]\([^.]*\)$/\1/;t;d' | |
319 sort -n | tail -n 1)" | 331 sort -n | tail -n 1)" |
320 [ -r "$i.$j" ] || continue | 332 [ -r "$i.$j" ] || continue |
321 sudo ln -s "${i##*/}.$j" "$i" | 333 sudo ln -s "${i##*/}.$j" "$i" |
322 done | 334 done |
323 fi | 335 fi |
OLD | NEW |