OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 # The yasm build process creates a slew of small C subprograms that | 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 | 6 # dynamically generate files at various point in the build process. This makes |
7 # the build integration moderately complex. | 7 # the build integration moderately complex. |
8 # | 8 # |
9 # There are three classes of dynamically generated files: | 9 # There are three classes of dynamically generated files: |
10 # 1) C source files that should be included in the build (eg., lc3bid.c) | 10 # 1) C source files that should be included in the build (eg., lc3bid.c) |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 ] | 278 ] |
279 } | 279 } |
280 | 280 |
281 compiled_action_foreach("compile_gperf") { | 281 compiled_action_foreach("compile_gperf") { |
282 tool = ":genperf" | 282 tool = ":genperf" |
283 sources = [ | 283 sources = [ |
284 "source/patched-yasm/modules/arch/x86/x86cpu.gperf", | 284 "source/patched-yasm/modules/arch/x86/x86cpu.gperf", |
285 "source/patched-yasm/modules/arch/x86/x86regtmod.gperf", | 285 "source/patched-yasm/modules/arch/x86/x86regtmod.gperf", |
286 ] | 286 ] |
287 | 287 |
288 outputs = [ "$target_gen_dir/{{source_name_part}}.c" ] | 288 outputs = [ |
| 289 "$target_gen_dir/{{source_name_part}}.c", |
| 290 ] |
289 args = [ | 291 args = [ |
290 "{{source}}", | 292 "{{source}}", |
291 rebase_path(target_gen_dir, root_build_dir) + "/{{source_name_part}}.c", | 293 rebase_path(target_gen_dir, root_build_dir) + "/{{source_name_part}}.c", |
292 ] | 294 ] |
293 deps = [ | 295 deps = [ |
294 ":generate_x86_insn", | 296 ":generate_x86_insn", |
295 ] | 297 ] |
296 } | 298 } |
297 | 299 |
298 # This differs from |compile_gperf| in where it places it output files. | 300 # This differs from |compile_gperf| in where it places it output files. |
299 compiled_action_foreach("compile_gperf_for_include") { | 301 compiled_action_foreach("compile_gperf_for_include") { |
300 tool = ":genperf" | 302 tool = ":genperf" |
301 sources = [ | 303 sources = [ |
302 # Make sure the generated gperf files in $target_gen_dir are synced with | 304 # Make sure the generated gperf files in $target_gen_dir are synced with |
303 # the outputs for the related generate_*_insn actions in the | 305 # the outputs for the related generate_*_insn actions in the |
304 # generate_files target below. | 306 # generate_files target below. |
305 # | 307 # |
306 # The output for these two are #included by | 308 # The output for these two are #included by |
307 # source/patched-yasm/modules/arch/x86/x86id.c | 309 # source/patched-yasm/modules/arch/x86/x86id.c |
308 "$yasm_gen_include_dir/x86insn_gas.gperf", | 310 "$yasm_gen_include_dir/x86insn_gas.gperf", |
309 "$yasm_gen_include_dir/x86insn_nasm.gperf", | 311 "$yasm_gen_include_dir/x86insn_nasm.gperf", |
310 ] | 312 ] |
311 | 313 |
312 outputs = [ "$yasm_gen_include_dir/{{source_name_part}}.c" ] | 314 outputs = [ |
| 315 "$yasm_gen_include_dir/{{source_name_part}}.c", |
| 316 ] |
313 args = [ | 317 args = [ |
314 "{{source}}", | 318 "{{source}}", |
315 rebase_path(yasm_gen_include_dir, root_build_dir) + | 319 rebase_path(yasm_gen_include_dir, root_build_dir) + |
316 "/{{source_name_part}}.c", | 320 "/{{source_name_part}}.c", |
317 ] | 321 ] |
318 deps = [ | 322 deps = [ |
319 ":generate_x86_insn", | 323 ":generate_x86_insn", |
320 ] | 324 ] |
321 } | 325 } |
322 | 326 |
(...skipping 14 matching lines...) Expand all Loading... |
337 } | 341 } |
338 } | 342 } |
339 } | 343 } |
340 | 344 |
341 compile_macro("compile_nasm_macros") { | 345 compile_macro("compile_nasm_macros") { |
342 # Output #included by | 346 # Output #included by |
343 # source/patched-yasm/modules/preprocs/nasm/nasm-parser.c | 347 # source/patched-yasm/modules/preprocs/nasm/nasm-parser.c |
344 sources = [ | 348 sources = [ |
345 "source/patched-yasm/modules/parsers/nasm/nasm-std.mac", | 349 "source/patched-yasm/modules/parsers/nasm/nasm-std.mac", |
346 ] | 350 ] |
347 outputs = [ "$yasm_gen_include_dir/nasm-macros.c" ] | 351 outputs = [ |
| 352 "$yasm_gen_include_dir/nasm-macros.c", |
| 353 ] |
348 macro_varname = "nasm_standard_mac" | 354 macro_varname = "nasm_standard_mac" |
349 } | 355 } |
350 | 356 |
351 compile_macro("compile_nasm_version") { | 357 compile_macro("compile_nasm_version") { |
352 # Output #included by | 358 # Output #included by |
353 # source/patched-yasm/modules/preprocs/nasm/nasm-preproc.c | 359 # source/patched-yasm/modules/preprocs/nasm/nasm-preproc.c |
354 sources = [ | 360 sources = [ |
355 "$target_gen_dir/$version_file", | 361 "$target_gen_dir/$version_file", |
356 ] | 362 ] |
357 outputs = [ "$yasm_gen_include_dir/nasm-version.c" ] | 363 outputs = [ |
| 364 "$yasm_gen_include_dir/nasm-version.c", |
| 365 ] |
358 macro_varname = "nasm_version_mac" | 366 macro_varname = "nasm_version_mac" |
359 deps = [ | 367 deps = [ |
360 ":generate_version", | 368 ":generate_version", |
361 ] | 369 ] |
362 } | 370 } |
363 | 371 |
364 compile_macro("compile_win64_gas") { | 372 compile_macro("compile_win64_gas") { |
365 # Output #included by source/patched-yasm/frontends/yasm/yasm.c. | 373 # Output #included by source/patched-yasm/frontends/yasm/yasm.c. |
366 sources = [ | 374 sources = [ |
367 "source/patched-yasm/modules/objfmts/coff/win64-gas.mac", | 375 "source/patched-yasm/modules/objfmts/coff/win64-gas.mac", |
368 ] | 376 ] |
369 outputs = [ "$yasm_gen_include_dir/win64-gas.c" ] | 377 outputs = [ |
| 378 "$yasm_gen_include_dir/win64-gas.c", |
| 379 ] |
370 macro_varname = "win64_gas_stdmac" | 380 macro_varname = "win64_gas_stdmac" |
371 } | 381 } |
372 | 382 |
373 compile_macro("compile_win64_nasm") { | 383 compile_macro("compile_win64_nasm") { |
374 # Output #included by source/patched-yasm/frontends/yasm/yasm.c. | 384 # Output #included by source/patched-yasm/frontends/yasm/yasm.c. |
375 sources = [ | 385 sources = [ |
376 "source/patched-yasm/modules/objfmts/coff/win64-nasm.mac", | 386 "source/patched-yasm/modules/objfmts/coff/win64-nasm.mac", |
377 ] | 387 ] |
378 outputs = [ "$yasm_gen_include_dir/win64-nasm.c" ] | 388 outputs = [ |
| 389 "$yasm_gen_include_dir/win64-nasm.c", |
| 390 ] |
379 macro_varname = "win64_nasm_stdmac" | 391 macro_varname = "win64_nasm_stdmac" |
380 } | 392 } |
381 | 393 |
382 compiled_action_foreach("compile_re2c") { | 394 compiled_action_foreach("compile_re2c") { |
383 tool = ":re2c" | 395 tool = ":re2c" |
384 sources = [ | 396 sources = [ |
385 "source/patched-yasm/modules/parsers/gas/gas-token.re", | 397 "source/patched-yasm/modules/parsers/gas/gas-token.re", |
386 "source/patched-yasm/modules/parsers/nasm/nasm-token.re", | 398 "source/patched-yasm/modules/parsers/nasm/nasm-token.re", |
387 ] | 399 ] |
388 outputs = [ "$target_gen_dir/{{source_name_part}}.c" ] | 400 outputs = [ |
| 401 "$target_gen_dir/{{source_name_part}}.c", |
| 402 ] |
389 args = [ | 403 args = [ |
390 "-b", | 404 "-b", |
391 "-o", | 405 "-o", |
392 rebase_path(target_gen_dir, root_build_dir) + "/{{source_name_part}}.c", | 406 rebase_path(target_gen_dir, root_build_dir) + "/{{source_name_part}}.c", |
393 "{{source}}", | 407 "{{source}}", |
394 ] | 408 ] |
395 } | 409 } |
396 | 410 |
397 # This call doesn't fit into the re2c template above. | 411 # This call doesn't fit into the re2c template above. |
398 compiled_action("compile_re2c_lc3b") { | 412 compiled_action("compile_re2c_lc3b") { |
399 tool = ":re2c" | 413 tool = ":re2c" |
400 inputs = [ | 414 inputs = [ |
401 "source/patched-yasm/modules/arch/lc3b/lc3bid.re", | 415 "source/patched-yasm/modules/arch/lc3b/lc3bid.re", |
402 ] | 416 ] |
403 outputs = [ "$target_gen_dir/lc3bid.c" ] | 417 outputs = [ |
| 418 "$target_gen_dir/lc3bid.c", |
| 419 ] |
404 args = [ | 420 args = [ |
405 "-s", | 421 "-s", |
406 "-o", | 422 "-o", |
407 rebase_path(outputs[0], root_build_dir), | 423 rebase_path(outputs[0], root_build_dir), |
408 rebase_path(inputs[0], root_build_dir), | 424 rebase_path(inputs[0], root_build_dir), |
409 ] | 425 ] |
410 } | 426 } |
411 | 427 |
412 compiled_action("generate_license") { | 428 compiled_action("generate_license") { |
413 tool = ":genstring" | 429 tool = ":genstring" |
414 | 430 |
415 # Output #included by source/patched-yasm/frontends/yasm/yasm.c. | 431 # Output #included by source/patched-yasm/frontends/yasm/yasm.c. |
416 inputs = [ | 432 inputs = [ |
417 "source/patched-yasm/COPYING", | 433 "source/patched-yasm/COPYING", |
418 ] | 434 ] |
419 outputs = [ "$yasm_gen_include_dir/license.c" ] | 435 outputs = [ |
| 436 "$yasm_gen_include_dir/license.c", |
| 437 ] |
420 args = [ | 438 args = [ |
421 "license_msg", | 439 "license_msg", |
422 rebase_path(outputs[0], root_build_dir), | 440 rebase_path(outputs[0], root_build_dir), |
423 rebase_path(inputs[0], root_build_dir), | 441 rebase_path(inputs[0], root_build_dir), |
424 ] | 442 ] |
425 } | 443 } |
426 | 444 |
427 compiled_action("generate_module") { | 445 compiled_action("generate_module") { |
428 tool = ":genmodule" | 446 tool = ":genmodule" |
429 inputs = [ | 447 inputs = [ |
430 "source/patched-yasm/libyasm/module.in", | 448 "source/patched-yasm/libyasm/module.in", |
431 config_makefile, | 449 config_makefile, |
432 ] | 450 ] |
433 outputs = [ "$target_gen_dir/module.c" ] | 451 outputs = [ |
| 452 "$target_gen_dir/module.c", |
| 453 ] |
434 args = [ | 454 args = [ |
435 rebase_path(inputs[0], root_build_dir), | 455 rebase_path(inputs[0], root_build_dir), |
436 rebase_path(config_makefile, root_build_dir), | 456 rebase_path(config_makefile, root_build_dir), |
437 rebase_path(outputs[0], root_build_dir), | 457 rebase_path(outputs[0], root_build_dir), |
438 ] | 458 ] |
439 } | 459 } |
440 | 460 |
441 compiled_action("generate_version") { | 461 compiled_action("generate_version") { |
442 tool = ":genversion" | 462 tool = ":genversion" |
443 outputs = [ "$target_gen_dir/$version_file" ] | 463 outputs = [ |
| 464 "$target_gen_dir/$version_file", |
| 465 ] |
444 args = [ rebase_path(outputs[0], root_build_dir) ] | 466 args = [ rebase_path(outputs[0], root_build_dir) ] |
445 } | 467 } |
446 | 468 |
447 action("generate_x86_insn") { | 469 action("generate_x86_insn") { |
448 script = "source/patched-yasm/modules/arch/x86/gen_x86_insn.py" | 470 script = "source/patched-yasm/modules/arch/x86/gen_x86_insn.py" |
449 | 471 |
450 # Output eventually #included by source/patched-yasm/frontends/yasm/x86id.c | 472 # Output eventually #included by source/patched-yasm/frontends/yasm/x86id.c |
451 outputs = [ | 473 outputs = [ |
452 "$yasm_gen_include_dir/x86insns.c", | 474 "$yasm_gen_include_dir/x86insns.c", |
453 "$yasm_gen_include_dir/x86insn_gas.gperf", | 475 "$yasm_gen_include_dir/x86insn_gas.gperf", |
454 "$yasm_gen_include_dir/x86insn_nasm.gperf", | 476 "$yasm_gen_include_dir/x86insn_nasm.gperf", |
455 ] | 477 ] |
456 args = [ rebase_path(yasm_gen_include_dir, root_build_dir) ] | 478 args = [ rebase_path(yasm_gen_include_dir, root_build_dir) ] |
457 } | 479 } |
458 } | 480 } |
OLD | NEW |