Ejemplo n.º 1
0
def find_owcc(conf):
    v = conf.env
    cc = None
    if v.CC:
        cc = v.CC
    else:
        cc = conf.find_program('cc', var='CC')
    if not cc:
        conf.fatal('owcc was not found')

    try:
        out = conf.cmd_and_log(cc + ['-v'])
    except Errors.WafError:
        conf.fatal('%r -v could not be executed' % cc)
    if not 'Open Watcom' in out:
        conf.fatal('failed to detect owcc')

    v.CC = cc
    v.CC_NAME = 'owcc'
    v.CXX = v.CC
    v.CXX_NAME = v.cc_NAME
    if not v.AR:
        conf.find_program('wlib', var='AR')
    conf.add_os_flags('ARFLAGS')
    if not v.ARFLAGS:
        v.ARFLAGS = ['-fo']
Ejemplo n.º 2
0
def find_ar(conf):
    """Configuration helper used by C/C++ tools to enable the support for static libraries"""
    """Finds the ar program and sets the default flags in ``conf.env.ARFLAGS``"""
    conf.find_program('%sgcc-ar' % conf.options.cross, var='AR')
    conf.add_os_flags('ARFLAGS')
    if not conf.env.ARFLAGS:
        conf.env.ARFLAGS = ['rcs']
Ejemplo n.º 3
0
def configure(conf):
	conf.find_nfort()
	conf.find_program('nar',var='AR')
	conf.add_os_flags('ARFLAGS')
	if not conf.env.ARFLAGS:
		conf.env.ARFLAGS=['rcs']
	conf.fc_flags()
	conf.fc_add_flags()
	conf.nfort_flags()
Ejemplo n.º 4
0
def configure(conf):
	conf.find_nfort()
	conf.find_program('nar',var='AR')
	conf.add_os_flags('ARFLAGS')
	if not conf.env.ARFLAGS:
		conf.env.ARFLAGS=['rcs']
	conf.fc_flags()
	conf.fc_add_flags()
	conf.nfort_flags()
Ejemplo n.º 5
0
def configure(conf):
	conf.find_sxfc()
	conf.find_program('sxar',var='AR')
	conf.add_os_flags('ARFLAGS')
	if not conf.env.ARFLAGS:
		conf.env.ARFLAGS=['rcs']

	conf.fc_flags()
	conf.fc_add_flags()
	conf.sxfc_flags()
Ejemplo n.º 6
0
def configure(conf):
    conf.find_sxfc()
    conf.find_program("sxar", var="AR")
    conf.add_os_flags("ARFLAGS")
    if not conf.env.ARFLAGS:
        conf.env.ARFLAGS = ["rcs"]

    conf.fc_flags()
    conf.fc_add_flags()
    conf.sxfc_flags()
Ejemplo n.º 7
0
def configure(conf):
    conf.find_sxfc()
    conf.find_program('sxar', var='AR')
    conf.add_os_flags('ARFLAGS')
    if not conf.env.ARFLAGS:
        conf.env.ARFLAGS = ['rcs']

    conf.fc_flags()
    conf.fc_add_flags()
    conf.sxfc_flags()
Ejemplo n.º 8
0
def fc_add_flags(conf):
    """
	Adds FCFLAGS / LDFLAGS / LINKFLAGS from os.environ to conf.env
	"""
    conf.add_os_flags('FCPPFLAGS', dup=False)
    conf.add_os_flags('FCFLAGS', dup=False)
    conf.add_os_flags('LINKFLAGS', dup=False)
    conf.add_os_flags('LDFLAGS', dup=False)
Ejemplo n.º 9
0
def fc_add_flags(conf):
	"""
	Adds FCFLAGS / LDFLAGS / LINKFLAGS from os.environ to conf.env
	"""
	conf.add_os_flags('FCPPFLAGS', dup=False)
	conf.add_os_flags('FCFLAGS', dup=False)
	conf.add_os_flags('LINKFLAGS', dup=False)
	conf.add_os_flags('LDFLAGS', dup=False)
Ejemplo n.º 10
0
def fc_add_flags(conf):
    """
	Add FCFLAGS / LDFLAGS / LINKFLAGS from os.environ to conf.env
	"""
    conf.add_os_flags('FCFLAGS')
    conf.add_os_flags('LINKFLAGS')
    conf.add_os_flags('LDFLAGS')
Ejemplo n.º 11
0
def fc_add_flags(conf):
    """
	Add FCFLAGS / LDFLAGS / LINKFLAGS from os.environ to conf.env
	"""
    conf.add_os_flags("FCFLAGS", dup=False)
    conf.add_os_flags("LINKFLAGS", dup=False)
    conf.add_os_flags("LDFLAGS", dup=False)
