Lines Matching +full:- +full:- +full:doc +full:- +full:build
45 Build system for the VIXL project.
46 See README.md for documentation and details about the build system.
50 # We track top-level targets to automatically generate help and alias them.
72 # Build options ----------------------------------------------------------------
75 # The SConstruct will check the build variables and construct the build
79 'CCFLAGS' : ['-Wall',
80 '-Werror',
81 '-fdiagnostics-show-option',
82 '-Wextra',
83 '-Wredundant-decls',
84 '-pedantic',
85 '-Wwrite-strings',
86 '-Wunused',
87 '-Wno-missing-noreturn'],
94 'CCFLAGS' : ['-DVIXL_DEBUG', '-O0']
97 'CCFLAGS' : ['-O3'],
100 'CCFLAGS' : ['-DVIXL_INCLUDE_SIMULATOR_AARCH64'],
103 'CCFLAGS' : ['-g'],
104 'LINKFLAGS' : ['-g']
107 'CCFLAGS' : ['-DVIXL_NEGATIVE_TESTING']
110 'CCFLAGS' : ['-DVIXL_CODE_BUFFER_MMAP']
113 'CCFLAGS' : ['-DVIXL_CODE_BUFFER_MALLOC']
116 'CCFLAGS': ['-fsanitize=undefined'],
117 'LINKFLAGS': ['-fsanitize=undefined']
213 # Here we do a custom partial sort to ensure that the build directory
224 help = '%s (all|auto|comma-separated list) (any combination from [%s])' % \
247 # Define command line build options.
254 EnumVariable('mode', 'Build mode',
274 # We use 'variant directories' to avoid recompiling multiple times when build
275 # options are changed, different build paths are used depending on the options
276 # set. These are the options that should be reflected in the build directory
285 # Build helpers ----------------------------------------------------------------
302 # 32-bit architecture. At the moment, we cannot build VIXL's AArch64 support on
303 # a 32-bit platform.
304 # TODO: Port VIXL to build on a 32-bit platform.
316 # TODO: Port VIXL64 to work on a 32-bit platform.
318 raise UserError('Building VIXL for AArch64 in 32-bit is not supported. Set '
326 if 'a32' in env['target']: env['CCFLAGS'] += ['-DVIXL_INCLUDE_TARGET_A32']
327 if 't32' in env['target']: env['CCFLAGS'] += ['-DVIXL_INCLUDE_TARGET_T32']
328 if 'a64' in env['target']: env['CCFLAGS'] += ['-DVIXL_INCLUDE_TARGET_A64']
346 # Other build options must match 'option:value'
373 # -Wimplicit-fallthrough only works when compiling the code base as C++11 or
376 env.Append(CPPFLAGS = ['-Wimplicit-fallthrough', '-Wshorten-64-to-32'])
378 # The '-Wunreachable-code' flag breaks builds for clang 3.4.
379 if compiler != 'clang-3.4':
380 env.Append(CPPFLAGS = ['-Wunreachable-code'])
383 env.Append(LINKFLAGS = ['-fuse-ld=lld'])
390 if compiler == 'gcc-4.8':
391 env.Append(CPPFLAGS = ['-Wno-maybe-uninitialized'])
397 and compiler >= 'gcc-6':
398 env.Append(CPPFLAGS = ['-Wno-terminate'])
401 if compiler >= 'gcc-5':
402 env.Append(CPPFLAGS = ['-Wsuggest-override'])
403 elif compiler >= 'clang-3.6':
404 env.Append(CPPFLAGS = ['-Winconsistent-missing-override'])
416 env.Append(CPPFLAGS = ['-std=' + env['std']])
422 # Build-time option values are embedded in the build path to avoid requiring a
423 # full build when an option changes.
439 # Create a link to the latest build directory.
440 # Use `-r` to avoid failure when `latest` exists and is a directory.
441 subprocess.check_call(["rm", "-rf", config.dir_build_latest])
443 subprocess.check_call(["ln", "-s", build_dir, config.dir_build_latest])
457 # Build ------------------------------------------------------------------------
465 # Abort the build if any command line option is unknown or invalid.
468 print('Unknown build options: ' + str(unknown_build_options.keys()))
480 top_level_targets.Add('', 'Build the VIXL library.')
499 top_level_targets.Add('aarch32_examples', 'Build the examples for AArch32.')
511 top_level_targets.Add('aarch32_benchmarks', 'Build the benchmarks for AArch32.')
518 CCFLAGS = [flag for flag in env['CCFLAGS'] if flag != '-O3']))
526 bench_utils = env.Object(join(aarch64_benchmarks_build_dir, 'bench-utils.o'),
527 join(aarch64_benchmarks_build_dir, 'bench-utils.cc'))
529 if bench != 'bench-utils':
535 top_level_targets.Add('aarch64_benchmarks', 'Build the benchmarks for AArch64.')
547 top_level_targets.Add('aarch64_examples', 'Build the examples for AArch64.')
554 CCFLAGS = [flag for flag in env['CCFLAGS'] if flag != '-O3']))
563 CCFLAGS = env['CCFLAGS'] + ['-DTEST_EXAMPLES'],
567 test = env.Program(join(test_build_dir, 'test-runner'), test_objects,
570 top_level_targets.Add('tests', 'Build the tests.')
574 top_level_targets.Add('all', 'Build all the targets above.')
580 # Build documentation
581 doc = [
583 env.Markdown('doc/changelog.md'),
584 env.Markdown('doc/aarch32/getting-started-aarch32.md'),
585 env.Markdown('doc/aarch32/design/code-generation-aarch32.md'),
586 env.Markdown('doc/aarch32/design/literal-pool-aarch32.md'),
587 env.Markdown('doc/aarch64/supported-instructions-aarch64.md'),
588 env.Markdown('doc/aarch64/getting-started-aarch64.md'),
589 env.Markdown('doc/aarch64/topics/ycm.md'),
590 env.Markdown('doc/aarch64/topics/extending-the-disassembler.md'),
591 env.Markdown('doc/aarch64/topics/index.md'),
593 env.Alias('doc', doc)
594 extra_targets.Add('doc', 'Convert documentation to HTML (requires the '