OLD | NEW |
| (Empty) |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 # The yasm build process creates a slew of small C subprograms that | |
6 # dynamically generate files at various point in the build process. This makes | |
7 # the build integration moderately complex. | |
8 # | |
9 # There are three classes of dynamically generated files: | |
10 # 1) C source files that should be included in the build (eg., lc3bid.c) | |
11 # 2) C source files that are #included by static C sources (eg., license.c) | |
12 # 3) Intermediate files that are used as input by other subprograms to | |
13 # further generate files in category #1 or #2. (eg., version.mac) | |
14 # | |
15 # This structure is represented with the following targets: | |
16 # 1) yasm -- Sources, flags for the main yasm executable. Also has most of | |
17 # of the actions and rules that invoke the subprograms. | |
18 # 2) config_sources -- Checked in version of files generated by manually | |
19 # running configure that are used by all binaries. | |
20 # 3) generate_files -- Actions and rules for files of type #3. | |
21 # 4) genperf_libs -- Object files shared between yasm and the genperf | |
22 # subprogram. | |
23 # 5) genmacro, genmodule, etc. -- One executable target for each subprogram. | |
24 # | |
25 # You will notice that a lot of the action targets seem very similar -- | |
26 # especially for genmacro invocations. This makes it seem like they should | |
27 # be a rule. The problem is that the correct invocation cannot be inferred | |
28 # purely from the file name, or extension. Nor is it obvious whether the | |
29 # output should be processed as a source or not. Thus, we are left with a | |
30 # large amount of repetitive code. | |
31 | |
32 { | |
33 'variables': { | |
34 'yasm_include_dirs': [ | |
35 'source/config/<(OS)', | |
36 'source/patched-yasm', | |
37 ], | |
38 | |
39 # The cflags used by any target that will be directly linked into yasm. | |
40 # These are specifically not used when building the subprograms. While | |
41 # it would probably be safe to use these flags there as well, the | |
42 # ./configure based build does not use the same flags between the main | |
43 # yasm executable, and its subprograms. | |
44 'yasm_defines': ['HAVE_CONFIG_H'], | |
45 'yasm_cflags': [ | |
46 '-std=gnu99', | |
47 '-ansi', | |
48 '-pedantic', | |
49 ], | |
50 | |
51 # Locations for various generated artifacts. | |
52 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/yasm', | |
53 'generated_dir': '<(INTERMEDIATE_DIR)/third_party/yasm', | |
54 | |
55 # Various files referenced by multiple targets. | |
56 'version_file': 'version.mac', # Generated by genversion. | |
57 'genmodule_source': 'genmodule_outfile.c', | |
58 }, | |
59 'target_defaults': { | |
60 # Silence warnings in libc++ builds (C code doesn't need this flag). | |
61 'ldflags!': [ '-stdlib=libc++', ], | |
62 }, | |
63 'targets': [ | |
64 { | |
65 'target_name': 'yasm', | |
66 'type': 'executable', | |
67 'toolsets': ['host'], | |
68 'dependencies': [ | |
69 'config_sources', | |
70 'genmacro', | |
71 'genmodule', | |
72 'genperf', | |
73 'genperf_libs', | |
74 'generate_files', # Needed to generate gperf and instruction files. | |
75 'genstring', | |
76 're2c', | |
77 ], | |
78 'variables': { | |
79 'clang_warning_flags': [ | |
80 # yasm passes a `const elf_machine_sym*` through `void*`. | |
81 '-Wno-incompatible-pointer-types', | |
82 ], | |
83 }, | |
84 'conditions': [ | |
85 ['OS=="win"', { | |
86 # As of VS 2013 Update 3, building this project with /analyze hits an | |
87 # internal compiler error on elf-x86-amd64.c in release builds with | |
88 # the amd64_x86 compiler. This halts the build and prevents subsequent | |
89 # analysis. Therefore, /analyze is disabled for this project. See this | |
90 # bug for details: | |
91 # https://connect.microsoft.com/VisualStudio/feedback/details/1014799/
internal-compiler-error-when-using-analyze | |
92 'msvs_settings': { | |
93 'VCCLCompilerTool': { | |
94 'AdditionalOptions!': [ '/analyze' ] | |
95 }, | |
96 }, | |
97 }], | |
98 ], | |
99 'sources': [ | |
100 'source/patched-yasm/frontends/yasm/yasm-options.c', | |
101 'source/patched-yasm/frontends/yasm/yasm.c', | |
102 'source/patched-yasm/libyasm/assocdat.c', | |
103 'source/patched-yasm/libyasm/bc-align.c', | |
104 'source/patched-yasm/libyasm/bc-data.c', | |
105 'source/patched-yasm/libyasm/bc-incbin.c', | |
106 'source/patched-yasm/libyasm/bc-org.c', | |
107 'source/patched-yasm/libyasm/bc-reserve.c', | |
108 'source/patched-yasm/libyasm/bitvect.c', | |
109 'source/patched-yasm/libyasm/bytecode.c', | |
110 'source/patched-yasm/libyasm/errwarn.c', | |
111 'source/patched-yasm/libyasm/expr.c', | |
112 'source/patched-yasm/libyasm/file.c', | |
113 'source/patched-yasm/libyasm/floatnum.c', | |
114 'source/patched-yasm/libyasm/hamt.c', | |
115 'source/patched-yasm/libyasm/insn.c', | |
116 'source/patched-yasm/libyasm/intnum.c', | |
117 'source/patched-yasm/libyasm/inttree.c', | |
118 'source/patched-yasm/libyasm/linemap.c', | |
119 'source/patched-yasm/libyasm/md5.c', | |
120 'source/patched-yasm/libyasm/mergesort.c', | |
121 'source/patched-yasm/libyasm/section.c', | |
122 'source/patched-yasm/libyasm/strcasecmp.c', | |
123 'source/patched-yasm/libyasm/strsep.c', | |
124 'source/patched-yasm/libyasm/symrec.c', | |
125 'source/patched-yasm/libyasm/valparam.c', | |
126 'source/patched-yasm/libyasm/value.c', | |
127 'source/patched-yasm/modules/arch/lc3b/lc3barch.c', | |
128 'source/patched-yasm/modules/arch/lc3b/lc3bbc.c', | |
129 'source/patched-yasm/modules/arch/x86/x86arch.c', | |
130 'source/patched-yasm/modules/arch/x86/x86bc.c', | |
131 'source/patched-yasm/modules/arch/x86/x86expr.c', | |
132 'source/patched-yasm/modules/arch/x86/x86id.c', | |
133 'source/patched-yasm/modules/dbgfmts/codeview/cv-dbgfmt.c', | |
134 'source/patched-yasm/modules/dbgfmts/codeview/cv-symline.c', | |
135 'source/patched-yasm/modules/dbgfmts/codeview/cv-type.c', | |
136 'source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-aranges.c', | |
137 'source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-dbgfmt.c', | |
138 'source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-info.c', | |
139 'source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-line.c', | |
140 'source/patched-yasm/modules/dbgfmts/null/null-dbgfmt.c', | |
141 'source/patched-yasm/modules/dbgfmts/stabs/stabs-dbgfmt.c', | |
142 'source/patched-yasm/modules/listfmts/nasm/nasm-listfmt.c', | |
143 'source/patched-yasm/modules/objfmts/bin/bin-objfmt.c', | |
144 'source/patched-yasm/modules/objfmts/coff/coff-objfmt.c', | |
145 'source/patched-yasm/modules/objfmts/coff/win64-except.c', | |
146 'source/patched-yasm/modules/objfmts/dbg/dbg-objfmt.c', | |
147 'source/patched-yasm/modules/objfmts/elf/elf-objfmt.c', | |
148 'source/patched-yasm/modules/objfmts/elf/elf-x86-amd64.c', | |
149 'source/patched-yasm/modules/objfmts/elf/elf-x86-x86.c', | |
150 'source/patched-yasm/modules/objfmts/elf/elf.c', | |
151 'source/patched-yasm/modules/objfmts/macho/macho-objfmt.c', | |
152 'source/patched-yasm/modules/objfmts/rdf/rdf-objfmt.c', | |
153 'source/patched-yasm/modules/objfmts/xdf/xdf-objfmt.c', | |
154 'source/patched-yasm/modules/parsers/gas/gas-parse.c', | |
155 'source/patched-yasm/modules/parsers/gas/gas-parse-intel.c', | |
156 'source/patched-yasm/modules/parsers/gas/gas-parser.c', | |
157 'source/patched-yasm/modules/parsers/nasm/nasm-parse.c', | |
158 'source/patched-yasm/modules/parsers/nasm/nasm-parser.c', | |
159 'source/patched-yasm/modules/preprocs/cpp/cpp-preproc.c', | |
160 'source/patched-yasm/modules/preprocs/nasm/nasm-eval.c', | |
161 'source/patched-yasm/modules/preprocs/nasm/nasm-pp.c', | |
162 'source/patched-yasm/modules/preprocs/nasm/nasm-preproc.c', | |
163 'source/patched-yasm/modules/preprocs/nasm/nasmlib.c', | |
164 'source/patched-yasm/modules/preprocs/raw/raw-preproc.c', | |
165 | |
166 # Sources needed by re2c. | |
167 'source/patched-yasm/modules/parsers/gas/gas-token.re', | |
168 'source/patched-yasm/modules/parsers/nasm/nasm-token.re', | |
169 | |
170 # Sources needed by genperf. Make sure the generated gperf files | |
171 # (the ones in shared_generated_dir) are synced with the outputs | |
172 # for the related generate_*_insn actions in the generate_files | |
173 # target below. | |
174 '<(shared_generated_dir)/x86insn_nasm.gperf', | |
175 '<(shared_generated_dir)/x86insn_gas.gperf', | |
176 '<(shared_generated_dir)/x86cpu.c', | |
177 '<(shared_generated_dir)/x86regtmod.c', | |
178 ], | |
179 'include_dirs': [ | |
180 '<@(yasm_include_dirs)', | |
181 '<(shared_generated_dir)', | |
182 '<(generated_dir)', | |
183 ], | |
184 'defines': [ '<@(yasm_defines)' ], | |
185 'cflags': [ '<@(yasm_cflags)', ], | |
186 'msvs_disabled_warnings': [ 4267 ], | |
187 'rules': [ | |
188 { | |
189 'rule_name': 'generate_gperf', | |
190 'extension': 'gperf', | |
191 'inputs': [ '<(PRODUCT_DIR)/' | |
192 '<(EXECUTABLE_PREFIX)genperf<(EXECUTABLE_SUFFIX)' ], | |
193 'outputs': [ | |
194 '<(generated_dir)/<(RULE_INPUT_ROOT).c', | |
195 ], | |
196 'action': ['<(PRODUCT_DIR)/genperf', | |
197 '<(RULE_INPUT_PATH)', | |
198 '<(generated_dir)/<(RULE_INPUT_ROOT).c', | |
199 ], | |
200 # These files are #included, so do not treat them as sources. | |
201 'process_outputs_as_sources': 0, | |
202 'message': 'yasm gperf for <(RULE_INPUT_PATH)', | |
203 }, | |
204 { | |
205 'rule_name': 'generate_re2c', | |
206 'extension': 're', | |
207 'inputs': [ '<(PRODUCT_DIR)/' | |
208 '<(EXECUTABLE_PREFIX)re2c<(EXECUTABLE_SUFFIX)' ], | |
209 'outputs': [ '<(generated_dir)/<(RULE_INPUT_ROOT).c', ], | |
210 'action': [ | |
211 '<(PRODUCT_DIR)/re2c', | |
212 '-b', | |
213 '-o', | |
214 '<(generated_dir)/<(RULE_INPUT_ROOT).c', | |
215 '<(RULE_INPUT_PATH)', | |
216 ], | |
217 'process_outputs_as_sources': 1, | |
218 'message': 'yasm re2c for <(RULE_INPUT_PATH)', | |
219 }, | |
220 ], | |
221 'actions': [ | |
222 ### | |
223 ### genmacro calls. | |
224 ### | |
225 { | |
226 'action_name': 'generate_nasm_macros', | |
227 'variables': { | |
228 'infile': 'source/patched-yasm/modules/parsers/nasm/nasm-std.mac', | |
229 'varname': 'nasm_standard_mac', | |
230 'outfile': '<(generated_dir)/nasm-macros.c', | |
231 }, | |
232 'inputs': [ '<(PRODUCT_DIR)/' | |
233 '<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)', | |
234 '<(infile)', ], | |
235 'outputs': [ '<(outfile)', ], | |
236 'action': ['<(PRODUCT_DIR)/genmacro', | |
237 '<(outfile)', '<(varname)', '<(infile)', ], | |
238 # Not a direct source because this is #included by | |
239 # source/patched-yasm/modules/parsers/nasm/nasm-parser.c | |
240 'process_outputs_as_sources': 1, | |
241 'message': 'yasm genmacro for <(infile)', | |
242 }, | |
243 { | |
244 'action_name': 'generate_nasm_version', | |
245 'variables': { | |
246 'infile': '<(shared_generated_dir)/<(version_file)', | |
247 'varname': 'nasm_version_mac', | |
248 'outfile': '<(generated_dir)/nasm-version.c', | |
249 }, | |
250 'inputs': [ '<(PRODUCT_DIR)/' | |
251 '<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)', | |
252 '<(infile)', ], | |
253 'outputs': [ '<(outfile)', ], | |
254 'action': ['<(PRODUCT_DIR)/genmacro', | |
255 '<(outfile)', '<(varname)', '<(infile)', | |
256 ], | |
257 # Not a direct source because this is #included by | |
258 # source/patched-yasm/modules/preprocs/nasm/nasm-preproc.c | |
259 'process_outputs_as_sources': 0, | |
260 'message': 'yasm genmacro for <(infile)', | |
261 }, | |
262 { | |
263 'action_name': 'generate_win64_gas', | |
264 'variables': { | |
265 'infile': 'source/patched-yasm/modules/objfmts/coff/win64-gas.mac', | |
266 'varname': 'win64_gas_stdmac', | |
267 'outfile': '<(generated_dir)/win64-gas.c', | |
268 }, | |
269 'inputs': [ '<(PRODUCT_DIR)/' | |
270 '<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)', | |
271 '<(infile)', ], | |
272 'outputs': [ '<(outfile)', ], | |
273 'action': ['<(PRODUCT_DIR)/genmacro', | |
274 '<(outfile)', '<(varname)', '<(infile)', | |
275 ], | |
276 # Not a direct source because this is #included by | |
277 # source/patched-yasm/modules/objfmts/coff/coff-objfmt.c | |
278 'process_outputs_as_sources': 0, | |
279 'message': 'yasm genmacro for <(infile)', | |
280 }, | |
281 { | |
282 'action_name': 'generate_win64_nasm', | |
283 'variables': { | |
284 'infile': 'source/patched-yasm/modules/objfmts/coff/win64-nasm.mac', | |
285 'varname': 'win64_nasm_stdmac', | |
286 'outfile': '<(generated_dir)/win64-nasm.c', | |
287 }, | |
288 'inputs': [ '<(PRODUCT_DIR)/' | |
289 '<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)', | |
290 '<(infile)', ], | |
291 'outputs': [ '<(outfile)', ], | |
292 'action': ['<(PRODUCT_DIR)/genmacro', | |
293 '<(outfile)', | |
294 '<(varname)', | |
295 '<(infile)', | |
296 ], | |
297 # Not a direct source because this is #included by | |
298 # source/patched-yasm/modules/objfmts/coff/coff-objfmt.c | |
299 'process_outputs_as_sources': 0, | |
300 'message': 'yasm genmacro for <(infile)', | |
301 }, | |
302 | |
303 ### | |
304 ### genstring call. | |
305 ### | |
306 { | |
307 'action_name': 'generate_license', | |
308 'variables': { | |
309 'infile': 'source/patched-yasm/COPYING', | |
310 'varname': 'license_msg', | |
311 'outfile': '<(generated_dir)/license.c', | |
312 }, | |
313 'inputs': [ '<(PRODUCT_DIR)/' | |
314 '<(EXECUTABLE_PREFIX)genstring<(EXECUTABLE_SUFFIX)', | |
315 '<(infile)', ], | |
316 'outputs': [ '<(outfile)', ], | |
317 'action': ['<(PRODUCT_DIR)/genstring', | |
318 '<(varname)', | |
319 '<(outfile)', | |
320 '<(infile)', | |
321 ], | |
322 # Not a direct source because this is #included by | |
323 # source/patched-yasm/frontends/yasm/yasm.c | |
324 'process_outputs_as_sources': 0, | |
325 'message': 'Generating yasm embeddable license', | |
326 }, | |
327 | |
328 ### | |
329 ### A re2c call that doesn't fit into the rule below. | |
330 ### | |
331 { | |
332 'action_name': 'generate_lc3b_token', | |
333 'variables': { | |
334 'infile': 'source/patched-yasm/modules/arch/lc3b/lc3bid.re', | |
335 # The license file is #included by yasm.c. | |
336 'outfile': '<(generated_dir)/lc3bid.c', | |
337 }, | |
338 'inputs': [ '<(PRODUCT_DIR)/' | |
339 '<(EXECUTABLE_PREFIX)re2c<(EXECUTABLE_SUFFIX)', | |
340 '<(infile)', ], | |
341 'outputs': [ '<(outfile)', ], | |
342 'action': [ | |
343 '<(PRODUCT_DIR)/re2c', | |
344 '-s', | |
345 '-o', '<(outfile)', | |
346 '<(infile)' | |
347 ], | |
348 'process_outputs_as_sources': 1, | |
349 'message': 'Generating yasm tokens for lc3b', | |
350 }, | |
351 | |
352 ### | |
353 ### genmodule call. | |
354 ### | |
355 { | |
356 'action_name': 'generate_module', | |
357 'variables': { | |
358 'makefile': 'source/config/<(OS)/Makefile', | |
359 'module_in': 'source/patched-yasm/libyasm/module.in', | |
360 'outfile': '<(generated_dir)/module.c', | |
361 }, | |
362 'inputs': [ | |
363 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)genmodule<(EXECUTABLE_SUFFIX)', | |
364 '<(module_in)', | |
365 '<(makefile)' | |
366 ], | |
367 'outputs': [ '<(generated_dir)/module.c' ], | |
368 'action': [ | |
369 '<(PRODUCT_DIR)/genmodule', | |
370 '<(module_in)', | |
371 '<(makefile)', | |
372 '<(outfile)' | |
373 ], | |
374 'process_outputs_as_sources': 1, | |
375 'message': 'Generating yasm module information', | |
376 }, | |
377 ], | |
378 }, | |
379 { | |
380 'target_name': 'config_sources', | |
381 'type': 'none', | |
382 'toolsets': ['host'], | |
383 'sources': [ | |
384 'source/config/<(OS)/Makefile', | |
385 'source/config/<(OS)/config.h', | |
386 'source/config/<(OS)/libyasm-stdint.h', | |
387 ], | |
388 }, | |
389 { | |
390 'target_name': 'generate_files', | |
391 'type': 'none', | |
392 'toolsets': ['host'], | |
393 'dependencies': [ | |
394 'genperf', | |
395 'genversion', | |
396 ], | |
397 'sources': [ | |
398 'source/patched-yasm/modules/arch/x86/x86cpu.gperf', | |
399 'source/patched-yasm/modules/arch/x86/x86regtmod.gperf', | |
400 ], | |
401 'rules': [ | |
402 { | |
403 'rule_name': 'generate_gperf', | |
404 'extension': 'gperf', | |
405 'inputs': [ '<(PRODUCT_DIR)/' | |
406 '<(EXECUTABLE_PREFIX)genperf<(EXECUTABLE_SUFFIX)' ], | |
407 'outputs': [ '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c', ], | |
408 'action': [ | |
409 '<(PRODUCT_DIR)/genperf', | |
410 '<(RULE_INPUT_PATH)', | |
411 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c', | |
412 ], | |
413 'process_outputs_as_sources': 0, | |
414 'message': 'yasm genperf for <(RULE_INPUT_PATH)', | |
415 }, | |
416 ], | |
417 'actions': [ | |
418 { | |
419 'action_name': 'generate_x86_insn', | |
420 'variables': { | |
421 'gen_insn_path': | |
422 'source/patched-yasm/modules/arch/x86/gen_x86_insn.py', | |
423 }, | |
424 'inputs': [ '<(gen_insn_path)', ], | |
425 'outputs': [ | |
426 '<(shared_generated_dir)/x86insns.c', | |
427 '<(shared_generated_dir)/x86insn_gas.gperf', | |
428 '<(shared_generated_dir)/x86insn_nasm.gperf', | |
429 ], | |
430 'action': [ | |
431 'python', | |
432 '<(gen_insn_path)', | |
433 '<(shared_generated_dir)', | |
434 ], | |
435 'message': 'Running <(gen_insn_path)', | |
436 'process_outputs_as_sources': 0, | |
437 }, | |
438 { | |
439 'action_name': 'generate_version', | |
440 'inputs': [ '<(PRODUCT_DIR)/' | |
441 '<(EXECUTABLE_PREFIX)genversion<(EXECUTABLE_SUFFIX)' ], | |
442 'outputs': [ '<(shared_generated_dir)/<(version_file)', ], | |
443 'action': [ | |
444 '<(PRODUCT_DIR)/genversion', | |
445 '<(shared_generated_dir)/<(version_file)' | |
446 ], | |
447 'message': 'Generating yasm version file: ' | |
448 '<(shared_generated_dir)/<(version_file)', | |
449 'process_outputs_as_sources': 0, | |
450 }, | |
451 ], | |
452 }, | |
453 { | |
454 'target_name': 'genperf_libs', | |
455 'type': 'static_library', | |
456 'toolsets': ['host'], | |
457 'dependencies': [ 'config_sources', ], | |
458 'sources': [ | |
459 'source/patched-yasm/libyasm/phash.c', | |
460 'source/patched-yasm/libyasm/xmalloc.c', | |
461 'source/patched-yasm/libyasm/xstrdup.c', | |
462 ], | |
463 'include_dirs': [ | |
464 '<@(yasm_include_dirs)', | |
465 ], | |
466 'defines': [ '<@(yasm_defines)' ], | |
467 'cflags': [ | |
468 '<@(yasm_cflags)', | |
469 ], | |
470 }, | |
471 { | |
472 'target_name': 'genstring', | |
473 'type': 'executable', | |
474 'toolsets': ['host'], | |
475 'dependencies': [ 'config_sources', ], | |
476 'sources': [ | |
477 'source/patched-yasm/genstring.c', | |
478 ], | |
479 'include_dirs': [ | |
480 '<@(yasm_include_dirs)', | |
481 ], | |
482 'cflags': [ | |
483 '-std=gnu99', | |
484 ], | |
485 }, | |
486 { | |
487 'target_name': 'genperf', | |
488 'type': 'executable', | |
489 'toolsets': ['host'], | |
490 'dependencies': [ | |
491 'genperf_libs', | |
492 ], | |
493 'sources': [ | |
494 'source/patched-yasm/tools/genperf/genperf.c', | |
495 'source/patched-yasm/tools/genperf/perfect.c', | |
496 ], | |
497 'include_dirs': [ | |
498 '<@(yasm_include_dirs)', | |
499 ], | |
500 'cflags': [ | |
501 '-std=gnu99', | |
502 ], | |
503 }, | |
504 { | |
505 'target_name': 'genmacro', | |
506 'type': 'executable', | |
507 'toolsets': ['host'], | |
508 'dependencies': [ 'config_sources', ], | |
509 'sources': [ | |
510 'source/patched-yasm/tools/genmacro/genmacro.c', | |
511 ], | |
512 'include_dirs': [ | |
513 '<@(yasm_include_dirs)', | |
514 ], | |
515 'cflags': [ | |
516 '-std=gnu99', | |
517 ], | |
518 }, | |
519 { | |
520 'target_name': 'genversion', | |
521 'type': 'executable', | |
522 'toolsets': ['host'], | |
523 'dependencies': [ 'config_sources', ], | |
524 'sources': [ | |
525 'source/patched-yasm/modules/preprocs/nasm/genversion.c', | |
526 ], | |
527 'include_dirs': [ | |
528 '<@(yasm_include_dirs)', | |
529 ], | |
530 'cflags': [ | |
531 '-std=gnu99', | |
532 ], | |
533 }, | |
534 { | |
535 'target_name': 're2c', | |
536 'type': 'executable', | |
537 'toolsets': ['host'], | |
538 'dependencies': [ 'config_sources', ], | |
539 'sources': [ | |
540 'source/patched-yasm/tools/re2c/main.c', | |
541 'source/patched-yasm/tools/re2c/code.c', | |
542 'source/patched-yasm/tools/re2c/dfa.c', | |
543 'source/patched-yasm/tools/re2c/parser.c', | |
544 'source/patched-yasm/tools/re2c/actions.c', | |
545 'source/patched-yasm/tools/re2c/scanner.c', | |
546 'source/patched-yasm/tools/re2c/mbo_getopt.c', | |
547 'source/patched-yasm/tools/re2c/substr.c', | |
548 'source/patched-yasm/tools/re2c/translate.c', | |
549 ], | |
550 'include_dirs': [ | |
551 '<@(yasm_include_dirs)', | |
552 ], | |
553 'cflags': [ | |
554 '-std=gnu99', | |
555 ], | |
556 'variables': { | |
557 # re2c is missing CLOSEVOP from one switch. | |
558 'clang_warning_flags': [ '-Wno-switch' ], | |
559 }, | |
560 'msvs_disabled_warnings': [ 4267 ], | |
561 }, | |
562 { | |
563 'target_name': 'genmodule', | |
564 'type': 'executable', | |
565 'toolsets': ['host'], | |
566 'dependencies': [ | |
567 'config_sources', | |
568 ], | |
569 'sources': [ | |
570 'source/patched-yasm/libyasm/genmodule.c', | |
571 ], | |
572 'include_dirs': [ | |
573 '<@(yasm_include_dirs)', | |
574 | |
575 ], | |
576 'cflags': [ | |
577 '-std=gnu99', | |
578 ], | |
579 }, | |
580 ], | |
581 } | |
OLD | NEW |