Ejemplo n.º 12
0
def fc_add_flags(conf):
	"""
	Add FCFLAGS / LDFLAGS / LINKFLAGS from os.environ to conf.env
	"""
	conf.add_os_flags('FCFLAGS')
	conf.add_os_flags('LINKFLAGS')
	conf.add_os_flags('LDFLAGS')
Ejemplo n.º 13
0
def link_add_flags(conf):
    conf.add_os_flags('LINKFLAGS', dup=False)
    conf.add_os_flags('LDFLAGS', dup=False)
Ejemplo n.º 14
0
def cc_add_flags(conf):
    conf.add_os_flags('CPPFLAGS', dup=False)
    conf.add_os_flags('CFLAGS', dup=False)
Ejemplo n.º 15
0
def cxx_add_flags(conf):
    """
	Adds CXXFLAGS / CPPFLAGS from os.environ to conf.env
	"""
    conf.add_os_flags('CPPFLAGS', dup=False)
    conf.add_os_flags('CXXFLAGS', dup=False)
Ejemplo n.º 16
0
def link_add_flags(conf):
    conf.add_os_flags('LINKFLAGS')
    conf.add_os_flags('LDFLAGS', 'LINKFLAGS')
Ejemplo n.º 17
0
def cc_add_flags(conf):
	conf.add_os_flags('CPPFLAGS',dup=False)
	conf.add_os_flags('CFLAGS',dup=False)
Ejemplo n.º 18
0
def cxx_add_flags(conf):
    conf.add_os_flags("CXXFLAGS")
Ejemplo n.º 19
0
def fc_add_flags(conf):
	conf.add_os_flags('FCFLAGS')
	conf.add_os_flags('LDFLAGS','LINKFLAGS')
Ejemplo n.º 20
0
def link_add_flags(conf):
	"""
	Adds LINKFLAGS / LDFLAGS from os.environ to conf.env
	"""
	conf.add_os_flags('LINKFLAGS', dup=False)
	conf.add_os_flags('LDFLAGS', dup=False)
Ejemplo n.º 21
0
Archivo: ar.py Proyecto: ArduPilot/waf
def configure(conf):
    """Finds the ar program and sets the default flags in ``conf.env.ARFLAGS``"""
    conf.find_program("ar", var="AR")
    conf.add_os_flags("ARFLAGS")
    if not conf.env.ARFLAGS:
        conf.env.ARFLAGS = ["rcs"]
Ejemplo n.º 22
0
def fc_add_flags(conf):
    conf.add_os_flags("FCFLAGS", dup=False)
    conf.add_os_flags("LINKFLAGS", dup=False)
    conf.add_os_flags("LDFLAGS", dup=False)
Ejemplo n.º 23
0
def link_add_flags(conf):
	conf.add_os_flags('LINKFLAGS',dup=False)
	conf.add_os_flags('LDFLAGS',dup=False)
Ejemplo n.º 24
0
def cxx_add_flags(conf):
	conf.add_os_flags('CPPFLAGS',dup=False)
	conf.add_os_flags('CXXFLAGS',dup=False)
Ejemplo n.º 25
0
def cxx_add_flags(conf):
    """
	Read the CXXFLAGS/CPPFLAGS and add to conf.env.CXXFLAGS
	"""
    conf.add_os_flags('CPPFLAGS', 'CXXFLAGS')
    conf.add_os_flags('CXXFLAGS')
Ejemplo n.º 26
0
def cc_add_flags(conf):
	"""
	Read the CFLAGS/CPPFLAGS from os.environ and add to conf.env.CFLAGS
	"""
	conf.add_os_flags('CPPFLAGS', 'CFLAGS')
	conf.add_os_flags('CFLAGS')
Ejemplo n.º 27
0
def link_add_flags(conf):
	"""
	Read the LINKFLAGS/LDFLAGS and add to conf.env.LDFLAGS
	"""
	conf.add_os_flags('LINKFLAGS')
	conf.add_os_flags('LDFLAGS', 'LINKFLAGS')
Ejemplo n.º 28
0
def link_add_flags(conf):
    conf.add_os_flags("LINKFLAGS")
    conf.add_os_flags("LDFLAGS", "LINKFLAGS")
Ejemplo n.º 29
0
def cc_add_flags(conf):
    conf.add_os_flags("CFLAGS")
Ejemplo n.º 30
0
def fc_add_flags(conf):
    conf.add_os_flags('FCFLAGS')
    conf.add_os_flags('LDFLAGS', 'LINKFLAGS')
