Add march flag to builds. Our system compilers are assuming > i386 already, but
not all gcc installations will do this. Without an march flag, gcc assumes only
a 386 and then some atomic operations are compiled to undefined references
which break linking.
Review URL: http://codereview.chromium.org/10689
git-svn-id: http://src.chromium.org/svn/trunk/src/build@5363 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
a variable called SYSTEM_LIBS, consisting of a comma-separated
list of system libraries. So far, bzip2, libpng, libjpeg,
libxml, libxslt, lzma_sdk, zlib, hunspell, sqlite, libevent are recognized.
BUG=4321
Review URL: http://codereview.chromium.org/10626
Patch from Fabien Tassin <fta@sofaraway.org>.
git-svn-id: http://src.chromium.org/svn/trunk/src/build@5320 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
the number of CPUs. This at least allows the build to function
on unknown systems.
Remove a now-unnecessary addition of $V8_DIR to LIBPATH. The
v8 libraries now get installed in $LIBS_DIR like everyone else.
Review URL: http://codereview.chromium.org/10208
git-svn-id: http://src.chromium.org/svn/trunk/src/build@5007 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
in base, net and sandbox:
* Remove by-hand Install() and Alias() calls.
* Set $COMPONENT_PROGRAM_GROUPS and $COMPONENT_TEST_PROGRAM_GROUPS
(with in each foo\foo.scons file) so executables get added
automatically to the appropriate Alias.
* Set $TESTS_DIR and $STAGING_DIR so executables get linked
directly in their final resting place ($TARGET_ROOT).
Review URL: http://codereview.chromium.org/9188
git-svn-id: http://src.chromium.org/svn/trunk/src/build@4805 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
* Rename SConscript.unit_tests to test/unit/unit_tests.scons.
* Add a new chrome/chrome.scons "master" for building everything
chrome. Have it just load the existing SConscript file, and
the new test/unit/unit_tests.scons file. We'll move things from
SConscript (or elsewhere) into chrome.scons as they get convertd.
* Change build/SConscript.main to load chrome/chrome.scons.
* Add new using_libjpeg.scons, using_libxml.scons, and using_libxslt.scons
"properties" files.
* Convert test/unit/unit_tests.scons to use the available using_*.scons files.
* Combine settings that were scattered throught test/unit/unit_tests.scons
to make it a little more readable.
* Add $CHROME_DIR/ to the beginning of the file listed in
test/unit/unit_tests.scons, since they're now being interpreted
from a SConscript file down two directory levels.
Review URL: http://codereview.chromium.org/9005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@4448 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Initially, it only supports the Ubuntu 8.04 flavor of Linux, but
we should expand that as time goes on.
git-svn-id: http://src.chromium.org/svn/trunk/src/build@4330 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
* Use SCons -C to invoke the v8 build from our own build directory,
using the -Y option to pull all source files from the v8 source
directory, to avoid building things under src/v8.
* Make sure the build directory exists before we invoke the subsidiary
SCons that will chdir there.
* Build libv8_snapshot.a in the obj/v8 directory, not src/build.
* Remove the svn:ignore property from src/build (specifically libv8snapshot.a).
* Correct the $LIBS_DIR location of libv8.a.
* Use the actual file names involved instead of local Python variables.
* Don't forcibly add our targets to other component's Aliases.
Review URL: http://codereview.chromium.org/8851
git-svn-id: http://src.chromium.org/svn/trunk/src/build@4099 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
using the -Y option to pull all source files from the v8 source
directory. This requires making sure the build directory exists
before we invoke the subsidiary SCons that will chdir there.
Other clean up:
* Use the actual file names involved instead of local Python variables.
* Don't forcibly add our targets to other component's Aliases.
Review URL: http://codereview.chromium.org/8639
git-svn-id: http://src.chromium.org/svn/trunk/src/build@4041 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
I did some profiling and found that we spend a lot of
time in SCons/Subst.py resolving paths with $ vars in
them. By pre-resolving some common $ vars, we can get
a 16% speed up of an empty build (running hammer Hammer
when everything is already built). On my work desktop,
this is a saving from ~180s to do an empty build to
~150s to do an empty build.
I found which symbols to pre-resolve by gathering stats
on what symbols were resolved during a single run.
Originally, these were the top 10 calls to
StringSubber.substitute:
91466 /src/gclient-git/src/chrome
89457 $MAIN_DIR/Hammer
89457 $DESTINATION_ROOT
89447 $TARGET_ROOT/obj
65514 $OBJ_ROOT/webkit
18169 $OBJ_ROOT/third_party
8991 -I/src/gclient-git/src/webkit/pending
5700 $THIRD_PARTY_DIR/WebKit
4488 -I/src/gclient-git/src/webkit/port/platform/network
4488 -I/src/gclient-git/src/webkit/port/platform
Afterwards, the top 10 calls were:
65514 /src/gclient-git/src/chrome/Hammer/obj/webkit
23933 /src/gclient-git/src/chrome/Hammer/obj
18169 $OBJ_ROOT/third_party
8991 -I/src/gclient-git/src/webkit/pending
5700 $THIRD_PARTY_DIR/WebKit
4488 -I/src/gclient-git/src/webkit/port/platform/network
4488 -I/src/gclient-git/src/webkit/port/platform
3813 $OBJ_ROOT/skia
3498 $THIRD_PARTY_DIR/icu38
3456 $THIRD_PARTY_WEBKIT_DIR/JavaScriptCore
Adding these rules cuts the total number of calls to
StringSubber.substitute from 1001817 to 665933.
Review URL: http://codereview.chromium.org/8608
git-svn-id: http://src.chromium.org/svn/trunk/src/build@4010 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
* Add 'midl' Tool module.
* Filter out the default OS_WINDOWS= definition from the Hammer
modules, which messes up our build.
* Fix the $PLATFORMSDK_VISTA definition.
* Remove the current directory from the 'base' Alias (avoid cycles).
* Remove by-hand addition of .lib, .pdb and .ilk files to the target
list when build shared libraries (multiple places).
* Comment out a post-action Touch() of the themes/default resource.
(Thanks to bradnelson for many of the above individual fixes.)
Review URL: http://codereview.chromium.org/8207
git-svn-id: http://src.chromium.org/svn/trunk/src/build@3980 4ff67af0-8c30-449e-8e8b-ad334ec8d88c