示例#1
0
def s3_fix_kwargs(bld, kwargs):
    '''fix the build arguments for s3 build rules to include the
    necessary includes, subdir and cflags options '''
    s3dir = os.path.join(bld.env.srcdir, 'source3')
    s3reldir = os_path_relpath(s3dir, bld.curdir)

    # the extra_includes list is relative to the source3 directory
    extra_includes = ['.', 'include', 'lib', '../lib/tdb_compat']
    # local heimdal paths only included when USING_SYSTEM_KRB5 is not set
    if not bld.CONFIG_SET("USING_SYSTEM_KRB5"):
        extra_includes += [
            '../source4/heimdal/lib/com_err', '../source4/heimdal/lib/krb5',
            '../source4/heimdal/lib/gssapi', '../source4/heimdal_build',
            '../bin/default/source4/heimdal/lib/asn1'
        ]

    if bld.CONFIG_SET('USING_SYSTEM_TDB'):
        (tdb_includes, tdb_ldflags, tdb_cpppath) = library_flags(bld, 'tdb')
        extra_includes += tdb_cpppath
    else:
        extra_includes += ['../lib/tdb/include']

    if bld.CONFIG_SET('USING_SYSTEM_TEVENT'):
        (tevent_includes, tevent_ldflags,
         tevent_cpppath) = library_flags(bld, 'tevent')
        extra_includes += tevent_cpppath
    else:
        extra_includes += ['../lib/tevent']

    if bld.CONFIG_SET('USING_SYSTEM_TALLOC'):
        (talloc_includes, talloc_ldflags,
         talloc_cpppath) = library_flags(bld, 'talloc')
        extra_includes += talloc_cpppath
    else:
        extra_includes += ['../lib/talloc']

    if bld.CONFIG_SET('USING_SYSTEM_POPT'):
        (popt_includes, popt_ldflags,
         popt_cpppath) = library_flags(bld, 'popt')
        extra_includes += popt_cpppath
    else:
        extra_includes += ['../lib/popt']

    if bld.CONFIG_SET('USING_SYSTEM_INIPARSER'):
        (iniparser_includes, iniparser_ldflags,
         iniparser_cpppath) = library_flags(bld, 'iniparser')
        extra_includes += iniparser_cpppath
    else:
        extra_includes += ['../lib/iniparser']

    # s3 builds assume that they will have a bunch of extra include paths
    includes = []
    for d in extra_includes:
        includes += [os.path.join(s3reldir, d)]

    # the rule may already have some includes listed
    if 'includes' in kwargs:
        includes += TO_LIST(kwargs['includes'])
    kwargs['includes'] = includes
示例#2
0
文件: samba3.py 项目: g1z2yong/samba4
def s3_fix_kwargs(bld, kwargs):
    '''fix the build arguments for s3 build rules to include the
    necessary includes, subdir and cflags options '''
    s3dir = os.path.join(bld.env.srcdir, 'source3')
    s3reldir = os_path_relpath(s3dir, bld.curdir)

    # the extra_includes list is relative to the source3 directory
    extra_includes = [ '.', 'include', 'lib', '../lib/tdb_compat' ]
    # local heimdal paths only included when USING_SYSTEM_KRB5 is not set
    if not bld.CONFIG_SET("USING_SYSTEM_KRB5"):
        extra_includes += [ '../source4/heimdal/lib/com_err',
                            '../source4/heimdal/lib/krb5',
                            '../source4/heimdal/lib/gssapi',
                            '../source4/heimdal_build',
                            '../bin/default/source4/heimdal/lib/asn1' ]

    if bld.CONFIG_SET('USING_SYSTEM_TDB'):
        (tdb_includes, tdb_ldflags, tdb_cpppath) = library_flags(bld, 'tdb')
        extra_includes += tdb_cpppath
    else:
        extra_includes += [ '../lib/tdb/include' ]

    if bld.CONFIG_SET('USING_SYSTEM_TEVENT'):
        (tevent_includes, tevent_ldflags, tevent_cpppath) = library_flags(bld, 'tevent')
        extra_includes += tevent_cpppath
    else:
        extra_includes += [ '../lib/tevent' ]

    if bld.CONFIG_SET('USING_SYSTEM_TALLOC'):
        (talloc_includes, talloc_ldflags, talloc_cpppath) = library_flags(bld, 'talloc')
        extra_includes += talloc_cpppath
    else:
        extra_includes += [ '../lib/talloc' ]

    if bld.CONFIG_SET('USING_SYSTEM_POPT'):
        (popt_includes, popt_ldflags, popt_cpppath) = library_flags(bld, 'popt')
        extra_includes += popt_cpppath
    else:
        extra_includes += [ '../lib/popt' ]

    if bld.CONFIG_SET('USING_SYSTEM_INIPARSER'):
        (iniparser_includes, iniparser_ldflags, iniparser_cpppath) = library_flags(bld, 'iniparser')
        extra_includes += iniparser_cpppath
    else:
        extra_includes += [ '../lib/iniparser' ]

    # s3 builds assume that they will have a bunch of extra include paths
    includes = []
    for d in extra_includes:
        includes += [ os.path.join(s3reldir, d) ]

    # the rule may already have some includes listed
    if 'includes' in kwargs:
        includes += TO_LIST(kwargs['includes'])
    kwargs['includes'] = includes