Ejemplo n.º 31
0
def cxx_add_flags(conf):
	"""
	Add CXXFLAGS / CPPFLAGS from os.environ to conf.env
	"""
	conf.add_os_flags('CPPFLAGS', 'CXXFLAGS')
	conf.add_os_flags('CXXFLAGS')
Ejemplo n.º 32
0
def cxx_add_flags(conf):
	"""
	Read the CXXFLAGS/CPPFLAGS and add to conf.env.CXXFLAGS
	"""
	conf.add_os_flags('CPPFLAGS', 'CXXFLAGS')
	conf.add_os_flags('CXXFLAGS')
Ejemplo n.º 33
0
def cxx_add_flags(conf):
	conf.add_os_flags('CPPFLAGS','CXXFLAGS')
	conf.add_os_flags('CXXFLAGS')
Ejemplo n.º 34
0
def cxx_add_flags(conf):
	"""
	Adds CXXFLAGS / CPPFLAGS from os.environ to conf.env
	"""
	conf.add_os_flags('CPPFLAGS', dup=False)
	conf.add_os_flags('CXXFLAGS', dup=False)
Ejemplo n.º 35
0
def cc_add_flags(conf):
    conf.add_os_flags('CPPFLAGS', 'CFLAGS')
    conf.add_os_flags('CFLAGS')
