diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/logic/lingeling/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/logic/lingeling/default.nix | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix b/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix new file mode 100644 index 000000000000..1abf38b49cf8 --- /dev/null +++ b/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchFromGitHub +, aiger +}: + +stdenv.mkDerivation { + pname = "lingeling"; + # This is the version used in satcomp2020 + version = "pre1_708beb26"; + + src = fetchFromGitHub { + owner = "arminbiere"; + repo = "lingeling"; + rev = "708beb26a7d5b5d5e7abd88d6f552fb1946b07c1"; + sha256 = "1lb2g37nd8qq5hw5g6l691nx5095336yb2zlbaw43mg56hkj8357"; + }; + + configurePhase = '' + ./configure.sh + + # Rather than patch ./configure, just sneak in use of aiger here, since it + # doesn't handle real build products very well (it works on a build-time + # dir, not installed copy)... This is so we can build 'blimc' + substituteInPlace ./makefile \ + --replace 'targets: liblgl.a' 'targets: liblgl.a blimc' \ + --replace '$(AIGER)/aiger.o' '${aiger.lib}/lib/aiger.o' \ + --replace '$(AIGER)/aiger.h' '${aiger.dev}/include/aiger.h' \ + --replace '-I$(AIGER)' '-I${aiger.dev}/include' + ''; + + installPhase = '' + mkdir -p $out/bin $lib/lib $dev/include + + cp lglib.h $dev/include + cp liblgl.a $lib/lib + + cp lingeling plingeling treengeling ilingeling blimc $out/bin + ''; + + outputs = [ "out" "dev" "lib" ]; + + meta = with lib; { + description = "Fast SAT solver"; + homepage = "http://fmv.jku.at/lingeling/"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ thoughtpolice ]; + }; +} |