summaryrefslogtreecommitdiff
path: root/source4/build
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-08-23 22:16:36 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:34:27 -0500
commit91f4e46dbfd688df0bc34a3f9782dc5b1361741d (patch)
tree37a9113bd546877682098404138621be6eeeabf5 /source4/build
parent69578c8b8c7a28de11c4023ce57960425f22a558 (diff)
downloadsamba-91f4e46dbfd688df0bc34a3f9782dc5b1361741d.tar.gz
samba-91f4e46dbfd688df0bc34a3f9782dc5b1361741d.tar.bz2
samba-91f4e46dbfd688df0bc34a3f9782dc5b1361741d.zip
r9549: Rerun ./config.status if one of the .mk files changes
(This used to be commit 729b8bd7832b0db19d68dd3348b1b7103ab135fb)
Diffstat (limited to 'source4/build')
-rw-r--r--source4/build/smb_build/config_mk.pm8
-rw-r--r--source4/build/smb_build/main.pl2
-rw-r--r--source4/build/smb_build/makefile.pm19
3 files changed, 27 insertions, 2 deletions
diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm
index c5a035f375..49b93a5d98 100644
--- a/source4/build/smb_build/config_mk.pm
+++ b/source4/build/smb_build/config_mk.pm
@@ -6,7 +6,7 @@
### Released under the GNU GPL ###
###########################################################
-package config_mk;
+package smb_build::config_mk;
use smb_build::input;
use strict;
@@ -33,6 +33,10 @@ my %attribute_types = (
"MANPAGE" => "string"
);
+use vars qw(@parsed_files);
+
+@parsed_files = ();
+
###########################################################
# The parsing function which parses the file
#
@@ -48,6 +52,8 @@ sub run_config_mk($$)
my $infragment = 0;
my $section = "GLOBAL";
my $makefile = "";
+
+ push (@parsed_files, $filename);
open(CONFIG_MK, $filename) or die("Can't open `$filename'\n");
my @lines = <CONFIG_MK>;
diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl
index 7f83754408..e6a330e99d 100644
--- a/source4/build/smb_build/main.pl
+++ b/source4/build/smb_build/main.pl
@@ -18,7 +18,7 @@ use strict;
my $INPUT = {};
-my $mkfile = config_mk::run_config_mk($INPUT, "main.mk");
+my $mkfile = smb_build::config_mk::run_config_mk($INPUT, "main.mk");
my $DEPEND = smb_build::input::check($INPUT, \%config::enabled);
my $OUTPUT = output::create_output($DEPEND);
makefile::create_makefile_in($OUTPUT, $mkfile, "Makefile.in");
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm
index 19c8486bf8..b43a738613 100644
--- a/source4/build/smb_build/makefile.pm
+++ b/source4/build/smb_build/makefile.pm
@@ -123,6 +123,24 @@ sub _prepare_man_rule($)
__EOD__
}
+sub _prepare_config_status()
+{
+ my @parsed_files = @smb_build::config_mk::parsed_files;
+ my $deps = "";
+
+ foreach (@parsed_files) {
+ /^([^ |]+)/;
+ $deps.= " $1";
+ }
+
+ return "
+
+Makefile: config.status $deps
+ ./config.status
+
+";
+}
+
sub _prepare_binaries($)
{
my $ctx = shift;
@@ -596,6 +614,7 @@ sub _prepare_makefile_in($)
$output .= _prepare_binaries($CTX);
$output .= _prepare_target_settings($CTX);
$output .= _prepare_rule_lists($CTX);
+ $output .= _prepare_config_status();
if ($config{developer} eq "yes") {
$output .= <<__EOD__