summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-10-13 12:19:37 +1100
committerAndrew Tridgell <tridge@samba.org>2010-10-13 11:00:04 +0000
commitb5ffdb6f9c7e003223614baac18f03fe02e7d782 (patch)
tree3f8442f2dc2e1302e2442d11a449845ec2669081
parentd0293428fe2e95cccfcaf3df47f234ac3e794d2e (diff)
downloadsamba-b5ffdb6f9c7e003223614baac18f03fe02e7d782.tar.gz
samba-b5ffdb6f9c7e003223614baac18f03fe02e7d782.tar.bz2
samba-b5ffdb6f9c7e003223614baac18f03fe02e7d782.zip
s4: don't rebuild all of heimdal when dynconfig options change
only 2 files in heimdal depend on dynconfig variables
-rw-r--r--source4/dynconfig/wscript4
-rw-r--r--source4/heimdal_build/wscript_build21
2 files changed, 18 insertions, 7 deletions
diff --git a/source4/dynconfig/wscript b/source4/dynconfig/wscript
index e614624d70..d975698ddf 100644
--- a/source4/dynconfig/wscript
+++ b/source4/dynconfig/wscript
@@ -116,10 +116,12 @@ def configure(conf):
sys.exit(1)
-def dynconfig_cflags(bld):
+def dynconfig_cflags(bld, list=None):
'''work out the extra CFLAGS for dynconfig.c'''
cflags = []
for f in dyn_cflags.keys():
+ if list and not f in list:
+ continue
if not Options.is_install and f == 'MODULESDIR':
# we want binaries run from the source dir to use the current
# modules, not the installed ones
diff --git a/source4/heimdal_build/wscript_build b/source4/heimdal_build/wscript_build
index 1331d80f20..e41b5956e7 100644
--- a/source4/heimdal_build/wscript_build
+++ b/source4/heimdal_build/wscript_build
@@ -163,6 +163,7 @@ def HEIMDAL_LIBRARY(libname, source, deps,
vnum=None,
autoproto=None,
autoproto_options=None,
+ autoproto_extra='',
autoproto_private=None,
is_bundled=True):
'''define a Heimdal library'''
@@ -211,10 +212,10 @@ def HEIMDAL_LIBRARY(libname, source, deps,
)
if autoproto is not None:
- HEIMDAL_AUTOPROTO(autoproto, source,
+ HEIMDAL_AUTOPROTO(autoproto, source + ' ' + autoproto_extra,
options=autoproto_options)
if autoproto_private is not None:
- HEIMDAL_AUTOPROTO_PRIVATE(autoproto_private, source)
+ HEIMDAL_AUTOPROTO_PRIVATE(autoproto_private, source + ' ' + autoproto_extra)
def HEIMDAL_GENERATOR(name, rule, source='', target='',
@@ -645,6 +646,15 @@ if not bld.CONFIG_SET('HAVE_ERR_H'):
target = '../heimdal/lib/roken/err.h',
)
+# expand_path.c needs some of the install paths
+HEIMDAL_SUBSYSTEM('HEIMDAL_CONFIG',
+ '../heimdal/lib/krb5/expand_path.c ../heimdal/lib/krb5/plugin.c',
+ includes='../heimdal/lib/krb5 ../heimdal/lib/asn1',
+ cflags = bld.dynconfig_cflags('LIBDIR BINDIR LIBEXECDIR SBINDIR'),
+ deps='HEIMDAL_HCRYPTO wind hx509'
+ )
+
+
HEIMDAL_LIBRARY('krb5',
bld.SUBDIR('../heimdal/lib/krb5/',
'''acache.c add_et_list.c
@@ -656,7 +666,6 @@ HEIMDAL_LIBRARY('krb5',
copy_host_realm.c crc.c creds.c
crypto.c data.c eai_to_heim_errno.c
error_string.c expand_hostname.c
- expand_path.c
fcache.c free.c free_host_realm.c
generate_seq_number.c generate_subkey.c
get_addrs.c get_cred.c
@@ -670,7 +679,7 @@ HEIMDAL_LIBRARY('krb5',
mcache.c misc.c mk_error.c mk_priv.c
mk_rep.c mk_req.c mk_req_ext.c
mit_glue.c n-fold.c padata.c pkinit.c
- plugin.c principal.c prog_setup.c pac.c
+ principal.c prog_setup.c pac.c
pcache.c prompter_posix.c rd_cred.c rd_error.c
rd_priv.c rd_rep.c rd_req.c replay.c
send_to_kdc.c set_default_realm.c
@@ -681,9 +690,9 @@ HEIMDAL_LIBRARY('krb5',
includes='../heimdal/lib/krb5 ../heimdal/lib/asn1',
autoproto='../heimdal/lib/krb5/krb5-protos.h',
autoproto_options='-E KRB5_LIB -q -P comment -o',
+ autoproto_extra='../heimdal/lib/krb5/expand_path.c ../heimdal/lib/krb5/plugin.c',
autoproto_private='../heimdal/lib/krb5/krb5-private.h',
- cflags = bld.dynconfig_cflags(),
- deps='roken HEIMDAL_PKINIT_ASN1 wind HEIMDAL_KRB5_ASN1 hx509 HEIMDAL_HCRYPTO LIBSAMBA-HOSTCONFIG intl com_err',
+ deps='roken HEIMDAL_PKINIT_ASN1 wind HEIMDAL_KRB5_ASN1 hx509 HEIMDAL_HCRYPTO LIBSAMBA-HOSTCONFIG intl com_err HEIMDAL_CONFIG',
)