[52305] trunk/dports
jameskyle at macports.org
jameskyle at macports.org
Sat Jun 13 15:09:27 PDT 2009
Revision: 52305
http://trac.macports.org/changeset/52305
Author: jameskyle at macports.org
Date: 2009-06-13 15:09:16 -0700 (Sat, 13 Jun 2009)
Log Message:
-----------
Moved py25-shogun to math/shogun and added support for all of its interfaces (not just python)
Updated shogun to 0.7.3
Updated pymvpa to 0.4.2
Added variant dependency checking with informative error output
Modified Paths:
--------------
trunk/dports/math/shogun/Portfile
trunk/dports/python/py25-pymvpa/Portfile
Added Paths:
-----------
trunk/dports/math/shogun/
trunk/dports/math/shogun/files/configure.diff
trunk/dports/python/py25-pymvpa/files/setup-py.diff
Removed Paths:
-------------
trunk/dports/python/py25-shogun/
Modified: trunk/dports/math/shogun/Portfile
===================================================================
--- trunk/dports/python/py25-shogun/Portfile 2009-06-13 04:32:43 UTC (rev 52255)
+++ trunk/dports/math/shogun/Portfile 2009-06-13 22:09:16 UTC (rev 52305)
@@ -1,75 +1,149 @@
-# -*- 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
-PortSystem 1.0
+categories math science
+name shogun
+version 0.7.3
-name py25-shogun
-version 0.6.7
-categories python science math
-maintainers ucla.edu:jameskyle
-description The machine learning toolbox's focus is on large scale kernel methods and especially on Support Vector Machines (SVM).
-long_description ${description} It provides a generic SVM object interfacing to several different SVM implementations, among them the state of the art OCAS, LibSVM , SVMLight, SVMLin and GPDT . Each of the SVMs can be combined with a variety of kernels. The toolbox not only provides efficient implementations of the most common kernels, like the Linear, Polynomial, Gaussian and Sigmoid Kernel but also comes with a number of recent string kernels as e.g. the Locality Improved , Fischer , TOP , Spectrum , Weighted Degree Kernel (with shifts).
-use_parallel_build yes
-use_bzip2 yes
-homepage http://www.shogun-toolbox.org
-platforms darwin
-master_sites http://shogun-toolbox.org/archives/shogun/releases/0.6/sources/
+maintainers jameskyle
-checksums md5 03d2c5ae44fa7ca8baeb8c3fd2bae010 \
- sha1 7657da29d9f9afc0c204b8f2e68c784308185a1e \
- rmd160 c00ceceb791d2073413c089e23e361a3d584cc24
+platforms darwin
-distfiles shogun-${version}${extract.suffix}
+description The machine learning toolbox's focus is on large scale \
+ kernel methods
-configure.args --disable-svm-light \
- --interface=python \
- --python=${prefix}/bin/python2.5 \
- --libs=${prefix}/lib \
- --includes=${prefix}/include \
- --cxx=${prefix}/bin/g++-mp-4.3 \
- --cc=${prefix}/bin/gcc-mp-4.3 \
- --install-path=${prefix} \
- --enable-readline \
- --destdir=${destroot}
+long_description ${description} and especially on Support Vector Machines \
+ (SVM). It provides a generic SVM object interfacing to \
+ several different SVM implementations, among them the \
+ state of the art OCAS, LibSVM, SVMLight, SVMLin and GPDT.
-worksrcdir shogun-${version}/src
+homepage http://www.shogun-toolbox.org/
+master_sites http://shogun-toolbox.org/archives/shogun/releases/0.7/sources/
+use_bzip2 yes
+distfiles shogun-${version}${extract.suffix}
-# default_variants +atlas +glpk +lp_solve
-default_variants +glpk +lp_solve +atlas
-depends_lib port:python25 \
- port:py25-numpy \
- port:gcc43 \
- port:readline \
- port:py25-setuptools
+checksums md5 e3cb08aa05c1da78cd96d71ef97669b0 \
+ sha1 edad946b8ecbdf8e14f7de2ad54a95c4e2e72140 \
+ rmd160 bfe7e456505e5306dcf8818ee1c1074d8b8b05e9
+worksrcdir ${name}-${version}/src
-patchfiles \
- patch-src-configure.diff \
- patch-src-lib-lapack.cpp.diff
+depends_build port:bzip2 \
+ port:gsed
-variant cplex description {enable Multiple Kernel Learning CPLEX(tm)} {
- configure.args-append --enable-cplex
+depends_lib port:swig \
+ port:atlas \
+ port:readline \
+ port:glpk
+
+depends_build port:gcc43
+
+configure.args --disable-svm-light \
+ --libs=${prefix}/lib \
+ --install-path=${prefix} \
+ --includes=${prefix}/include \
+ --destdir=${destroot} \
+ --cc=${prefix}/bin/gcc-mp-4.3 \
+ --cxx=${prefix}/bin/g++-mp-4.3
+
+configure.cc ${prefix}/bin/gcc-mp-4.3
+
+configure.compiler macports-gcc-4.3
+
+patchfiles configure.diff
+
+default_variants +python +glpk
+
+# 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"
+if {[variant_isset python]} {lappend interfaces "python,python_modular"}
+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"
}
+# disable glpk if variant is not set
+if {![variant_isset glpk]} {
+ configure.args-append --disable-glpk
+ depends_lib-delete port:glpk
+}
+#if {[variant_isset matlab]} {lappend interfaces "matlab"}
+set interfaces [join $interfaces ","]
-variant atlas description {use the fast atlas and lapack libraries} {
- depends_lib-append port:atlas
+configure.args-append --interfaces=$interfaces
+
+variant elwms description {Build elwms interface. requires python plus one other interface} {}
+
+variant python description {Build Python API} {
+ configure.args-append \
+ --includes=${prefix}/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 \
+ --python=${prefix}/bin/python2.5
+
+ depends_lib-append port:python25 \
+ port:py25-numpy
}
-variant glpk description {enable support for the GNU Linear Programming Kit} {
- depends_lib-append port:glpk
+variant r description {Build the R API} {
+ depends_lib-append port:R
}
-variant lp_solve description {enable support for the lp_solve library} {
- depends_lib-append port:lp_solve
+variant octave description {Build the Octave API} {
+ depends_lib-append port:octave
}
-pre-configure {
- reinplace s|@PREFIX@|${prefix}|g ${worksrcpath}/configure
+variant glpk description {Add support for the Gnu Linear Programming Kit} {}
+
+#variant matlab description {Build the Matlab API} {}
+variant doc description {Install the documentation for shogun} {
+ depends_build-append port:texlive \
+ port:graphviz \
+ port:doxygen
}
-post-clean {
- ui_msg "Make sure that ${prefix}/lib is in your DYLD_LIBRARY_PATH or the sg module will not load properly!"
+pre-extract {
+ # Before doing anything, verify the correct swig bindings are present for
+ # our variants
+ if {[variant_isset python]} {
+ if {![file exists ${prefix}/share/swig/1.3.39/python/python.swg]} {
+ ui_error "To install shogun with the python variant, swig must be installed with the python variant as well."
+ return -code error "incompatible swig installation"
+ }
+ }
+
+ if {[variant_isset r]} {
+ if {![file exists ${prefix}/share/swig/1.3.39/r/r.swg]} {
+ ui_error "To install shogun with the r variant, swig must be installed with the r variant as well."
+ return -code error "incompatible swig installation"
+ }
+ }
+
+ if {[variant_isset octave]} {
+ if {![file exists ${prefix}/share/swig/1.3.39/octave/octave.swg]} {
+ ui_error "To install shogun with the octave variant, swig must be installed with the octave variant as well."
+ return -code error "incompatible swig installation"
+ }
+ }
}
+
+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
+
+ }
+}
+
+post-install {
+ ui_warn "You will need to set:"
+ ui_warn "DYLD_FALLBACK_LIBRARY_PATH=${prefix}/lib"
+ ui_warn "Or shogun will not be able to find the macports atlas libs"
+}
+
Added: trunk/dports/math/shogun/files/configure.diff
===================================================================
--- trunk/dports/math/shogun/files/configure.diff (rev 0)
+++ trunk/dports/math/shogun/files/configure.diff 2009-06-13 22:09:16 UTC (rev 52305)
@@ -0,0 +1,153 @@
+--- configure.old 2009-05-28 14:40:13.000000000 -0700
++++ configure 2009-05-28 14:40:24.000000000 -0700
+@@ -99,8 +99,8 @@
+ _octave_modular=auto
+ _r_modular=no
+
+-test -z "$INCLUDES" || _inc_extra="-I`echo $INCLUDES | sed 's,:, -I,g'`"
+-test -z "$LIBS" || _ld_extra="-L`echo $LIBS | sed 's,:, -L,g'`"
++test -z "$INCLUDES" || _inc_extra="-I`echo $INCLUDES | gsed 's,:, -I,g'`"
++test -z "$LIBS" || _ld_extra="-L`echo $LIBS | gsed 's,:, -L,g'`"
+
+ # these ones will be autodetected
+ CONFIGURE_OPTIONS="configure options $@"
+@@ -110,7 +110,7 @@
+ COMP_NOOPTS="-g -Wall -O2"
+ COMPFLAGS_C=-fPIC
+ COMPFLAGS_CPP=-fPIC
+-SEDMI='sed -i'
++SEDMI='gsed -i'
+ test "$CFLAGS" && COMPFLAGS_C="$COMPFLAGS_C $CFLAGS"
+ test "$CXXFLAGS" && COMPFLAGS_CPP="$COMPFLAGS_CPP $CXXFLAGS"
+ INCLUDES=
+@@ -599,7 +599,7 @@
+ mangle_homedir_tilde() {
+ if test `echo "$1" | cut -c 1` = '~'
+ then
+- echo "$1" | sed -e "s#\~#$HOME#g"
++ echo "$1" | gsed -e "s#\~#$HOME#g"
+ else
+ echo "$1"
+ fi
+@@ -784,15 +784,15 @@
+ _static=yes
+ ;;
+ --includes=*)
+- _inc_extra="-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'` $_inc_extra"
++ _inc_extra="-I`echo $ac_option | cut -d '=' -f 2 | gsed 's,:, -I,g'` $_inc_extra"
+ INCLUDES="$INCLUDES $_inc_extra"
+ ;;
+ --libs=*)
+- _ld_extra="-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'` $_ld_extra"
++ _ld_extra="-L`echo $ac_option | cut -d '=' -f 2 | gsed 's,:, -L,g'` $_ld_extra"
+ LINKFLAGS="$_ld_extra $LINKFLAGS "
+ ;;
+ --install-path=*)
+- _install=$(mangle_homedir_tilde "`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`/install")
++ _install=$(mangle_homedir_tilde "`echo $ac_option | cut -d '=' -f 2 | gsed 's/\/$//'`/install")
+ ;;
+ --disable-mindy) _mindy=no ;;
+ --enable-mindy) _mindy=yes ;;
+@@ -933,7 +933,7 @@
+ i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
+ ia64) host_arch=ia64 ;;
+ x86_64|amd64)
+- if [ -n "`$COMP_C -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p'`" -a \
++ if [ -n "`$COMP_C -dumpmachine | gsed -n '/^x86_64-/p;/^amd64-/p'`" -a \
+ -z "`echo $COMPFLAGS_C | grep -- -m32`" ]; then
+ host_arch=x86_64
+ else
+@@ -1345,7 +1345,7 @@
+
+ exts=`$_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | _head 1`
+
+- pparam=`echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
++ pparam=`echo $exts | gsed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
+ -e s/xmm/sse/ -e s/kni/sse/`
+
+ for ext in $pparam ; do
+@@ -1703,7 +1703,7 @@
+ fi
+ ;;
+ Darwin)
+- proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
++ proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | gsed 's/ppc//'`
+ if [ `sysctl -n hw.vectorunit` -eq 1 -o \
+ "`sysctl -n hw.optional.altivec 2> /dev/null`" = "1" ]; then
+ _altivec=yes
+@@ -1722,7 +1722,7 @@
+ esac
+ ;;
+ AIX)
+- proc=`$_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//'`
++ proc=`$_cpuinfo | grep 'type' | cut -f 2 -d ' ' | gsed 's/PowerPC_//'`
+ ;;
+ esac
+ if test "$_altivec" = yes; then
+@@ -2048,7 +2048,7 @@
+
+ if darwin
+ then
+- if ! sed --version | grep -q "GNU sed"
++ if ! gsed --version | grep -q "GNU sed"
+ then
+ SEDMI='sed -i ""'
+ fi
+@@ -2382,7 +2382,7 @@
+ if linux
+ then
+ CPLEXVER=`echo $CPLEXVER | cut -f 1 -d '.'``echo $CPLEXVER | cut -f 2 -d '.' | cut -c 1`
+- CPLEXPATH=`env | grep ^ILOG_LICENSE_FILE | cut -f 2 -d '=' | sed 's/ilog.*$/ilog/'`/cplex$CPLEXVER
++ CPLEXPATH=`env | grep ^ILOG_LICENSE_FILE | cut -f 2 -d '=' | gsed 's/ilog.*$/ilog/'`/cplex$CPLEXVER
+ if x86
+ then
+ for cpx_path in "$CPLEXPATH/lib/i86_linux2_glibc2.3_gcc3.2/static_pic" \
+@@ -2667,7 +2667,7 @@
+ then
+ echores `cat matlab_version.txt`
+ matlab.exe /nosplash /minimize /r "system('env > matlab_path.txt');quit"
+- MATLAB_DIR=`grep '^_=' matlab_path.txt | cut -c 3- | sed 's#/bin/win32/matlab.exe##'`
++ MATLAB_DIR=`grep '^_=' matlab_path.txt | cut -c 3- | gsed 's#/bin/win32/matlab.exe##'`
+ MATLAB_SRCDIR="$MATLAB_DIR/extern/src"
+ MATLAB_INCDIR="$MATLAB_DIR/extern/include"
+ MATLAB_LIBDIR="$MATLAB_DIR/extern/lib"
+@@ -2830,7 +2830,7 @@
+ PARTS="$PARTS elwms"
+ DEFINES_ELWMS="-DHAVE_ELWMS -DR_HOME_ENV=\\\"${R_HOME}\\\" -DLIBPYTHON=\\\"libpython${PYVER}.${EXT_LIB}\\\" $DEFINES_PYTHON $DEFINES_R $DEFINES_MATLAB $DEFINES_OCTAVE"
+ INCLUDES_ELWMS="$INCLUDES_R $INCLUDES_PYTHON $INCLUDES_OCTAVE $INCLUDES_MATLAB "
+- LINKFLAGS_ELWMS="$LINKFLAGS_PYTHON `echo $LINKFLAGS_R | sed 's/-dynamiclib//g'` `echo $LINKFLAGS_MATLAB | sed 's/-Wl,--version-script,.*mexFunction.map / /g'` $LINKFLAGS_OCTAVE -ldl"
++ LINKFLAGS_ELWMS="$LINKFLAGS_PYTHON `echo $LINKFLAGS_R | gsed 's/-dynamiclib//g'` `echo $LINKFLAGS_MATLAB | gsed 's/-Wl,--version-script,.*mexFunction.map / /g'` $LINKFLAGS_OCTAVE -ldl"
+
+ ELWMS_TARGET="elwms.so"
+ fi
+@@ -3144,7 +3144,7 @@
+
+ if win32
+ then
+- RPATH=$(cygpath -u $(cygpath -d "`which R | sed 's#/bin/R##'`"))
++ RPATH=$(cygpath -u $(cygpath -d "`which R | gsed 's#/bin/R##'`"))
+ R_TARGET="sg.dll"
+ COMPFLAGS_C_R="$COMPFLAGS_C_R -mno-cygwin"
+ COMPFLAGS_CPP_R="$COMPFLAGS_CPP_R -mno-cygwin"
+@@ -3363,9 +3363,9 @@
+
+ #enable additional warnings / -Wfloat-equal -W
+ if test "$_cc_major" -ge "3" 2>/dev/null ; then
+- COMPFLAGS_C=`echo "$COMPFLAGS_C" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter -Wformat -Wformat-security -Wimplicit -Wparentheses -Wshadow/'`
+- COMPFLAGS_SWIG_CPP=`echo "$COMPFLAGS_CPP" | sed -e 's/-Wall//'`
+- COMPFLAGS_CPP=`echo "$COMPFLAGS_CPP" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter -Wformat -Wformat-security -Wimplicit -Wparentheses -Wshadow/'`
++ COMPFLAGS_C=`echo "$COMPFLAGS_C" | gsed -e 's/\(-Wall\)/\1 -Wno-unused-parameter -Wformat -Wformat-security -Wimplicit -Wparentheses -Wshadow/'`
++ COMPFLAGS_SWIG_CPP=`echo "$COMPFLAGS_CPP" | gsed -e 's/-Wall//'`
++ COMPFLAGS_CPP=`echo "$COMPFLAGS_CPP" | gsed -e 's/\(-Wall\)/\1 -Wno-unused-parameter -Wformat -Wformat-security -Wimplicit -Wparentheses -Wshadow/'`
+ fi
+
+ cat > "$1" <<EOF
+@@ -3623,7 +3623,7 @@
+
+ if test "$_cmdline_static" = yes
+ then
+- LINKFLAGS_CMDLINE=`echo $LINKFLAGS_CMDLINE | sed 's/-shared/static/g'`
++ LINKFLAGS_CMDLINE=`echo $LINKFLAGS_CMDLINE | gsed 's/-shared/static/g'`
+ fi
+
+ if test "$_matlab_static" = yes
Modified: trunk/dports/python/py25-pymvpa/Portfile
===================================================================
--- trunk/dports/python/py25-pymvpa/Portfile 2009-06-13 21:51:27 UTC (rev 52304)
+++ trunk/dports/python/py25-pymvpa/Portfile 2009-06-13 22:09:16 UTC (rev 52305)
@@ -5,12 +5,12 @@
PortGroup python25 1.0
name py25-pymvpa
-version current
-#version 0.4
+version 0.4.2
categories python
platforms darwin
-maintainers ucla.edu:jameskyle
+maintainers jameskyle
+
description PyMVPA is a Python module intended to ease pattern classification analyses of large datasets.
long_description ${description}. In the neuroimaging contexts such analysis techniques are also known as decoding or MVPA analysis. PyMVPA provides high-level abstraction of typical processing steps and a number of implementations of some popular algorithms.
@@ -18,19 +18,24 @@
homepage http://www.pymvpa.org
fetch.type git
git.url git://git.debian.org/git/pkg-exppsy/pymvpa.git
-#git.branch origin/maint/0.4
+git.branch upstream/${version}
depends_lib port:py25-numpy \
- port:git-core
+ port:git-core \
+ port:py25-setuptools
+
+depends_build port:git-core
+
configure.args
-build.env CFLAGS='-I${prefix}/include -L${prefix}/lib'
-
patch.pre_args -p1
-patchfiles patch-mvpa.diff
+
+patchfiles patch-mvpa.diff setup-py.diff
-default_variants +pywavelets +libsvm +hcluster +pynifti
+build.target build_ext
+default_variants +pywavelet +libsvm +hcluster +pynifti +shogun +scipy
+
variant scipy description {Add support for scipy libraries} {
depends_lib-append port:py25-scipy
}
@@ -46,7 +51,7 @@
variant libsvm description {compile the libsvm classifier extension} {
depends_lib-append port:libsvm \
port:swig
- configure.args --with-libsvm
+ configure.args-append --with-libsvm
}
variant matplotlib description {include support for the matplotlib library} {
@@ -58,7 +63,28 @@
variant pywavelet description {include support for pywavelet module} {
depends_lib-append port:py25-pywavelets
}
-build {
- system "cd ${worksrcpath} && ${build.env} python2.5 setup.py build_ext ${configure.args}"
- system "cd ${worksrcpath} && ${build.env} python2.5 setup.py build ${configure.args}"
+
+variant shogun description {compile support for the py25-shogun classifiers} {
+ depends_lib-append port:shogun
}
+
+pre-extract {
+ if {[variant_isset shogun]} {
+ if {![file exists ${prefix}/lib/python2.5/site-packages/sg.so]} {
+ ui_error "To install pymvpa with the shogun variant, shogun must be installed with the python variant."
+ return -code error "incompatible shogun installation"
+ }
+ }
+}
+
+post-destroot {
+ xinstall -m 755 -d "${destroot}${prefix}/share/doc/"
+ file delete ${worksrcpath}/doc/todo.txt
+ file delete ${worksrcpath}/doc/legal.txt
+ file delete ${worksrcpath}/doc/changelog.txt
+
+ file copy ${worksrcpath}/TODO ${worksrcpath}/doc/
+ file copy ${worksrcpath}/COPYING ${worksrcpath}/doc/
+ file copy ${worksrcpath}/Changelog ${worksrcpath}/doc/
+ file copy ${worksrcpath}/doc ${destroot}${prefix}/share/doc/mvpa
+}
\ No newline at end of file
Added: trunk/dports/python/py25-pymvpa/files/setup-py.diff
===================================================================
--- trunk/dports/python/py25-pymvpa/files/setup-py.diff (rev 0)
+++ trunk/dports/python/py25-pymvpa/files/setup-py.diff 2009-06-13 22:09:16 UTC (rev 52305)
@@ -0,0 +1,21 @@
+--- py25-pymvpa-0.4.2/setup.py.old 2009-05-27 20:12:50.000000000 -0700
++++ py25-pymvpa-0.4.2/setup.py 2009-05-27 20:14:12.000000000 -0700
+@@ -38,17 +38,7 @@
+ if sys.argv.count('--with-libsvm'):
+ # clean argv if necessary (or distutils will complain)
+ sys.argv.remove('--with-libsvm')
+- # look for libsvm in some places, when local one is not used
+- if not have_libsvm:
+- if not sys.platform.startswith('win'):
+- include_dirs += ['/usr/include/libsvm-2.0/libsvm',
+- '/usr/include/libsvm',
+- '/usr/local/include/libsvm',
+- '/usr/local/include/libsvm-2.0/libsvm',
+- '/usr/local/include']
+- else:
+- # no clue on windows
+- pass
++
+ have_libsvm = True
+
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090613/558f3330/attachment-0001.html>
More information about the macports-changes
mailing list