diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libsvm')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libsvm/default.nix | 55 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libsvm/openmp.patch | 13 |
2 files changed, 68 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libsvm/default.nix b/nixpkgs/pkgs/development/libraries/libsvm/default.nix new file mode 100644 index 000000000000..4274ad047910 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libsvm/default.nix @@ -0,0 +1,55 @@ +{ lib +, stdenv +, fetchurl +, fixDarwinDylibNames +, llvmPackages +, withOpenMP ? true +}: + +stdenv.mkDerivation rec { + pname = "libsvm"; + version = "3.31"; + + src = fetchurl { + url = "https://www.csie.ntu.edu.tw/~cjlin/libsvm/libsvm-${version}.tar.gz"; + sha256 = "sha256-AKtWH0jfX8kqhCCa2P5Rmery5Rmzwnm6z8k1l4p1zx8="; + }; + + patches = lib.optionals withOpenMP [ ./openmp.patch ]; + + buildInputs = lib.optionals (stdenv.cc.isClang && withOpenMP) [ llvmPackages.openmp ]; + + buildFlags = [ "lib" "all" ]; + + outputs = [ "out" "bin" "dev" ]; + + nativeBuildInputs = lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ]; + + installPhase = + let + libSuff = stdenv.hostPlatform.extensions.sharedLibrary; + soVersion = "3"; + in + '' + runHook preInstall + + install -D libsvm.so.${soVersion} $out/lib/libsvm.${soVersion}${libSuff} + ln -s $out/lib/libsvm.${soVersion}${libSuff} $out/lib/libsvm${libSuff} + + install -Dt $bin/bin/ svm-scale svm-train svm-predict + + install -Dm644 -t $dev/include svm.h + mkdir $dev/include/libsvm + ln -s $dev/include/svm.h $dev/include/libsvm/svm.h + + runHook postInstall + ''; + + meta = with lib; { + description = "A library for support vector machines"; + homepage = "https://www.csie.ntu.edu.tw/~cjlin/libsvm/"; + license = licenses.bsd3; + maintainers = [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/libsvm/openmp.patch b/nixpkgs/pkgs/development/libraries/libsvm/openmp.patch new file mode 100644 index 000000000000..b48fbae1f43f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libsvm/openmp.patch @@ -0,0 +1,13 @@ +--- /Makefile 1970-01-01 01:00:01.000000000 +0100 ++++ /Makefile 1970-01-01 01:00:01.000000000 +0100 +@@ -9,8 +9,8 @@ + endif + + # Uncomment the following lines to enable parallelization with OpenMP +-# CFLAGS += -fopenmp +-# SHARED_LIB_FLAG += -fopenmp ++CFLAGS += -fopenmp ++SHARED_LIB_FLAG += -fopenmp + + all: svm-train svm-predict svm-scale + |