Files
haikuports/sci-libs/mlpack/mlpack-2.2.5.recipe
2018-08-06 17:34:51 +02:00

201 lines
6.2 KiB
Bash

SUMMARY="Scalable c++ machine learning library"
DESCRIPTION="mlpack is an intuitive, fast, scalable C++ machine learning \
library, meant to be a machine learning analog to LAPACK. It aims to implement \
a wide array of machine learning methods and functions as a \"swiss army \
knife\" for machine learning researchers."
HOMEPAGE="http://www.mlpack.org/"
COPYRIGHT="2011-2017 mlpack Team"
LICENSE="BSD (3-clause)"
REVISION="3"
SOURCE_URI="https://github.com/mlpack/mlpack/archive/mlpack-$portVersion.tar.gz"
CHECKSUM_SHA256="6bba8b28a50dc3b8afacd357aca57a658cf5b8d90a57d38f357d7e2eafcf09bb"
SOURCE_DIR="mlpack-mlpack-$portVersion"
PATCHES="mlpack-$portVersion.patchset"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="?x86"
PROVIDES="
mlpack$secondaryArchSuffix = $portVersion compat >= 2
lib:libmlpack$secondaryArchSuffix = $portVersion compat >= 2
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libarmadillo$secondaryArchSuffix
lib:libboost_program_options$secondaryArchSuffix
lib:libboost_serialization$secondaryArchSuffix
lib:libboost_system$secondaryArchSuffix
lib:libboost_unit_test_framework$secondaryArchSuffix
lib:libgomp$secondaryArchSuffix
lib:libhdf5$secondaryArchSuffix
lib:liblapack$secondaryArchSuffix
lib:libopenblas$secondaryArchSuffix
lib:libsuperlu$secondaryArchSuffix
"
PROVIDES_cli="
mlpack${secondaryArchSuffix}_cli = $portVersion compat >= 2
cmd:mlpack_adaboost = $portVersion compat >= 2
cmd:mlpack_allkfn = $portVersion compat >= 2
cmd:mlpack_allknn = $portVersion compat >= 2
cmd:mlpack_allkrann = $portVersion compat >= 2
cmd:mlpack_approx_kfn = $portVersion compat >= 2
cmd:mlpack_cf = $portVersion compat >= 2
cmd:mlpack_dbscan = $portVersion compat >= 2
cmd:mlpack_decision_stump = $portVersion compat >= 2
cmd:mlpack_decision_tree = $portVersion compat >= 2
cmd:mlpack_det = $portVersion compat >= 2
cmd:mlpack_emst = $portVersion compat >= 2
cmd:mlpack_fastmks = $portVersion compat >= 2
cmd:mlpack_gmm_generate = $portVersion compat >= 2
cmd:mlpack_gmm_probability = $portVersion compat >= 2
cmd:mlpack_gmm_train = $portVersion compat >= 2
cmd:mlpack_hmm_generate = $portVersion compat >= 2
cmd:mlpack_hmm_loglik = $portVersion compat >= 2
cmd:mlpack_hmm_train = $portVersion compat >= 2
cmd:mlpack_hmm_viterbi = $portVersion compat >= 2
cmd:mlpack_hoeffding_tree = $portVersion compat >= 2
cmd:mlpack_kernel_pca = $portVersion compat >= 2
cmd:mlpack_kfn = $portVersion compat >= 2
cmd:mlpack_kmeans = $portVersion compat >= 2
cmd:mlpack_knn = $portVersion compat >= 2
cmd:mlpack_krann = $portVersion compat >= 2
cmd:mlpack_lars = $portVersion compat >= 2
cmd:mlpack_linear_regression = $portVersion compat >= 2
cmd:mlpack_local_coordinate_coding = $portVersion compat >= 2
cmd:mlpack_logistic_regression = $portVersion compat >= 2
cmd:mlpack_lsh = $portVersion compat >= 2
cmd:mlpack_mean_shift = $portVersion compat >= 2
cmd:mlpack_nbc = $portVersion compat >= 2
cmd:mlpack_nca = $portVersion compat >= 2
cmd:mlpack_nmf = $portVersion compat >= 2
cmd:mlpack_pca = $portVersion compat >= 2
cmd:mlpack_perceptron = $portVersion compat >= 2
cmd:mlpack_preprocess_binarize = $portVersion compat >= 2
cmd:mlpack_preprocess_describe = $portVersion compat >= 2
cmd:mlpack_preprocess_imputer = $portVersion compat >= 2
cmd:mlpack_preprocess_split = $portVersion compat >= 2
cmd:mlpack_radical = $portVersion compat >= 2
cmd:mlpack_range_search = $portVersion compat >= 2
cmd:mlpack_softmax_regression = $portVersion compat >= 2
cmd:mlpack_sparse_coding = $portVersion compat >= 2
"
REQUIRES_cli="
mlpack$secondaryArchSuffix == $portVersion base
$REQUIRES
"
PROVIDES_devel="
mlpack${secondaryArchSuffix}_devel = $portVersion compat >= 2
devel:libmlpack$secondaryArchSuffix = $portVersion compat >= 2
"
REQUIRES_devel="
mlpack$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libarmadillo$secondaryArchSuffix
devel:libboost_program_options$secondaryArchSuffix
devel:libboost_serialization$secondaryArchSuffix
devel:libboost_system$secondaryArchSuffix
devel:libboost_unit_test_framework$secondaryArchSuffix
devel:libhdf5$secondaryArchSuffix
devel:liblapack$secondaryArchSuffix
devel:libopenblas$secondaryArchSuffix
devel:libsuperlu$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
defineDebugInfoPackage mlpack$secondaryArchSuffix \
$libDir/libmlpack.so.2.2
BUILD()
{
mkdir -p build && cd "$_"
cmake .. \
-DCMAKE_INSTALL_PREFIX=$prefix \
-DBUILD_TESTS=OFF
# mlpack easily eats up all your ram, so don't do parallel jobs!
make
}
INSTALL()
{
cd build
make install $jobArgs
mkdir -p $includeDir
mv $prefix/include/* $includeDir/
rmdir $prefix/include
prepareInstalledDevelLib libmlpack
fixPkgconfig
packageEntries cli \
$binDir/mlpack_adaboost \
$binDir/mlpack_allkfn \
$binDir/mlpack_allknn \
$binDir/mlpack_allkrann \
$binDir/mlpack_approx_kfn \
$binDir/mlpack_cf \
$binDir/mlpack_dbscan \
$binDir/mlpack_decision_stump \
$binDir/mlpack_decision_tree \
$binDir/mlpack_det \
$binDir/mlpack_emst \
$binDir/mlpack_fastmks \
$binDir/mlpack_gmm_generate \
$binDir/mlpack_gmm_probability \
$binDir/mlpack_gmm_train \
$binDir/mlpack_hmm_generate \
$binDir/mlpack_hmm_loglik \
$binDir/mlpack_hmm_train \
$binDir/mlpack_hmm_viterbi \
$binDir/mlpack_hoeffding_tree \
$binDir/mlpack_kernel_pca \
$binDir/mlpack_kfn \
$binDir/mlpack_kmeans \
$binDir/mlpack_knn \
$binDir/mlpack_krann \
$binDir/mlpack_lars \
$binDir/mlpack_linear_regression \
$binDir/mlpack_local_coordinate_coding \
$binDir/mlpack_logistic_regression \
$binDir/mlpack_lsh \
$binDir/mlpack_mean_shift \
$binDir/mlpack_nbc \
$binDir/mlpack_nca \
$binDir/mlpack_nmf \
$binDir/mlpack_pca \
$binDir/mlpack_perceptron \
$binDir/mlpack_preprocess_binarize \
$binDir/mlpack_preprocess_describe \
$binDir/mlpack_preprocess_imputer \
$binDir/mlpack_preprocess_split \
$binDir/mlpack_radical \
$binDir/mlpack_range_search \
$binDir/mlpack_softmax_regression \
$binDir/mlpack_sparse_coding
packageEntries devel \
$developDir
}
TEST()
{
# Switch it on first in BUILD()
# Takes way too much time to build the tests
cd build
make test
}