summaryrefslogtreecommitdiffstats
path: root/WebKitTools/Scripts/webkitdirs.pm
diff options
context:
space:
mode:
Diffstat (limited to 'WebKitTools/Scripts/webkitdirs.pm')
-rw-r--r--WebKitTools/Scripts/webkitdirs.pm25
1 files changed, 24 insertions, 1 deletions
diff --git a/WebKitTools/Scripts/webkitdirs.pm b/WebKitTools/Scripts/webkitdirs.pm
index 028d63d..6530244 100644
--- a/WebKitTools/Scripts/webkitdirs.pm
+++ b/WebKitTools/Scripts/webkitdirs.pm
@@ -1302,6 +1302,21 @@ sub autotoolsFlag($$)
return $prefix . '-' . $feature;
}
+sub autogenArgumentsHaveChanged($@)
+{
+ my ($filename, @currentArguments) = @_;
+
+ if (! -e $filename) {
+ return 1;
+ }
+
+ open(AUTOTOOLS_ARGUMENTS, $filename);
+ chomp(my $previousArguments = <AUTOTOOLS_ARGUMENTS>);
+ close(AUTOTOOLS_ARGUMENTS);
+
+ return $previousArguments ne join(" ", @currentArguments);
+}
+
sub buildAutotoolsProject($@)
{
my ($clean, @buildParams) = @_;
@@ -1357,8 +1372,16 @@ sub buildAutotoolsProject($@)
# If GNUmakefile exists, don't run autogen.sh. The makefile should be
# smart enough to track autotools dependencies and re-run autogen.sh
# when build files change.
+ my $autogenArgumentsFile = "previous-autogen-arguments.txt";
my $result;
- if (! -e "GNUmakefile") {
+ if (!(-e "GNUmakefile") or autogenArgumentsHaveChanged($autogenArgumentsFile, @buildArgs)) {
+
+ # Write autogen.sh arguments to a file so that we can detect
+ # when they change and automatically re-run it.
+ open(AUTOTOOLS_ARGUMENTS, ">$autogenArgumentsFile");
+ print AUTOTOOLS_ARGUMENTS join(" ", @buildArgs);
+ close(AUTOTOOLS_ARGUMENTS);
+
print "Calling configure in " . $dir . "\n\n";
print "Installation prefix directory: $prefix\n" if(defined($prefix));