summary refs log tree commit diff
path: root/pkgs/applications/science/logic/aiger/default.nix
blob: 15c45466b1327b01eab0161c853bef210cb4c9b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{ lib, stdenv, fetchurl, picosat }:

stdenv.mkDerivation rec {
  pname = "aiger";
  version = "1.9.9";

  src = fetchurl {
    url    = "http://fmv.jku.at/aiger/${pname}-${version}.tar.gz";
    sha256 = "1ish0dw0nf9gyghxsdhpy1jjiy5wp54c993swp85xp7m6vdx6l0y";
  };

  enableParallelBuilding = true;

  configurePhase = ''
    # Set up picosat, so we can build 'aigbmc'
    mkdir ../picosat
    ln -s ${picosat}/include/picosat/picosat.h ../picosat/picosat.h
    ln -s ${picosat}/lib/picosat.o             ../picosat/picosat.o
    ln -s ${picosat}/share/picosat.version     ../picosat/VERSION
    ./configure.sh
  '';

  installPhase = ''
    mkdir -p $out/bin $dev/include $lib/lib

    # Do the installation manually, as the Makefile has odd
    # cyrillic characters, and this is easier than adding
    # a whole .patch file.
    BINS=( \
      aigand aigdd aigflip aigfuzz aiginfo aigjoin   \
      aigmiter aigmove aignm aigor aigreset aigsim   \
      aigsplit aigstrip aigtoaig aigtoblif aigtocnf  \
      aigtodot aigtosmv aigunconstraint aigunroll    \
      andtoaig bliftoaig smvtoaig soltostim wrapstim \
      aigbmc aigdep
    )

    for x in ''${BINS[*]}; do
      install -m 755 -s $x $out/bin/$x
    done

    cp -v aiger.o $lib/lib
    cp -v aiger.h $dev/include
  '';

  outputs = [ "out" "dev" "lib" ];

  meta = {
    description = "And-Inverter Graph (AIG) utilities";
    homepage    = "http://fmv.jku.at/aiger/";
    license     = lib.licenses.mit;
    maintainers = with lib.maintainers; [ thoughtpolice ];
    platforms   = lib.platforms.unix;
  };
}