Unverified Commit 2ab88f51 authored by Weijia Wang's avatar Weijia Wang Committed by GitHub
Browse files

Merge pull request #221325 from Leixb/libsvm3.31

libsvm: 3.25 -> 3.31
parents d671c860 ee71bbc2
Loading
Loading
Loading
Loading
+38 −22
Original line number Diff line number Diff line
{lib, stdenv, fetchurl}:
{ lib
, stdenv
, fetchurl
, fixDarwinDylibNames
, llvmPackages
, withOpenMP ? true
}:

stdenv.mkDerivation rec {
  pname = "libsvm";
  version = "3.25";
  version = "3.31";

  src = fetchurl {
    url = "https://www.csie.ntu.edu.tw/~cjlin/libsvm/libsvm-${version}.tar.gz";
    sha256 = "sha256-UjUOiqdAsXbh13Pp3AjxNAIYw34BvsN6uQ2wEn5LteU=";
    sha256 = "sha256-AKtWH0jfX8kqhCCa2P5Rmery5Rmzwnm6z8k1l4p1zx8=";
  };

  buildPhase = ''
    make
    make lib
  '';
  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
  installPhase =
    let
      libSuff = stdenv.hostPlatform.extensions.sharedLibrary;
  in ''
    install -D libsvm.so.2 $out/lib/libsvm.2${libSuff}
    ln -s $out/lib/libsvm.2${libSuff} $out/lib/libsvm${libSuff}
    install -Dt $out/bin/ svm-scale svm-train svm-predict
    install -Dm644 -t $out/include svm.h
    mkdir $out/include/libsvm
    ln -s $out/include/svm.h $out/include/libsvm/svm.h
  '';
      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

  postFixup = lib.optionalString stdenv.isDarwin ''
    install_name_tool -id libsvm.2.dylib $out/lib/libsvm.2.dylib;
      runHook postInstall
    '';

  meta = with lib; {
+13 −0
Original line number Diff line number Diff line
--- /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