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

Side by Side Diff: SConstruct

Issue 545125: Initial Solaris support (Closed)
Patch Set: Fixed comments, simplified platform-solaris Created 10 years, 11 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 | src/SConscript » ('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
39 # ANDROID_TOP is the top of the Android checkout, fetched from the environment 38 # ANDROID_TOP is the top of the Android checkout, fetched from the environment
40 # variable 'TOP'. You will also need to set the CXX, CC, AR and RANLIB 39 # variable 'TOP'. You will also need to set the CXX, CC, AR and RANLIB
41 # environment variables to the cross-compiling tools. 40 # environment variables to the cross-compiling tools.
42 ANDROID_TOP = os.environ.get('TOP') 41 ANDROID_TOP = os.environ.get('TOP')
43 if ANDROID_TOP is None: 42 if ANDROID_TOP is None:
44 ANDROID_TOP="" 43 ANDROID_TOP=""
45 44
46 # TODO: Sort these issues out properly but as a temporary solution for gcc 4.4 45 # TODO: Sort these issues out properly but as a temporary solution for gcc 4.4
47 # on linux we need these compiler flags to avoid crashes in the v8 test suite 46 # on linux we need these compiler flags to avoid crashes in the v8 test suite
48 # and avoid dtoa.c strict aliasing issues 47 # and avoid dtoa.c strict aliasing issues
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 'os:freebsd': { 149 'os:freebsd': {
151 'CPPPATH' : ['/usr/local/include'], 150 'CPPPATH' : ['/usr/local/include'],
152 'LIBPATH' : ['/usr/local/lib'], 151 'LIBPATH' : ['/usr/local/lib'],
153 'CCFLAGS': ['-ansi'], 152 'CCFLAGS': ['-ansi'],
154 }, 153 },
155 'os:openbsd': { 154 'os:openbsd': {
156 'CPPPATH' : ['/usr/local/include'], 155 'CPPPATH' : ['/usr/local/include'],
157 'LIBPATH' : ['/usr/local/lib'], 156 'LIBPATH' : ['/usr/local/lib'],
158 'CCFLAGS': ['-ansi'], 157 'CCFLAGS': ['-ansi'],
159 }, 158 },
159 'os:solaris': {
160 'CPPPATH' : ['/usr/local/include'],
161 'LIBPATH' : ['/usr/local/lib'],
162 'CCFLAGS': ['-ansi'],
163 },
160 'os:win32': { 164 'os:win32': {
161 'CCFLAGS': ['-DWIN32'], 165 'CCFLAGS': ['-DWIN32'],
162 'CXXFLAGS': ['-DWIN32'], 166 'CXXFLAGS': ['-DWIN32'],
163 }, 167 },
164 'os:android': { 168 'os:android': {
165 'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__', 169 'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__',
166 '__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'], 170 '__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'],
167 'CCFLAGS': ANDROID_FLAGS, 171 'CCFLAGS': ANDROID_FLAGS,
168 'WARNINGFLAGS': ['-Wall', '-Wno-unused', '-Werror=return-type', 172 'WARNINGFLAGS': ['-Wall', '-Wno-unused', '-Werror=return-type',
169 '-Wstrict-aliasing=2'], 173 '-Wstrict-aliasing=2'],
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 'gcc': { 310 'gcc': {
307 'os:linux': { 311 'os:linux': {
308 'LIBS': ['pthread'], 312 'LIBS': ['pthread'],
309 }, 313 },
310 'os:macos': { 314 'os:macos': {
311 'LIBS': ['pthread'], 315 'LIBS': ['pthread'],
312 }, 316 },
313 'os:freebsd': { 317 'os:freebsd': {
314 'LIBS': ['execinfo', 'pthread'] 318 'LIBS': ['execinfo', 'pthread']
315 }, 319 },
320 'os:solaris': {
321 'LIBS': ['m', 'pthread', 'socket', 'nsl', 'rt'],
322 'LINKFLAGS': ['-mt']
323 },
316 'os:openbsd': { 324 'os:openbsd': {
317 'LIBS': ['execinfo', 'pthread'] 325 'LIBS': ['execinfo', 'pthread']
318 }, 326 },
319 'os:win32': { 327 'os:win32': {
320 'LIBS': ['winmm', 'ws2_32'], 328 'LIBS': ['winmm', 'ws2_32'],
321 }, 329 },
322 }, 330 },
323 'msvc': { 331 'msvc': {
324 'all': { 332 'all': {
325 'CPPDEFINES': ['_HAS_EXCEPTIONS=0'], 333 'CPPDEFINES': ['_HAS_EXCEPTIONS=0'],
(...skipping 29 matching lines...) Expand all
355 }, 363 },
356 'os:linux': { 364 'os:linux': {
357 'LIBS': ['pthread'], 365 'LIBS': ['pthread'],
358 }, 366 },
359 'os:macos': { 367 'os:macos': {
360 'LIBS': ['pthread'], 368 'LIBS': ['pthread'],
361 }, 369 },
362 'os:freebsd': { 370 'os:freebsd': {
363 'LIBS': ['execinfo', 'pthread'] 371 'LIBS': ['execinfo', 'pthread']
364 }, 372 },
373 'os:solaris': {
374 'LIBS': ['m', 'pthread', 'socket', 'nsl', 'rt'],
375 'LINKFLAGS': ['-mt']
376 },
365 'os:openbsd': { 377 'os:openbsd': {
366 'LIBS': ['execinfo', 'pthread'] 378 'LIBS': ['execinfo', 'pthread']
367 }, 379 },
368 'os:win32': { 380 'os:win32': {
369 'LIBS': ['winmm', 'ws2_32'] 381 'LIBS': ['winmm', 'ws2_32']
370 }, 382 },
371 'os:android': { 383 'os:android': {
372 'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__', 384 'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__',
373 '__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'], 385 '__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'],
374 'CCFLAGS': ANDROID_FLAGS, 386 'CCFLAGS': ANDROID_FLAGS,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 'os:linux': { 425 'os:linux': {
414 'LIBS': ['pthread'], 426 'LIBS': ['pthread'],
415 }, 427 },
416 'os:macos': { 428 'os:macos': {
417 'LIBS': ['pthread'], 429 'LIBS': ['pthread'],
418 }, 430 },
419 'os:freebsd': { 431 'os:freebsd': {
420 'LIBPATH' : ['/usr/local/lib'], 432 'LIBPATH' : ['/usr/local/lib'],
421 'LIBS': ['execinfo', 'pthread'] 433 'LIBS': ['execinfo', 'pthread']
422 }, 434 },
435 'os:solaris': {
436 'LIBPATH' : ['/usr/local/lib'],
437 'LIBS': ['m', 'pthread', 'socket', 'nsl', 'rt'],
438 'LINKFLAGS': ['-mt']
439 },
423 'os:openbsd': { 440 'os:openbsd': {
424 'LIBPATH' : ['/usr/local/lib'], 441 'LIBPATH' : ['/usr/local/lib'],
425 'LIBS': ['execinfo', 'pthread'] 442 'LIBS': ['execinfo', 'pthread']
426 }, 443 },
427 'os:win32': { 444 'os:win32': {
428 'LIBS': ['winmm', 'ws2_32'] 445 'LIBS': ['winmm', 'ws2_32']
429 }, 446 },
430 'os:android': { 447 'os:android': {
431 'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__', 448 'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__',
432 '__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'], 449 '__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'],
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 }, 539 },
523 'os:linux': { 540 'os:linux': {
524 'LIBS': ['pthread'], 541 'LIBS': ['pthread'],
525 }, 542 },
526 'os:macos': { 543 'os:macos': {
527 'LIBS': ['pthread'], 544 'LIBS': ['pthread'],
528 }, 545 },
529 'os:freebsd': { 546 'os:freebsd': {
530 'LIBS': ['pthread'], 547 'LIBS': ['pthread'],
531 }, 548 },
549 'os:solaris': {
550 'LIBS': ['m', 'pthread', 'socket', 'nsl', 'rt'],
551 'LINKFLAGS': ['-mt']
552 },
532 'os:openbsd': { 553 'os:openbsd': {
533 'LIBS': ['pthread'], 554 'LIBS': ['pthread'],
534 }, 555 },
535 'os:android': { 556 'os:android': {
536 'LIBPATH': [ANDROID_TOP + '/out/target/product/generic/obj/lib'], 557 'LIBPATH': [ANDROID_TOP + '/out/target/product/generic/obj/lib'],
537 'LINKFLAGS': ANDROID_LINKFLAGS, 558 'LINKFLAGS': ANDROID_LINKFLAGS,
538 'LIBS': ['log', 'c', 'stdc++', 'm'], 559 'LIBS': ['log', 'c', 'stdc++', 'm'],
539 }, 560 },
540 'os:win32': { 561 'os:win32': {
541 'LIBS': ['winmm', 'ws2_32'], 562 'LIBS': ['winmm', 'ws2_32'],
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 ARCH_GUESS = utils.GuessArchitecture() 596 ARCH_GUESS = utils.GuessArchitecture()
576 597
577 598
578 SIMPLE_OPTIONS = { 599 SIMPLE_OPTIONS = {
579 'toolchain': { 600 'toolchain': {
580 'values': ['gcc', 'msvc'], 601 'values': ['gcc', 'msvc'],
581 'default': TOOLCHAIN_GUESS, 602 'default': TOOLCHAIN_GUESS,
582 'help': 'the toolchain to use (' + TOOLCHAIN_GUESS + ')' 603 'help': 'the toolchain to use (' + TOOLCHAIN_GUESS + ')'
583 }, 604 },
584 'os': { 605 'os': {
585 'values': ['freebsd', 'linux', 'macos', 'win32', 'android', 'openbsd'], 606 'values': ['freebsd', 'linux', 'macos', 'win32', 'android', 'openbsd', 'sola ris'],
586 'default': OS_GUESS, 607 'default': OS_GUESS,
587 'help': 'the os to build for (' + OS_GUESS + ')' 608 'help': 'the os to build for (' + OS_GUESS + ')'
588 }, 609 },
589 'arch': { 610 'arch': {
590 'values':['arm', 'ia32', 'x64'], 611 'values':['arm', 'ia32', 'x64'],
591 'default': ARCH_GUESS, 612 'default': ARCH_GUESS,
592 'help': 'the architecture to build for (' + ARCH_GUESS + ')' 613 'help': 'the architecture to build for (' + ARCH_GUESS + ')'
593 }, 614 },
594 'regexp': { 615 'regexp': {
595 'values': ['native', 'interpreted'], 616 'values': ['native', 'interpreted'],
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
929 join('src', 'SConscript'), 950 join('src', 'SConscript'),
930 build_dir=join('obj', target_id), 951 build_dir=join('obj', target_id),
931 exports='context', 952 exports='context',
932 duplicate=False 953 duplicate=False
933 ) 954 )
934 955
935 context.mksnapshot_targets.append(mksnapshot) 956 context.mksnapshot_targets.append(mksnapshot)
936 957
937 # Link the object files into a library. 958 # Link the object files into a library.
938 env.Replace(**context.flags['v8']) 959 env.Replace(**context.flags['v8'])
960
939 context.ApplyEnvOverrides(env) 961 context.ApplyEnvOverrides(env)
940 if context.options['library'] == 'static': 962 if context.options['library'] == 'static':
941 library = env.StaticLibrary(library_name, object_files) 963 library = env.StaticLibrary(library_name, object_files)
942 else: 964 else:
943 # There seems to be a glitch in the way scons decides where to put 965 # There seems to be a glitch in the way scons decides where to put
944 # PDB files when compiling using MSVC so we specify it manually. 966 # PDB files when compiling using MSVC so we specify it manually.
945 # This should not affect any other platforms. 967 # This should not affect any other platforms.
946 pdb_name = library_name + '.dll.pdb' 968 pdb_name = library_name + '.dll.pdb'
947 library = env.SharedLibrary(library_name, object_files, PDB=pdb_name) 969 library = env.SharedLibrary(library_name, object_files, PDB=pdb_name)
948 context.library_targets.append(library) 970 context.library_targets.append(library)
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1019 # version of scons. Also, there's a bug in some revisions that 1041 # version of scons. Also, there's a bug in some revisions that
1020 # doesn't allow this flag to be set, so we swallow any exceptions. 1042 # doesn't allow this flag to be set, so we swallow any exceptions.
1021 # Lovely. 1043 # Lovely.
1022 try: 1044 try:
1023 SetOption('warn', 'no-deprecated') 1045 SetOption('warn', 'no-deprecated')
1024 except: 1046 except:
1025 pass 1047 pass
1026 1048
1027 1049
1028 Build() 1050 Build()
OLDNEW
« no previous file with comments | « no previous file | src/SConscript » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698