diff --git a/waflib/Configure.py b/waflib/Configure.py index 298198d0..aefdaf16 100644 --- a/waflib/Configure.py +++ b/waflib/Configure.py @@ -169,6 +169,7 @@ class ConfigurationContext(Context.Context): env = ConfigSet.ConfigSet() env['argv'] = sys.argv env['options'] = Options.options.__dict__ + env['config_cmd'] = self.cmd env.run_dir = Context.run_dir env.top_dir = Context.top_dir diff --git a/waflib/Scripting.py b/waflib/Scripting.py index 1842bd6b..bd217e3f 100644 --- a/waflib/Scripting.py +++ b/waflib/Scripting.py @@ -583,12 +583,15 @@ def autoconfigure(execute_method): do_config = h != env.hash if do_config: - Options.commands.insert(0, self.cmd) - Options.commands.insert(0, 'configure') if Configure.autoconfig == 'clobber': + tmp = Options.options.__dict__ Options.options.__dict__ = env.options - return - + try: + run_command(env['config_cmd']) + finally: + Options.options.__dict__ = tmp + else: + run_command(env['configure']) return execute_method(self) return execute Build.BuildContext.execute = autoconfigure(Build.BuildContext.execute)