diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-03-22 07:48:10 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-04-06 20:26:59 +1000 |
commit | 8bc95608223033428cc1fae7525f07e22ab7d8ef (patch) | |
tree | 0c095c036aaa6dbcb731b2a1ec44294bf4d0c560 | |
parent | 35aaf0e7723142d25b19a33c1701961a8e142ede (diff) | |
download | samba-8bc95608223033428cc1fae7525f07e22ab7d8ef.tar.gz samba-8bc95608223033428cc1fae7525f07e22ab7d8ef.tar.bz2 samba-8bc95608223033428cc1fae7525f07e22ab7d8ef.zip |
build: more complete implementation of waf configure -C
this is a closer emulation of the autoconf behaviour
-rw-r--r-- | buildtools/wafsamba/samba_autoconf.py | 29 | ||||
-rw-r--r-- | lib/replace/wscript | 9 |
2 files changed, 20 insertions, 18 deletions
diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index fc8027c5f2..7e910ad8a4 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -1,6 +1,6 @@ # a waf tool to add autoconf-like macros to the configure section -import Build, os, Options +import Build, os, Options, preproc import string from Configure import conf from samba_utils import * @@ -429,13 +429,22 @@ def CHECK_CC_ENV(conf): # make for nicer logs if just a single command conf.env.CC = conf.env.CC[0] -@conf -def ENABLE_CONFIGURE_CACHE(conf): - '''enable cache of configure results''' - if os.environ.get('WAFCACHE'): - # already setup - return - cache_path = os.path.join(conf.blddir, '.confcache') - mkdir_p(cache_path) - Options.cache_global = os.environ['WAFCACHE'] = cache_path +@conf +def SETUP_CONFIGURE_CACHE(conf, enable): + '''enable/disable cache of configure results''' + if enable: + # when -C is chosen, we will use a private cache and will + # not look into system includes. This roughtly matches what + # autoconf does with -C + cache_path = os.path.join(conf.blddir, '.confcache') + mkdir_p(cache_path) + Options.cache_global = os.environ['WAFCACHE'] = cache_path + else: + # when -C is not chosen we will not cache configure checks + # We set the recursion limit low to prevent waf from spending + # a lot of time on the signatures of the files. + Options.cache_global = os.environ['WAFCACHE'] = '' + preproc.recursion_limit = 1 + # in either case we don't need to scan system includes + preproc.go_absolute = False diff --git a/lib/replace/wscript b/lib/replace/wscript index dc00790436..73a89f0060 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -53,14 +53,7 @@ def configure(conf): if Options.options.timestamp_dependencies: conf.ENABLE_TIMESTAMP_DEPENDENCIES() - if Options.options.enable_configure_cache: - conf.ENABLE_CONFIGURE_CACHE() - else: - # during the configure checks we want the waf dependency checker - # to go into system includes. This ensures that if you add/remove - # a system library, that 'waf configure' will detect that, and - # it won't be fooled by the waf cache - preproc.go_absolute = True + conf.SETUP_CONFIGURE_CACHE(Options.options.enable_configure_cache) # load our local waf extensions conf.check_tool('wafsamba', tooldir=conf.srcdir + "/buildtools/wafsamba") |