Portfile revision 117724f21a94ff32f773af4c37be88fe0d2970e3
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4
# $Id: Portfile 113172 2013-11-11 10:24:44Z jeremyhu@macports.org $
PortSystem 1.0
PortGroup python 1.0
PortGroup github 1.0
github.setup numpy numpy 1.7.1 v
name py25-numpy
revision 1
dist_subdir ${name}/${version}_1
categories-append math
license BSD
platforms darwin
maintainers dh michaelld openmaintainer
description The core utilities for the scientific library scipy for Python
long_description ${description}
checksums rmd160 16df4216f40b22077e1f14cc41b8c8ae486b45af \
sha256 14964724915e5fa1ed34d2cdb93eed5a86bc16edd4a1203cf521ad8bbbcb5215
python.versions 25
if {$subport == $name} {
revision 100
patchfiles patch-f2py_setup.py.diff \
patch-numpy_distutils_fcompiler___init__.py.diff \
patch-fcompiler_g95.diff
depends_lib-append port:fftw-3 \
port:py${python.version}-nose
# http://trac.macports.org/ticket/34562
destroot.env-append \
CC="${configure.cc}" \
CFLAGS="${configure.cflags} [get_canonical_archflags cc]" \
CXX="${configure.cxx}" \
CXXFLAGS="${configure.cxxflags} [get_canonical_archflags cxx]" \
OBJC="${configure.objc}" \
OBJCFLAGS="${configure.objcflags} [get_canonical_archflags objc]" \
LDFLAGS="${configure.ldflags} [get_canonical_archflags ld]"
build.env-append ARCHFLAGS="[get_canonical_archflags ld]"
destroot.env-append ARCHFLAGS="[get_canonical_archflags ld]"
variant atlas description {Use the MacPorts' ATLAS libraries \
instead of Apple's Accelerate framework} {
build.env-append ATLAS=${prefix}/lib \
LAPACK=${prefix}/lib \
BLAS=${prefix}/lib
destroot.env-append ATLAS=${prefix}/lib \
LAPACK=${prefix}/lib \
BLAS=${prefix}/lib
depends_lib-append port:atlas
if {[variant_isset universal]} {
python.set_compiler no
}
}
# when using ATLAS (whether by default or specified by the user via
# the +atlas variant) ...
set gcc_version ""
if {[variant_isset atlas]} {
# see if the user has set -gcc4X to disable using MacPorts'
# compiler; if not, either use what the user set (as +gcc4X) or
# default to gcc47.
variant gcc43 conflicts gcc44 gcc45 gcc46 gcc47 gcc48 \
description {Use the gcc43 compiler (enables fortran linking)} {
configure.compiler macports-gcc-4.3
}
variant gcc44 conflicts gcc43 gcc45 gcc46 gcc47 gcc48 \
description {Use the gcc44 compiler (enables fortran linking)} {
configure.compiler macports-gcc-4.4
}
variant gcc45 conflicts gcc43 gcc44 gcc46 gcc47 gcc48 \
description {Use the gcc45 compiler (enables fortran linking)} {
configure.compiler macports-gcc-4.5
}
variant gcc46 conflicts gcc43 gcc44 gcc45 gcc47 gcc48 \
description {Use the gcc46 compiler (enables fortran linking)} {
configure.compiler macports-gcc-4.6
}
variant gcc47 conflicts gcc43 gcc44 gcc45 gcc46 gcc48 \
description {Use the gcc47 compiler (enables fortran linking)} {
configure.compiler macports-gcc-4.7
}
variant gcc48 conflicts gcc43 gcc44 gcc45 gcc46 gcc47 \
description {Use the gcc48 compiler (enables fortran linking)} {
configure.compiler macports-gcc-4.8
}
if {![variant_isset gcc43] && ![variant_isset gcc44] && ![variant_isset gcc45] && ![variant_isset gcc46] && ![variant_isset gcc48]} {
default_variants +gcc47
}
if {[variant_isset gcc43]} {
set gcc_version "4.3"
} elseif {[variant_isset gcc44]} {
set gcc_version "4.4"
} elseif {[variant_isset gcc45]} {
set gcc_version "4.5"
} elseif {[variant_isset gcc46]} {
set gcc_version "4.6"
} elseif {[variant_isset gcc47]} {
set gcc_version "4.7"
} elseif {[variant_isset gcc48]} {
set gcc_version "4.8"
}
# when using non-Apple GCC for universal install, it can
# create binaries only for the native OS architecture, at
# either 32 or 64 bits. Restrict the supported archs
# accordingly.
if {${os.arch} == "i386"} {
supported_archs i386 x86_64
} elseif {${os.arch} == "powerpc"} {
supported_archs ppc ppc64
}
# include all the correct GCC4X port
depends_lib-append port:gcc[join [split ${gcc_version} "."] ""]
# force LDFLAGS for correct linking of the linalg module
# for non-Apple GCC compilers
patchfiles-append patch-numpy_linalg_setup.py.diff
if {${gcc_version} == ""} {
# user specified -gcc4X but +atlas (either as default or
# explicitly); do not allow since it might lead to
# undetermined runtime execution.
return -code error \
"\n\nWhen using the +atlas variant (either as the default or setting
explicitly), one of the +gcc4X variants must be selected.\n"
}
} else {
variant universal {
patchfiles-append patch-setup.py.diff
}
}
post-patch {
reinplace "s|@@MPORTS_PYTHON@@|${python.bin}|" \
${worksrcpath}/numpy/f2py/setup.py
if {[variant_isset universal] && [variant_isset atlas]} {
# Prepare wrappers
file copy -force ${filespath}/wrapper-template \
${worksrcpath}/c-wrapper
file copy -force ${filespath}/wrapper-template \
${worksrcpath}/f-wrapper
file copy -force ${filespath}/wrapper-template \
${worksrcpath}/cxx-wrapper
reinplace "s|@@@|${configure.cc}|" ${worksrcpath}/c-wrapper
reinplace "s|---|\\\\.c|" ${worksrcpath}/c-wrapper
reinplace "s|&&&|${prefix}|" ${worksrcpath}/c-wrapper
reinplace "s|@@@|${configure.cxx}|" ${worksrcpath}/cxx-wrapper
reinplace "s#---#(\\\\.C|\\\\.cpp|\\\\.cc)#" \
${worksrcpath}/cxx-wrapper
reinplace "s|&&&|${prefix}|" ${worksrcpath}/cxx-wrapper
reinplace "s|@@@|${configure.f90}|" ${worksrcpath}/f-wrapper
reinplace "s|---|\\\\.f|" ${worksrcpath}/f-wrapper
reinplace "s|&&&|${prefix}|" ${worksrcpath}/f-wrapper
build.env-append CC="${worksrcpath}/c-wrapper" \
CXX="${worksrcpath}/cxx-wrapper" \
F77="${worksrcpath}/f-wrapper" \
F90="${worksrcpath}/f-wrapper"
destroot.env-append CC="${worksrcpath}/c-wrapper" \
CXX="${worksrcpath}/cxx-wrapper" \
F77="${worksrcpath}/f-wrapper" \
F90="${worksrcpath}/f-wrapper"
}
if {[variant_isset atlas]} {
# We must link against libSatlas or libTatlas, not libAtlas
if {[file exists ${prefix}/lib/libtatlas.dylib]} {
reinplace -E \
"s|_lib_atlas = \\\['atlas'\\\]|_lib_atlas = \\\['tatlas'\\\]|" \
${worksrcpath}/numpy/distutils/system_info.py
} elseif {[file exists ${prefix}/lib/libsatlas.dylib]} {
reinplace -E \
"s|_lib_atlas = \\\['atlas'\\\]|_lib_atlas = \\\['satlas'\\\]|" \
${worksrcpath}/numpy/distutils/system_info.py
} else {
return -code error "Unable to find Atlas dylibs. Bailing out."
}
}
}
livecheck.type none
#} else {
# livecheck.regex archive/[join ${github.tag_prefix} ""](\[\\d+(?:\\.\\d+)*"\]+)${extract.suffix}"
}