Modified: trunk/Tools/Scripts/build-webkit (102684 => 102685)
--- trunk/Tools/Scripts/build-webkit 2011-12-13 17:20:56 UTC (rev 102684)
+++ trunk/Tools/Scripts/build-webkit 2011-12-13 18:10:34 UTC (rev 102685)
@@ -749,7 +749,10 @@
my $project = basename($dir);
if (isGtk()) {
- $result = buildGtkProject($project, $clean, !$noWebKit2, @options);
+ if (!$noWebKit2) {
+ unshift(@options, "--enable-webkit2");
+ }
+ $result = buildGtkProject($project, $clean, @options);
} elsif (isQt()) {
#FIXME: $dir should probably be $project.
$result = buildQMakeQtProject($dir, $clean, @options);
Modified: trunk/Tools/Scripts/webkitdirs.pm (102684 => 102685)
--- trunk/Tools/Scripts/webkitdirs.pm 2011-12-13 17:20:56 UTC (rev 102684)
+++ trunk/Tools/Scripts/webkitdirs.pm 2011-12-13 18:10:34 UTC (rev 102685)
@@ -1580,10 +1580,24 @@
return md5_hex($contents);
}
-sub runAutogenForAutotoolsProject($@)
+sub runAutogenForAutotoolsProjectIfNecessary($@)
{
- my ($dir, $prefix, $sourceDir, $saveArguments, $argumentsFile, @buildArgs) = @_;
+ my ($dir, $prefix, $sourceDir, $project, @buildArgs) = @_;
+ my $argumentsFile = "previous-autogen-arguments.txt";
+ if (-e "GNUmakefile") {
+ # Just assume that build-jsc will never be used to reconfigure JSC. Later
+ # we can go back and make this more complicated if the demand is there.
+ if ($project ne "WebKit") {
+ return;
+ }
+
+ # We only run autogen.sh again if the arguments passed have changed.
+ if (!mustReRunAutogen($sourceDir, $argumentsFile, @buildArgs)) {
+ return;
+ }
+ }
+
print "Calling autogen.sh in " . $dir . "\n\n";
print "Installation prefix directory: $prefix\n" if(defined($prefix));
@@ -1595,9 +1609,9 @@
close(SUM);
}
- if ($saveArguments) {
- # Write autogen.sh arguments to a file so that we can detect
- # when they change and automatically re-run it.
+ # Only for WebKit, write the autogen.sh arguments to a file so that we can detect
+ # when they change and automatically re-run it.
+ if ($project eq 'WebKit') {
open(AUTOTOOLS_ARGUMENTS, ">$argumentsFile");
print AUTOTOOLS_ARGUMENTS join(" ", @buildArgs);
close(AUTOTOOLS_ARGUMENTS);
@@ -1627,6 +1641,10 @@
chomp(my $previousArguments = <AUTOTOOLS_ARGUMENTS>);
close(AUTOTOOLS_ARGUMENTS);
+ # We only care about the WebKit2 argument when we are building WebKit itself.
+ # build-jsc never passes --enable-webkit2, so if we didn't do this, autogen.sh
+ # would run for every single build on the bots, since it runs both build-webkit
+ # and build-jsc.
my $joinedCurrentArguments = join(" ", @currentArguments);
if ($previousArguments ne $joinedCurrentArguments) {
print "Previous autogen arguments were: $previousArguments\n\n";
@@ -1660,7 +1678,7 @@
sub buildAutotoolsProject($@)
{
- my ($project, $clean, $enableWebKit2, @buildParams) = @_;
+ my ($project, $clean, @buildParams) = @_;
my $make = 'make';
my $dir = productDir();
@@ -1691,12 +1709,6 @@
$makeArgs .= " jsc";
}
- # This is a temporary work-around to enable building WebKit2 on the bots,
- # but ensuring that it does not ship until the API is stable.
- if ($project eq "WebKit" and isGtk() and $enableWebKit2) {
- push @buildArgs, "--enable-webkit2";
- }
-
$prefix = $ENV{"WebKitInstallationPrefix"} if !defined($prefix);
push @buildArgs, "--prefix=" . $prefix if defined($prefix);
@@ -1725,16 +1737,8 @@
# If GNUmakefile exists, don't run autogen.sh unless its arguments
# have changed. 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 $buildingWebKit = $project eq "WebKit";
- if (!(-e "GNUmakefile")) {
- runAutogenForAutotoolsProject($dir, $prefix, $sourceDir, $buildingWebKit, $autogenArgumentsFile, @buildArgs);
- }
+ runAutogenForAutotoolsProjectIfNecessary($dir, $prefix, $sourceDir, $project, @buildArgs);
- if ($buildingWebKit and mustReRunAutogen($sourceDir, $autogenArgumentsFile, @buildArgs)) {
- runAutogenForAutotoolsProject($dir, $prefix, $sourceDir, $buildingWebKit, $autogenArgumentsFile, @buildArgs);
- }
-
my $gtkScriptsPath = "$sourceDir/Tools/gtk";
my $runWithJhbuild = "$gtkScriptsPath/run-with-jhbuild";
if (system("$runWithJhbuild $make $makeArgs") ne 0) {
@@ -1743,7 +1747,7 @@
chdir ".." or die;
- if ($buildingWebKit) {
+ if ($project eq 'WebKit') {
my @docGenerationOptions = ($runWithJhbuild, "$gtkScriptsPath/generate-gtkdoc", "--skip-html");
if ($debug) {
push(@docGenerationOptions, "--debug");
@@ -1989,13 +1993,13 @@
sub buildGtkProject
{
- my ($project, $clean, $enableWebKit2, @buildArgs) = @_;
+ my ($project, $clean, @buildArgs) = @_;
if ($project ne "WebKit" and $project ne "_javascript_Core") {
die "Unsupported project: $project. Supported projects: WebKit, _javascript_Core\n";
}
- return buildAutotoolsProject($project, $clean, $enableWebKit2, @buildArgs);
+ return buildAutotoolsProject($project, $clean, @buildArgs);
}
sub buildChromiumMakefile($$@)