depot/third_party/nixpkgs/pkgs/by-name/ai/aiger/package.nix

60 lines
1.7 KiB
Nix

{ lib, stdenv, fetchurl, picosat }:
stdenv.mkDerivation rec {
pname = "aiger";
version = "1.9.9";
src = fetchurl {
url = "https://fmv.jku.at/aiger/${pname}-${version}.tar.gz";
sha256 = "1ish0dw0nf9gyghxsdhpy1jjiy5wp54c993swp85xp7m6vdx6l0y";
};
patches = [
# Fix implicit declaration of `isatty`, which is an error with newer versions of clang.
./fix-missing-header.patch
];
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 = "https://fmv.jku.at/aiger/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ thoughtpolice ];
platforms = lib.platforms.unix;
};
}