# # RTEMS Tools Project (http://www.rtems.org/) # Copyright 2014, 2020 Chris Johns (chrisj@rtems.org) # Copyright 2018 embedded brains GmbH # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # # RTEMS miscellaneous build script. # import sys def init(ctx): pass def options(opt): opt.load('compiler_c') def configure(conf): conf.load('compiler_c') conf.check_cc(fragment = ''' #include int main() { size_t l = strnlen("string", 10); } ''', cflags = '-Wall', define_name = 'HAVE_STRNLEN', msg = 'Checking for strnlen', mandatory = False) conf.write_config_header('config.h') def build(bld): # # The local configuration. # conf = {} # # Build flags. # conf['warningflags'] = ['-Wall', '-Wextra', '-pedantic'] conf['optflags'] = bld.env.C_OPTS conf['cflags'] = ['-pipe', '-g'] + conf['optflags'] conf['linkflags'] = ['-g'] # # The list of defines # defines = ['RTEMS_VERSION=\"%s\"' % (bld.env.RTEMS_VERSION), 'RTEMS_RELEASE=\"%s\"' % (bld.env.RTEMS_RELEASE)] # # Build the bin2c. # bld.program(target = 'rtems-bin2c', source = ['bin2c/rtems-bin2c.c', 'bin2c/compat.c'], includes = ['.'], defines = defines, cflags = conf['cflags'] + conf['warningflags'], linkflags = conf['linkflags']) # # Install the boot image code. # bld(features = 'py', source = ['__init__.py', 'tools/__init__.py', 'tools/boot.py', 'tools/tftpproxy.py', 'tools/getmac/__init__.py', 'tools/getmac/getmac.py'], install_from = '.', install_path = '${PREFIX}/share/rtems/misc') bld.install_files('${PREFIX}/bin', ['rtems-boot-image', 'rtems-tftp-proxy', 'tools/mkimage.py'], chmod = 0o755) bld.install_files('${PREFIX}/share/rtems/tools/config', 'tools/config/rtems-boot.ini') def tags(ctx): ctx.exec_command('etags $(find . -name \*.[sSch])', shell = True)