| 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
|
|---|