.:
authortimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Feb 2008 21:54:07 +0000 (21:54 +0000)
committertimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Feb 2008 21:54:07 +0000 (21:54 +0000)
        Reviewed by Darin Adler.

        Add "64" and "64u" make rules to allow easy building of 64-bit versions.

        make 64: will build Intel-only 64-bit.
        make 64u: will build 4-way universal for PPC and Intel.

        * Makefile:
        * Makefile.shared:

WebKitTools:

        Reviewed by Darin Adler.

        * Scripts/build-webkit: Add --universal and --64-bit flags to make building
        64-bit architectures easy. Combine the two flags to build 4-way universal.
        * Makefile: Add "64" and "64u" make rules. Fix the universal rule to return
        non-zero when the build failes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30597 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
Makefile
Makefile.shared
WebKitTools/ChangeLog
WebKitTools/Makefile
WebKitTools/Scripts/build-webkit

index bb7c72b..915a847 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2008-02-26  Timothy Hatcher  <timothy@apple.com>
+
+        Reviewed by Darin Adler.
+
+        Add "64" and "64u" make rules to allow easy building of 64-bit versions.
+
+        make 64: will build Intel-only 64-bit.
+        make 64u: will build 4-way universal for PPC and Intel.
+
+        * Makefile:
+        * Makefile.shared:
+
 2008-02-23  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
 
         Rubber stamped by Darin.
index 89344f7..fa7ea02 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -7,16 +7,23 @@ all:
 debug d development dev develop:
        @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
        if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
-       
+
 release r deployment dep deploy:
        @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
        if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
-       
+
 universal u:
        @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
        if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
 
-clean:
+64:
        @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
        if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
 
+64u:
+       @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
+       if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
+
+clean:
+       @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
+       if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
index a036aac..096d32e 100644 (file)
@@ -15,6 +15,12 @@ release r deployment dep deploy: force
 universal u: force
        ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) 'ARCHS=ppc i386' | grep -v setenv && exit $${PIPESTATUS[0]} )
 
+64: force
+       ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) 'ARCHS=i386 x86_64' | grep -v setenv && exit $${PIPESTATUS[0]} )
+
+64u: force
+       ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) 'ARCHS=ppc ppc64 i386 x86_64' | grep -v setenv && exit $${PIPESTATUS[0]} )
+
 clean:
        ( xcodebuild $(OTHER_OPTIONS) -alltargets clean $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} )
 
index 50e2f04..64e31a7 100644 (file)
@@ -1,3 +1,12 @@
+2008-02-26  Timothy Hatcher  <timothy@apple.com>
+
+        Reviewed by Darin Adler.
+
+        * Scripts/build-webkit: Add --universal and --64-bit flags to make building
+        64-bit architectures easy. Combine the two flags to build 4-way universal.
+        * Makefile: Add "64" and "64u" make rules. Fix the universal rule to return
+        non-zero when the build failes.
+
 2008-02-26  Jessica Kahn  <jess@apple.com>
 
         Reviewed by Darin.
index a0f946a..364eadb 100644 (file)
@@ -13,7 +13,16 @@ release r deployment dep deploy:
        if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
 
 universal u:
-       @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; if [ $$? -ne 0 ]; then break; fi; done
+       @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
+       if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
+
+64:
+       @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
+       if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
+
+64u:
+       @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
+       if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
 
 clean:
        @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
index 350b3e7..f4c99e6 100755 (executable)
@@ -56,11 +56,16 @@ my $coverageSupport = 0;
 my $videoSupport = isOSX() || isCygwin(); # Enable by default on OSX and Windows
 my $showHelp = 0;
 my $clean = 0;
+my $buildUniversal = 0;
+my $buildSixtyFourBit = 0;
 
 my $programName = basename($0);
 my $usage = <<EOF;
 Usage: $programName [options] [options to pass to build system]
   --help                        Show this help message
+  --clean                       Perform a clean build
+  --universal                   Build 2-way universal (PPC and Intel 32-bit)
+  --64-bit                      Build 64-bit, combine with --universal to build 4-way universal
   --[no-]cross-document-messaging   Toggle cross-document messaging support (default: $crossDocumentMessagingSupport)
   --[no-]database               Toggle Database Support (default: $databaseSupport)
   --[no-]icon-database          Toggle Icon database support (default: $iconDatabaseSupport)
@@ -95,6 +100,8 @@ GetOptions('cross-document-messaging!' => \$crossDocumentMessagingSupport,
            'video!' => \$videoSupport,
            'coverage!' => \$coverageSupport,
            'help' => \$showHelp,
+           'universal' => \$buildUniversal,
+           '64-bit' => \$buildSixtyFourBit,
            'clean' => \$clean);
 
 if ($showHelp) {
@@ -183,6 +190,21 @@ if ($clean && isOSX()) {
     push(@options, "clean");
 }
 
+if ($buildSixtyFourBit && isOSX()) {
+    my $cpuVendor = `sysctl -n machdep.cpu.vendor`;
+    chomp $cpuVendor;
+
+    if ($buildUniversal) {
+        push(@options, "ARCHS=ppc ppc64 i386 x86_64");
+    } elsif ($cpuVendor eq "GenuineIntel") {
+        push(@options, "ARCHS=i386 x86_64");
+    } else {
+        push(@options, "ARCHS=ppc ppc64");
+    }
+} elsif ($buildUniversal && isOSX()) {
+    push(@options, "ARCHS=ppc i386");
+}
+
 # enable autotool options accordingly
 if ($ENV{WEBKITAUTOTOOLS}) {
     push @options, autotoolsFlag($crossDocumentMessagingSupport, "cross-document-messaging");