OLD | NEW |
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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 math.js | 90 math.js |
91 messages.js | 91 messages.js |
92 apinatives.js | 92 apinatives.js |
93 debug-delay.js | 93 debug-delay.js |
94 mirror-delay.js | 94 mirror-delay.js |
95 date-delay.js | 95 date-delay.js |
96 regexp-delay.js | 96 regexp-delay.js |
97 '''.split() | 97 '''.split() |
98 | 98 |
99 | 99 |
100 JSCRE_FILES = ''' | |
101 pcre_compile.cpp | |
102 pcre_exec.cpp | |
103 pcre_tables.cpp | |
104 pcre_ucp_searchfuncs.cpp | |
105 pcre_xclass.cpp | |
106 '''.split() | |
107 | |
108 | |
109 def Abort(message): | 100 def Abort(message): |
110 print message | 101 print message |
111 sys.exit(1) | 102 sys.exit(1) |
112 | 103 |
113 | 104 |
114 def ConfigureObjectFiles(): | 105 def ConfigureObjectFiles(): |
115 env = Environment() | 106 env = Environment() |
116 env.Replace(**context.flags['v8']) | 107 env.Replace(**context.flags['v8']) |
117 context.ApplyEnvOverrides(env) | 108 context.ApplyEnvOverrides(env) |
118 env['BUILDERS']['JS2C'] = Builder(action=js2c.JS2C) | 109 env['BUILDERS']['JS2C'] = Builder(action=js2c.JS2C) |
119 env['BUILDERS']['Snapshot'] = Builder(action='$SOURCE $TARGET --logfile "$LOGF
ILE"') | 110 env['BUILDERS']['Snapshot'] = Builder(action='$SOURCE $TARGET --logfile "$LOGF
ILE"') |
120 | 111 |
121 # Build the standard platform-independent source files. | 112 # Build the standard platform-independent source files. |
122 source_files = context.GetRelevantSources(SOURCES) | 113 source_files = context.GetRelevantSources(SOURCES) |
123 | 114 |
124 d8_files = context.GetRelevantSources(D8_FILES) | 115 d8_files = context.GetRelevantSources(D8_FILES) |
125 d8_js = env.JS2C('d8-js.cc', 'd8.js', TYPE='D8') | 116 d8_js = env.JS2C('d8-js.cc', 'd8.js', TYPE='D8') |
126 d8_js_obj = context.ConfigureObject(env, d8_js, CPPPATH=['.']) | 117 d8_js_obj = context.ConfigureObject(env, d8_js, CPPPATH=['.']) |
127 d8_objs = [context.ConfigureObject(env, [d8_files]), d8_js_obj] | 118 d8_objs = [context.ConfigureObject(env, [d8_files]), d8_js_obj] |
128 | 119 |
129 # Combine the JavaScript library files into a single C++ file and | 120 # Combine the JavaScript library files into a single C++ file and |
130 # compile it. | 121 # compile it. |
131 library_files = [s for s in LIBRARY_FILES] | 122 library_files = [s for s in LIBRARY_FILES] |
132 library_files.append('macros.py') | 123 library_files.append('macros.py') |
133 libraries_src, libraries_empty_src = env.JS2C(['libraries.cc', 'libraries-empt
y.cc'], library_files, TYPE='CORE') | 124 libraries_src, libraries_empty_src = env.JS2C(['libraries.cc', 'libraries-empt
y.cc'], library_files, TYPE='CORE') |
134 libraries_obj = context.ConfigureObject(env, libraries_src, CPPPATH=['.']) | 125 libraries_obj = context.ConfigureObject(env, libraries_src, CPPPATH=['.']) |
135 | 126 |
136 # Build JSCRE. | |
137 jscre_env = env.Copy() | |
138 jscre_env.Replace(**context.flags['jscre']) | |
139 jscre_files = [join('third_party', 'jscre', s) for s in JSCRE_FILES] | |
140 jscre_obj = context.ConfigureObject(jscre_env, jscre_files) | |
141 | |
142 # Build dtoa. | 127 # Build dtoa. |
143 dtoa_env = env.Copy() | 128 dtoa_env = env.Copy() |
144 dtoa_env.Replace(**context.flags['dtoa']) | 129 dtoa_env.Replace(**context.flags['dtoa']) |
145 dtoa_files = ['dtoa-config.c'] | 130 dtoa_files = ['dtoa-config.c'] |
146 dtoa_obj = context.ConfigureObject(dtoa_env, dtoa_files) | 131 dtoa_obj = context.ConfigureObject(dtoa_env, dtoa_files) |
147 | 132 |
148 source_objs = context.ConfigureObject(env, source_files) | 133 source_objs = context.ConfigureObject(env, source_files) |
149 non_snapshot_files = [jscre_obj, dtoa_obj, source_objs] | 134 non_snapshot_files = [dtoa_obj, source_objs] |
150 | 135 |
151 # Create snapshot if necessary. | 136 # Create snapshot if necessary. |
152 empty_snapshot_obj = context.ConfigureObject(env, 'snapshot-empty.cc') | 137 empty_snapshot_obj = context.ConfigureObject(env, 'snapshot-empty.cc') |
153 mksnapshot_env = env.Copy() | 138 mksnapshot_env = env.Copy() |
154 mksnapshot_env.Replace(**context.flags['mksnapshot']) | 139 mksnapshot_env.Replace(**context.flags['mksnapshot']) |
155 mksnapshot_src = 'mksnapshot.cc' | 140 mksnapshot_src = 'mksnapshot.cc' |
156 mksnapshot = mksnapshot_env.Program('mksnapshot', [mksnapshot_src, libraries_o
bj, non_snapshot_files, empty_snapshot_obj], PDB='mksnapshot.exe.pdb') | 141 mksnapshot = mksnapshot_env.Program('mksnapshot', [mksnapshot_src, libraries_o
bj, non_snapshot_files, empty_snapshot_obj], PDB='mksnapshot.exe.pdb') |
157 if context.use_snapshot: | 142 if context.use_snapshot: |
158 if context.build_snapshot: | 143 if context.build_snapshot: |
159 snapshot_cc = env.Snapshot('snapshot.cc', mksnapshot, LOGFILE=File('snapsh
ot.log').abspath) | 144 snapshot_cc = env.Snapshot('snapshot.cc', mksnapshot, LOGFILE=File('snapsh
ot.log').abspath) |
160 else: | 145 else: |
161 snapshot_cc = Command('snapshot.cc', [], []) | 146 snapshot_cc = Command('snapshot.cc', [], []) |
162 snapshot_obj = context.ConfigureObject(env, snapshot_cc, CPPPATH=['.']) | 147 snapshot_obj = context.ConfigureObject(env, snapshot_cc, CPPPATH=['.']) |
163 libraries_obj = context.ConfigureObject(env, libraries_empty_src, CPPPATH=['
.']) | 148 libraries_obj = context.ConfigureObject(env, libraries_empty_src, CPPPATH=['
.']) |
164 else: | 149 else: |
165 snapshot_obj = empty_snapshot_obj | 150 snapshot_obj = empty_snapshot_obj |
166 library_objs = [non_snapshot_files, libraries_obj, snapshot_obj] | 151 library_objs = [non_snapshot_files, libraries_obj, snapshot_obj] |
167 return (library_objs, d8_objs, [mksnapshot]) | 152 return (library_objs, d8_objs, [mksnapshot]) |
168 | 153 |
169 | 154 |
170 (library_objs, d8_objs, mksnapshot) = ConfigureObjectFiles() | 155 (library_objs, d8_objs, mksnapshot) = ConfigureObjectFiles() |
171 Return('library_objs d8_objs mksnapshot') | 156 Return('library_objs d8_objs mksnapshot') |
OLD | NEW |