示例#3
0
def s3_fix_kwargs(bld, kwargs):
    '''fix the build arguments for s3 build rules to include the
    necessary includes, subdir and cflags options '''
    s3dir = os.path.join(bld.env.srcdir, 'source3')
    s3reldir = os.path.relpath(s3dir, bld.path.abspath())

    # the extra_includes list is relative to the source3 directory
    extra_includes = [ '.', 'include', 'lib' ]
    # local heimdal paths must only be included when using our embedded Heimdal
    if bld.CONFIG_SET("USING_EMBEDDED_HEIMDAL"):
        extra_includes += [ '../third_party/heimdal/lib/com_err',
                            '../third_party/heimdal/lib/base',
                            '../third_party/heimdal/lib/krb5',
                            '../third_party/heimdal/lib/gssapi/gssapi',
                            '../third_party/heimdal_build/include',
                            '../bin/default/third_party/heimdal/lib/asn1' ]

    if bld.CONFIG_SET('USING_SYSTEM_TDB'):
        (tdb_includes, tdb_ldflags, tdb_cpppath) = library_flags(bld, 'tdb')
        extra_includes += tdb_cpppath
    else:
        extra_includes += [ '../lib/tdb/include' ]

    if bld.CONFIG_SET('USING_SYSTEM_TEVENT'):
        (tevent_includes, tevent_ldflags, tevent_cpppath) = library_flags(bld, 'tevent')
        extra_includes += tevent_cpppath
    else:
        extra_includes += [ '../lib/tevent' ]

    if bld.CONFIG_SET('USING_SYSTEM_TALLOC'):
        (talloc_includes, talloc_ldflags, talloc_cpppath) = library_flags(bld, 'talloc')
        extra_includes += talloc_cpppath
    else:
        extra_includes += [ '../lib/talloc' ]

    if bld.CONFIG_SET('USING_SYSTEM_POPT'):
        (popt_includes, popt_ldflags, popt_cpppath) = library_flags(bld, 'popt')
        extra_includes += popt_cpppath
    else:
        extra_includes += [ '../lib/popt' ]

    # s3 builds assume that they will have a bunch of extra include paths
    includes = []
    for d in extra_includes:
        includes += [ os.path.join(s3reldir, d) ]

    # the rule may already have some includes listed
    if 'includes' in kwargs:
        includes += TO_LIST(kwargs['includes'])
    kwargs['includes'] = includes
示例#4
0
def build_dependencies(self):
    '''This builds the dependency list for a target. It runs after all the targets are declared

    The reason this is not just done in the SAMBA_*() rules is that we have no way of knowing
    the full dependency list for a target until we have all of the targets declared.
    '''

    if self.samba_type in ['LIBRARY', 'BINARY', 'PYTHON']:
        self.uselib = list(self.final_syslibs)
        self.uselib_local = list(self.final_libs)
        self.add_objects = list(self.final_objects)

        # extra link flags from pkg_config
        libs = self.final_syslibs.copy()

        (cflags, ldflags, cpppath) = library_flags(self, list(libs))
        new_ldflags = getattr(self, 'samba_ldflags', [])[:]
        new_ldflags.extend(ldflags)
        self.ldflags = new_ldflags

        if getattr(self, 'allow_undefined_symbols',
                   False) and self.env.undefined_ldflags:
            for f in self.env.undefined_ldflags:
                self.ldflags.remove(f)

        if getattr(self, 'allow_undefined_symbols',
                   False) and self.env.undefined_ignore_ldflags:
            for f in self.env.undefined_ignore_ldflags:
                self.ldflags.append(f)

        debug(
            'deps: computed dependencies for target %s: uselib=%s uselib_local=%s add_objects=%s',
            self.sname, self.uselib, self.uselib_local, self.add_objects)

    if self.samba_type in ['SUBSYSTEM']:
        # this is needed for the cflags of libs that come from pkg_config
        self.uselib = list(self.final_syslibs)
        self.uselib.extend(list(self.direct_syslibs))
        for lib in self.final_libs:
            t = self.bld.get_tgen_by_name(lib)
            self.uselib.extend(list(t.final_syslibs))
        self.uselib = unique_list(self.uselib)

    if getattr(self, 'uselib', None):
        up_list = []
        for l in self.uselib:
            up_list.append(l.upper())
        self.uselib = up_list
示例#5
0
def build_dependencies(self):
    '''This builds the dependency list for a target. It runs after all the targets are declared

    The reason this is not just done in the SAMBA_*() rules is that we have no way of knowing
    the full dependency list for a target until we have all of the targets declared.
    '''

    if self.samba_type in ['LIBRARY', 'BINARY', 'PYTHON']:
        self.uselib        = list(self.final_syslibs)
        self.uselib_local  = list(self.final_libs)
        self.add_objects   = list(self.final_objects)

        # extra link flags from pkg_config
        libs = self.final_syslibs.copy()

        (ccflags, ldflags, cpppath) = library_flags(self, list(libs))
        new_ldflags        = getattr(self, 'samba_ldflags', [])[:]
        new_ldflags.extend(ldflags)
        self.ldflags       = new_ldflags

        if getattr(self, 'allow_undefined_symbols', False) and self.env.undefined_ldflags:
            for f in self.env.undefined_ldflags:
                self.ldflags.remove(f)

        if getattr(self, 'allow_undefined_symbols', False) and self.env.undefined_ignore_ldflags:
            for f in self.env.undefined_ignore_ldflags:
                self.ldflags.append(f)

        debug('deps: computed dependencies for target %s: uselib=%s uselib_local=%s add_objects=%s',
              self.sname, self.uselib, self.uselib_local, self.add_objects)

    if self.samba_type in ['SUBSYSTEM']:
        # this is needed for the ccflags of libs that come from pkg_config
        self.uselib = list(self.final_syslibs)
        self.uselib.extend(list(self.direct_syslibs))
        for lib in self.final_libs:
            t = self.bld.get_tgen_by_name(lib)
            self.uselib.extend(list(t.final_syslibs))
        self.uselib = unique_list(self.uselib)

    if getattr(self, 'uselib', None):
        up_list = []
        for l in self.uselib:
           up_list.append(l.upper())
        self.uselib = up_list