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

Side by Side Diff: third_party/instrumented_libraries/download_build_install.py

Issue 726443003: Instrumented libraries: fix libpci3 build on Trusty. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright 2013 The Chromium Authors. All rights reserved. 2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Downloads, builds (with instrumentation) and installs shared libraries.""" 6 """Downloads, builds (with instrumentation) and installs shared libraries."""
7 7
8 import argparse 8 import argparse
9 import os 9 import os
10 import platform 10 import platform
11 import re
11 import shlex 12 import shlex
12 import shutil 13 import shutil
13 import subprocess 14 import subprocess
14 import sys 15 import sys
15 16
16 class ScopedChangeDirectory(object): 17 class ScopedChangeDirectory(object):
17 """Changes current working directory and restores it back automatically.""" 18 """Changes current working directory and restores it back automatically."""
18 19
19 def __init__(self, path): 20 def __init__(self, path):
20 self.path = path 21 self.path = path
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 ] 163 ]
163 shell_call('make -j%s install %s' % 164 shell_call('make -j%s install %s' %
164 (parsed_arguments.jobs, ' '.join(install_args)), 165 (parsed_arguments.jobs, ' '.join(install_args)),
165 parsed_arguments.verbose, environment) 166 parsed_arguments.verbose, environment)
166 167
167 168
168 def libpci3_make_install(parsed_arguments, environment, install_prefix): 169 def libpci3_make_install(parsed_arguments, environment, install_prefix):
169 # pciutils doesn't have a configure script 170 # pciutils doesn't have a configure script
170 # This build script follows debian/rules. 171 # This build script follows debian/rules.
171 172
173 # Find out the package version. We'll use this when creating symlinks.
174 dir_name = os.path.split(os.getcwd())[-1]
175 match = re.match('pciutils-(\d+\.\d+\.\d+)', dir_name)
176 if match is None:
177 raise Exception(
178 'Unable to guess libpci3 version from directory name: %s' % dir_name)
179 version = match.group(1)
180
172 # `make install' will create a "$(DESTDIR)-udeb" directory alongside destdir. 181 # `make install' will create a "$(DESTDIR)-udeb" directory alongside destdir.
173 # We don't want that in our product dir, so we use an intermediate directory. 182 # We don't want that in our product dir, so we use an intermediate directory.
174 destdir = '%s/debian/pciutils' % os.getcwd() 183 destdir = '%s/debian/pciutils' % os.getcwd()
175 make_args = [ 184 make_args = [
176 '%s="%s"' % (name, environment[name]) 185 '%s="%s"' % (name, environment[name])
177 for name in['CC', 'CXX', 'CFLAGS', 'CXXFLAGS', 'LDFLAGS']] 186 for name in['CC', 'CXX', 'CFLAGS', 'CXXFLAGS', 'LDFLAGS']]
178 make_args.append('SHARED=yes') 187 make_args.append('SHARED=yes')
188 # pciutils-3.2.1 (Trusty) fails to build due to unresolved libkmod symbols.
189 # The binary package has no dependencies on libkmod, so it looks like it was
190 # actually built without libkmod support.
191 make_args.append('LIBKMOD=no')
179 paths = [ 192 paths = [
180 'LIBDIR=/lib/', 193 'LIBDIR=/lib/',
181 'PREFIX=/usr', 194 'PREFIX=/usr',
182 'SBINDIR=/usr/bin', 195 'SBINDIR=/usr/bin',
183 'IDSDIR=/usr/share/misc', 196 'IDSDIR=/usr/share/misc',
184 ] 197 ]
185 install_args = ['DESTDIR=%s' % destdir] 198 install_args = ['DESTDIR=%s' % destdir]
186 run_shell_commands([ 199 run_shell_commands([
187 'mkdir -p %s-udeb/usr/bin' % destdir, 200 'mkdir -p %s-udeb/usr/bin' % destdir,
188 'make -j%s %s' % (parsed_arguments.jobs, ' '.join(make_args + paths)), 201 'make -j%s %s' % (parsed_arguments.jobs, ' '.join(make_args + paths)),
189 'make -j%s %s install' % ( 202 'make -j%s %s install' % (
190 parsed_arguments.jobs, 203 parsed_arguments.jobs,
191 ' '.join(install_args + paths))], 204 ' '.join(install_args + paths))],
192 parsed_arguments.verbose, environment) 205 parsed_arguments.verbose, environment)
193 # Now move the contents of the temporary destdir to their final place. 206 # Now move the contents of the temporary destdir to their final place.
194 run_shell_commands([ 207 run_shell_commands([
195 'cp %s/* %s/ -rd' % (destdir, install_prefix), 208 'cp %s/* %s/ -rd' % (destdir, install_prefix),
196 'install -m 644 lib/libpci.so* %s/lib/' % install_prefix, 209 'install -m 644 lib/libpci.so* %s/lib/' % install_prefix,
197 'ln -sf libpci.so.3.1.8 %s/lib/libpci.so.3' % install_prefix], 210 'ln -sf libpci.so.%s %s/lib/libpci.so.3' % (version, install_prefix)],
198 parsed_arguments.verbose, environment) 211 parsed_arguments.verbose, environment)
199 212
200 213
201 def build_and_install(parsed_arguments, environment, install_prefix): 214 def build_and_install(parsed_arguments, environment, install_prefix):
202 if parsed_arguments.build_method == 'destdir': 215 if parsed_arguments.build_method == 'destdir':
203 destdir_configure_make_install( 216 destdir_configure_make_install(
204 parsed_arguments, environment, install_prefix) 217 parsed_arguments, environment, install_prefix)
205 elif parsed_arguments.build_method == 'custom_nss': 218 elif parsed_arguments.build_method == 'custom_nss':
206 nss_make_and_copy(parsed_arguments, environment, install_prefix) 219 nss_make_and_copy(parsed_arguments, environment, install_prefix)
207 elif parsed_arguments.build_method == 'custom_libcap': 220 elif parsed_arguments.build_method == 'custom_libcap':
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 os.chdir(get_script_absolute_path()) 374 os.chdir(get_script_absolute_path())
362 # Ensure all build dependencies are installed. 375 # Ensure all build dependencies are installed.
363 if parsed_arguments.check_build_deps: 376 if parsed_arguments.check_build_deps:
364 check_package_build_dependencies(parsed_arguments.package) 377 check_package_build_dependencies(parsed_arguments.package)
365 378
366 download_build_install(parsed_arguments) 379 download_build_install(parsed_arguments)
367 380
368 381
369 if __name__ == '__main__': 382 if __name__ == '__main__':
370 main() 383 main()
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