# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 PortGroup muniversal 1.0 name gmp version 5.0.5 categories devel math license LGPL-3+ maintainers mcalhoun openmaintainer platforms darwin description GNU multiple precision arithmetic library long_description \ GNU MP is a library for arbitrary precision arithmetic, operating on\ signed integers, rational numbers, and floating point numbers. It \ has a rich set of functions, and the functions have a regular \ interface. GNU MP is designed to be as fast as possible, both for \ small operands and for huge operands. The speed is achieved by using\ fullwords as the basic arithmetic type, by using fast algorithms, by\ carefully optimized assembly code for the most common inner loops \ for a lots of CPUs, and by a general emphasis on speed (instead of \ simplicity or elegance). homepage http://gmplib.org/ master_sites gnu checksums rmd160 2e767b7392bd1f34a235ca061d1a016e9ec7d564 \ sha256 1f588aaccc41bb9aed946f9fe38521c26d8b290d003c5df807f65690f2aadec9 use_bzip2 yes use_parallel_build yes # See #16634 patchfiles patch-gmp-h.in.diff configure.args --enable-cxx configure.universal_args-delete --disable-dependency-tracking # if CFLAGS and CXXFLAGS are undefined, configure script tries to build fastest library for build machine. # On PowerPC machines, CFLAGS must be empty to get -force_cpusubtype_ALL. configure.cc_archflags configure.cxx_archflags configure.ld_archflags configure.cflags configure.cxxflags configure.pipe no test.run yes test.target check if {![variant_isset universal]} { if {${build_arch} == "x86_64"} { configure.env ABI=64 # fails to correctly detect some x86_64 models pre-configure { set build_triplet [split [exec /usr/bin/env CC=${configure.cc} ${worksrcpath}/config.guess] -] set build_cpu [lindex $build_triplet 0] if {$build_cpu != "core2" && $build_cpu != "corei"} { ui_warn "No processor dependent assembly code being used. gmp might be slower." configure.args-append --build=x86_64-[join [lrange $build_triplet 1 end] -] } } } elseif {${build_arch} == "ppc64"} { configure.env ABI=mode64 } else { configure.env ABI=32 } } 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 } # Since CFLAGS and CXXFLAGS must be empty, append -arch ... to CC and CXX. merger_arch_compiler yes # -arch i386 on causes the test suite to fail, so override muniversal_get_arch_flag in muniversal portgroup # Only append -arch ... to compiler if cross compiling. # i386 code is generated by setting ABI=32 proc muniversal_get_arch_flag {arch {fortran ""}} { global os.arch if { ${os.arch}=="i386" && (${arch}=="i386" || ${arch}=="x86_64") } { set archf "" } elseif { ${os.arch}=="powerpc" && (${arch}=="ppc" && ${arch}=="ppc64") } { set archf "" } else { set archf "-arch ${arch}" } return ${archf} } # universal_archs_to_use might not be set before pre-fetch. pre-destroot { global merger_dont_diff merger_configure_env # PortGroup muniversal has difficulty merging three files. if { [llength ${universal_archs_to_use}] == 3 } { set merger_dont_diff "${prefix}/include/gmp.h" } } # For cross-compiling, set C compiler and pre-processor. 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} } } platform powerpc { # See #9053 patchfiles-append patch-config.guess.diff }