Prototype MacPorts PortFile: Difference between revisions

new portfile for Octave 3.6.4
(Remove "-pthread" as it triggers Qt4's moc command assume Octave's include files are placed in a "thread" subdirectory)
(new portfile for Octave 3.6.4)
Line 4: Line 4:


  <nowiki># -*- 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
  <nowiki># -*- 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$
# $Id: Portfile 106065 2013-05-14 09:28:04Z ryandesign@macports.org $


PortSystem 1.0
PortSystem 1.0


name                octave-local
name                octave-local
version            3.7.0+
version            3.6.4
revision            10
revision            3
conflicts          octave
conflicts          octave, octave-devel
categories          math science
categories          math science
maintainers        michaelld openmaintainer
maintainers        michaelld openmaintainer
license            GPL-3
platforms          darwin
platforms          darwin
description        a Matlab-like environment for numerical analysis
description        a Matlab-like environment for numerical analysis
long_description    Octave provides a convenient command line interface \
long_description    Octave provides a convenient command line interface \
Line 27: Line 29:
dist_subdir        octave
dist_subdir        octave
distname            octave-${version}
distname            octave-${version}
use_bzip2          yes


checksums          md5    6e4717edea2f64900071a46ba49948c0 \
checksums          rmd160  b0356f0c5d9366b8129d72ac58bbde837fee1a95 \
                    sha1    65592138d92eb5db2d15425f9e6c5ffe258cae48 \
                     sha256 fa185df9591f5d740f4d37ff6eaf06db576fdd3e0ddd9d0737365799e5d1c962
                     rmd160 26b55a770b5c622aa1209558b674e9f33092d610


depends_build      port:bison \
depends_build      port:bison \
Line 37: Line 39:
                     port:gperf \
                     port:gperf \
                     port:grep \
                     port:grep \
                    port:gsed \
                     path:bin/perl:perl5 \
                     path:bin/perl:perl5 \
                    port:pkgconfig \
                     port:texinfo
                     port:texinfo


depends_lib        port:arpack \
depends_lib        port:curl \
                    port:curl \
                     port:fftw-3 \
                     port:fftw-3 \
                     port:fftw-3-single \
                     port:fftw-3-single \
                     port:ftgl \
                     port:ftgl \
                    port:fltk-devel \
                     port:ghostscript \
                     port:ghostscript \
                     port:glpk \
                     port:glpk \
                     port:GraphicsMagick \
                     port:GraphicsMagick \
                     port:gnuplot \
                     port:gnuplot \
                    port:gsed \
                     port:hdf5-18 \
                     port:hdf5-18 \
                     port:less \
                     port:less \
                    port:metis \
                     port:ncurses \
                     port:ncurses \
                     port:pcre \
                     port:pcre \
                    port:readline \
                     port:qhull \
                     port:qhull \
                     port:qrupdate \
                     port:qrupdate \
                    port:readline \
                     port:SuiteSparse
                     port:SuiteSparse


depends_run        port:epstool \
depends_run        port:epstool \
                    port:transfig \
                     port:pstoedit
                     port:pstoedit
# allow us to disable checking for FLTK
# via the environment variable "FLTK_CONFIG"
patchfiles-append  patch-configure.diff


universal_variant  no
universal_variant  no


# do not use CLANG (yet)
# octave requires a fortran compiler, so require the use of one of the
if {${configure.compiler} == "clang"} {
# MacPorts GCC ports (for now).
     configure.compiler llvm-gcc-4.2
 
}
compiler.blacklist gcc-3.3 gcc-4.0 gcc-4.2 llvm-gcc-4.2 \
    apple-gcc-4.0 apple-gcc-4.2 clang macports-clang-2.9 \
    macports-clang-3.0 macports-clang-3.1 macports-clang-3.2 \
     macports-clang-3.3 macports-llvm-gcc-4.2


