Difference between revisions of "Prototype MacPorts PortFile"

From Octave
Jump to navigation Jump to search
(include -pthread in cppflags & cxxflags)
(update portfile)
Line 10: Line 10:
 
name                octave-local
 
name                octave-local
 
version            3.7.0+
 
version            3.7.0+
revision            7
+
revision            10
conflicts          octave octave-devel
+
conflicts          octave
 
categories          math science
 
categories          math science
 
maintainers        michaelld openmaintainer
 
maintainers        michaelld openmaintainer
Line 24: Line 24:
  
 
homepage            http://www.gnu.org/software/octave/
 
homepage            http://www.gnu.org/software/octave/
master_sites        http://alpha.gnu.org/gnu/octave/
+
master_sites        gnu:octave
 
dist_subdir        octave
 
dist_subdir        octave
 
distname            octave-${version}
 
distname            octave-${version}
  
checksums          md5    a9849cbead1c6f02a25a22a3142d1c1c \
+
checksums          md5    6e4717edea2f64900071a46ba49948c0 \
                     sha1    1ee3fcdfcdcea91b4859191f8e4664ca7965943f \
+
                     sha1    65592138d92eb5db2d15425f9e6c5ffe258cae48 \
                     rmd160  2136309873c105bd9b06e01ed5726a4a281074f4
+
                     rmd160  26b55a770b5c622aa1209558b674e9f33092d610
  
 
depends_build      port:bison \
 
depends_build      port:bison \
Line 53: Line 53:
 
                     port:hdf5-18 \
 
                     port:hdf5-18 \
 
                     port:less \
 
                     port:less \
 +
                    port:metis \
 
                     port:ncurses \
 
                     port:ncurses \
 
                     port:pcre \
 
                     port:pcre \
Line 73: Line 74:
 
configure.args      --disable-dependency-tracking \
 
configure.args      --disable-dependency-tracking \
 
                     --without-x \
 
                     --without-x \
 +
                    --with-framework-carbon \
 +
                    --disable-docs \
 
                     --with-cholmod="-lcholmod"
 
                     --with-cholmod="-lcholmod"
  
Line 84: Line 87:
 
configure.awk      ${prefix}/bin/gawk
 
configure.awk      ${prefix}/bin/gawk
 
configure.env-append GREP="${prefix}/bin/grep" \
 
configure.env-append GREP="${prefix}/bin/grep" \
 +
                    FLTK_CONFIG=no \
 
                     SED="${prefix}/bin/gsed" \
 
                     SED="${prefix}/bin/gsed" \
 
                     TEXI2DVI="${prefix}/bin/texi2dvi" \
 
                     TEXI2DVI="${prefix}/bin/texi2dvi" \
Line 90: Line 94:
 
configure.cxxflags  -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs
 
configure.cxxflags  -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs
 
configure.cflags    -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs
 
configure.cflags    -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs
configure.fflags    -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs
+
configure.fflags    -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs -funroll-loops
configure.ldflags    -pthread
+
configure.ldflags    -D_THREAD_SAFE -pthread
  
 
test.run            yes
 
test.run            yes
Line 115: Line 119:
 
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 -Wl,-framework -Wl,Accelerate"
+
     configure.args-append  --with-blas="-ldotwrp -framework Accelerate"
     configure.args-append  --with-lapack="-Wl,-framework -Wl,Accelerate"
+
     configure.args-append  --with-lapack="-framework Accelerate"
 
}
 
}
  
Line 130: Line 134:
 
# check for setting the default variant (gcc44)
 
# check for setting the default variant (gcc44)
 
if { ![variant_isset gcc43] && ![variant_isset gcc44] && \
 
if { ![variant_isset gcc43] && ![variant_isset gcc44] && \
         ![variant_isset gcc45] && ![variant_isset gcc46] && \
+
         ![variant_isset gcc46] && ![variant_isset g95] } {
        ![variant_isset g95] } {
+
     default_variants +gcc45
     default_variants +gcc44
 
 
}
 
}
  
Line 139: Line 142:
 
         ![variant_isset gcc45] && ![variant_isset gcc46] && \
 
         ![variant_isset gcc45] && ![variant_isset gcc46] && \
 
         ![variant_isset g95] } {
 
         ![variant_isset g95] } {
     error "You cannot use the variant -gcc44 alone."
+
     pre-fetch {
 +
        error "You must select one of the compiler variants."
 +
    }
 
}
 
}
  
Line 155: Line 160:
 
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 -pthread"
+
     configure.ldflags    "${prefix}/lib/gcc${gcc_version_join}/libstdc++.6.dylib"
 
     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}
 +
}
 +
 +
variant docs description {Enable creation and installation of documentation} {
 +
    depends_run-append port:texlive-basic
 +
    configure.args-replace s|--disable-docs|--enable-docs|
 
}
 
}
  

Revision as of 07:53, 29 July 2012

