s3-waf: Added support dynconfig cflags
authorKai Blin <kai@samba.org>
Fri, 26 Mar 2010 22:52:32 +0000 (16:52 -0600)
committerKai Blin <kai@samba.org>
Thu, 20 May 2010 20:16:12 +0000 (22:16 +0200)
Pair-Programmed-With: Andrew Tridgell <tridge@samba.org>

source3/build/dynconfig.py
source3/build/wscript

index 179af10ecf60211f69052b9fab2301de996bb45f..f267fecfe6cf3a84089f4f0913fdc239e0039f9d 100644 (file)
@@ -26,6 +26,7 @@ dyn_cflags = {
     'DATADIR'                        : '${DATADIR}',
     'LOGFILEBASE'                    : '${LOCALSTATEDIR}',
     'CONFIGDIR'                      : '${SYSCONFDIR}',
+    'CONFIGFILE'                     : '${CONFIGDIR}/smb.conf',
     'NCALRPCDIR'                     : '${LOCALSTATEDIR}/ncalrpc',
     'SWATDIR'                        : '${DATADIR}/swat',
     'PRIVATE_DIR'                    : '${PRIVATEDIR}',
index a4df794f3a1cf0d3b5ebca1b27f71dad0503ffa0..2940dd569d1e64dd92e8f601ada4df2e45293c50 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-import Options
+import string, Utils, Options
 from dynconfig import *
 
 def set_options(opt):
@@ -24,9 +24,29 @@ def configure(conf):
         conf.ASSERT(varname not in conf.env, "Variable %s already defined" % varname)
         conf.env[varname] = value
 
+    for f in dyn_cflags.keys():
+        # substitute twice, as we could have substitutions containing variables
+        v = Utils.subst_vars(dyn_cflags[f], conf.env)
+        v = Utils.subst_vars(v, conf.env)
+        conf.ASSERT(v != '', "Empty dynconfig value for %s" % f)
+        conf.ASSERT(v.find('${') == -1, "Unsubstituted variable in %s : %s : %s" % (f, dyn_cflags[f], v))
+        conf.env[f] = v
+
 def build(bld):
     cflags = dynconfig_cflags(bld)
     bld.SAMBA_SUBSYSTEM('DYNCONFIG',
                         '../dynconfig.c',
                         deps='replace talloc tdb',
                         cflags=cflags)
+
+def dynconfig_cflags(bld):
+    '''work out the extra CFLAGS for dynconfig.c'''
+    cflags = []
+    for f in dyn_cflags.keys():
+        # substitute twice, as we could have substitutions containing variables
+        v = Utils.subst_vars(dyn_cflags[f], bld.env)
+        v = Utils.subst_vars(v, bld.env)
+        bld.ASSERT(v != '', "Empty dynconfig value for %s" % f)
+        bld.ASSERT(v.find('${') == -1, "Unsubstituted variable in %s : %s : %s" % (f, dyn_cflags[f], v))
+        cflags.append('-D%s="%s"' % (f, v))
+    return cflags