configure.args      --disable-dependency-tracking \
configure.args      --disable-dependency-tracking \
                     --without-x \
                     --without-x \
                    --with-framework-carbon \
                     --disable-docs \
                     --disable-docs \
                     --with-cholmod="-lcholmod"
                     --with-cholmod="-lcholmod" \
                    --with-umfpack="-lumfpack -lSuiteSparse"


# octave uses a number of other ports to create sources from template:
# octave uses a number of other ports to create sources from template:
Line 90: Line 96:
                     SED="${prefix}/bin/gsed" \
                     SED="${prefix}/bin/gsed" \
                     TEXI2DVI="${prefix}/bin/texi2dvi" \
                     TEXI2DVI="${prefix}/bin/texi2dvi" \
                     TEXI2PDF="${prefix}/bin/texi2pdf"
                     TEXI2PDF="${prefix}/bin/texi2pdf" \
configure.cppflags   -D_THREAD_SAFE
                    APPLE_CXX="/usr/bin/g++"
configure.cxxflags  -O0 -ggdb3 -D_THREAD_SAFE -gstabs
configure.cppflags
configure.cflags    -O0 -ggdb3 -D_THREAD_SAFE -gstabs
configure.ldflags
configure.fflags    -O0 -ggdb3 -D_THREAD_SAFE -gstabs -funroll-loops
 
configure.ldflags    -D_THREAD_SAFE
pre-build {
    reinplace "/'display\.cc'/s@\$(CXX)@\$(APPLE_CXX)@g" \
        ${worksrcpath}/src/Makefile
}
 
build.env-append APPLE_CXX="/usr/bin/g++"


test.run            yes
test.run            yes
test.target        check
test.target        check


variant gcc43 description {build with the macports gcc43 toolchain} conflicts gcc46 gcc45 gcc44 g95 {}
platform darwin 11 {
    # 10.7 requires an extra patch; this patch will break the build on
    # 10.6 and prior, so apply it only under 10.7.
    patchfiles-append patch-src-display.cc.diff
}
 
platform darwin 12 {
    # In 10.8 patch is required as above, also
    # the LANG environment variable needs to
    # be set to "C" otherwise /usr/bin/sed
    # fails with an error, if you installed gsed
    # with default name this should have no effect.
 
    patchfiles-append patch-src-display.cc.diff
    build.args-append LANG="C"
}
 


variant gcc44 description {build with the macports gcc44 toolchain} conflicts gcc46 gcc45 gcc43 g95 {}
variant gcc43 description {build with the macports gcc43 toolchain} conflicts gcc48 gcc47 gcc46 gcc45 gcc44 g95 {}


variant gcc45 description {build with the macports gcc45 toolchain} conflicts gcc46 gcc44 gcc43 g95 {}
variant gcc44 description {build with the macports gcc44 toolchain} conflicts gcc48 gcc47 gcc46 gcc45 gcc43 g95 {}


variant gcc46 description {build with the macports gcc45 toolchain} conflicts gcc45 gcc44 gcc43 g95 {}
variant gcc45 description {build with the macports gcc45 toolchain} conflicts gcc48 gcc47 gcc46 gcc44 gcc43 g95 {}


