Revision: 8246
Author: [email protected]
Date: Thu Jun 9 08:51:08 2011
Log: GYP: Generate makefiles for all architectures on Linux
On Linux running gyp_v8 will generate makefiles for all architectures. On
other platforms generate for ia32 only as that is what is currently
supported.
The output (out) directory is still shared.
[email protected]
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7104083
http://code.google.com/p/v8/source/detail?r=8246
Modified:
/branches/bleeding_edge/build/README.txt
/branches/bleeding_edge/build/gyp_v8
=======================================
--- /branches/bleeding_edge/build/README.txt Thu Jun 9 02:07:17 2011
+++ /branches/bleeding_edge/build/README.txt Thu Jun 9 08:51:08 2011
@@ -13,39 +13,32 @@
so specifying that on the command lines is not required.
-To generate Makefiles and build 32-bit version on Linux:
---------------------------------------------------------
-
-$ build/gyp_v8 -D target_arch=ia32
-$ make BUILDTYPE=Debug
-$ out/Debug/shell
-$ make BUILDTYPE=Release
-$ out/Release/shell
-
-To generate Makefiles and build 64-bit version on Linux:
---------------------------------------------------------
-
-$ build/gyp_v8 -D target_arch=x64
-$ make BUILDTYPE=Debug
-$ out/Debug/shell
-$ make BUILDTYPE=Release
-$ out/Release/shell
-
-To generate Makefiles and build for the arm simulator on Linux:
----------------------------------------------------------------
-
-$ build/gyp_v8 -I build/armu.gypi
-$ make BUILDTYPE=Debug
+To generate Makefiles on Linux:
+-------------------------------
+
+$ build/gyp_v8
+
+This will build makefiles for ia32, x64 and the ARM simulator with names
+Makefile-ia32, Makefile-x64 and Makefile-armu respectively.
+
+To build and run for ia32 in debug and release version do:
+
+$ make -f Makefile-ia32
$ out/Debug/shell
-$ make BUILDTYPE=Release
+$ make -f Makefile-ia32 BUILDTYPE=Release
$ out/Release/shell
+Change the makefile to build and run for the other architectures.
+
To generate Xcode project files on Mac OS:
------------------------------------------
-$ build/gyp_v8 -D target_arch=ia32
-$ xcodebuild -project build/all.xcodeproj -configuration Debug
+$ build/gyp_v8
+
+This will make an Xcode project for the ia32 architecture. To build and
run do:
+
+$ xcodebuild -project build/all.xcodeproj
$ samples/build/Debug/shell
$ xcodebuild -project build/all.xcodeproj -configuration Release
$ samples/build/Release/shell
@@ -66,8 +59,8 @@
> svn co
http://src.chromium.org/svn/trunk/tools/third_party/python_26@70627
third_party/python_26
-Now generate Visual Studio solution and project files:
-
-> third_party\python_26\python build/gyp_v8 -D target_arch=ia32
+Now generate Visual Studio solution and project files for the ia32
architecture:
+
+> third_party\python_26\python build/gyp_v8
Now open build\All.sln in Visual Studio.
=======================================
--- /branches/bleeding_edge/build/gyp_v8 Tue Dec 14 00:16:39 2010
+++ /branches/bleeding_edge/build/gyp_v8 Thu Jun 9 08:51:08 2011
@@ -38,9 +38,13 @@
script_dir = os.path.dirname(__file__)
v8_root = os.path.normpath(os.path.join(script_dir, os.pardir))
+sys.path.insert(0, os.path.join(v8_root, 'tools'))
+import utils
+
sys.path.insert(0, os.path.join(v8_root, 'build', 'gyp', 'pylib'))
import gyp
+
def apply_gyp_environment(file_path=None):
"""
Reads in a *.gyp_env file and applies the valid keys to os.environ.
@@ -68,6 +72,7 @@
else:
os.environ[var] = val
+
def additional_include_files(args=[]):
"""
Returns a list of additional (.gypi) files to include, without
@@ -97,6 +102,14 @@
return result
+
+def run_gyp(args):
+ rc = gyp.main(args)
+ if rc != 0:
+ print 'Error running GYP'
+ sys.exit(rc)
+
+
if __name__ == '__main__':
args = sys.argv[1:]
@@ -141,5 +154,20 @@
print 'Updating projects from gyp files...'
sys.stdout.flush()
- # Off we go...
- sys.exit(gyp.main(args))
+ # Generate for the architectures supported on the given platform.
+ gyp_args = list(args)
+ gyp_args.append('-Dtarget_arch=ia32')
+ if utils.GuessOS() == 'linux':
+ gyp_args.append('-S-ia32')
+ run_gyp(gyp_args)
+
+ if utils.GuessOS() == 'linux':
+ gyp_args = list(args)
+ gyp_args.append('-Dtarget_arch=x64')
+ gyp_args.append('-S-x64')
+ run_gyp(gyp_args)
+
+ gyp_args = list(args)
+ gyp_args.append('-I' + v8_root + '/build/armu.gypi')
+ gyp_args.append('-S-armu')
+ run_gyp(gyp_args)
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev