[740] | 1 | #!/usr/bin/env python
|
---|
| 2 |
|
---|
| 3 | import string, Utils, Options
|
---|
| 4 | from dynconfig import *
|
---|
| 5 |
|
---|
| 6 | def set_options(opt):
|
---|
| 7 | # get all the basic GNU options from the gnu_dirs tool
|
---|
| 8 | opt.tool_options('gnu_dirs')
|
---|
| 9 | for option in dir_options.keys():
|
---|
| 10 | default = dir_options[option][0]
|
---|
| 11 | help = dir_options[option][1]
|
---|
| 12 | varname = get_varname(option)
|
---|
| 13 | opt.add_option('--%s' % option,
|
---|
| 14 | help=(help + ' [%s]' % default),
|
---|
| 15 | action="store", dest=varname, default=default)
|
---|
| 16 |
|
---|
| 17 |
|
---|
| 18 | cflags_vars = [ 'CONFIGFILE' ]
|
---|
| 19 |
|
---|
| 20 | def configure(conf):
|
---|
| 21 | # get all the basic GNU options from the gnu_dirs tool
|
---|
| 22 | conf.check_tool('gnu_dirs')
|
---|
| 23 | for option in dir_options.keys():
|
---|
| 24 | varname = get_varname(option)
|
---|
| 25 | value = getattr(Options.options, varname, None)
|
---|
| 26 | value = Utils.subst_vars(value, conf.env)
|
---|
| 27 | conf.ASSERT(value is not None, "Missing configure option %s" % varname)
|
---|
| 28 | conf.ASSERT(varname not in conf.env, "Variable %s already defined" % varname)
|
---|
| 29 | conf.env[varname] = value
|
---|
| 30 |
|
---|
| 31 | for f in dyn_cflags.keys():
|
---|
| 32 | # substitute twice, as we could have substitutions containing variables
|
---|
| 33 | v = Utils.subst_vars(dyn_cflags[f], conf.env)
|
---|
| 34 | v = Utils.subst_vars(v, conf.env)
|
---|
| 35 | conf.ASSERT(v != '', "Empty dynconfig value for %s" % f)
|
---|
| 36 | conf.ASSERT(v.find('${') == -1, "Unsubstituted variable in %s : %s : %s" % (f, dyn_cflags[f], v))
|
---|
| 37 | if f not in conf.env:
|
---|
| 38 | conf.env[f] = v
|
---|
| 39 | if f in cflags_vars:
|
---|
| 40 | conf.DEFINE(f, v, quote=True)
|
---|
| 41 |
|
---|
| 42 | def build(bld):
|
---|
| 43 | cflags = dynconfig_cflags(bld)
|
---|
| 44 | bld.SAMBA3_SUBSYSTEM('DYNCONFIG',
|
---|
| 45 | '../dynconfig.c',
|
---|
| 46 | deps='replace talloc tdb popt',
|
---|
| 47 | cflags=cflags)
|
---|
| 48 |
|
---|
| 49 |
|
---|
| 50 | def dynconfig_cflags(bld):
|
---|
| 51 | '''work out the extra CFLAGS for dynconfig.c'''
|
---|
| 52 | cflags = []
|
---|
| 53 | for f in dyn_cflags.keys():
|
---|
| 54 | # substitute twice, as we could have substitutions containing variables
|
---|
| 55 | v = Utils.subst_vars(dyn_cflags[f], bld.env)
|
---|
| 56 | v = Utils.subst_vars(v, bld.env)
|
---|
| 57 | bld.ASSERT(v != '', "Empty dynconfig value for %s" % f)
|
---|
| 58 | bld.ASSERT(v.find('${') == -1, "Unsubstituted variable in %s : %s : %s" % (f, dyn_cflags[f], v))
|
---|
| 59 | cflags.append('-D%s="%s"' % (f, v))
|
---|
| 60 | return cflags
|
---|