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

Side by Side Diff: SConstruct

Issue 100160: Fix .gyp file and avoid adding -m32 on 32 bit systems. (Closed)
Patch Set: Created 11 years, 7 months 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 | tools/gyp/v8.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2008 the V8 project authors. All rights reserved. 1 # Copyright 2008 the V8 project authors. All rights reserved.
2 # Redistribution and use in source and binary forms, with or without 2 # Redistribution and use in source and binary forms, with or without
3 # modification, are permitted provided that the following conditions are 3 # modification, are permitted provided that the following conditions are
4 # met: 4 # met:
5 # 5 #
6 # * Redistributions of source code must retain the above copyright 6 # * Redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer. 7 # notice, this list of conditions and the following disclaimer.
8 # * Redistributions in binary form must reproduce the above 8 # * Redistributions in binary form must reproduce the above
9 # copyright notice, this list of conditions and the following 9 # copyright notice, this list of conditions and the following
10 # disclaimer in the documentation and/or other materials provided 10 # disclaimer in the documentation and/or other materials provided
(...skipping 17 matching lines...) Expand all
28 import platform 28 import platform
29 import re 29 import re
30 import sys 30 import sys
31 import os 31 import os
32 from os.path import join, dirname, abspath 32 from os.path import join, dirname, abspath
33 from types import DictType, StringTypes 33 from types import DictType, StringTypes
34 root_dir = dirname(File('SConstruct').rfile().abspath) 34 root_dir = dirname(File('SConstruct').rfile().abspath)
35 sys.path.append(join(root_dir, 'tools')) 35 sys.path.append(join(root_dir, 'tools'))
36 import js2c, utils 36 import js2c, utils
37 37
38
38 # ANDROID_TOP is the top of the Android checkout, fetched from the environment 39 # ANDROID_TOP is the top of the Android checkout, fetched from the environment
39 # variable 'TOP'. You will also need to set the CXX, CC, AR and RANLIB 40 # variable 'TOP'. You will also need to set the CXX, CC, AR and RANLIB
40 # environment variables to the cross-compiling tools. 41 # environment variables to the cross-compiling tools.
41 ANDROID_TOP = os.environ.get('TOP') 42 ANDROID_TOP = os.environ.get('TOP')
42 if ANDROID_TOP is None: 43 if ANDROID_TOP is None:
43 ANDROID_TOP="" 44 ANDROID_TOP=""
44 45
45 ANDROID_FLAGS = ['-march=armv5te', 46 ANDROID_FLAGS = ['-march=armv5te',
46 '-mtune=xscale', 47 '-mtune=xscale',
47 '-msoft-float', 48 '-msoft-float',
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 }, 126 },
126 'os:android': { 127 'os:android': {
127 'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__', 128 'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__',
128 '__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'], 129 '__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'],
129 'CCFLAGS': ANDROID_FLAGS, 130 'CCFLAGS': ANDROID_FLAGS,
130 'WARNINGFLAGS': ['-Wall', '-Wno-unused', '-Werror=return-type', 131 'WARNINGFLAGS': ['-Wall', '-Wno-unused', '-Werror=return-type',
131 '-Wstrict-aliasing=2'], 132 '-Wstrict-aliasing=2'],
132 'CPPPATH': ANDROID_INCLUDES, 133 'CPPPATH': ANDROID_INCLUDES,
133 }, 134 },
134 'wordsize:32': { 135 'wordsize:32': {
135 'CCFLAGS': ['-m32'], 136 'arch:x64': {
136 'CPPDEFINES': ['ILP32'], 137 'CCFLAGS': ['-m64'],
137 'LINKFLAGS': ['-m32'] 138 'LINKFLAGS': ['-m64']
139 }
138 }, 140 },
139 'wordsize:64': { 141 'wordsize:64': {
140 'CCFLAGS': ['-m64'], 142 'arch:ia32': {
141 'CPPDEFINES': ['LP64'], 143 'CCFLAGS': ['-m32'],
142 'LINKFLAGS': ['-m64'] 144 'LINKFLAGS': ['-m32']
145 },
146 'arch:arm': {
147 'CCFLAGS': ['-m32'],
148 'LINKFLAGS': ['-m32']
149 }
143 }, 150 },
144 'arch:ia32': { 151 'arch:ia32': {
145 'CPPDEFINES': ['V8_ARCH_IA32'] 152 'CPPDEFINES': ['V8_ARCH_IA32', 'ILP32']
146 }, 153 },
147 'arch:arm': { 154 'arch:arm': {
148 'CPPDEFINES': ['V8_ARCH_ARM'] 155 'CPPDEFINES': ['V8_ARCH_ARM', 'ILP32']
149 }, 156 },
150 'arch:x64': { 157 'arch:x64': {
151 'CPPDEFINES': ['V8_ARCH_X64'] 158 'CPPDEFINES': ['V8_ARCH_X64', 'LP64']
iposva 2009/04/29 21:30:31 Shouldn't you rely on __LP64__ being defined by th
Lasse Reichstein 2009/05/01 06:36:29 Personally, I prefer setting everything myself to
152 }, 159 },
153 'prof:oprofile': { 160 'prof:oprofile': {
154 'CPPDEFINES': ['ENABLE_OPROFILE_AGENT'] 161 'CPPDEFINES': ['ENABLE_OPROFILE_AGENT']
155 } 162 }
156 }, 163 },
157 'msvc': { 164 'msvc': {
158 'all': { 165 'all': {
159 'DIALECTFLAGS': ['/nologo'], 166 'DIALECTFLAGS': ['/nologo'],
160 'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'], 167 'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'],
161 'CXXFLAGS': ['$CCFLAGS', '/GR-', '/Gy'], 168 'CXXFLAGS': ['$CCFLAGS', '/GR-', '/Gy'],
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 203
197 204
198 V8_EXTRA_FLAGS = { 205 V8_EXTRA_FLAGS = {
199 'gcc': { 206 'gcc': {
200 'all': { 207 'all': {
201 'CXXFLAGS': [], #['-fvisibility=hidden'], 208 'CXXFLAGS': [], #['-fvisibility=hidden'],
202 'WARNINGFLAGS': ['-Wall', '-Werror', '-W', 209 'WARNINGFLAGS': ['-Wall', '-Werror', '-W',
203 '-Wno-unused-parameter'] 210 '-Wno-unused-parameter']
204 }, 211 },
205 'arch:arm': { 212 'arch:arm': {
206 'CPPDEFINES': ['ARM'] 213 'CPPDEFINES': ['ARM']
iposva 2009/04/29 21:30:31 This is now redundant and should be removed. As ar
Lasse Reichstein 2009/05/01 06:36:29 Done.
207 }, 214 },
208 'os:win32': { 215 'os:win32': {
209 'WARNINGFLAGS': ['-pedantic', '-Wno-long-long'] 216 'WARNINGFLAGS': ['-pedantic', '-Wno-long-long']
210 }, 217 },
211 'os:linux': { 218 'os:linux': {
212 'WARNINGFLAGS': ['-pedantic'] 219 'WARNINGFLAGS': ['-pedantic']
213 }, 220 },
214 'os:macos': { 221 'os:macos': {
215 'WARNINGFLAGS': ['-pedantic'] 222 'WARNINGFLAGS': ['-pedantic']
216 }, 223 },
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 'CCFLAGS': ANDROID_FLAGS, 311 'CCFLAGS': ANDROID_FLAGS,
305 'CPPPATH': ANDROID_INCLUDES, 312 'CPPPATH': ANDROID_INCLUDES,
306 'LIBPATH': [ANDROID_TOP + '/out/target/product/generic/obj/lib'], 313 'LIBPATH': [ANDROID_TOP + '/out/target/product/generic/obj/lib'],
307 'LINKFLAGS': ANDROID_LINKFLAGS, 314 'LINKFLAGS': ANDROID_LINKFLAGS,
308 'LIBS': ['c', 'stdc++', 'm'], 315 'LIBS': ['c', 'stdc++', 'm'],
309 'mode:release': { 316 'mode:release': {
310 'CPPDEFINES': ['SK_RELEASE', 'NDEBUG'] 317 'CPPDEFINES': ['SK_RELEASE', 'NDEBUG']
311 } 318 }
312 }, 319 },
313 'wordsize:32': { 320 'wordsize:32': {
314 'CCFLAGS': ['-m32'], 321 'arch:x64': {
315 'CPPDEFINES': ['ILP32'], 322 'CCFLAGS': ['-m64'],
316 'LINKFLAGS': ['-m32'] 323 'LINKFLAGS': ['-m64']
324 }
317 }, 325 },
318 'wordsize:64': { 326 'wordsize:64': {
319 'CCFLAGS': ['-m64'], 327 'arch:ia32': {
320 'CPPDEFINES': ['LP64'], 328 'CCFLAGS': ['-m32'],
321 'LINKFLAGS': ['-m64'] 329 'LINKFLAGS': ['-m32']
322 }, 330 },
331 'arch:arm': {
332 'CCFLAGS': ['-m32'],
333 'LINKFLAGS': ['-m32']
334 }
335 }
323 }, 336 },
324 'msvc': { 337 'msvc': {
325 'all': { 338 'all': {
326 'CPPDEFINES': ['_HAS_EXCEPTIONS=0'], 339 'CPPDEFINES': ['_HAS_EXCEPTIONS=0'],
327 'LIBS': ['winmm', 'ws2_32'] 340 'LIBS': ['winmm', 'ws2_32']
328 }, 341 },
329 'library:shared': { 342 'library:shared': {
330 'CPPDEFINES': ['USING_V8_SHARED'] 343 'CPPDEFINES': ['USING_V8_SHARED']
331 } 344 }
332 } 345 }
(...skipping 28 matching lines...) Expand all
361 'CCFLAGS': ANDROID_FLAGS, 374 'CCFLAGS': ANDROID_FLAGS,
362 'CPPPATH': ANDROID_INCLUDES, 375 'CPPPATH': ANDROID_INCLUDES,
363 'LIBPATH': [ANDROID_TOP + '/out/target/product/generic/obj/lib'], 376 'LIBPATH': [ANDROID_TOP + '/out/target/product/generic/obj/lib'],
364 'LINKFLAGS': ANDROID_LINKFLAGS, 377 'LINKFLAGS': ANDROID_LINKFLAGS,
365 'LIBS': ['c', 'stdc++', 'm'], 378 'LIBS': ['c', 'stdc++', 'm'],
366 'mode:release': { 379 'mode:release': {
367 'CPPDEFINES': ['SK_RELEASE', 'NDEBUG'] 380 'CPPDEFINES': ['SK_RELEASE', 'NDEBUG']
368 } 381 }
369 }, 382 },
370 'wordsize:32': { 383 'wordsize:32': {
371 'CCFLAGS': ['-m32'], 384 'arch:x64': {
372 'CPPDEFINES': ['ILP32'], 385 'CCFLAGS': ['-m64'],
373 'LINKFLAGS': ['-m32'] 386 'LINKFLAGS': ['-m64']
387 }
374 }, 388 },
375 'wordsize:64': { 389 'wordsize:64': {
376 'CCFLAGS': ['-m64'], 390 'arch:ia32': {
377 'CPPDEFINES': ['LP64'], 391 'CCFLAGS': ['-m32'],
378 'LINKFLAGS': ['-m64'] 392 'LINKFLAGS': ['-m32']
393 },
394 'arch:arm': {
395 'CCFLAGS': ['-m32'],
396 'LINKFLAGS': ['-m32']
397 }
379 }, 398 },
380 'mode:release': { 399 'mode:release': {
381 'CCFLAGS': ['-O2'] 400 'CCFLAGS': ['-O2']
382 }, 401 },
383 'mode:debug': { 402 'mode:debug': {
384 'CCFLAGS': ['-g', '-O0'] 403 'CCFLAGS': ['-g', '-O0']
385 }, 404 },
386 'prof:oprofile': { 405 'prof:oprofile': {
387 'LIBPATH': ['/usr/lib32', '/usr/lib32/oprofile'], 406 'LIBPATH': ['/usr/lib32', '/usr/lib32/oprofile'],
388 'LIBS': ['opagent'] 407 'LIBS': ['opagent']
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 'default': 'static', 541 'default': 'static',
523 'help': 'the type of Microsoft Visual C++ runtime library to use' 542 'help': 'the type of Microsoft Visual C++ runtime library to use'
524 }, 543 },
525 'msvcltcg': { 544 'msvcltcg': {
526 'values': ['on', 'off'], 545 'values': ['on', 'off'],
527 'default': 'on', 546 'default': 'on',
528 'help': 'use Microsoft Visual C++ link-time code generation' 547 'help': 'use Microsoft Visual C++ link-time code generation'
529 }, 548 },
530 'wordsize': { 549 'wordsize': {
531 'values': ['64', '32'], 550 'values': ['64', '32'],
532 'default': '32', # WORDSIZE_GUESS, 551 'default': WORDSIZE_GUESS,
533 'help': 'the word size' 552 'help': 'the word size'
534 }, 553 },
535 'simulator': { 554 'simulator': {
536 'values': ['arm', 'none'], 555 'values': ['arm', 'none'],
537 'default': 'none', 556 'default': 'none',
538 'help': 'build with simulator' 557 'help': 'build with simulator'
539 }, 558 },
540 'disassembler': { 559 'disassembler': {
541 'values': ['on', 'off'], 560 'values': ['on', 'off'],
542 'default': 'off', 561 'default': 'off',
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 601
583 def VerifyOptions(env): 602 def VerifyOptions(env):
584 if not IsLegal(env, 'mode', ['debug', 'release']): 603 if not IsLegal(env, 'mode', ['debug', 'release']):
585 return False 604 return False
586 if not IsLegal(env, 'sample', ["shell", "process"]): 605 if not IsLegal(env, 'sample', ["shell", "process"]):
587 return False 606 return False
588 if env['os'] == 'win32' and env['library'] == 'shared' and env['prof'] == 'on' : 607 if env['os'] == 'win32' and env['library'] == 'shared' and env['prof'] == 'on' :
589 Abort("Profiling on windows only supported for static library.") 608 Abort("Profiling on windows only supported for static library.")
590 if env['prof'] == 'oprofile' and env['os'] != 'linux': 609 if env['prof'] == 'oprofile' and env['os'] != 'linux':
591 Abort("OProfile is only supported on Linux.") 610 Abort("OProfile is only supported on Linux.")
592 if env['wordsize'] == '64' and (env['os'] != 'linux' or env['arch'] != 'x64'): 611 if env['arch'] == 'x64' and env['os'] != 'linux':
593 Abort("64 bit compilation only allowed on Linux OS and x64 architecture.") 612 Abort("X64 compilation only allowed on Linux OS.")
iposva 2009/04/29 21:30:31 Why? The Mac has a perfectly fine working x64 envi
Lasse Reichstein 2009/05/01 06:36:29 Yes, there is probably no reason for this restrict
594 for (name, option) in SIMPLE_OPTIONS.iteritems(): 613 for (name, option) in SIMPLE_OPTIONS.iteritems():
595 if (not option.get('default')) and (name not in ARGUMENTS): 614 if (not option.get('default')) and (name not in ARGUMENTS):
596 message = ("A value for option %s must be specified (%s)." % 615 message = ("A value for option %s must be specified (%s)." %
597 (name, ", ".join(option['values']))) 616 (name, ", ".join(option['values'])))
598 Abort(message) 617 Abort(message)
599 if not env[name] in option['values']: 618 if not env[name] in option['values']:
600 message = ("Unknown %s value '%s'. Possible values are (%s)." % 619 message = ("Unknown %s value '%s'. Possible values are (%s)." %
601 (name, env[name], ", ".join(option['values']))) 620 (name, env[name], ", ".join(option['values'])))
602 Abort(message) 621 Abort(message)
603 622
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
820 # version of scons. Also, there's a bug in some revisions that 839 # version of scons. Also, there's a bug in some revisions that
821 # doesn't allow this flag to be set, so we swallow any exceptions. 840 # doesn't allow this flag to be set, so we swallow any exceptions.
822 # Lovely. 841 # Lovely.
823 try: 842 try:
824 SetOption('warn', 'no-deprecated') 843 SetOption('warn', 'no-deprecated')
825 except: 844 except:
826 pass 845 pass
827 846
828 847
829 Build() 848 Build()
OLDNEW
« no previous file with comments | « no previous file | tools/gyp/v8.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698