61 lines
1.7 KiB
Nix
61 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;
|
||
|
};
|
||
|
}
|