# # RTEMS Tools Project (http://www.rtems.org/) # Copyright 2014-2016 Chris Johns (chrisj@rtems.org) # Copyright 2019 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 record build script. # def init(ctx): pass def options(opt): opt.load('compiler_c') opt.load('compiler_cxx') def configure(conf): conf.load('compiler_c') conf.load('compiler_cxx') try: cppflags = conf.cmd_and_log(['llvm-config', '--cppflags']) ldflags = conf.cmd_and_log(['llvm-config', '--ldflags']) conf.env.append_value('CPPFLAGS', cppflags.split()) conf.env.append_value('LDFLAGS', ldflags.split()) except: pass if conf.check_cxx(lib = 'LLVM', mandatory=False): conf.check(header_name='llvm/DebugInfo/Symbolize/Symbolize.h', features='cxx', mandatory=False) if conf.check(header_name='zlib.h', features='cxx', mandatory=False): conf.check_cxx(lib = 'z') conf.check_cxx(lib = 'ws2_32', mandatory=False) conf.check_cxx(cxxflags='-std=c++14', mandatory=False, define_name="HAVE_STD_CXX14") conf.write_config_header('config.h') def build(bld): # # The local configuration. # conf = {} # # Build flags. # conf['includes'] = ['.', 'record', 'record/inih'] conf['warningflags'] = ['-Wall', '-Wextra', '-pedantic'] conf['optflags'] = bld.env.C_OPTS cstd = '-std=c99' conf['cflags'] = [cstd] + ['-pipe', '-g'] + conf['optflags'] cxxstd = '-std=c++11' if bld.env.HAVE_STD_CXX14: cxxstd = '-std=c++14' conf['cxxflags'] = [cxxstd] + ['-pipe', '-g'] + conf['optflags'] conf['linkflags'] = ['-g'] conf['lib'] = [] if bld.env.LIB_WS2_32: conf['lib'].extend(bld.env.LIB_WS2_32) if bld.env.LIB_LLVM: conf['lib'].extend(bld.env.LIB_LLVM) if bld.env.LIB_Z: conf['lib'].extend(bld.env.LIB_Z) # # The list of defines # defines = ['HAVE_CONFIG_H', 'RTEMS_VERSION=\"%s\"' % (bld.env.RTEMS_VERSION), 'RTEMS_RELEASE=\"%s\"' % (bld.env.RTEMS_RELEASE)] # # Build rtems-record-lttng # bld.program(target = 'rtems-record-lttng', source = ['record/record-client.c', 'record/record-text.c', 'record/record-client-base.cc', 'record/record-filter-base64.cc', 'record/record-filter-zlib.cc', 'record/record-main-lttng.cc', 'record/inih/ini.c'], includes = conf['includes'], defines = defines, cflags = conf['cflags'] + conf['warningflags'], cxxflags = conf['cxxflags'] + conf['warningflags'], linkflags = conf['linkflags'], lib = conf['lib']) def tags(ctx): ctx.exec_command('etags $(find . -name \*.[sSch])', shell = True)