def SAMBA_CONFIG_H(conf, path=None):
    '''write out config.h in the right directory'''
    # we don't want to produce a config.h in places like lib/replace
    # when we are building projects that depend on lib/replace
    if not IN_LAUNCH_DIR(conf):
        return

    # we need to build real code that can't be optimized away to test
    stack_protect_list = ['-fstack-protector-strong', '-fstack-protector']
    for stack_protect_flag in stack_protect_list:
        flag_supported = conf.check(
            fragment='''
                                    #include <stdio.h>

                                    int main(void)
                                    {
                                        char t[100000];
                                        while (fgets(t, sizeof(t), stdin));
                                        return 0;
                                    }
                                    ''',
            execute=0,
            cflags=['-Werror', '-Wp,-D_FORTIFY_SOURCE=2', stack_protect_flag],
            mandatory=False,
            msg='Checking if compiler accepts %s' % (stack_protect_flag))
        if flag_supported:
            conf.ADD_CFLAGS('%s' % (stack_protect_flag))
            break

    flag_supported = conf.check(
        fragment='''
                                #include <stdio.h>

                                int main(void)
                                {
                                    char t[100000];
                                    while (fgets(t, sizeof(t), stdin));
                                    return 0;
                                }
                                ''',
        execute=0,
        cflags=['-Werror', '-fstack-clash-protection'],
        mandatory=False,
        msg='Checking if compiler accepts -fstack-clash-protection')
    if flag_supported:
        conf.ADD_CFLAGS('-fstack-clash-protection')

    if Options.options.debug:
        conf.ADD_CFLAGS('-g', testflags=True)

    if Options.options.pidl_developer:
        conf.env.PIDL_DEVELOPER_MODE = True

    if Options.options.developer:
        conf.env.DEVELOPER_MODE = True

        conf.ADD_CFLAGS('-g', testflags=True)
        conf.ADD_CFLAGS('-Wall', testflags=True)
        conf.ADD_CFLAGS('-Wshadow', testflags=True)
        conf.ADD_CFLAGS('-Wmissing-prototypes', testflags=True)
        if CHECK_CODE(
                conf,
                'struct a { int b; }; struct c { struct a d; } e = { };',
                'CHECK_C99_INIT',
                link=False,
                cflags=
                '-Wmissing-field-initializers -Werror=missing-field-initializers',
                msg="Checking C99 init of nested structs."):
            conf.ADD_CFLAGS('-Wmissing-field-initializers', testflags=True)
        conf.ADD_CFLAGS('-Wformat-overflow=2', testflags=True)
        conf.ADD_CFLAGS('-Wformat-zero-length', testflags=True)
        conf.ADD_CFLAGS('-Wcast-align -Wcast-qual', testflags=True)
        conf.ADD_CFLAGS('-fno-common', testflags=True)

        conf.ADD_CFLAGS('-Werror=address', testflags=True)
        # we add these here to ensure that -Wstrict-prototypes is not set during configure
        conf.ADD_CFLAGS('-Werror=strict-prototypes -Wstrict-prototypes',
                        testflags=True)
        conf.ADD_CFLAGS('-Werror=write-strings -Wwrite-strings',
                        testflags=True)
        conf.ADD_CFLAGS('-Werror-implicit-function-declaration',
                        testflags=True)
        conf.ADD_CFLAGS('-Werror=pointer-arith -Wpointer-arith',
                        testflags=True)
        conf.ADD_CFLAGS(
            '-Werror=declaration-after-statement -Wdeclaration-after-statement',
            testflags=True)
        conf.ADD_CFLAGS('-Werror=return-type -Wreturn-type', testflags=True)
        conf.ADD_CFLAGS('-Werror=uninitialized -Wuninitialized',
                        testflags=True)
        conf.ADD_CFLAGS('-Wimplicit-fallthrough', testflags=True)
        conf.ADD_CFLAGS('-Werror=strict-overflow -Wstrict-overflow=2',
                        testflags=True)

        conf.ADD_CFLAGS('-Wformat=2 -Wno-format-y2k', testflags=True)
        conf.ADD_CFLAGS('-Wno-format-zero-length', testflags=True)
        conf.ADD_CFLAGS('-Werror=format-security -Wformat-security',
                        testflags=True,
                        prereq_flags='-Wformat')
        # This check is because for ldb_search(), a NULL format string
        # is not an error, but some compilers complain about that.
        if CHECK_CFLAGS(
                conf, ["-Werror=format", "-Wformat=2"], '''
int testformat(char *format, ...) __attribute__ ((format (__printf__, 1, 2)));

int main(void) {
        testformat(0);
        return 0;
}

'''):
            if not 'EXTRA_CFLAGS' in conf.env:
                conf.env['EXTRA_CFLAGS'] = []
            conf.env['EXTRA_CFLAGS'].extend(TO_LIST("-Werror=format"))

        if not Options.options.disable_warnings_as_errors:
            conf.ADD_NAMED_CFLAGS('PICKY_CFLAGS',
                                  '-Werror -Wno-error=deprecated-declarations',
                                  testflags=True)
            conf.ADD_NAMED_CFLAGS('PICKY_CFLAGS',
                                  '-Wno-error=tautological-compare',
                                  testflags=True)
            conf.ADD_NAMED_CFLAGS('PICKY_CFLAGS',
                                  '-Wno-error=cast-align',
                                  testflags=True)

    if Options.options.fatal_errors:
        conf.ADD_CFLAGS('-Wfatal-errors', testflags=True)

    if Options.options.pedantic:
        conf.ADD_CFLAGS('-W', testflags=True)

    if (Options.options.address_sanitizer
            or Options.options.undefined_sanitizer):
        conf.ADD_CFLAGS('-g -O1', testflags=True)
    if Options.options.address_sanitizer:
        conf.ADD_CFLAGS('-fno-omit-frame-pointer', testflags=True)
        conf.ADD_CFLAGS('-fsanitize=address', testflags=True)
        conf.ADD_LDFLAGS('-fsanitize=address', testflags=True)
        conf.env['ADDRESS_SANITIZER'] = True
    if Options.options.undefined_sanitizer:
        conf.ADD_CFLAGS('-fsanitize=undefined', testflags=True)
        conf.ADD_CFLAGS('-fsanitize=null', testflags=True)
        conf.ADD_CFLAGS('-fsanitize=alignment', testflags=True)
        conf.ADD_LDFLAGS('-fsanitize=undefined', testflags=True)
        conf.env['UNDEFINED_SANITIZER'] = True

    # Let people pass an additional ADDITIONAL_{CFLAGS,LDFLAGS}
    # environment variables which are only used the for final build.
    #
    # The CFLAGS and LDFLAGS environment variables are also
    # used for the configure checks which might impact their results.
    #
    # If these variables don't pass a smoke test, fail the configure

    conf.add_os_flags('ADDITIONAL_CFLAGS')
    if conf.env.ADDITIONAL_CFLAGS:
        conf.CHECK_CFLAGS(conf.env['ADDITIONAL_CFLAGS'], mandatory=True)
        conf.env['EXTRA_CFLAGS'].extend(conf.env['ADDITIONAL_CFLAGS'])

    conf.add_os_flags('ADDITIONAL_LDFLAGS')
    if conf.env.ADDITIONAL_LDFLAGS:
        conf.CHECK_LDFLAGS(conf.env['ADDITIONAL_LDFLAGS'], mandatory=True)
        conf.env['EXTRA_LDFLAGS'].extend(conf.env['ADDITIONAL_LDFLAGS'])

    if path is None:
        conf.write_config_header('default/config.h', top=True, remove=False)
    else:
        conf.write_config_header(os.path.join(conf.variant, path),
                                 remove=False)
    for key in conf.env.define_key:
        conf.undefine(key, from_env=False)
    conf.env.define_key = []
    conf.SAMBA_CROSS_CHECK_COMPLETE()