This prototype MacPorts portfile is intended to be used to produce a Octave App bundle for MacOS X. Before using it, please verify that the version number of Octave is correct. If a change is made to the file, it is recommended that the revision number be incremented to ensure that MacPorts recognizes that the port is outdated and in need of being upgraded.

This portfile deviates significantly from the Octave portfile provided by MacPorts. Specifically, this portfile has fltk-devel, epstool, pstoedit, and transfig as required dependencies. In addition, METIS has been removed, as it's license is not compatible with GPL.

# -*- 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$

PortSystem 1.0

name                octave-local
version             3.7.0+
revision            10
conflicts           octave
categories          math science
maintainers         michaelld openmaintainer
platforms           darwin
description         a Matlab-like environment for numerical analysis
long_description    Octave provides a convenient command line interface \
                    for solving linear and nonlinear problems numerically, \
                    using a language that is mostly compatible with Matlab. \
                    It is easily extensible and customizable via \
                    user-defined functions or using dynamically loaded \
                    modules written in e.g. C++, C or Fortran.

homepage            http://www.gnu.org/software/octave/
master_sites        gnu:octave
dist_subdir         octave
distname            octave-${version}

checksums           md5     6e4717edea2f64900071a46ba49948c0 \
                    sha1    65592138d92eb5db2d15425f9e6c5ffe258cae48 \
                    rmd160  26b55a770b5c622aa1209558b674e9f33092d610

depends_build       port:bison \
                    port:flex \
                    port:gawk \
                    port:gperf \
                    port:grep \
                    port:gsed \
                    path:bin/perl:perl5 \
                    port:texinfo

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

depends_run         port:epstool \
                    port:transfig \
                    port:pstoedit

universal_variant   no

# do not use CLANG (yet)
if {${configure.compiler} == "clang"} { 
    configure.compiler llvm-gcc-4.2
}

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

# octave uses a number of other ports to create sources from template:
# perl, gawk, gsed, flex, bison, texinfo.  Make sure these are the
# MacPorts' versions.  Python is not used if perl is available, so
# clear it out.  grep is checked for in 'configure', but not used
# except inside that script; include it here for completion.
configure.perl      ${prefix}/bin/perl
configure.python    ' '
configure.awk       ${prefix}/bin/gawk
configure.env-append GREP="${prefix}/bin/grep" \
                     FLTK_CONFIG=no \
                     SED="${prefix}/bin/gsed" \
                     TEXI2DVI="${prefix}/bin/texi2dvi" \
                     TEXI2PDF="${prefix}/bin/texi2pdf"
configure.cppflags   -D_THREAD_SAFE -pthread
configure.cxxflags   -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs
configure.cflags     -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs
configure.fflags     -O0 -ggdb3 -D_THREAD_SAFE -pthread -gstabs -funroll-loops
configure.ldflags    -D_THREAD_SAFE -pthread

test.run            yes
test.target         check

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

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

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

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

variant g95 description {build with g95} conflicts gcc43 gcc44 gcc45 gcc46 {
    depends_build-append    port:g95
    configure.f77           "${prefix}/bin/g95"
}

variant atlas description {use BLAS from ATLAS} conflicts accelerate {
    depends_lib-append port:atlas
}

variant accelerate description {use BLAS from Apple's Accelerate.framework} conflicts atlas {
    depends_lib-append      port:dotwrp
    configure.args-append   --with-blas="-ldotwrp -framework Accelerate"
    configure.args-append   --with-lapack="-framework Accelerate"
}

if {[variant_isset g95]} {
    default_variants +accelerate
} elseif {![variant_isset accelerate]} {
    default_variants +atlas
}

# check for GCC / G95 variants.  The default here must match the
# default found in the 'atlas' port (but, this is not checked for).

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

# check if the user disabled just the default variant: -gcc44
if { ![variant_isset gcc43] && ![variant_isset gcc44] && \
         ![variant_isset gcc45] && ![variant_isset gcc46] && \
         ![variant_isset g95] } {
    pre-fetch {
        error "You must select one of the compiler variants."
    }
}

set gcc_version ""
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"
}

if {${gcc_version} != ""} {
    set gcc_version_join [join [split ${gcc_version} "."] ""]
    configure.ldflags    "${prefix}/lib/gcc${gcc_version_join}/libstdc++.6.dylib"
    depends_build-append port:gcc${gcc_version_join}
    configure.compiler   macports-gcc-${gcc_version}
}

variant docs description {Enable creation and installation of documentation} {
    depends_run-append port:texlive-basic
    configure.args-replace s|--disable-docs|--enable-docs|
}

variant x11 description {Enable use of X11} {
    configure.args-replace s|--without-x|--with-x|
    configure.args-append --x-includes=${prefix}
}

livecheck.type      regex
livecheck.url       http://www.gnu.org/software/octave/news.html
livecheck.regex     Version (\\d+(\\.\\d+)*)