OLD | NEW |
1 # Copyright 2011 the V8 project authors. All rights reserved. | 1 # Copyright 2011 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 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 'os:linux': ['platform-linux.cc', 'platform-posix.cc'], | 216 'os:linux': ['platform-linux.cc', 'platform-posix.cc'], |
217 'os:android': ['platform-linux.cc', 'platform-posix.cc'], | 217 'os:android': ['platform-linux.cc', 'platform-posix.cc'], |
218 'os:macos': ['platform-macos.cc', 'platform-posix.cc'], | 218 'os:macos': ['platform-macos.cc', 'platform-posix.cc'], |
219 'os:solaris': ['platform-solaris.cc', 'platform-posix.cc'], | 219 'os:solaris': ['platform-solaris.cc', 'platform-posix.cc'], |
220 'os:cygwin': ['platform-cygwin.cc', 'platform-posix.cc'], | 220 'os:cygwin': ['platform-cygwin.cc', 'platform-posix.cc'], |
221 'os:nullos': ['platform-nullos.cc'], | 221 'os:nullos': ['platform-nullos.cc'], |
222 'os:win32': ['platform-win32.cc'], | 222 'os:win32': ['platform-win32.cc'], |
223 'mode:release': [], | 223 'mode:release': [], |
224 'mode:debug': [ | 224 'mode:debug': [ |
225 'objects-debug.cc', 'prettyprinter.cc', 'regexp-macro-assembler-tracer.cc' | 225 'objects-debug.cc', 'prettyprinter.cc', 'regexp-macro-assembler-tracer.cc' |
226 ] | 226 ], |
| 227 'compress_startup_data:bz2': ['bz2-decompress.cc'], |
227 } | 228 } |
228 | 229 |
229 | 230 |
230 PREPARSER_SOURCES = { | 231 PREPARSER_SOURCES = { |
231 'all': Split(""" | 232 'all': Split(""" |
232 allocation.cc | 233 allocation.cc |
233 hashmap.cc | 234 hashmap.cc |
234 preparse-data.cc | 235 preparse-data.cc |
235 preparser.cc | 236 preparser.cc |
236 preparser-api.cc | 237 preparser-api.cc |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 def ConfigureObjectFiles(): | 310 def ConfigureObjectFiles(): |
310 env = Environment(tools=tools) | 311 env = Environment(tools=tools) |
311 env.Replace(**context.flags['v8']) | 312 env.Replace(**context.flags['v8']) |
312 context.ApplyEnvOverrides(env) | 313 context.ApplyEnvOverrides(env) |
313 env['BUILDERS']['JS2C'] = Builder(action=js2c.JS2C) | 314 env['BUILDERS']['JS2C'] = Builder(action=js2c.JS2C) |
314 if 'ENABLE_LOGGING_AND_PROFILING' in env['CPPDEFINES']: | 315 if 'ENABLE_LOGGING_AND_PROFILING' in env['CPPDEFINES']: |
315 env['BUILDERS']['Snapshot'] = Builder(action='$SOURCE $TARGET --logfile "$LO
GFILE" --log-snapshot-positions') | 316 env['BUILDERS']['Snapshot'] = Builder(action='$SOURCE $TARGET --logfile "$LO
GFILE" --log-snapshot-positions') |
316 else: | 317 else: |
317 env['BUILDERS']['Snapshot'] = Builder(action='$SOURCE $TARGET') | 318 env['BUILDERS']['Snapshot'] = Builder(action='$SOURCE $TARGET') |
318 | 319 |
| 320 def BuildJS2CEnv(type): |
| 321 js2c_env = { 'TYPE': type, 'COMPRESSION': 'off' } |
| 322 if 'COMPRESS_STARTUP_DATA_BZ2' in env['CPPDEFINES']: |
| 323 js2c_env['COMPRESSION'] = 'bz2' |
| 324 return js2c_env |
| 325 |
319 # Build the standard platform-independent source files. | 326 # Build the standard platform-independent source files. |
320 source_files = context.GetRelevantSources(SOURCES) | 327 source_files = context.GetRelevantSources(SOURCES) |
321 | 328 |
322 d8_files = context.GetRelevantSources(D8_FILES) | 329 d8_files = context.GetRelevantSources(D8_FILES) |
323 d8_js = env.JS2C('d8-js.cc', 'd8.js', TYPE='D8') | 330 d8_js = env.JS2C('d8-js.cc', 'd8.js', **{'TYPE': 'D8', 'COMPRESSION': 'off'}) |
324 d8_js_obj = context.ConfigureObject(env, d8_js, CPPPATH=['.']) | 331 d8_js_obj = context.ConfigureObject(env, d8_js, CPPPATH=['.']) |
325 d8_objs = [context.ConfigureObject(env, [d8_files]), d8_js_obj] | 332 d8_objs = [context.ConfigureObject(env, [d8_files]), d8_js_obj] |
326 | 333 |
327 # Combine the JavaScript library files into a single C++ file and | 334 # Combine the JavaScript library files into a single C++ file and |
328 # compile it. | 335 # compile it. |
329 library_files = [s for s in LIBRARY_FILES] | 336 library_files = [s for s in LIBRARY_FILES] |
330 library_files.append('macros.py') | 337 library_files.append('macros.py') |
331 libraries_src = env.JS2C(['libraries.cc'], library_files, TYPE='CORE') | 338 libraries_src = env.JS2C( |
| 339 ['libraries.cc'], library_files, **BuildJS2CEnv('CORE')) |
332 libraries_obj = context.ConfigureObject(env, libraries_src, CPPPATH=['.']) | 340 libraries_obj = context.ConfigureObject(env, libraries_src, CPPPATH=['.']) |
333 | 341 |
334 # Combine the experimental JavaScript library files into a C++ file | 342 # Combine the experimental JavaScript library files into a C++ file |
335 # and compile it. | 343 # and compile it. |
336 experimental_library_files = [ s for s in EXPERIMENTAL_LIBRARY_FILES ] | 344 experimental_library_files = [ s for s in EXPERIMENTAL_LIBRARY_FILES ] |
337 experimental_library_files.append('macros.py') | 345 experimental_library_files.append('macros.py') |
338 experimental_libraries_src = env.JS2C(['experimental-libraries.cc'], experimen
tal_library_files, TYPE='EXPERIMENTAL') | 346 experimental_libraries_src = env.JS2C(['experimental-libraries.cc'], |
| 347 experimental_library_files, |
| 348 **BuildJS2CEnv('EXPERIMENTAL')) |
339 experimental_libraries_obj = context.ConfigureObject(env, experimental_librari
es_src, CPPPATH=['.']) | 349 experimental_libraries_obj = context.ConfigureObject(env, experimental_librari
es_src, CPPPATH=['.']) |
340 | 350 |
341 source_objs = context.ConfigureObject(env, source_files) | 351 source_objs = context.ConfigureObject(env, source_files) |
342 non_snapshot_files = [source_objs] | 352 non_snapshot_files = [source_objs] |
343 | 353 |
344 preparser_source_files = context.GetRelevantSources(PREPARSER_SOURCES) | 354 preparser_source_files = context.GetRelevantSources(PREPARSER_SOURCES) |
345 preparser_objs = context.ConfigureObject(env, preparser_source_files) | 355 preparser_objs = context.ConfigureObject(env, preparser_source_files) |
346 | 356 |
347 # Create snapshot if necessary. For cross compilation you should either | 357 # Create snapshot if necessary. For cross compilation you should either |
348 # do without snapshots and take the performance hit or you should build a | 358 # do without snapshots and take the performance hit or you should build a |
(...skipping 13 matching lines...) Expand all Loading... |
362 snapshot_cc = 'snapshot.cc' | 372 snapshot_cc = 'snapshot.cc' |
363 snapshot_obj = context.ConfigureObject(env, snapshot_cc, CPPPATH=['.']) | 373 snapshot_obj = context.ConfigureObject(env, snapshot_cc, CPPPATH=['.']) |
364 else: | 374 else: |
365 snapshot_obj = empty_snapshot_obj | 375 snapshot_obj = empty_snapshot_obj |
366 library_objs = [non_snapshot_files, libraries_obj, experimental_libraries_obj,
snapshot_obj] | 376 library_objs = [non_snapshot_files, libraries_obj, experimental_libraries_obj,
snapshot_obj] |
367 return (library_objs, d8_objs, [mksnapshot], preparser_objs) | 377 return (library_objs, d8_objs, [mksnapshot], preparser_objs) |
368 | 378 |
369 | 379 |
370 (library_objs, d8_objs, mksnapshot, preparser_objs) = ConfigureObjectFiles() | 380 (library_objs, d8_objs, mksnapshot, preparser_objs) = ConfigureObjectFiles() |
371 Return('library_objs d8_objs mksnapshot preparser_objs') | 381 Return('library_objs d8_objs mksnapshot preparser_objs') |
OLD | NEW |