Ejemplo n.º 37
0
def configure(conf):
    """Find the ar program and set the default flags in ``conf.env.ARFLAGS``"""
    conf.find_program('xc16-ar', var='AR')
    conf.add_os_flags('ARFLAGS')
    if not conf.env.ARFLAGS:
        conf.env.ARFLAGS = ['rcs']
Ejemplo n.º 38
0
def cc_add_flags(conf):
	conf.add_os_flags('CPPFLAGS','CFLAGS')
	conf.add_os_flags('CFLAGS')
Ejemplo n.º 39
0
def cc_add_flags(conf):
    """
    Adds CFLAGS / CPPFLAGS from os.environ to conf.env
    """
    conf.add_os_flags("CPPFLAGS", dup=False)
    conf.add_os_flags("CFLAGS", dup=False)
Ejemplo n.º 40
0
def link_add_flags(conf):
	conf.add_os_flags('LINKFLAGS')
	conf.add_os_flags('LDFLAGS','LINKFLAGS')
Ejemplo n.º 41
0
def configure(conf):
    conf.find_program('ar', var='AR')
    conf.add_os_flags('ARFLAGS')
    if not conf.env.ARFLAGS:
        conf.env.ARFLAGS = ['rcs']
Ejemplo n.º 42
0
def cxx_add_flags(conf):
    conf.add_os_flags('CPPFLAGS', 'CXXFLAGS')
    conf.add_os_flags('CXXFLAGS')
Ejemplo n.º 43
0
def fc_add_flags(conf):
	conf.add_os_flags('FCFLAGS',dup=False)
	conf.add_os_flags('LINKFLAGS',dup=False)
	conf.add_os_flags('LDFLAGS',dup=False)
Ejemplo n.º 44
0
def fc_add_flags(conf):
    conf.add_os_flags('FCFLAGS', dup=False)
    conf.add_os_flags('LINKFLAGS', dup=False)
    conf.add_os_flags('LDFLAGS', dup=False)
Ejemplo n.º 45
0
def configure(conf):
    """Find the ar program and set the default flags in ``conf.env.ARFLAGS``"""
    conf.find_program('ar', var='AR')
    conf.add_os_flags('ARFLAGS')
    if not conf.env.ARFLAGS:
        conf.env.ARFLAGS = ['rcs']
Ejemplo n.º 46
0
def link_add_flags(conf):
    """
	Adds LINKFLAGS / LDFLAGS from os.environ to conf.env
	"""
    conf.add_os_flags('LINKFLAGS', dup=False)
    conf.add_os_flags('LDFLAGS', dup=False)
Ejemplo n.º 47
0
Archivo: ar.py Proyecto: WU-ARL/ndn-ops
def configure(conf):
	conf.find_program('ar',var='AR')
	conf.add_os_flags('ARFLAGS')
	if not conf.env.ARFLAGS:
		conf.env.ARFLAGS=['rcs']
Ejemplo n.º 48
0
def cxx_add_flags(conf):
    conf.add_os_flags('CPPFLAGS', dup=False)
    conf.add_os_flags('CXXFLAGS', dup=False)
Ejemplo n.º 49
0
def cxx_add_flags(conf):
	"""
	Add CXXFLAGS / CPPFLAGS from os.environ to conf.env
	"""
	conf.add_os_flags('CPPFLAGS', 'CXXFLAGS')
	conf.add_os_flags('CXXFLAGS')
Ejemplo n.º 50
0
def cc_add_flags(conf):
    """
	Read the CFLAGS/CPPFLAGS from os.environ and add to conf.env.CFLAGS
	"""
    conf.add_os_flags('CPPFLAGS', 'CFLAGS')
    conf.add_os_flags('CFLAGS')
Ejemplo n.º 51
0
def cc_add_flags(conf):
    """
	Adds CFLAGS / CPPFLAGS from os.environ to conf.env
	"""
    conf.add_os_flags("CPPFLAGS", dup=False)
    conf.add_os_flags("CFLAGS", dup=False)
Ejemplo n.º 52
0
def link_add_flags(conf):
    """
	Read the LINKFLAGS/LDFLAGS and add to conf.env.LDFLAGS
	"""
    conf.add_os_flags('LINKFLAGS')
    conf.add_os_flags('LDFLAGS', 'LINKFLAGS')
Ejemplo n.º 53
0
def configure(conf):
    """Finds the ar program and sets the default flags in ``conf.env.ARFLAGS``"""
    conf.find_program("ar", var="AR")
    conf.add_os_flags("ARFLAGS")
    if not conf.env.ARFLAGS:
        conf.env.ARFLAGS = ["rcs"]