variant g95 description {build with g95} conflicts gcc43 gcc44 gcc45 gcc46 {
variant gcc46 description {build with the macports gcc46 toolchain} conflicts gcc48 gcc47 gcc45 gcc44 gcc43 g95 {}
 
variant gcc47 description {build with the macports gcc47 toolchain} conflicts gcc48 gcc46 gcc45 gcc44 gcc43 g95 {}
 
variant gcc48 description {build with the macports gcc48 toolchain} conflicts gcc47 gcc46 gcc45 gcc44 gcc43 g95 {}
 
variant g95 description {build with g95} conflicts gcc48 gcc47 gcc46 gcc45 gcc44 gcc43 {
     depends_build-append    port:g95
     depends_build-append    port:g95
     configure.f77          "${prefix}/bin/g95"
     configure.f77          "${prefix}/bin/g95"
Line 119: Line 152:
variant accelerate description {use BLAS from Apple's Accelerate.framework} conflicts atlas {
variant accelerate description {use BLAS from Apple's Accelerate.framework} conflicts atlas {
     depends_lib-append      port:dotwrp
     depends_lib-append      port:dotwrp
     configure.args-append  --with-blas="-ldotwrp -framework Accelerate"
     configure.args-append  --with-blas="-ldotwrp -Wl,-framework -Wl,Accelerate"
     configure.args-append  --with-lapack="-framework Accelerate"
     configure.args-append  --with-lapack="-Wl,-framework -Wl,Accelerate"
}
}


Line 132: Line 165:
# default found in the 'atlas' port (but, this is not checked for).
# default found in the 'atlas' port (but, this is not checked for).


# check for setting the default variant (gcc44)
# check for setting the default variant (gcc47)
if { ![variant_isset gcc43] && ![variant_isset gcc44] && \
 
         ![variant_isset gcc46] && ![variant_isset g95] } {
if {     ![variant_isset gcc43] && ![variant_isset gcc44] && \
     default_variants +gcc45
         ![variant_isset gcc45] && ![variant_isset gcc46] && \
        ![variant_isset gcc47] && ![variant_isset gcc48] && \
        ![variant_isset g95] } {
     default_variants +gcc47
}
}


# check if the user disabled just the default variant: -gcc44
# check if the user disabled just the default variant: -gcc47
if { ![variant_isset gcc43] && ![variant_isset gcc44] && \
 
if {     ![variant_isset gcc43] && ![variant_isset gcc44] && \
         ![variant_isset gcc45] && ![variant_isset gcc46] && \
         ![variant_isset gcc45] && ![variant_isset gcc46] && \
        ![variant_isset gcc47] && ![variant_isset gcc48] && \
         ![variant_isset g95] } {
         ![variant_isset g95] } {
     pre-fetch {
     pre-fetch {
Line 156: Line 194:
} elseif {[variant_isset gcc46]} {
} elseif {[variant_isset gcc46]} {
     set gcc_version "4.6"
     set gcc_version "4.6"
} elseif {[variant_isset gcc47]} {
    set gcc_version "4.7"
} elseif {[variant_isset gcc48]} {
    set gcc_version "4.8"
}
}


if {${gcc_version} != ""} {
if {${gcc_version} != ""} {
     set gcc_version_join [join [split ${gcc_version} "."] ""]
     set gcc_version_join [join [split ${gcc_version} "."] ""]
     configure.ldflags   "${prefix}/lib/gcc${gcc_version_join}/libstdc++.6.dylib"
     configure.ldflags "-L${prefix}/lib/gcc${gcc_version_join}"
    configure.ldflags-append -lstdc++ \
-lgfortran
     depends_build-append port:gcc${gcc_version_join}
     depends_build-append port:gcc${gcc_version_join}
     configure.compiler  macports-gcc-${gcc_version}
     configure.compiler  macports-gcc-${gcc_version}
Line 167: Line 211:
variant docs description {Enable creation and installation of documentation} {
variant docs description {Enable creation and installation of documentation} {
     depends_run-append port:texlive-basic
     depends_run-append port:texlive-basic
    # latex needed for lcircle10 font etc.
    depends_build-append port:texlive-latex
     configure.args-replace s|--disable-docs|--enable-docs|
     configure.args-replace s|--disable-docs|--enable-docs|
}
}
Line 173: Line 219:
     configure.args-replace s|--without-x|--with-x|
     configure.args-replace s|--without-x|--with-x|
     configure.args-append --x-includes=${prefix}
     configure.args-append --x-includes=${prefix}
}
variant fltk description {Include FLTK for graphical front-end} {
    depends_lib-append  path:lib/libfltk.dylib:fltk
    configure.env-delete FLTK_CONFIG=no
}
}


Line 178: Line 229:
livecheck.url      http://www.gnu.org/software/octave/news.html
livecheck.url      http://www.gnu.org/software/octave/news.html
livecheck.regex    Version (\\d+(\\.\\d+)*)
livecheck.regex    Version (\\d+(\\.\\d+)*)
</nowiki>
</nowiki>
364

edits