Chromium Code Reviews
|
| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #!/bin/bash | |
|
Alexander Potapenko
2013/10/29 13:36:11
A Bash script still needs the copyright text. For
alextaran1
2013/10/30 11:16:29
Done.
| |
| 2 # | |
| 3 # Downloads, builds (with instrumentation) and installs shared libraries | |
|
Alexander Potapenko
2013/10/29 13:36:11
Period at the end of the comment.
alextaran1
2013/10/30 11:16:29
Done.
| |
| 4 | |
| 5 export CFLAGS="-fsanitize=address -g -fPIC -w" | |
|
Alexander Potapenko
2013/10/29 13:36:11
We must potentially support other -fsanitize= flag
alextaran1
2013/10/30 11:16:29
Added "sanitizer" flag to script
| |
| 6 export CXXFLAGS="-fsanitize=address -g -fPIC -w" | |
| 7 export LDFLAGS="-Wl,-z,origin -Wl,-R,XORIGIN/." | |
| 8 | |
| 9 # Should be without spaces to pass it to dpkg-buildpackage! | |
| 10 MAKEJOBS="-j14" | |
| 11 | |
| 12 # Colored print | |
|
Alexander Potapenko
2013/10/29 13:36:11
Doesn't ninja swallow your colored print?
alextaran1
2013/10/30 11:16:29
It works good :)
| |
| 13 | |
| 14 RED_COLOR='\e[0;31m' | |
| 15 GREEN_COLOR='\e[0;32m' | |
| 16 NO_COLOR='\e[0m' | |
| 17 | |
| 18 function echo_red { | |
| 19 echo -e "${RED_COLOR}$1${NO_COLOR}" | |
| 20 } | |
| 21 | |
| 22 function echo_green { | |
| 23 echo -e "${GREEN_COLOR}$1${NO_COLOR}" | |
| 24 } | |
| 25 | |
| 26 # Default values | |
| 27 | |
| 28 install_dir=$(pwd)/asan | |
|
Alexander Potapenko
2013/10/29 13:36:11
Again, we must support other tools in the future -
alextaran1
2013/10/30 11:16:29
Added a "sanitizer" flag to script
| |
| 29 intermediate_dir=$(pwd) | |
| 30 | |
| 31 # Parsing args | |
| 32 | |
| 33 while getopts ":i:l:m:hp:" opt; do | |
| 34 case $opt in | |
| 35 p) | |
| 36 echo_green "Only installing dependencies (requires root access)" | |
| 37 echo_green "Installing dependencies for: $OPTARG" | |
|
Alexander Potapenko
2013/10/29 13:36:11
Please check with http://google-styleguide.googlec
alextaran1
2013/10/30 11:16:29
Done.
| |
| 38 sudo apt-get -y --no-remove build-dep $OPTARG | |
| 39 exit | |
| 40 ;; | |
| 41 h) | |
| 42 echo "Possible flags: | |
| 43 -p - install dependencies for packages, | |
| 44 -h - this help, | |
| 45 -l - which library to build, | |
| 46 -i - sets relative install_dir." | |
|
Alexander Potapenko
2013/10/29 13:36:11
I suggest to pass only the parameters the script c
alextaran1
2013/10/30 11:16:29
Done.
| |
| 47 echo "Environment variabless, which affect this script: CC and CXX" | |
| 48 exit | |
| 49 ;; | |
| 50 i) | |
| 51 install_dir="$(pwd)/$OPTARG" | |
| 52 ;; | |
| 53 l) | |
| 54 library="$OPTARG" | |
| 55 ;; | |
| 56 m) | |
| 57 intermediate_dir="$OPTARG" | |
| 58 ;; | |
| 59 *) | |
| 60 echo "Invalid option: -$OPTARG" >&2 | |
| 61 exit 1 | |
| 62 ;; | |
| 63 esac | |
| 64 done | |
| 65 | |
| 66 if [[ -z "$library" ]]; then | |
| 67 echo_red "No library specified to build" >&2 | |
| 68 exit 1 | |
| 69 fi | |
| 70 | |
| 71 mkdir -p $install_dir | |
| 72 | |
| 73 needed_dependencies=$(apt-get -s build-dep $library | grep Inst \ | |
| 74 | cut -d " " -f 2) | |
|
Alexander Potapenko
2013/10/29 13:36:11
I think there should be one more space before the
alextaran1
2013/10/30 11:16:29
It has actually 2 spaces according to http://googl
| |
| 75 | |
| 76 if [[ -n "$needed_dependencies" ]]; then | |
| 77 echo_red "Library $library needs dependencies: $needed_dependencies" >&2 | |
| 78 echo_red "Please, install dependencies using: | |
| 79 third_party/instrumented_libraries/download_build_install -p $library" >&2 | |
| 80 exit 1 | |
| 81 fi | |
| 82 | |
| 83 ( | |
| 84 # Downloading $library | |
| 85 mkdir -p $intermediate_dir/$library | |
|
Alexander Potapenko
2013/10/29 13:36:11
Make sure to quote the variable names.
alextaran1
2013/10/30 11:16:29
Done.
| |
| 86 cd $intermediate_dir/$library | |
| 87 apt-get source $library | |
| 88 | |
| 89 cd $(ls -F |grep \/$) | |
|
Alexander Potapenko
2013/10/29 13:36:11
Quite a cryptic line. Pleas add a comment.
alextaran1
2013/10/30 11:16:29
Done.
| |
| 90 | |
| 91 # Build $library | |
| 92 ./configure --prefix=$install_dir | |
| 93 make $MAKEJOBS | |
| 94 | |
| 95 # Install $library | |
| 96 make install | |
|
Alexander Potapenko
2013/10/29 13:36:11
You can install in parallel, too: make $MAKEJOBS i
alextaran1
2013/10/30 11:16:29
Done.
| |
| 97 ) > /dev/null | |
| 98 | |
| 99 # Mark that library is installed | |
| 100 touch $install_dir/$library.txt | |
|
Alexander Potapenko
2013/10/29 13:36:11
Is this file actually used anywhere now?
alextaran1
2013/10/30 11:16:29
It's used by GYP for valid incremental build.
I wi
| |
| 101 | |
| 102 # Clean up | |
| 103 rm -rf $intermediate_dir/$library | |
| OLD | NEW |