[148698] trunk/dports/math/octave

mcalhoun at macports.org mcalhoun at macports.org
Sun May 15 02:55:48 PDT 2016


Revision: 148698
          https://trac.macports.org/changeset/148698
Author:   mcalhoun at macports.org
Date:     2016-05-15 02:55:48 -0700 (Sun, 15 May 2016)
Log Message:
-----------
octave: update version 3.8.2->4.0.2 (major changes; fixes #47979)

Modified Paths:
--------------
    trunk/dports/math/octave/Portfile
    trunk/dports/math/octave/files/patch-gl2ps_renderer.diff
    trunk/dports/math/octave/files/patch-yosemite-libtool.diff

Added Paths:
-----------
    trunk/dports/math/octave/files/clang-libcxx-fix.patch
    trunk/dports/math/octave/files/octave-bug_41027.patch
    trunk/dports/math/octave/files/patch-e870a68742a6.diff

Removed Paths:
-------------
    trunk/dports/math/octave/files/Info.plist
    trunk/dports/math/octave/files/Octave
    trunk/dports/math/octave/files/Octave.icns
    trunk/dports/math/octave/files/patch-clang-libcxx.diff

Modified: trunk/dports/math/octave/Portfile
===================================================================
--- trunk/dports/math/octave/Portfile	2016-05-15 09:42:12 UTC (rev 148697)
+++ trunk/dports/math/octave/Portfile	2016-05-15 09:55:48 UTC (rev 148698)
@@ -1,375 +1,521 @@
-# -*- 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
+# -*- 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           compilers  1.0
+PortGroup           muniversal 1.0
 PortGroup           active_variants 1.1
 PortGroup           compiler_blacklist_versions 1.0
-PortGroup           compilers 1.0
 
 name                octave
-
-version             3.8.2
-revision            18
-#conflicts           octave-devel
+version             4.0.2
 categories          math science
-maintainers         michaelld openmaintainer
-license             GPL-3
 platforms           darwin
+license             GPL-3+
+maintainers         michaelld mcalhoun openmaintainer
+description         a high-level language for numerical computations
+long_description    \
+    GNU Octave is a high-level language, primarily intended for numerical \
+    computations.  It provides a convenient command line interface for \
+    solving linear and nonlinear problems numerically.
 
-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
 
-homepage            http://www.gnu.org/software/octave/
-dist_subdir         octave
-distname            octave-${version}
 master_sites        gnu:octave
-use_bzip2           yes
 
-checksums           rmd160  60201b29d368d0c935a34288c227d202ae286c6c \
-                    sha256  83bbd701aab04e7e57d0d5b8373dd54719bebb64ce0a850e69bf3d7454f33bae
+checksums           rmd160  2f910e95b01d49d9ecfece61c901709b124227ac \
+                    sha256  39cd8fd36c218fc00adace28d74a6c7c9c6faab7113a5ba3c4372324c755bdc1
 
-compilers.choose    fc f77 f90
-compilers.setup     require_fortran
+# Block compilers: Some older versions of CLANG do not honor the CPATH
+# environment variables, which is required for compiling this port
+# when using MacPorts.  The versions seem to be: MacPorts CLANG 2.9 or
+# earlier, and Apple CLANG 318.0.58 or older.
+#
+# See also < http://llvm.org/bugs/show_bug.cgi?id=8971 >
+#          < https://trac.macports.org/ticket/40250 >.
+compiler.blacklist-append { clang <= 318.0.61 }
 
-depends_build-append \
-                    port:bison \
-                    port:flex \
-                    port:gperf \
-                    path:bin/perl:perl5 \
-                    port:pkgconfig
+# see http://savannah.gnu.org/bugs/?func=detailitem&item_id=46592
+patchfiles-append \
+    patch-e870a68742a6.diff
 
-depends_lib-append \
-                    port:arpack \
-                    port:curl \
-                    port:fftw-3 \
-                    port:fftw-3-single \
-                    port:gawk \
-                    port:glpk \
-                    port:gnuplot \
-                    port:GraphicsMagick \
-                    port:grep \
-                    port:gsed \
-                    port:hdf5 \
-                    port:less \
-                    port:ncurses \
-                    port:pcre \
-                    port:qhull \
-                    port:qrupdate \
-                    port:readline \
-                    port:SuiteSparse \
-                    port:zlib \
-                    port:texinfo
+# see http://savannah.gnu.org/bugs/?41027
+patchfiles-append   \
+    octave-bug_41027.patch
 
-depends_run-append  port:epstool \
-                    port:ghostscript \
-                    port:transfig \
-                    port:pstoedit
+# Don't link with "-flat_namespace -undefined suppress"
+# on Mac OS X 10.10 Yosemite and later.
+patchfiles-append   patch-yosemite-libtool.diff
 
-# Octave's build system does not produce universal binaries
+pre-patch {
+    # code located in pre-patch because variants from PortGroup compilers must
+    #    be evaluated before it can be determined if clang is being used
 
-universal_variant   no
+    # see http://trac.macports.org/ticket/45011
+    # see http://savannah.gnu.org/bugs/?43298
+    set libcxxbug no
+    if { ${configure.cc} eq "/usr/bin/clang" && [lindex [split ${xcodeversion} .] 0] eq 6 } {
+        set libcxxbug yes
+    } elseif { [variant_exists clang35] && [variant_isset clang35] } {
+        set libcxxbug yes
+    }
+    if { ${libcxxbug} } {
+        patchfiles-append   \
+            clang-libcxx-fix.patch
+    }
 
-# Don't link with "-flat_namespace -undefined suppress"
-# on Mac OS X 10.10 Yosemite and later.
+    # see https://trac.macports.org/ticket/44704
+    set gl2psbug no
+    if { ${configure.cc} eq "/usr/bin/clang" && [vercmp ${xcodeversion} 5.0.0] < 0 } {
+        set gl2psbug yes
+    } elseif { [variant_exists clang33] && [variant_isset clang33] } {
+        set gl2psbug yes
+    }
+    if { ${gl2psbug} } {
+        patchfiles-append   patch-gl2ps_renderer.diff
+    }
+}
 
-patchfiles-append   patch-yosemite-libtool.diff
+# avoid depends_build-append port:coreutils
+configure.env-append MKDIR_P="/bin/mkdir -p"
 
-# Fix certain versions of libc++ use of 'pow';
-# See also: < http://llvm.org/bugs/show_bug.cgi?id=21083 >
-#           < https://trac.macports.org/ticket/45210 >
-# Adding in this patch will not hurt when using a working
-# version of libcxx (< 1101), nor with using libstdcxx
-# (where _LIBCPP_VERSION is not defined).
-#
-# REMINDER: check without this patch when new libcxx
-# is available, to determine a stopping point for
-# when this issue was fixed; add that version to
-# the patch to "mx-inlines.cc".
+# avoid depends_build-append port:cctools
+configure.env-append RANLIB=/usr/bin/ranlib
 
-patchfiles-append   patch-clang-libcxx.diff
+# main octave port lists as a depends_lib
+# configure.ac list it among the "[p]rograms used in Makefiles"
+depends_build-append port:gawk
+configure.awk ${prefix}/bin/gawk
 
-# fix gl2ps renderer interface for compiling using older clang.
-# See also: < https://trac.macports.org/ticket/44704 >
+# in configure.ac, said to be "[p]rograms used to generate icons file formats
+depends_build-append \
+    port:icoutils    \
+    port:librsvg
+configure.env-append              \
+    ICOTOOL=${prefix}/bin/icotool \
+    RSVG_CONVERT=${prefix}/bin/rsvg-convert
 
-patchfiles-append   patch-gl2ps_renderer.diff
+# main octave port lists as a depends_lib
+# configure.ac list it among the "[p]rograms used in Makefiles"
+depends_build-append port:grep
+configure.env-append  GREP=${prefix}/bin/grep
+configure.env-append EGREP=${prefix}/bin/egrep
+configure.env-append FGREP=${prefix}/bin/fgrep
 
-# common configure arguments
+# configure.ac list it among the "[p]rograms used in Makefiles"
+depends_build-append port:findutils
+configure.env-append FIND=${prefix}/bin/gfind
 
-configure.args \
-    --disable-dependency-tracking \
-    --with-umfpack="-lumfpack -lSuiteSparse" \
-    --enable-docs \
-    --enable-strict-warning-flags \
-    --disable-silent-rules
+# main octave port lists as a depends_lib
+# configure.ac list it among the "[p]rograms used in Makefiles"
+depends_build-append port:gsed
+configure.env-append SED=${prefix}/bin/gsed
 
-# when using "hdf5 +mpich", have to manually include
-# "/opt/local/include/mpich-mp". See also:
-# < https://trac.macports.org/ticket/47618 >
+depends_build-append port:flex
+configure.env-append LEX=${prefix}/bin/flex
 
-pre-configure {
-    # is hdf5 installed and active?
-    if {![catch {set installed [lindex [registry_active hdf5] 0]}]} {
-        # yes: is this one installed with +mpich*?
-        set _variants [lindex ${installed} 3]
-        if {[string first {mpich} ${_variants}] != -1} {
-            # yes; set cpath for both configure and build stages
-            compiler.cpath-append ${prefix}/include/mpich-mp
-            # and, set the configure flag, just in case
-            configure.args-append \
-                "--with-hdf5-includedir=${prefix}/include/mpich-mp"
-        }
-    }
-}
+depends_build-append port:bison
+configure.env-append YACC="${prefix}/bin/bison -y"
 
-# 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.
+depends_build-append port:gperf
+configure.env-append GPERF=/usr/bin/gperf
 
-configure.perl      ${prefix}/bin/perl
-configure.python    ' '
-configure.awk       ${prefix}/bin/gawk
-configure.env-append GREP="${prefix}/bin/grep" \
-                     SED="${prefix}/bin/gsed" \
-                     TEXI2DVI="${prefix}/bin/texi2dvi" \
-                     TEXI2PDF="${prefix}/bin/texi2pdf"
-configure.cppflags
-configure.ldflags
+# configure.ac list it among the "[p]rograms used in Makefiles"
+depends_build-append port:perl5
+configure.perl ${prefix}/bin/perl5
 
-test.run            yes
-test.target         check
+# avoid depends_build-append port:desktop-file-utils
+#configure.env-append DESKTOP_FILE_INSTALL=""
+configure.env-append ac_cv_prog_DESKTOP_FILE_INSTALL=""
 
-# Block compilers: Some older versions of CLANG do not honor the CPATH
-# environment variables, which is required for compiling this port
-# when using MacPorts.  The versions seem to be: MacPorts CLANG 2.9 or
-# earlier, and Apple CLANG 318.0.58 or older.
+depends_build-append \
+    port:pkgconfig
+
+compilers.choose    fc f77 f90 cc cxx
+
+# for now, limit the number of variants
+# some of these compilers may work fine
+compilers.setup     \
+    require_fortran \
+    -dragonegg      \
+    -gcc49          \
+    -gcc48          \
+    -gcc46          \
+    -gcc45          \
+    -gcc44          \
+    -g95            \
+    -llvm           \
+    -gcc47          \
+    -gcc46          \
+    -gcc45          \
+    -gcc44          \
+    -clang36        \
+    -clang35        \
+    -clang34        \
+    -clang33
+
+# offscreen rendering with OpenGL via osmesa would be nice to have, but the following
+#    causes a segmentation fault:
+#    h = figure ("visible", "off"); fn = tempname (); sombrero (); __osmesa_print__ (h, fn, "svg");
 #
-# See also < http://llvm.org/bugs/show_bug.cgi?id=8971 >
-#          < https://trac.macports.org/ticket/40250 >.
+# solution is ???
+#
+#depends_lib-append port:mesa
+configure.args-append       \
+    --without-OSMesa
 
-compiler.blacklist-append { clang <= 318.0.61 }
+#configure.args-append --with-shell=???
 
-platform darwin {
-    if {${os.major} >= 12} {
+configure.args-append       \
+    --with-framework-carbon \
+    --without-x             \
+    --enable-static
 
-        # In 10.8+, the LANG environment variable needs to be set to
-        # "C" otherwise /usr/bin/sed fails with an error.  Ideally,
-        # octave's build system would honor the environment variable
-        # ${SED} throughout; reality is that it does not, so this
-        # addition is required because /usr/bin/sed will be used.
+configure.args-append       \
+    --disable-openmp
 
-        build.args-append LANG="C"
-    }
-}
+configure.args-append       \
+    --disable-java          \
+    --disable-gui           \
+    --without-fltk          \
+    --without-opengl        \
+    --disable-jit           \
+    --without-sndfile       \
+    --without-portaudio     \
+    --without-magick        \
+    --disable-docs
 
-# atlas does not work with g95, so always conflict with it
+# in configure.ac, listed as one of "[p]rograms used when running Octave"
+depends_lib-append port:python27
+configure.python ${prefix}/bin/python2.7
 
-variant atlas description {use BLAS from MacPorts' atlas port} \
-    conflicts g95 accelerate {
+# in configure.ac, listed as one of "[p]rograms used when running Octave"
+depends_lib-append port:ghostscript
+configure.env-append GHOSTSCRIPT=${prefix}/bin/gs
 
-    depends_lib-append port:atlas
-    # NOTE: libtatlas does not work as of 3.10.1_5
-    configure.args-append \
-        --with-blas="-lcblas -lf77blas -latlas" \
-        --with-lapack="-llapack"
+# in configure.ac, listed as one of "[p]rograms used when running Octave"
+depends_lib-append port:gnuplot
+configure.env-append GNUPLOT=${prefix}/bin/gnuplot
 
-}
+# in configure.ac, listed as one of "[p]rograms used when running Octave"
+depends_lib-append port:less
+configure.env-append DEFAULT_PAGER=${prefix}/bin/less
 
-variant accelerate description \
-    {use BLAS from Apple's Accelerate.framework [might be buggy]} \
-    conflicts atlas {
+depends_lib-append   port:ncurses
+depends_lib-append   port:readline
+depends_lib-append   port:pcre
 
-    depends_lib-append port:vecLibFort
+#--without-amd
+#--without-camd
+#--without-colamd
+#--without-cholmod
+#--without-cxsparse
+#--without-umfpack
+depends_lib-append  port:SuiteSparse
+foreach lib {amd camd colamd cholmod cxsparse umfpack} {
     configure.args-append \
-        --with-blas=-lvecLibFort \
-        --with-lapack="-Wl,-framework -Wl,Accelerate"
-
+        --with-${lib}="-l${lib} -lsuitesparseconfig"
 }
 
-if {![variant_isset accelerate] && ![variant_isset atlas]} {
+#--without-qhull
+depends_lib-append  port:qhull
 
-    # when neither +accelerate nor +atlas is selected, default to the
-    # correct one for the selected Fortran compiler.
-    if {![variant_isset g95]} {
-        default_variants +atlas
-    } else {
-        default_variants +accelerate
-    }
+#--without-z
+depends_lib-append  port:zlib
 
-}
+#--without-hdf5
+depends_lib-append  port:hdf5
 
-# make sure that either +accelerate or +atlas is selected
+#--disable-fftw-threads
+#--without-fftw3
+#--without-fftw3f
+depends_lib-append  port:fftw-3
+depends_lib-append  port:fftw-3-single
 
-if {![variant_isset accelerate] && ![variant_isset atlas]} {
+#--without-glpk
+depends_lib-append  port:glpk
 
-    ui_error "\n\nYou must select either the +accelerate or +atlas variant.\n"
-    return -code error "Invalid variant selection"
+#--without-curl
+depends_lib-append  port:curl
 
-}
+#--without-qrupdate
+depends_lib-append port:qrupdate
 
-variant x11 conflicts glgui description {Enable use of X11} {}
+#--without-arpack
+depends_lib-append port:arpack
 
-if {[variant_isset x11]} {
+#--without-openssl
+depends_lib-append port:openssl
 
-    configure.args-append --with-x --x-includes=${prefix}
+# fortran arch flag is not set automatically
+if {![variant_isset universal]} {
+    if {${build_arch} eq "x86_64" || ${build_arch} eq "ppc64"} {
+        configure.fflags-append -m64
+    } else {
+        configure.fflags-append -m32
+    }
+}
 
-} else {
+# see etc/README.MacOS
+depends_run-append   \
+    port:epstool     \
+    port:ghostscript \
+    port:transfig    \
+    port:pstoedit
 
-    configure.args-append --without-x
+variant accelerate description {use BLAS from Apple's Accelerate.framework} conflicts atlas openblas {
+    depends_lib-append port:vecLibFort
 
+    configure.args-append        \
+        --with-blas=-lvecLibFort \
+        --with-lapack=""
 }
 
-if {![variant_isset x11]} {
+variant openblas description {use BLAS from MacPorts' openblas port} conflicts atlas accelerate {
 
-    default_variants +glgui
+    depends_lib-append path:lib/libopenblas.dylib:OpenBLAS
+    # LAPACK required
+    require_active_variants path:lib/libopenblas.dylib:OpenBLAS lapack
 
+    # replicate default values if configure script finds openblas on its own
+    configure.args-append        \
+        --with-blas=-lopenblas   \
+        --with-lapack=""
 }
 
-variant glgui conflicts x11 description {Enable OpenGL GUI (via FLTK) as the default graphical front-end} {
+variant atlas description {use BLAS from MacPorts' atlas port} conflicts accelerate openblas {
+    depends_lib-append port:atlas
 
-    depends_lib-append path:lib/libfltk.dylib:fltk
-    depends_lib-append port:fontconfig \
-                       port:freetype \
-                       port:gl2ps
+    # replicate default values if configure script finds atlas on its own
+    configure.args-append        \
+        --with-blas="-lcblas -lf77blas -latlas" \
+        --with-lapack=-llapack
+}
 
+if {![variant_isset accelerate] && ![variant_isset openblas] && ![variant_isset atlas] } {
+    default_variants-append +accelerate
 }
 
-if {[variant_isset glgui]} {
+if {![variant_isset accelerate] && ![variant_isset openblas] && ![variant_isset atlas] } {
+    ui_error "\n\nYou must select either the +accelerate, +atlas, or +openblas variant.\n"
+    return -code error "Invalid variant selection"
+}
 
-    configure.args-append --with-opengl
+variant java description {enable Java interface} {
+    PortGroup java 1.0
+    configure.args-replace --disable-java --enable-java
+}
+default_variants-append +java
 
-} else {
+variant qt4gui description {build the GUI using Qt4} {
+    PortGroup qt4 1.0
+    depends_lib-append  port:qscintilla
+    configure.args-replace --disable-gui --enable-gui
+}
+default_variants-append +qt4gui
 
-    configure.args-append --without-opengl
+variant fltk description {enable fltk as a graphics toolkit for plotting} {
+    depends_lib-append path:lib/libfltk.dylib:fltk
 
+    configure.args-replace --without-fltk --with-fltk
 }
+default_variants-append +fltk
 
-variant gui requires qtgui description {Legacy variant} {}
+if {[variant_isset fltk] || [variant_isset qt4gui]} {
 
-variant qtgui description {Enable experimental Qt GUI Application} {
+    # native_graphics (fltk) and gui (Qt) require OpenGL and font and printing capabilities
+    depends_lib-append  \
+        port:fontconfig \
+        port:freetype   \
+        port:gl2ps
 
-    PortGroup qt4 1.0
-    depends_lib-append port:qscintilla
+    configure.args-replace --without-opengl --with-framework-opengl
+}
 
+if {[variant_isset fltk] && [variant_isset qt4gui]} {
+    notes-append "unless octave is run with --no-gui-libs, graphics_toolkit(\"fltk\") will cause a crash"
 }
 
-if {[variant_isset qtgui]} {
+variant jit description {enable JIT compiler (EXPERIMENTAL)} {
+    # JIT requires LLVM, so select a version to use
+    set llvm_ver 3.8
 
-    configure.args-append --enable-gui
+    # prevent multiple versions of llvm being required
+    # if clangXY compiler is requested, use llvm-X.Y
+    foreach clang ${compilers.clang_variants} {
+        if { [variant_exists ${clang}] && [variant_isset ${clang}] } {
+            set llvm_ver [string index ${clang} end-1].[string index ${clang} end]
+        }
+    }
 
-} else {
+    depends_lib-append port:llvm-${llvm_ver}
+    configure.args-replace --disable-jit --enable-jit
+    configure.env-append LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_ver}
+    configure.cxxflags-append -std=c++11
+}
 
-    configure.args-append --disable-gui
+variant sound description {enable audio support (file I/O and playback)} {
+    depends_lib-append port:libsndfile
+    depends_lib-append port:portaudio
 
+    configure.args-replace --without-sndfile   --with-sndfile
+    configure.args-replace --without-portaudio --with-portaudio
 }
+default_variants-append +sound
 
-variant java description {Enable Java interface} {}
+variant app description "build application bundle to launch ${subport}" {
+    depends_build-append port:ImageMagick
 
-if {[variant_isset java]} {
+    global appName
+    set appName Octave.app
 
-    configure.args-append --enable-java
+    post-build {
+        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents
+        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents/Resources
+        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents/MacOS
 
-} else {
+        set script [open "${worksrcpath}/${appName}/Contents/MacOS/Octave" w 0755]
+        if { [variant_isset qt4gui] } {
+            puts ${script} "#!/bin/sh"
+            puts ${script} ""
+            puts ${script} "${prefix}/bin/octave-${version} --force-gui"
+        } else {
+            puts ${script} "#!/usr/bin/osascript"
+            puts ${script} ""
+            puts ${script} "tell application \"Terminal\" to do script \"${prefix}/bin/octave-${version} --no-gui-libs; exit\""
+        }
+        close ${script}
 
-    configure.args-append --disable-java
+        #NSHumanReadableCopyright      ''
+        #LSUIElement                   1
+        set values "
+            CFBundleDevelopmentRegion     English
+            CFBundleExecutable            Octave
+            CFBundleIconFile              Octave.icns
+            CFBundleDocumentTypes         {-array \'{\"CFBundleTypeExtensions\" = (\"m\"); \"CFBundleTypeOSTypes\" = (\"Mfile\"); \"CFBundleTypeRole\" = \"Editor\";}\'}
+            CFBundleIdentifier            org.octave.Octave
+            CFBundleInfoDictionaryVersion 6.0
+            CFBundleSignature             Octave
+            CFBundleVersion               ${version}
+            CFBundleShortVersionString    ${version}
+        "
+        foreach {key value} ${values} {
+            system "/usr/bin/defaults write ${worksrcpath}/${appName}/Contents/Info ${key} ${value}"
+        }
 
-}
+        # have Info.plist be human readable
+        system "/usr/bin/plutil -convert xml1 ${worksrcpath}/${appName}/Contents/Info.plist"
 
-# jit build fails for 3.8.1
-# variant jit description {Enable experimental JIT compiler} {}
+        # conversion by plutil set verys limited permissions
+        system "/bin/chmod 0644 ${worksrcpath}/${appName}/Contents/Info.plist"
 
-# if {[variant_isset jit]} {
+        xinstall -d -m 0755 ${worksrcpath}/Octave.iconset
 
-#     depends_lib-append    port:clang-3.3
-#     configure.args-append --enable-jit
-#     configure.env-append  LLVM_CONFIG=${prefix}/bin/llvm-config-mp-3.3 \
-#                           SHLIB_CXXLD=clang++-mp-3.3
-#     configure.cc          clang-mp-3.3
-#     configure.cxx         clang++-mp-3.3
+        # values from original SVG file
+        set svg    etc/icons/octave-logo.svg
+        set width  283.28912
+        set height 283.28833
+        set dpi    90
 
-# } else {
+        foreach res {16 32 128 256 512} {
 
-#     configure.args-append --disable-jit
+            set hres [expr 2*${res}]
 
-# }
+            # find new density so that converted PNG files do not look pixelated
+            set denw  [expr ${dpi}*${res}/${width}]
+            set denh  [expr ${dpi}*${res}/${height}]
 
-variant metis description {Use SuiteSparse + Metis for graph partitioning} {
+            set hdenw [expr 2*${denw}]
+            set hdenh [expr 2*${denh}]
 
-    notes-append "\nWARNING: ${name} variant +metis uses the metis port, whose license is incompatible with Octave's.  You can use this combination locally, but you cannot distribute them as a single package (e.g., tarball, m/pkg, archive)."
+            system -W ${worksrcpath} "${prefix}/bin/convert -background transparent -resize ${res}x${res}   -density ${denw}x${denh}   ${svg} Octave.iconset/icon_${res}x${res}.png"
+            system -W ${worksrcpath} "${prefix}/bin/convert -background transparent -resize ${hres}x${hres} -density ${hdenw}x${hdenh} ${svg} Octave.iconset/icon_${res}x${res}@2x.png"
+        }
 
-    depends_lib-append      port:metis
+        system -W ${worksrcpath} "/usr/bin/iconutil -c icns -o ${appName}/Contents/Resources/Octave.icns Octave.iconset"
+    }
 
+    post-destroot {
+        copy ${worksrcpath}/${appName} ${destroot}${applications_dir}
+    }
 }
+default_variants-append +app
 
-if {[variant_isset metis]} {
+variant docs description {build documentation files} {
+    depends_build-append port:texinfo
+    configure.env-append                \
+        MAKEINFO=${prefix}/bin/makeinfo \
+        TEXI2DVI=${prefix}/bin/texi2dvi \
+        TEXI2PDF=${prefix}/bin/texi2pdf
 
-    configure.args-append   --with-cholmod="-lcholmod -lmetis"
+    # see https://lists.macosforge.org/pipermail/macports-dev/2016-January/032293.html
+    depends_build-append \
+        port:texlive-basic \
+        port:texlive-latex
 
-    # make sure SuiteSparse is installed with +metis
-    require_active_variants SuiteSparse metis
+    # see #51132
+    depends_build-append \
+        port:texlive-fonts-recommended
 
-} else {
-
-    configure.args-append   --with-cholmod="-lcholmod"
-
-    # make sure SuiteSparse is installed without +metis
-    require_active_variants SuiteSparse {} metis
-
+    configure.args-replace --disable-docs --enable-docs
 }
+default_variants-append +docs
 
-# check for +accelerate here as well as in dependent ports;
-# Apple's VecLib has bugs that cause Octave to crash sometimes,
-# while Atlas does not have these issues.  Print a warning if this
-# variant is in use, but do not force the use of +atlas (for now).
+# GraphicsMagick and octave need to be built with the same C++ standard library
+# or else undefined symbols:
+#    "Magick::Image::ping(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)"
+set magickConflict {}
+set magickDefault yes
+if {${configure.cxx_stdlib} ne "libstdc++"} {
+    foreach gccVar ${compilers.gcc_variants} {
+        if {[variant_exists ${gccVar}] } {
+            lappend magickConflict ${gccVar}
 
-if {![catch {set result [active_variants arpack accelerate {}]}]} {
-    if {$result} {
-        notes-append "\nWARNING: Dependency 'arpack' is installed with the +accelerate variant, using Apple's Vector Libraries which have some known bugs that can cause Octave to crash if using certain functions in arpack.  The +atlas variant does not have these issues with Octave, but does take many hours to compile even on modern hardware.\n"
+            if {[variant_isset ${gccVar}] } {
+                set magickDefault no
+            }
+        }
     }
 }
+eval "variant graphicsmagick description {use GraphicsMagick for image I/O} conflicts ${magickConflict} {
+    depends_lib-append port:GraphicsMagick
+    configure.args-replace --without-magick --with-magick=GraphicsMagick
+}"
+if {${magickDefault}} {
+    default_variants-append +graphicsmagick
+}
 
-if {[variant_isset accelerate]} {
-    notes-append "\nWARNING: The +accelerate variant has been selected, using Apple's Vector Libraries which have some known bugs that can cause Octave to crash.  The +atlas variant does not have these issues with Octave, but does take many hours to compile even on modern hardware.\n"
+# remove architecture flags from header file
+if { [variant_exists universal] && [variant_isset universal] } {
+    merger-post-destroot {
+        foreach arch ${universal_archs_to_use} {
+            set hfile ${destroot}-${arch}${prefix}/include/octave-${version}/octave/oct-conf.h
+            reinplace -E "s:\\w*-arch ${arch}::g" ${hfile}
+            reinplace -E {s:\\w*-m32::g}          ${hfile}
+            reinplace -E {s:\\w*-m64::g}          ${hfile}
+        }
+    }
+} else {
+    post-destroot {
+        set hfile ${destroot}${prefix}/include/octave-${version}/octave/oct-conf.h
+        reinplace -E "s:\\w*-arch ${build_arch}::g" ${hfile}
+        reinplace -E {s:\\w*-m32::g}                ${hfile}
+        reinplace -E {s:\\w*-m64::g}                ${hfile}
+    }
 }
 
 post-destroot {
+    # put any startup commands in ${destroot}${prefix}/share/octave/${version}/m/startup/octaverc
+    # see https://www.gnu.org/software/octave/doc/interpreter/Startup-Files.html
+    file delete ${destroot}${prefix}/share/octave/site/m/startup/octaverc
 
-    # select the default graphics toolkit depending on the +glgui variant
-
-    if {[variant_isset glgui]} {
-        system "echo 'graphics_toolkit(\"fltk\");' >> ${destroot}${prefix}/share/octave/site/m/startup/octaverc"
-    } else {
-        system "echo 'graphics_toolkit(\"gnuplot\");' >> ${destroot}${prefix}/share/octave/site/m/startup/octaverc"
+    if {[file exists ${worksrcpath}/liboctave/operators/libcxx-fix.h]} {
+        # install the libc++ fix, no matter if used or not, since it is
+        # required for projects including these headers.
+        xinstall -m 644 ${worksrcpath}/liboctave/operators/libcxx-fix.h \
+            ${destroot}${prefix}/include/${name}-${version}/${name}/libcxx-fix.h
     }
-
-    # install the libc++ fix, no matter if used or not, since it is
-    # required for projects including these headers.
-
-    xinstall -m 644 ${worksrcpath}/liboctave/operators/libcxx-fix.h \
-        ${destroot}${prefix}/include/${name}-${version}/${name}/libcxx-fix.h
-
-    # when doing +qtgui variant, create the Mac OS X .app
-
-    if {[variant_isset qtgui]} {
-        set appdir ${destroot}${applications_dir}/Octave.app
-        xinstall -d ${appdir}/Contents/MacOS
-        xinstall -d ${appdir}/Contents/Resources
-
-        xinstall -m 644 ${filespath}/Info.plist ${appdir}/Contents/
-        xinstall -m 644 ${filespath}/Octave.icns ${appdir}/Contents/Resources/
-        xinstall -m 755 ${filespath}/Octave ${appdir}/Contents/MacOS
-
-        reinplace -W ${appdir}/Contents "s,@@VERSION@@,${version},g" Info.plist
-        reinplace -W ${appdir}/Contents/MacOS "s,@@PREFIX@@,${prefix},g" Octave
-    }
 }
 
-livecheck.type      regex
-livecheck.url       http://www.gnu.org/software/octave/download.html
-livecheck.regex     GNU Octave (\[\^\ \]*) was
+test.run    yes
+test.target check

Deleted: trunk/dports/math/octave/files/Info.plist
===================================================================
--- trunk/dports/math/octave/files/Info.plist	2016-05-15 09:42:12 UTC (rev 148697)
+++ trunk/dports/math/octave/files/Info.plist	2016-05-15 09:55:48 UTC (rev 148698)
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>NSUIElement</key>
-	<string>1</string>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>Octave</string>
-	<key>CFBundleIconFile</key>
-	<string>Octave.icns</string>
-	<key>CFBundleDocumentTypes</key>
-	<array>
-		<dict>
-			<key>CFBundleTypeExtensions</key>
-			<array>
-				<string>m</string>
-			</array>
-			<key>CFBundleTypeRole</key>
-			<string>Editor</string>
-			<key>CFBundleTypeOSTypes</key>
-			<string>Mfile</string>
-		</dict>
-	</array>
-	<key>CFBundleIdentifier</key>
-	<string>org.octave.Octave</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleSignature</key>
-	<string>Octave</string>
-	<key>CFBundleVersion</key>
-	<string>@@VERSION@@</string>
-	<key>CFBundleShortVersion</key>
-	<string>@@VERSION@@</string>
-</dict>
-</plist>

Deleted: trunk/dports/math/octave/files/Octave
===================================================================
--- trunk/dports/math/octave/files/Octave	2016-05-15 09:42:12 UTC (rev 148697)
+++ trunk/dports/math/octave/files/Octave	2016-05-15 09:55:48 UTC (rev 148698)
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-@@PREFIX@@/bin/octave --force-gui

Deleted: trunk/dports/math/octave/files/Octave.icns
===================================================================
(Binary files differ)

Copied: trunk/dports/math/octave/files/clang-libcxx-fix.patch (from rev 148686, trunk/dports/math/octave/files/patch-clang-libcxx.diff)
===================================================================
--- trunk/dports/math/octave/files/clang-libcxx-fix.patch	                        (rev 0)
+++ trunk/dports/math/octave/files/clang-libcxx-fix.patch	2016-05-15 09:55:48 UTC (rev 148698)
@@ -0,0 +1,105 @@
+# HG changeset patch
+# User Kefu Chai <tchaikov at gmail.com>
+# Date 1413043255 -28800
+#      Sun Oct 12 00:00:55 2014 +0800
+# Node ID 1433cd4f7b7bda0b0e0a04f990b55ffc3cbaf701
+# Parent  91a6f06c505220d269de3a0dab8cc898d03d91a0
+fix the build error on clang 3.5 and libc++ (bug #43298)
+
+* liboctave/operators/mx-inlines.cc:
+use the workaround if libc++ with this issue is detected.
+
+* liboctave/operators/libcxx-fix.cc:
+add a workaround for http://llvm.org/bugs/show_bug.cgi?id=21083, so that only
+the arithmetic types are accepted for the function template "libcxx_fix::pow()".
+
+diff -r 91a6f06c5052 -r 1433cd4f7b7b liboctave/operators/libcxx-fix.h
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ liboctave/operators/libcxx-fix.h	Sun Oct 12 00:00:55 2014 +0800
+@@ -0,0 +1,69 @@
++#ifndef _LIBCPP_VERSION
++#error "for libc++ only"
++#endif
++
++namespace libcxx_fix {
++
++using std::is_integral;
++using std::is_same;
++using std::enable_if;
++
++template <class _Tp, class _Tn = void>
++struct numeric_type
++{
++    typedef void type;
++    static const bool value = false;
++};
++
++template <class _Tp>
++struct numeric_type<_Tp, typename enable_if<is_integral<_Tp>::value ||
++                                            is_same<_Tp, double>::value>::type>
++{
++    typedef double type;
++    static const bool value = true;
++};
++
++template <class _Tp>
++struct numeric_type<_Tp, typename enable_if<is_same<_Tp, long double>::value ||
++                                            is_same<_Tp, float>::value>::type>
++{
++    typedef _Tp type;
++    static const bool value = true;
++};
++
++template <>
++struct numeric_type<void, void>
++{
++    static const bool value = true;
++};
++
++template <class _A1, class _A2,
++          bool = numeric_type<_A1>::value &&
++                 numeric_type<_A2>::value>
++class promote
++{};
++
++template <class _A1, class _A2>
++class promote<_A1, _A2, true>
++{
++private:
++    typedef typename numeric_type<_A1>::type __type1;
++    typedef typename numeric_type<_A2>::type __type2;
++public:
++    typedef decltype(__type1() + __type2()) type;
++};
++
++template <class _A1, class _A2>
++inline _LIBCPP_INLINE_VISIBILITY
++typename promote<_A1, _A2>::type
++pow(_A1 __x, _A2 __y) _NOEXCEPT
++{
++    typedef typename promote<_A1, _A2>::type __result_type;
++#if _LIBCPP_STD_VER > 11
++    static_assert((!(is_same<_A1, __result_type>::value &&
++                     is_same<_A2, __result_type>::value)), "");
++#endif
++    return ::pow(static_cast<__result_type>(__x), static_cast<__result_type>(__y));
++}
++
++}
+diff -r 91a6f06c5052 -r 1433cd4f7b7b liboctave/operators/mx-inlines.cc
+--- a/liboctave/operators/mx-inlines.cc	Thu Oct 09 20:38:04 2014 -0700
++++ liboctave/operators/mx-inlines.cc	Sun Oct 12 00:00:55 2014 +0800
+@@ -307,7 +307,13 @@
+ 
+ // Let the compiler decide which pow to use, whichever best matches the
+ // arguments provided.
++#if defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION >= 1101)
++// Workaround http://llvm.org/bugs/show_bug.cgi?id=21083
++#include "libcxx-fix.h"
++using libcxx_fix::pow;
++#else
+ using std::pow;
++#endif
+ DEFMXMAPPER2X (mx_inline_pow, pow)
+ 
+ // Arbitrary function appliers. The function is a template parameter to enable

Added: trunk/dports/math/octave/files/octave-bug_41027.patch
===================================================================
--- trunk/dports/math/octave/files/octave-bug_41027.patch	                        (rev 0)
+++ trunk/dports/math/octave/files/octave-bug_41027.patch	2016-05-15 09:55:48 UTC (rev 148698)
@@ -0,0 +1,24 @@
+diff -r 900b524d9072 libinterp/corefcn/comment-list.h
+--- a/libinterp/corefcn/comment-list.h	Sat Apr 19 09:28:20 2014 -0700
++++ libinterp/corefcn/comment-list.h	Sun May 18 18:09:05 2014 +0200
+@@ -25,7 +25,7 @@
+ 
+ #include <string>
+ 
+-#include <base-list.h>
++#include "base-list.h"
+ 
+ extern std::string get_comment_text (void);
+ 
+diff -r 900b524d9072 libinterp/corefcn/oct.h
+--- a/libinterp/corefcn/oct.h	Sat Apr 19 09:28:20 2014 -0700
++++ libinterp/corefcn/oct.h	Sun May 18 18:09:05 2014 +0200
+@@ -28,7 +28,7 @@
+ // config.h needs to be first because it includes #defines that can */
+ // affect other header files.
+ 
+-#include <config.h>
++#include "config.h"
+ 
+ #include "Matrix.h"
+ 

Deleted: trunk/dports/math/octave/files/patch-clang-libcxx.diff
===================================================================
--- trunk/dports/math/octave/files/patch-clang-libcxx.diff	2016-05-15 09:42:12 UTC (rev 148697)
+++ trunk/dports/math/octave/files/patch-clang-libcxx.diff	2016-05-15 09:55:48 UTC (rev 148698)
@@ -1,105 +0,0 @@
-# HG changeset patch
-# User Kefu Chai <tchaikov at gmail.com>
-# Date 1413043255 -28800
-#      Sun Oct 12 00:00:55 2014 +0800
-# Node ID 1433cd4f7b7bda0b0e0a04f990b55ffc3cbaf701
-# Parent  91a6f06c505220d269de3a0dab8cc898d03d91a0
-fix the build error on clang 3.5 and libc++ (bug #43298)
-
-* liboctave/operators/mx-inlines.cc:
-use the workaround if libc++ with this issue is detected.
-
-* liboctave/operators/libcxx-fix.cc:
-add a workaround for http://llvm.org/bugs/show_bug.cgi?id=21083, so that only
-the arithmetic types are accepted for the function template "libcxx_fix::pow()".
-
-diff -r 91a6f06c5052 -r 1433cd4f7b7b liboctave/operators/libcxx-fix.h
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ liboctave/operators/libcxx-fix.h	Sun Oct 12 00:00:55 2014 +0800
-@@ -0,0 +1,69 @@
-+#ifndef _LIBCPP_VERSION
-+#error "for libc++ only"
-+#endif
-+
-+namespace libcxx_fix {
-+
-+using std::is_integral;
-+using std::is_same;
-+using std::enable_if;
-+
-+template <class _Tp, class _Tn = void>
-+struct numeric_type
-+{
-+    typedef void type;
-+    static const bool value = false;
-+};
-+
-+template <class _Tp>
-+struct numeric_type<_Tp, typename enable_if<is_integral<_Tp>::value ||
-+                                            is_same<_Tp, double>::value>::type>
-+{
-+    typedef double type;
-+    static const bool value = true;
-+};
-+
-+template <class _Tp>
-+struct numeric_type<_Tp, typename enable_if<is_same<_Tp, long double>::value ||
-+                                            is_same<_Tp, float>::value>::type>
-+{
-+    typedef _Tp type;
-+    static const bool value = true;
-+};
-+
-+template <>
-+struct numeric_type<void, void>
-+{
-+    static const bool value = true;
-+};
-+
-+template <class _A1, class _A2,
-+          bool = numeric_type<_A1>::value &&
-+                 numeric_type<_A2>::value>
-+class promote
-+{};
-+
-+template <class _A1, class _A2>
-+class promote<_A1, _A2, true>
-+{
-+private:
-+    typedef typename numeric_type<_A1>::type __type1;
-+    typedef typename numeric_type<_A2>::type __type2;
-+public:
-+    typedef decltype(__type1() + __type2()) type;
-+};
-+
-+template <class _A1, class _A2>
-+inline _LIBCPP_INLINE_VISIBILITY
-+typename promote<_A1, _A2>::type
-+pow(_A1 __x, _A2 __y) _NOEXCEPT
-+{
-+    typedef typename promote<_A1, _A2>::type __result_type;
-+#if _LIBCPP_STD_VER > 11
-+    static_assert((!(is_same<_A1, __result_type>::value &&
-+                     is_same<_A2, __result_type>::value)), "");
-+#endif
-+    return ::pow(static_cast<__result_type>(__x), static_cast<__result_type>(__y));
-+}
-+
-+}
-diff -r 91a6f06c5052 -r 1433cd4f7b7b liboctave/operators/mx-inlines.cc
---- liboctave/operators/mx-inlines.cc	Thu Oct 09 20:38:04 2014 -0700
-+++ liboctave/operators/mx-inlines.cc	Sun Oct 12 00:00:55 2014 +0800
-@@ -306,7 +306,13 @@
- 
- // Let the compiler decide which pow to use, whichever best matches the
- // arguments provided.
-+#if defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION >= 1101)
-+// Workaround http://llvm.org/bugs/show_bug.cgi?id=21083
-+#include "libcxx-fix.h"
-+using libcxx_fix::pow;
-+#else
- using std::pow;
-+#endif
- DEFMXMAPPER2X (mx_inline_pow, pow)
- 
- // Arbitrary function appliers. The function is a template parameter to enable

Added: trunk/dports/math/octave/files/patch-e870a68742a6.diff
===================================================================
--- trunk/dports/math/octave/files/patch-e870a68742a6.diff	                        (rev 0)
+++ trunk/dports/math/octave/files/patch-e870a68742a6.diff	2016-05-15 09:55:48 UTC (rev 148698)
@@ -0,0 +1,44 @@
+
+# HG changeset patch
+# User Torsten <ttl at justmail.de>
+# Date 1449207825 -3600
+# Node ID e870a68742a6c6e86333c72956aa31ceb7986131
+# Parent  f7b0572fff6e5e555a3ecea2ee5c9bf8b6798910
+change alignment of dock widget titles for OSX (bug #46592)
+
+* octave-dock-widget.cc (set_style): change alignment in style sheet for OSX
+
+diff --git a/libgui/src/octave-dock-widget.cc b/libgui/src/octave-dock-widget.cc
+--- libgui/src/octave-dock-widget.cc
++++ libgui/src/octave-dock-widget.cc
+@@ -330,6 +330,11 @@
+   else
+     dock_icon = "widget-undock";
+ 
++#if defined (Q_OS_MAC)
++  QString alignment = "center";
++#else
++  QString alignment = "center left";
++#endif
+   if (_custom_style)
+     {
+ 
+@@ -371,7 +376,7 @@
+       css = background + QString (" color: %1 ;").arg (fg_col.name ());
+ #else
+       css = QString ("QDockWidget::title { " + background +
+-                     "                     text-align: center left;"
++                     "                     text-align: " + alignment + ";"
+                      "                     padding: 0px 0px 0px 4px;}\n"
+                      "QDockWidget { color: %1 ; "
+                      "  titlebar-close-icon: url(:/actions/icons/widget-close%2.png);"
+@@ -387,7 +392,7 @@
+ #if defined (Q_OS_WIN32)
+       css = QString ("");
+ #else
+-      css = QString ("QDockWidget::title { text-align: center left;"
++      css = QString ("QDockWidget::title { text-align: " + alignment + ";"
+                      "                     padding: 0px 0px 0px 4px;}"
+                      "QDockWidget {"
+                      "  titlebar-close-icon: url(:/actions/icons/widget-close.png);"
+

Modified: trunk/dports/math/octave/files/patch-gl2ps_renderer.diff
===================================================================
--- trunk/dports/math/octave/files/patch-gl2ps_renderer.diff	2016-05-15 09:42:12 UTC (rev 148697)
+++ trunk/dports/math/octave/files/patch-gl2ps_renderer.diff	2016-05-15 09:55:48 UTC (rev 148698)
@@ -1,50 +1,6 @@
---- libinterp/corefcn/gl2ps-renderer.cc.orig
-+++ libinterp/corefcn/gl2ps-renderer.cc
-@@ -34,6 +34,9 @@ along with Octave; see the file COPYING.  If not, see
- #include "gl2ps-renderer.h"
- #include "gl2ps.h"
- 
-+glps_renderer::glps_renderer (FILE *_fp, const std::string& _term)
-+  : opengl_renderer () , fp (_fp), term (_term), fontsize (), fontname () { }
-+
- void
- glps_renderer::draw (const graphics_object& go, const std::string print_cmd)
- {
-@@ -253,4 +256,31 @@ glps_renderer::draw_text (const text::properties& props)
-                 alignment_to_mode (halign, valign), props.get_rotation ());
- }
- 
-+void
-+glps_renderer::set_linestyle (const std::string& s, bool use_stipple)
-+{
-+  opengl_renderer::set_linestyle (s, use_stipple);
-+
-+  if (s == "-" && ! use_stipple)
-+    gl2psDisable (GL2PS_LINE_STIPPLE);
-+  else
-+    gl2psEnable (GL2PS_LINE_STIPPLE);
-+}
-+
-+void
-+glps_renderer::set_polygon_offset (bool on, double offset)
-+{
-+  opengl_renderer::set_polygon_offset (on, offset);
-+  if (on)
-+    gl2psEnable (GL2PS_POLYGON_OFFSET_FILL);
-+  else
-+    gl2psDisable (GL2PS_POLYGON_OFFSET_FILL);
-+}
-+
-+void
-+glps_renderer::set_linewidth (float w)
-+{
-+  gl2psLineWidth (w);
-+}
-+
- #endif
---- libinterp/corefcn/gl2ps-renderer.h.orig
-+++ libinterp/corefcn/gl2ps-renderer.h
-@@ -33,8 +33,7 @@ OCTINTERP_API
+--- libinterp/corefcn/gl2ps-renderer.h.orig	2016-05-08 02:17:06.000000000 -0700
++++ libinterp/corefcn/gl2ps-renderer.h	2016-05-08 02:26:05.000000000 -0700
+@@ -35,8 +35,7 @@
  glps_renderer : public opengl_renderer
  {
  public:
@@ -54,7 +10,7 @@
  
    ~glps_renderer (void) { }
  
-@@ -52,29 +51,9 @@ protected:
+@@ -54,34 +53,9 @@
    void draw_pixels (GLsizei w, GLsizei h, GLenum format,
                      GLenum type, const GLvoid *data);
  
@@ -68,13 +24,18 @@
 -      gl2psEnable (GL2PS_LINE_STIPPLE);
 -  }
 -
--  void set_polygon_offset (bool on, double offset = 0.0)
+-  void set_polygon_offset (bool on, float offset = 0.0f)
 -  {
--    opengl_renderer::set_polygon_offset (on, offset);
 -    if (on)
--      gl2psEnable (GL2PS_POLYGON_OFFSET_FILL);
+-      {
+-        opengl_renderer::set_polygon_offset (on, offset);
+-        gl2psEnable (GL2PS_POLYGON_OFFSET_FILL);
+-      }
 -    else
--      gl2psDisable (GL2PS_POLYGON_OFFSET_FILL);
+-      {
+-        gl2psDisable (GL2PS_POLYGON_OFFSET_FILL);
+-        opengl_renderer::set_polygon_offset (on, offset);
+-      }
 -  }
 -
 -  void set_linewidth (float w)
@@ -82,8 +43,59 @@
 -    gl2psLineWidth (w);
 -  }
 +  void set_linestyle (const std::string& s, bool use_stipple = false);
-+  void set_polygon_offset (bool on, double offset = 0.0);
++  void set_polygon_offset (bool on, float offset = 0.0f);
 +  void set_linewidth (float w);
  
  private:
    int alignment_to_mode (int ha, int va) const;
+--- libinterp/corefcn/gl2ps-renderer.cc.orig	2016-05-08 02:16:56.000000000 -0700
++++ libinterp/corefcn/gl2ps-renderer.cc	2016-05-08 02:29:17.000000000 -0700
+@@ -38,6 +38,9 @@
+ #include "gl2ps.h"
+ #include "sysdep.h"
+ 
++glps_renderer::glps_renderer (FILE *_fp, const std::string& _term)
++  : opengl_renderer () , fp (_fp), term (_term), fontsize (), fontname () { }
++
+ void
+ glps_renderer::draw (const graphics_object& go, const std::string& print_cmd)
+ {
+@@ -346,6 +349,38 @@
+     octave_pclose (f);
+ }
+ 
++void
++glps_renderer::set_linestyle (const std::string& s, bool use_stipple)
++{
++  opengl_renderer::set_linestyle (s, use_stipple);
++
++  if (s == "-" && ! use_stipple)
++    gl2psDisable (GL2PS_LINE_STIPPLE);
++  else
++    gl2psEnable (GL2PS_LINE_STIPPLE);
++}
++
++void
++glps_renderer::set_polygon_offset (bool on, float offset)
++{
++  if (on)
++    {
++      opengl_renderer::set_polygon_offset (on, offset);
++      gl2psEnable (GL2PS_POLYGON_OFFSET_FILL);
++    }
++  else
++    {
++      gl2psDisable (GL2PS_POLYGON_OFFSET_FILL);
++      opengl_renderer::set_polygon_offset (on, offset);
++    }
++}
++
++void
++glps_renderer::set_linewidth (float w)
++{
++  gl2psLineWidth (w);
++}
++
+ #endif
+ 
+ void

Modified: trunk/dports/math/octave/files/patch-yosemite-libtool.diff
===================================================================
--- trunk/dports/math/octave/files/patch-yosemite-libtool.diff	2016-05-15 09:42:12 UTC (rev 148697)
+++ trunk/dports/math/octave/files/patch-yosemite-libtool.diff	2016-05-15 09:55:48 UTC (rev 148698)
@@ -1,8 +1,6 @@
-Index: configure
-===================================================================
---- configure.orig
-+++ configure
-@@ -21080,7 +21080,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
+--- configure.orig	2016-05-08 01:48:51.000000000 -0700
++++ configure	2016-05-08 01:48:40.000000000 -0700
+@@ -21982,7 +21982,7 @@
        case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
  	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
  	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160515/af6e1c29/attachment-0001.html>


More information about the macports-changes mailing list