summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/SConstruct93
-rw-r--r--source4/auth/SConscript7
-rw-r--r--source4/lib/ldb/SConscript13
-rw-r--r--source4/lib/popt/SConscript10
-rw-r--r--source4/lib/replace/SConscript13
-rw-r--r--source4/lib/tls/SConscript7
-rw-r--r--source4/librpc/SConscript3
7 files changed, 92 insertions, 54 deletions
diff --git a/source4/SConstruct b/source4/SConstruct
index 9a219bf036..58f2640d09 100644
--- a/source4/SConstruct
+++ b/source4/SConstruct
@@ -7,13 +7,16 @@
# Copyright (C) 2005 Jelmer Vernooij <jelmer@samba.org>
# Published under the GNU GPL
+import cPickle
+
# We don't care about NFS builds...
opts = Options(None, ARGUMENTS)
opts.AddOptions(
BoolOption('developer','enable developer flags', 0),
PathOption('prefix','installation prefix','/usr/local/samba'),
- BoolOption('configh','use config.h file', 0)
+ BoolOption('configh','use config.h file', 0),
+ BoolOption('configure','run configure checks', False),
)
hostenv = Environment(
@@ -40,7 +43,25 @@ if hostenv['developer']:
hostenv.Append(CCFLAGS='-Wno-format-y2k')
hostenv.Append(CCFLAGS='-Wno-declaration-after-statement')
-defines = {}
+# Store configuration data in a dictionary.
+
+def saveconfig(data):
+ """Save configuration dict to a file."""
+ cached = cPickle.dump(data, open('sconf.cache', 'w'))
+
+def loadconfig():
+ """Load configuration dict from a file."""
+ try:
+ return cPickle.load(open('sconf.cache', 'r'))
+ except IOError:
+ return None
+
+defines = loadconfig()
+
+if defines == None:
+ hostenv['configure'] = 1
+ defines = {}
+
Export('defines')
hostenv.Append(CPPPATH = ['#heimdal_build', '#heimdal/lib/krb5',
@@ -80,36 +101,39 @@ paths = {
Export('paths')
-conf = hostenv.Configure()
-for h in ['sys/select.h','fcntl.h','sys/fcntl.h','sys/time.h'] + \
- ['utime.h','grp.h','sys/id.h','limits.h','memory.h'] + \
- ['compat.h','math.h','sys/param.h','ctype.h','sys/wait.h'] + \
- ['sys/resource.h','sys/ioctl.h','sys/ipc.h','sys/mode.h'] + \
- ['sys/mman.h','sys/filio.h','sys/priv.h','sys/shm.h','string.h'] + \
- ['strings.h','stdlib.h','sys/vfs.h','sys/fs/s5param.h','sys/filsys.h'] + \
- ['termios.h','termio.h','fnmatch.h','pwd.h','sys/termio.h'] + \
- ['sys/time.h','sys/statfs.h','sys/statvfs.h','stdarg.h'] + \
- ['security/pam_modules.h','security/_pam_macros.h','dlfcn.h'] + \
- ['sys/syslog.h','syslog.h','stdint.h','inttypes.h','locale.h'] + \
- ['shadow.h','nss.h','nss_common.h','ns_api.h','sys/security.h'] + \
- ['security/pam_appl.h','sys/capability.h','syscall.h','sys/syscall.h'] + \
- ['sys/acl.h']:
- if conf.CheckCHeader(h):
- defines['HAVE_' + h.upper().replace('.','_').replace('/','_')] = 1
-
-for f in ['dlopen','dlsym','dlerror','waitpid','getcwd','strdup'] + \
- ['strndup','strnlen','strerror','chroot','bzero','memset','strlcpy'] + \
- ['strlcat','memmove','vsnprintf','snprintf','asprintf','vasprintf'] + \
- ['setsid','pipe','crypt16','getauthuid','strftime','sigprocmask'] + \
- ['sigblock','sigaction','innetgr','setnetgrent','getnetgrent'] + \
- ['endnetgrent','initgroups','setgroups','sysconf','mktime','rename'] + \
- ['ftruncate','chsize','getpwanam','setlinebuf','srandom','random'] + \
- ['srand','rand','setenv','usleep','syslog','vsyslog','timegm'] + \
- ['backtrace','setbuffer','pread','pwrite']:
- if conf.CheckFunc(f):
- defines['HAVE_' + f.upper()] = 1
-
-conf.Finish()
+if hostenv['configure']:
+
+ conf = hostenv.Configure()
+
+ for h in ['sys/select.h','fcntl.h','sys/fcntl.h','sys/time.h'] + \
+ ['utime.h','grp.h','sys/id.h','limits.h','memory.h'] + \
+ ['compat.h','math.h','sys/param.h','ctype.h','sys/wait.h'] + \
+ ['sys/resource.h','sys/ioctl.h','sys/ipc.h','sys/mode.h'] + \
+ ['sys/mman.h','sys/filio.h','sys/priv.h','sys/shm.h','string.h'] + \
+ ['strings.h','stdlib.h','sys/vfs.h','sys/fs/s5param.h','sys/filsys.h'] + \
+ ['termios.h','termio.h','fnmatch.h','pwd.h','sys/termio.h'] + \
+ ['sys/time.h','sys/statfs.h','sys/statvfs.h','stdarg.h'] + \
+ ['security/pam_modules.h','security/_pam_macros.h','dlfcn.h'] + \
+ ['sys/syslog.h','syslog.h','stdint.h','inttypes.h','locale.h'] + \
+ ['shadow.h','nss.h','nss_common.h','ns_api.h','sys/security.h'] + \
+ ['security/pam_appl.h','sys/capability.h','syscall.h','sys/syscall.h'] + \
+ ['sys/acl.h']:
+ if conf.CheckCHeader(h):
+ defines['HAVE_' + h.upper().replace('.','_').replace('/','_')] = 1
+
+ for f in ['dlopen','dlsym','dlerror','waitpid','getcwd','strdup'] + \
+ ['strndup','strnlen','strerror','chroot','bzero','memset','strlcpy'] + \
+ ['strlcat','memmove','vsnprintf','snprintf','asprintf','vasprintf'] + \
+ ['setsid','pipe','crypt16','getauthuid','strftime','sigprocmask'] + \
+ ['sigblock','sigaction','innetgr','setnetgrent','getnetgrent'] + \
+ ['endnetgrent','initgroups','setgroups','sysconf','mktime','rename'] + \
+ ['ftruncate','chsize','getpwanam','setlinebuf','srandom','random'] + \
+ ['srand','rand','setenv','usleep','syslog','vsyslog','timegm'] + \
+ ['backtrace','setbuffer','pread','pwrite']:
+ if conf.CheckFunc(f):
+ defines['HAVE_' + f.upper()] = 1
+
+ conf.Finish()
[dynenv.Append(CPPDEFINES = {p: '\\"%s\\"' % paths[p]}) for p in paths]
@@ -127,6 +151,11 @@ SConscript(
hostenv.CProtoHeader(target='include/proto.h',source=proto_files)
+# Save configuration
+
+if hostenv['configure']:
+ saveconfig(defines)
+
if hostenv['configh']:
def create_config_h(env,target,source):
pass #FIXME
diff --git a/source4/auth/SConscript b/source4/auth/SConscript
index 34cff89bb3..557690cfdb 100644
--- a/source4/auth/SConscript
+++ b/source4/auth/SConscript
@@ -7,9 +7,10 @@ hostenv.StaticLibrary('auth_domain.c')
hostenv.StaticLibrary('auth_developer.c')
hostenv.StaticLibrary('auth_unix.c')
-conf = hostenv.Configure()
-have_pam = conf.CheckLibWithHeader('pam', 'security/pam_appl.h', 'c', 'pam_start')
-conf.Finish()
+if hostenv['configure']:
+ conf = hostenv.Configure()
+ have_pam = conf.CheckLibWithHeader('pam', 'security/pam_appl.h', 'c', 'pam_start')
+ conf.Finish()
hostenv.StaticLibrary('pam_errors.c')
hostenv.StaticLibrary('auth',['auth.c','auth_util.c','auth_sam_reply.c','ntlm_check.c'])
diff --git a/source4/lib/ldb/SConscript b/source4/lib/ldb/SConscript
index 1079a441d8..b726d0ebc9 100644
--- a/source4/lib/ldb/SConscript
+++ b/source4/lib/ldb/SConscript
@@ -1,5 +1,6 @@
Import('hostenv')
Import('talloc')
+Import('defines')
hostenv.StaticLibrary('modules/timestamps.c')
hostenv.StaticLibrary('modules/rdn_name.c')
@@ -7,12 +8,14 @@ hostenv.StaticLibrary('modules/schema.c')
hostenv.StaticLibrary('ldb_ildap/ldb_ildap.c')
hostenv.StaticLibrary('modules/ldb_map.c')
-conf = Configure(hostenv)
-have_sqlite3 = conf.CheckLibWithHeader("sqlite3","sqlite3.h",'c',"sqlite3_open()")
-have_popt = conf.CheckLibWithHeader("popt","popt.h",'c',"poptGetArgs(NULL);")
-conf.Finish()
+if hostenv['configure']:
+ conf = Configure(hostenv)
+ if conf.CheckLibWithHeader("sqlite3","sqlite3.h",'c',"sqlite3_open()"):
+ defines['HAVE_SQLITE3'] = 1
+ conf.CheckLibWithHeader("popt","popt.h",'c',"poptGetArgs(NULL);")
+ conf.Finish()
-if have_sqlite3:
+if defines.has_key('HAVE_SQLITE3'):
hostenv.StaticLibrary('ldb_sqlite3/ldb_sqlite3.c')
hostenv.StaticLibrary('ldb_tdb',
diff --git a/source4/lib/popt/SConscript b/source4/lib/popt/SConscript
index 78496e7e1a..85f9c9b7e0 100644
--- a/source4/lib/popt/SConscript
+++ b/source4/lib/popt/SConscript
@@ -1,9 +1,11 @@
-Import('hostenv')
# tastes like -*- python -*-
+Import('hostenv')
+
-conf = hostenv.Configure()
-conf.env['HAVE_EXTERNAL_POPT'] = conf.CheckLibWithHeader('popt', 'popt.h', 'c', 'poptGetArgs(NULL);')
-conf.Finish()
+if hostenv['configure']:
+ conf = hostenv.Configure()
+ conf.env['HAVE_EXTERNAL_POPT'] = conf.CheckLibWithHeader('popt', 'popt.h', 'c', 'poptGetArgs(NULL);')
+ conf.Finish()
popt = hostenv.StaticLibrary('popt', ['findme.c','popt.c','poptconfig.c','popthelp.c','poptparse.c'])
Export('popt')
diff --git a/source4/lib/replace/SConscript b/source4/lib/replace/SConscript
index b63b544f8a..84088db162 100644
--- a/source4/lib/replace/SConscript
+++ b/source4/lib/replace/SConscript
@@ -1,11 +1,12 @@
Import('hostenv')
-conf = Configure(hostenv)
-#FIXME: conf.CheckBrokenInetNtoa()
-for f in ['strtoull','__strtoull','strtouq','strtoll','__strtoll','strtoq',
- 'seteuid','setresuid','setegid','setresgid']:
- conf.CheckFunc(f,'c')
-conf.Finish()
+if hostenv['configure']:
+ conf = Configure(hostenv)
+ #FIXME: conf.CheckBrokenInetNtoa()
+ for f in ['strtoull','__strtoull','strtouq','strtoll','__strtoll','strtoq',
+ 'seteuid','setresuid','setegid','setresgid']:
+ conf.CheckFunc(f,'c')
+ conf.Finish()
hostenv.StaticLibrary('repdir', ['repdir/repdir.c'])
hostenv.StaticLibrary('replace', ['replace.c', 'snprintf.c'])
diff --git a/source4/lib/tls/SConscript b/source4/lib/tls/SConscript
index 3b1a1d7d4e..941955e9e3 100644
--- a/source4/lib/tls/SConscript
+++ b/source4/lib/tls/SConscript
@@ -1,6 +1,7 @@
Import('hostenv')
hostenv.StaticLibrary('tls', ['tls.c', 'tlscert.c'])
-conf = hostenv.Configure()
-conf.CheckLibWithHeader('gnutls', 'gnutls/gnutls.h', 'c', 'gnutls_global_init()')
-conf.Finish()
+if hostenv['configure']:
+ conf = hostenv.Configure()
+ conf.CheckLibWithHeader('gnutls', 'gnutls/gnutls.h', 'c', 'gnutls_global_init()')
+ conf.Finish()
diff --git a/source4/librpc/SConscript b/source4/librpc/SConscript
index be33ad44ad..4de611dfc9 100644
--- a/source4/librpc/SConscript
+++ b/source4/librpc/SConscript
@@ -12,7 +12,7 @@ hostenv.StaticLibrary('rpc_base',
'rpc/dcerpc_sock.c'])
-
+'''
[SUBSYSTEM::NDR_AUDIOSRV]
INIT_FUNCTION = dcerpc_audiosrv_init
INIT_OBJ_FILES = librpc/gen_ndr/ndr_audiosrv.o
@@ -631,3 +631,4 @@ REQUIRED_SUBSYSTEMS = RPC_EJS_ECHO RPC_EJS_MISC RPC_EJS_SAMR RPC_EJS_SECURITY \
RPC_EJS_INITSHUTDOWN
# End SUBSYSTEM RPC_EJS
################################################
+'''