[47780] trunk/dports/devel/gmp/Portfile

mcalhoun at macports.org mcalhoun at macports.org
Thu Mar 5 18:54:48 PST 2009


Revision: 47780
          http://trac.macports.org/changeset/47780
Author:   mcalhoun at macports.org
Date:     2009-03-05 18:54:47 -0800 (Thu, 05 Mar 2009)
Log Message:
-----------
gmp: Allow configure script to select fastest possible build options.
Allow cross-compiling.

Modified Paths:
--------------
    trunk/dports/devel/gmp/Portfile

Modified: trunk/dports/devel/gmp/Portfile
===================================================================
--- trunk/dports/devel/gmp/Portfile	2009-03-06 02:52:08 UTC (rev 47779)
+++ trunk/dports/devel/gmp/Portfile	2009-03-06 02:54:47 UTC (rev 47780)
@@ -6,7 +6,7 @@
 
 name            gmp
 version         4.2.4
-revision        1
+revision        2
 categories      devel math
 maintainers     mcalhoun openmaintainer
 platforms       darwin
@@ -32,34 +32,60 @@
 use_bzip2       yes
 use_parallel_build yes
 
-if {![variant_isset universal]} {
-    configure.env   ABI=32
-}
-
 configure.args  --infodir=${prefix}/share/info \
                 --enable-cxx
 
+# if CFLAGS and CXXFLAGS are undefined, configure script tries to build fastest library for build machine.
+pre-fetch {
+    # Set in pre-fetch so any universal flags are removed as well.
+    configure.cflags
+    configure.cxxflags
+}
+
 test.run        yes
 test.cmd        make
 test.target     check
 
-platform powerpc {
-    if {![variant_isset universal]} {
-        configure.cflags-append -force_cpusubtype_ALL
-    }
+set machine [exec "/usr/bin/machine"]
+if { ${machine}=="ppc970" } {
+    # Use special 32-bit mode for G5 processors.
+    # In http://gmplib.org/manual/ABI-and-ISA.html, mode32 is said to be faster.
+    set abi32  mode32
+} else {
+    set abi32  32
 }
 
-set merger_must_run_binaries yes
-set merger_no_3_archs yes
+if {![variant_isset universal]} {
+    configure.env   ABI=${abi32}
+} else {
+    # Keep configure.cflags and configure.cxxflags empty.
+    set merger_arch_flag no
 
-array set merger_configure_env {
-    ppc     ABI=32
-    i386    ABI=32
-    ppc64   ABI=mode64
-    x86_64  ABI=64
-}
+    array set merger_configure_env {
+        i386    ABI=32
+        ppc64   ABI=mode64
+        x86_64  ABI=64
+    }
+    set merger_configure_env(ppc) ABI=${abi32}
 
-array set merger_configure_cflags {
-    ppc     -force_cpusubtype_ALL
-    ppc64   -force_cpusubtype_ALL
+    # universal_archs_to_use might not be set before pre-fetch.
+    pre-fetch {
+        global merger_dont_diff merger_configure_env
+
+        # if building on a G5, merge might not work.
+        if  { [llength ${universal_archs_to_use}]>2 } {
+            set merger_dont_diff "${prefix}/include/gmp.h"
+        }
+    }
+
+    # For cross-compiling, set C compiler and pre-precessor.
+    if { ${os.arch}=="i386" } {
+        if { ${os.major} >= 10 } {
+            lappend merger_configure_env(ppc)  CC_FOR_BUILD=${configure.cc} CPP_FOR_BUILD=${configure.cpp}
+        }
+        lappend merger_configure_env(ppc64)    CC_FOR_BUILD=${configure.cc} CPP_FOR_BUILD=${configure.cpp}
+    } else {
+        lappend merger_configure_env(i386)     CC_FOR_BUILD=${configure.cc} CPP_FOR_BUILD=${configure.cpp}
+        lappend merger_configure_env(x86_64)   CC_FOR_BUILD=${configure.cc} CPP_FOR_BUILD=${configure.cpp}
+    }
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090305/a0fddde6/attachment.html>


More information about the macports-changes mailing list