Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(785)

Side by Side Diff: src/scripts/build_chrome.sh

Issue 425012: Turn NUM_JOBS into an overridable flag for distcc builds. (Closed)
Patch Set: Whoops! Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # Script for building our own custom Chrome 7 # Script for building our own custom Chrome
8 8
9 # Load common constants. This should be the first executable line. 9 # Load common constants. This should be the first executable line.
10 # The path to common.sh should be relative to your script's location. 10 # The path to common.sh should be relative to your script's location.
11 . "$(dirname "$0")/common.sh" 11 . "$(dirname "$0")/common.sh"
12 12
13 # Script must be run outside the chroot 13 # Script must be run outside the chroot
14 assert_outside_chroot 14 assert_outside_chroot
15 15
16 # This script defaults Chrome source is in ~/chrome 16 # This script defaults Chrome source is in ~/chrome
17 # You may override the Chrome source dir via the --chrome_dir option or by 17 # You may override the Chrome source dir via the --chrome_dir option or by
18 # setting CHROMEOS_CHROME_DIR (for example, in ./.chromeos_dev) 18 # setting CHROMEOS_CHROME_DIR (for example, in ./.chromeos_dev)
19 DEFAULT_CHROME_DIR="${CHROMEOS_CHROME_DIR:-/home/$USER/chrome}" 19 DEFAULT_CHROME_DIR="${CHROMEOS_CHROME_DIR:-/home/$USER/chrome}"
20 20
21 # The number of jobs to pass to tools that can run in parallel (such as make
22 # and dpkg-buildpackage
23 NUM_JOBS=`cat /proc/cpuinfo | grep processor | awk '{a++} END {print a}'`
24
21 # Flags 25 # Flags
22 DEFINE_string chrome_dir "$DEFAULT_CHROME_DIR" \ 26 DEFINE_string chrome_dir "$DEFAULT_CHROME_DIR" \
23 "Directory to Chrome source" 27 "Directory to Chrome source"
24 DEFINE_string mode "Release" \ 28 DEFINE_string mode "Release" \
25 "The mode to build Chrome in (Debug or Release)" 29 "The mode to build Chrome in (Debug or Release)"
30 DEFINE_string num_jobs "$NUM_JOBS" \
31 "The number of jobs to run in parallel"
26 32
27 # Parse command line 33 # Parse command line
28 FLAGS "$@" || exit 1 34 FLAGS "$@" || exit 1
29 eval set -- "${FLAGS_ARGV}" 35 eval set -- "${FLAGS_ARGV}"
30 36
31 # Die on error; print commands 37 # Die on error; print commands
32 set -e 38 set -e
33 39
34 # Convert args to paths. Need eval to un-quote the string so that shell 40 # Convert args to paths. Need eval to un-quote the string so that shell
35 # chars like ~ are processed; just doing FOO=`readlink -f $FOO` won't work. 41 # chars like ~ are processed; just doing FOO=`readlink -f $FOO` won't work.
36 FLAGS_chrome_dir=`eval readlink -f $FLAGS_chrome_dir` 42 FLAGS_chrome_dir=`eval readlink -f $FLAGS_chrome_dir`
37 43
38 # Build Chrome 44 # Build Chrome
39 echo Building Chrome in mode $FLAGS_mode 45 echo Building Chrome in mode $FLAGS_mode
40 # The number of jobs to pass to tools that can run in parallel (such as make
41 # and dpkg-buildpackage
42 NUM_JOBS=`cat /proc/cpuinfo | grep processor | awk '{a++} END {print a}'`
43 export GYP_GENERATORS="make" 46 export GYP_GENERATORS="make"
44 export GYP_DEFINES="chromeos=1 target_arch=ia32" 47 export GYP_DEFINES="chromeos=1 target_arch=ia32"
45 CHROME_DIR=$FLAGS_chrome_dir 48 CHROME_DIR=$FLAGS_chrome_dir
46 cd "$CHROME_DIR/src" 49 cd "$CHROME_DIR/src"
47 gclient runhooks --force 50 gclient runhooks --force
48 make BUILDTYPE=$FLAGS_mode -j$NUM_JOBS -r chrome 51 make BUILDTYPE=$FLAGS_mode -j$FLAGS_num_jobs -r chrome
49 52
50 # Zip into chrome-chromeos.zip and put in local_assets 53 # Zip into chrome-chromeos.zip and put in local_assets
51 BUILD_DIR="$CHROME_DIR/src/out" 54 BUILD_DIR="$CHROME_DIR/src/out"
52 CHROME_LINUX_DIR="$BUILD_DIR/chrome-chromeos" 55 CHROME_LINUX_DIR="$BUILD_DIR/chrome-chromeos"
53 OUTPUT_DIR="${SRC_ROOT}/build/x86/local_assets" 56 OUTPUT_DIR="${SRC_ROOT}/build/x86/local_assets"
54 OUTPUT_ZIP="$BUILD_DIR/chrome-chromeos.zip" 57 OUTPUT_ZIP="$BUILD_DIR/chrome-chromeos.zip"
55 if [ -n "$OUTPUT_DIR" ] 58 if [ -n "$OUTPUT_DIR" ]
56 then 59 then
57 mkdir -p $OUTPUT_DIR 60 mkdir -p $OUTPUT_DIR
58 fi 61 fi
59 # create symlink so that we can create the zip file with prefix chrome-chromeos 62 # create symlink so that we can create the zip file with prefix chrome-chromeos
60 rm -f $CHROME_LINUX_DIR 63 rm -f $CHROME_LINUX_DIR
61 ln -s $BUILD_DIR/$FLAGS_mode $CHROME_LINUX_DIR 64 ln -s $BUILD_DIR/$FLAGS_mode $CHROME_LINUX_DIR
62 65
63 echo Zipping $CHROME_LINUX_DIR to $OUTPUT_ZIP 66 echo Zipping $CHROME_LINUX_DIR to $OUTPUT_ZIP
64 cd $BUILD_DIR 67 cd $BUILD_DIR
65 rm -f $OUTPUT_ZIP 68 rm -f $OUTPUT_ZIP
66 zip -r9 $OUTPUT_ZIP chrome-chromeos -i "chrome-chromeos/chrome*" \ 69 zip -r9 $OUTPUT_ZIP chrome-chromeos -i "chrome-chromeos/chrome*" \
67 "chrome-chromeos/libffmpegsumo.so" "chrome-chromeos/xdg-settings" \ 70 "chrome-chromeos/libffmpegsumo.so" "chrome-chromeos/xdg-settings" \
68 "chrome-chromeos/locales/*" "chrome-chromeos/resources/*" \ 71 "chrome-chromeos/locales/*" "chrome-chromeos/resources/*" \
69 "chrome-chromeos/*.png" -x "*.d" 72 "chrome-chromeos/*.png" -x "*.d"
70 cp -f $OUTPUT_ZIP $OUTPUT_DIR 73 cp -f $OUTPUT_ZIP $OUTPUT_DIR
71 echo Done. 74 echo Done.
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698