| OLD | NEW |
| 1 # -*- python -*- | 1 # -*- python -*- |
| 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import os | 6 import os |
| 7 Import('env') | 7 Import('env') |
| 8 | 8 |
| 9 if not env.Bit('linux'): Return() | 9 if not env.Bit('linux'): Return() |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 # | 24 # |
| 25 # valgen : Regenerate any deleted source files. Note: some generated | 25 # valgen : Regenerate any deleted source files. Note: some generated |
| 26 # source files do understand dependencies and do not need to be | 26 # source files do understand dependencies and do not need to be |
| 27 # deleted before calling valgen. However, do not count on this, | 27 # deleted before calling valgen. However, do not count on this, |
| 28 # as some dependencies are not caught. To be safe, if you have | 28 # as some dependencies are not caught. To be safe, if you have |
| 29 # modified a file that effects source generation, run "valclean" | 29 # modified a file that effects source generation, run "valclean" |
| 30 # followed by a "valgen" to guarantee that generated sources are | 30 # followed by a "valgen" to guarantee that generated sources are |
| 31 # up to date. | 31 # up to date. |
| 32 gen_env = env.Clone(); | 32 gen_env = env.Clone(); |
| 33 | 33 |
| 34 # Defines dgen directory inside of common arch-independent validator directory. |
| 35 DGEN_SRC_DIR = '${MAIN_DIR}/src/trusted/validator/dgen' |
| 36 |
| 34 # Defines this source directory. | 37 # Defines this source directory. |
| 35 GEN_SRC_DIR = '${MAIN_DIR}/src/trusted/validator_arm/gen' | 38 GEN_SRC_DIR = '${MAIN_DIR}/src/trusted/validator_arm/gen' |
| 36 | 39 |
| 37 # Defines the full file name for a generated file. | 40 # Defines the full file name for a generated file. |
| 38 def _gen_file(filename): | 41 def _gen_file(filename): |
| 39 return '%s/%s' % (GEN_SRC_DIR, filename) | 42 return '%s/%s' % (GEN_SRC_DIR, filename) |
| 40 | 43 |
| 44 # Defines the full file name for a file inside dgen directory. |
| 45 def _dgen_dir_file(filename): |
| 46 return '%s/%s' % (DGEN_SRC_DIR, filename) |
| 47 |
| 41 # Set of generated source files. | 48 # Set of generated source files. |
| 42 GEN_LIST = [_gen_file(x) for x in | 49 GEN_LIST = [_gen_file(x) for x in |
| 43 ['arm32_decode.cc', 'arm32_decode.h', | 50 ['arm32_decode.cc', 'arm32_decode.h', |
| 44 'arm32_decode_named.cc' , | 51 'arm32_decode_named.cc' , |
| 45 'arm32_decode_named_classes.h', | 52 'arm32_decode_named_classes.h', |
| 46 'arm32_decode_named_decoder.h', | 53 'arm32_decode_named_decoder.h', |
| 47 'arm32_decode_tests.cc']] | 54 'arm32_decode_tests.cc']] |
| 48 | 55 |
| 49 generate = False | 56 generate = False |
| 50 gen_env = env.Clone(); | 57 gen_env = env.Clone(); |
| 51 if 'valgen' in COMMAND_LINE_TARGETS: generate = True | 58 if 'valgen' in COMMAND_LINE_TARGETS: generate = True |
| 52 if 'valclean' in COMMAND_LINE_TARGETS: generate = True | 59 if 'valclean' in COMMAND_LINE_TARGETS: generate = True |
| 53 | 60 |
| 54 if generate: | 61 if generate: |
| 55 gen_env.AlwaysBuild(gen_env.Alias('valgen', GEN_LIST)) | 62 gen_env.AlwaysBuild(gen_env.Alias('valgen', GEN_LIST)) |
| 56 gen_env.AlwaysBuild( | 63 gen_env.AlwaysBuild( |
| 57 gen_env.Alias('valclean', action=[Delete(x) for x in GEN_LIST])) | 64 gen_env.Alias('valclean', action=[Delete(x) for x in GEN_LIST])) |
| 58 | 65 |
| 59 def _generate_source(filename): | 66 def _generate_source(filename): |
| 60 env.Command(target=filename, | 67 env.Command(target=filename, |
| 61 source=['armv7.table', | 68 source=['armv7.table', |
| 62 'generate_decoder.py', | 69 _dgen_dir_file('generate_decoder.py'), |
| 63 'dgen_core.py', | 70 _dgen_dir_file('dgen_core.py'), |
| 64 'dgen_input.py', | 71 _dgen_dir_file('dgen_input.py'), |
| 65 'dgen_opt.py', | 72 _dgen_dir_file('dgen_opt.py'), |
| 66 'dgen_output.py', | 73 _dgen_dir_file('dgen_output.py'), |
| 67 'dgen_decoder_output.py', | 74 _dgen_dir_file('dgen_decoder_output.py'), |
| 68 'dgen_test_output.py', | 75 _dgen_dir_file('dgen_test_output.py'), |
| 69 ], | 76 ], |
| 70 action=['${SOURCES[1].abspath} ${SOURCES[0].abspath} ' | 77 action=['${SOURCES[1].abspath} ${SOURCES[0].abspath} ' |
| 71 '${TARGET.abspath} Arm32DecoderState']) | 78 '${TARGET.abspath} Arm32DecoderState']) |
| 72 | 79 |
| 73 for f in GEN_LIST: | 80 for f in GEN_LIST: |
| 74 _generate_source(f) | 81 _generate_source(f) |
| 75 | 82 |
| 76 env.ComponentLibrary('arm_validator_core', | 83 env.ComponentLibrary('arm_validator_core', |
| 77 ['address_set.cc', | 84 ['address_set.cc', |
| 78 'inst_classes.cc', | 85 'inst_classes.cc', |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 EXTRA_LIBS=['decoder_test_tools', 'arm_validator_core']) | 167 EXTRA_LIBS=['decoder_test_tools', 'arm_validator_core']) |
| 161 | 168 |
| 162 decoder_test_node = gtest_env.CommandTest( | 169 decoder_test_node = gtest_env.CommandTest( |
| 163 'arm32_decode_tests.out', | 170 'arm32_decode_tests.out', |
| 164 command=[decoder_tests_exe], | 171 command=[decoder_tests_exe], |
| 165 scale_timeout=100) | 172 scale_timeout=100) |
| 166 | 173 |
| 167 gtest_env.AddNodeToTestSuite(decoder_test_node, | 174 gtest_env.AddNodeToTestSuite(decoder_test_node, |
| 168 ['huge_tests', 'arm_decoder_tests'], | 175 ['huge_tests', 'arm_decoder_tests'], |
| 169 'run_arm_decoder_tests') | 176 'run_arm_decoder_tests') |
| OLD | NEW |