[104874] trunk/dports/math/shogun
stromnov at macports.org
stromnov at macports.org
Thu Apr 4 09:51:09 PDT 2013
Revision: 104874
https://trac.macports.org/changeset/104874
Author: stromnov at macports.org
Date: 2013-04-04 09:51:09 -0700 (Thu, 04 Apr 2013)
Log Message:
-----------
shogun: update to version 2.1.0 (#38596, maintainer timeout)
Modified Paths:
--------------
trunk/dports/math/shogun/Portfile
Added Paths:
-----------
trunk/dports/math/shogun/files/patch-src_configure.diff
Removed Paths:
-------------
trunk/dports/math/shogun/files/swig_version.patch
Modified: trunk/dports/math/shogun/Portfile
===================================================================
--- trunk/dports/math/shogun/Portfile 2013-04-04 14:08:34 UTC (rev 104873)
+++ trunk/dports/math/shogun/Portfile 2013-04-04 16:51:09 UTC (rev 104874)
@@ -3,15 +3,15 @@
PortSystem 1.0
-categories math science
name shogun
-version 0.9.3
-revision 1
+version 2.1.0
set branch [join [lrange [split ${version} .] 0 1] .]
+revision 0
+categories-append science
+platforms darwin
license GPL-3
-maintainers jameskyle
-platforms darwin
+maintainers jameskyle openmaintainer
description The machine learning toolbox's focus is on large scale \
kernel methods
@@ -23,165 +23,247 @@
homepage http://shogun-toolbox.org
master_sites ${homepage}/archives/shogun/releases/${branch}/sources/
+
use_bzip2 yes
-checksums md5 99afbb304d524335fc181c553047cb51 \
- sha1 d559dff3e11f777a23f00278d78d259ad896b829 \
- rmd160 9638a6b747a1177b048720b8999c60f33c7df5ef
+checksums rmd160 5fece569be7d95bbe9ad406f1b5e10f06f4ac20e \
+ sha256 6c47941a98d506d7b1e21d5bfd511f8684a2e1f371accd4756cdc8821916a63b
worksrcdir ${name}-${version}/src
-patchfiles swig_version.patch
+patchfiles patch-src_configure.diff
-depends_build port:bzip2 \
- port:gsed
+post-patch {
+ reinplace "s|@@MAKEDEPEND@@|${configure.cc} -MM|g" ${worksrcpath}/configure
+}
-depends_lib port:swig-python \
+depends_lib port:hdf5-18 \
+ port:json-c \
+ port:libxml2 \
+ port:readline \
port:atlas \
- port:readline \
+ port:arpack \
+ port:eigen3 \
+ port:lp_solve \
port:glpk \
- port:python26 \
- port:py26-numpy \
- port:hdf5-18
+ port:lzo2 \
+ port:snappy \
+ port:gzip \
+ port:bzip2 \
+ port:xz
universal_variant no
-set python_prefix ${prefix}/Library/Frameworks/Python.framework/Versions/2.6
-configure.args --disable-svm-light \
- --libs=${prefix}/lib \
- --install-path=${prefix} \
- --includes=${prefix}/include \
- --destdir=${destroot} \
- --includes=${python_prefix}/include/python2.6 \
- --python=${python_prefix}/bin/python2.6 \
- --pydir=${python_prefix}/lib/python2.6/site-packages \
- --disable-doxygen \
- --disable-hdf5
-
pre-fetch {
- if {[ regexp {^[2-8]} ${os.major}]} {
- return -code error "Shogun is only supported on leopard or above"
- }
+ if {${os.major} <= 8} {
+ return -code error "Shogun is only supported on Leopard or above"
+ }
}
-proc lremove {list elem} {
- set index [lsearch -exact $list $elem]
- return [lreplace $list $index $index]
+# Define compilers variants
+variant gcc45 conflicts gcc46 gcc47 gcc48 clang33 description {Compile with gcc 4.5} {
+ configure.compiler macports-gcc-4.5
+ depends_lib-append port:gcc45
+ configure.args-append --ldflags=-lgfortran
}
-# Interfaces are added by a comma delimited argument list to --interfaces.
-# We check for variants and then build this list accordingly
-set interfaces "libshogun libshogunui cmdline python python_modular"
+variant gcc46 conflicts gcc45 gcc47 gcc48 clang33 description {Compile with gcc 4.6} {
+ configure.compiler macports-gcc-4.6
+ depends_lib-append port:gcc46
+ configure.args-append --ldflags=-lgfortran
+}
-if {[variant_isset r]} {lappend interfaces "r"}
-if {[variant_isset octave]} {lappend interfaces "octave,octave_modular"}
-if {[variant_isset elwms] && !([variant_isset python] &&
- [variant_isset octave] && [variant_isset r])} {
- return -code error "Must set python and both r and octave variants to build elwms interface"
-} elseif {[variant_isset elwms]} {
- lappend interfaces "elwms"
+variant gcc47 conflicts gcc45 gcc46 gcc48 clang33 description {Compile with gcc 4.7} {
+ configure.compiler macports-gcc-4.7
+ depends_lib-append port:gcc47
+ configure.args-append --ldflags=-lgfortran
}
-# remove python interface if necessary before appending to args
-if {[variant_isset no_python26] && ![variant_isset python25]} {
- set interfaces [lremove ${interfaces} "python"]
- set interfaces [lremove ${interfaces} "python_modular"]
- depends_lib-delete port:swig-python
+variant gcc48 conflicts gcc45 gcc46 gcc47 clang33 description {Compile with gcc 4.8} {
+ configure.compiler macports-gcc-4.8
+ depends_lib-append port:gcc48
+ configure.args-append --ldflags=-lgfortran
}
-#if {[variant_isset matlab]} {lappend interfaces "matlab"}
-set interfaces [join $interfaces ","]
+variant clang33 conflicts gcc45 gcc46 gcc47 gcc48 description {Compile with clang 3.3} {
+ configure.compiler macports-clang-3.3
+ depends_lib-append port:clang-3.3 \
+ port:gcc47
+ configure.args-delete --disable-cpudetection
+ configure.args-append --enable-cpudetection \
+ --ldflags=-lgfortran
+ configure.env-append POSTLINKFLAGS="-L${prefix}/lib/gcc47"
+}
-configure.args-append --interfaces=$interfaces
+if {![variant_isset gcc45] && ![variant_isset gcc46] &&
+ ![variant_isset gcc48] && ![variant_isset clang33]
+} then {
+ default_variants +gcc47
+}
-variant elwms description {Build elwms interface. requires python plus one other interface} {}
+# Define python variants
+set pythons_suffixes {26 27}
-variant python25 requires no_python26 description {Build Python 2.5 API} {
- configure.args-append \
- --includes=${prefix}/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 \
- --python=${prefix}/Library/Frameworks/Python.framework/Versions/2.5/bin/python \
- --pydir=${prefix}/Library/Frameworks/Python.framework/Versions/2.5/site-packages
- depends_lib-append port:python25 \
- port:py25-numpy
+set pythons_ports {}
+foreach s ${pythons_suffixes} {
+ lappend pythons_ports python${s}
}
-variant hmm_parallel description {Enable parallel structures in hmm training} {
- configure.args-append --enable-hmm-parallel
+proc python_prefix {} {
+ global prefix pythons_suffixes
+ foreach s ${pythons_suffixes} {
+ if {[variant_isset python${s}]} {
+ set p ${prefix}/bin/python[string index ${s} 0].[string index ${s} 1]
+ return [file normalize [exec ${p} -c "import sys; print(sys.prefix)"]]
+ }
+ }
+ error "Python support not enabled."
}
-variant no_python26 description {Do not build Python 2.6 API} {
- configure.args-delete \
- --includes=${python_prefix}/include/python2.6 \
- --python=${python_prefix}/bin/python2.6 \
- --pydir=${python_prefix}/lib/python2.6/site-packages
+foreach s ${pythons_suffixes} {
+ set p python${s}
+ set v [string index ${s} 0].[string index ${s} 1]
+ set i [lsearch -exact ${pythons_ports} ${p}]
+ set c [lreplace ${pythons_ports} ${i} ${i}]
+ eval [subst {
+ variant ${p} description "Use Python ${v} for python bindings" conflicts ${c} {
+ depends_lib-append port:${p} \
+ port:py${s}-numpy \
+ port:swig-python
+ set py_prefix \[python_prefix\]
+ configure.args-append --python=${prefix}/bin/python${v} \
+ --pydir=\${py_prefix}/lib/python${v}/site-packages \
+ --includes=\${py_prefix}/include/python${v}
+ post-patch {
+ reinplace "s|^PYTHON=python$|PYTHON=${prefix}/bin/python${v}|g" ${worksrcpath}/configure
+ }
+ }
+ }]
+}
-
- depends_lib-delete port:python26 \
- port:py26-numpy
-
+variant perl description {Build the Perl API} {
+ depends_lib-append port:swig-perl
}
variant r description {Build the R API} {
- depends_lib-append port:swig-r
+ depends_lib-append port:swig-r
}
variant octave description {Build the Octave API} {
- depends_lib-append port:swig-octave
+ depends_lib-append port:swig-octave
}
-variant no_glpk description {Disable glpk support} {
- configure.args-append --disable-glpk
- depends_lib-delete port:glpk
+variant java description {Build the Java API} {
+ depends_lib-append port:swig-java
}
-#variant matlab description {Build the Matlab API} {}
-# variant doc description {Install the documentation for shogun} {
-# depends_build-append port:texlive \
-# path:bin/dot:graphviz \
-# port:doxygen
-#
-# configure.args-delete --disable-doxygen
-# }
+variant csharp description {Build the C# API} {
+ depends_lib-append port:swig-csharp
+}
-variant gcc43 conflicts gcc44 gcc45 gcc46 gcc47 description {build with gcc 4.3} {}
-variant gcc44 conflicts gcc43 gcc45 gcc46 gcc47 description {build with gcc 4.4} {}
-variant gcc45 conflicts gcc43 gcc44 gcc46 gcc47 description {build with gcc 4.5} {}
-variant gcc46 conflicts gcc43 gcc44 gcc45 gcc47 description {build with gcc 4.6} {}
-variant gcc47 conflicts gcc43 gcc44 gcc45 gcc46 description {build with gcc 4.7} {}
+variant lua description {Build the Lua API} {
+ depends_lib-append port:swig-lua
+}
-if {[variant_isset gcc43]} {
- set gccversion 4.3
-} elseif {[variant_isset gcc44]} {
- set gccversion 4.4
-} elseif {[variant_isset gcc45]} {
- set gccversion 4.5
-} elseif {[variant_isset gcc46]} {
- set gccversion 4.6
-} else {
- default_variants +gcc47
- set gccversion 4.7
+variant ruby description {Build the Ruby API} {
+ depends_lib-append port:swig-ruby
}
-set gccnumber [join [split ${gccversion} .] ""]
+variant elwms description {Build the elwms (eierlegende wollmilchsau) interface. Requires python plus one other interface} {
+}
-depends_lib-append port:gcc${gccnumber}
-configure.cc ${prefix}/bin/gcc-mp-${gccversion}
-configure.compiler macports-gcc-${gccversion}
-configure.args-append --cc=${prefix}/bin/gcc-mp-${gccversion} \
- --cxx=${prefix}/bin/g++-mp-${gccversion}
+variant hmm_parallel description {Enable parallel structures in hmm training} {
+ configure.args-delete --disable-hmm-parallel
+ configure.args-append --enable-hmm-parallel
+}
-pre-configure {
- reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/configure
- reinplace "s|= $\{_libdir\}/$\{_pydir\}|= $\{_pydir\}|g" ${worksrcpath}/configure
+proc lremove {list elem} {
+ set index [lsearch -exact $list $elem]
+ return [lreplace $list $index $index]
}
-post-destroot {
- if {[variant_isset doc]} {
- system "cd ${worksrcpath}/../doc && make"
- file mkdir ${destroot}${prefix}/share/doc/${name}
- file copy ${worksrcpath}/../doc ${destroot}${prefix}/share/doc/${name}/doc
- }
+# Interfaces are added by a comma delimited argument list to --interfaces.
+# We check for variants and then build this list accordingly
+set interfaces "cmdline_static"
+
+if {[variant_isset python26] || [variant_isset python27]} {
+ lappend interfaces "python_modular"
}
-livecheck.url http://www.shogun-toolbox.org
-livecheck.regex {SHOGUN Version ([0-9.]+).*}
+if {[variant_isset perl]} {
+ lappend interfaces "perl_modular"
+}
+
+if {[variant_isset r]} {
+ lappend interfaces "r_modular"
+}
+
+if {[variant_isset octave]} {
+ lappend interfaces "octave_modular"
+}
+
+if {[variant_isset java]} {
+ lappend interfaces "java_modular"
+}
+
+if {[variant_isset csharp]} {
+ lappend interfaces "csharp_modular"
+}
+
+if {[variant_isset lua]} {
+ lappend interfaces "lua_modular"
+}
+
+if {[variant_isset ruby]} {
+ lappend interfaces "ruby_modular"
+}
+
+if {[variant_isset elwms] && !(([variant_isset python26] || [variant_isset python27]) && [variant_isset octave] && [variant_isset r])} {
+ return -code error "Must set python2x and both r and octave variants to build elwms interface"
+} elseif {[variant_isset elwms]} {
+ lappend interfaces "elwms_static"
+}
+
+configure.args-append \
+ --enable-hdf5 \
+ --enable-json \
+ --enable-xml \
+ --enable-readline \
+ --enable-largefile \
+ --disable-spinlocks \
+ --enable-lapack \
+ --enable-arpack \
+ --disable-mosek \
+ --disable-superlu \
+ --disable-nlopt \
+ --enable-eigen3 \
+ --disable-cplex \
+ --enable-lpsolve \
+ --enable-glpk \
+ --enable-lzo \
+ --enable-snappy \
+ --enable-gzip \
+ --enable-bzip2 \
+ --enable-lzma \
+ --enable-bigstates \
+ --enable-hmmcache \
+ --enable-svm-light \
+ --disable-logcache \
+ --enable-shortrealkernelcache \
+ --enable-logsum-array \
+ --disable-hmm-parallel \
+ --disable-doxygen \
+ --enable-optimization \
+ --disable-cpudetection \
+ --includes=${prefix}/include \
+ --libs=${prefix}/lib \
+ --destdir=${destroot} \
+ --prefix=${prefix}
+
+set interfaces [join $interfaces ","]
+
+configure.args-append --interfaces=$interfaces
+
+livecheck.type regex
+livecheck.url http://www.shogun-toolbox.org
+livecheck.regex {SHOGUN ([0-9.]+)}
Added: trunk/dports/math/shogun/files/patch-src_configure.diff
===================================================================
--- trunk/dports/math/shogun/files/patch-src_configure.diff (rev 0)
+++ trunk/dports/math/shogun/files/patch-src_configure.diff 2013-04-04 16:51:09 UTC (rev 104874)
@@ -0,0 +1,46 @@
+--- configure.orig 2013-03-28 23:54:09.000000000 +0400
++++ configure 2013-03-30 23:32:20.000000000 +0400
+@@ -16,7 +16,7 @@
+ # some hopefully reasonable defaults
+ LDD=ldd
+ POSTLINKCMD="true"
+-MAKEDEPEND="gcc -MM"
++MAKEDEPEND="@@MAKEDEPEND@@"
+ MAKEDEPENDOPTS=""
+ SRCDIR="`dirname $0`"
+ LIBRARY_PATH=LD_LIBRARY_PATH
+@@ -184,7 +184,7 @@
+ DEFINES_SWIG=
+ PRELINKFLAGS=
+ LINKFLAGS=
+-POSTLINKFLAGS=
++test "$POSTLINKFLAGS" && POSTLINKFLAGS="$POSTLINKFLAGS"
+
+ INCLUDES_STATIC_INTERFACES=
+ LINKFLAGS_STATIC_INTEFACES=
+@@ -4003,7 +4003,7 @@
+ }
+ EOF
+ echocheck "lpsolve Developer Files"
+- LPSOLVELINKFLAGS="-L /usr/lib/lp_solve -llpsolve55"
++ LPSOLVELINKFLAGS="-llpsolve55"
+ if cc_check $LPSOLVELINKFLAGS
+ then
+ echores "yes"
+@@ -5011,6 +5011,7 @@
+ if test "$_readline" = yes || test "$_readline" = auto;
+ then
+ cat > $TMPC << EOF
++#include <stdio.h>
+ #include <readline/readline.h>
+ int main(void) { return 0; }
+ EOF
+@@ -5274,7 +5275,7 @@
+ CONFDIR = ${_confdir}
+ INCDIR = ${_incdir}
+ LIBDIR = ${_libdir}
+-PYDIR = ${_libdir}/${_pydir}
++PYDIR = ${_pydir}
+ OCTDIR = ${_octdir}
+ RDIR = ${_rdir}
+ EOF
Deleted: trunk/dports/math/shogun/files/swig_version.patch
===================================================================
--- trunk/dports/math/shogun/files/swig_version.patch 2013-04-04 14:08:34 UTC (rev 104873)
+++ trunk/dports/math/shogun/files/swig_version.patch 2013-04-04 16:51:09 UTC (rev 104874)
@@ -1,12 +0,0 @@
---- configure.old 2010-06-29 10:41:05.000000000 -0700
-+++ configure 2010-06-29 10:42:07.000000000 -0700
-@@ -2864,7 +2864,8 @@
- die "swig did not return version information"
- fi
- if [ `echo $_swig_version | cut -f 2 -d '.'` -ge 4 ] || \
-- [ `echo $_swig_version | cut -f 3 -d '.'` -ge 29 ]
-+ [ `echo $_swig_version | cut -f 3 -d '.'` -ge 29 ] || \
-+ [ `echo $_swig_version | cut -f 1 -d '.'` -ge 2 ]
- then
- echores "`${SWIG} -version 2>&1 | grep Version | cut -f 3 -d ' '`"
-
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130404/517afb77/attachment-0001.html>
More information about the macports-changes
mailing list