diff options
Diffstat (limited to 'sci-mathematics/nusmv')
-rw-r--r-- | sci-mathematics/nusmv/Manifest | 6 | ||||
-rw-r--r-- | sci-mathematics/nusmv/files/MiniSat_v1.14-optimizedlib.patch | 44 | ||||
-rw-r--r-- | sci-mathematics/nusmv/files/MiniSat_v1.14_gcc41.patch | 92 | ||||
-rw-r--r-- | sci-mathematics/nusmv/files/cudd-no-pentium4.patch | 11 | ||||
-rw-r--r-- | sci-mathematics/nusmv/metadata.xml | 11 | ||||
-rw-r--r-- | sci-mathematics/nusmv/nusmv-2.3.1.ebuild | 121 | ||||
-rw-r--r-- | sci-mathematics/nusmv/nusmv-2.5.0.ebuild | 133 | ||||
-rw-r--r-- | sci-mathematics/nusmv/nusmv-2.5.2.ebuild | 132 | ||||
-rw-r--r-- | sci-mathematics/nusmv/nusmv-2.5.3.ebuild | 132 | ||||
-rw-r--r-- | sci-mathematics/nusmv/nusmv-2.5.4.ebuild | 135 |
10 files changed, 817 insertions, 0 deletions
diff --git a/sci-mathematics/nusmv/Manifest b/sci-mathematics/nusmv/Manifest new file mode 100644 index 000000000000..eeeef6335c5a --- /dev/null +++ b/sci-mathematics/nusmv/Manifest @@ -0,0 +1,6 @@ +DIST MiniSat_v1.14_src.zip 29428 SHA256 8e5e0ee84a770dcb3abd6fc65ed4aef938f9ffabca5ddc8a739029f7fb58a8f5 SHA512 451839f3b0508ccfc78a65bbdf3d6820d335aea43b32aa2e39168ff515f3eb6f74ab1297186f1a89dc69e4d8663a1479043fd10135faf2dbaf33269ff7b831e1 WHIRLPOOL dea39fd30ad7c4195c5fe07356890c6525744d59644aff89ce865269daa4ffbebbbba94fe929d0bf6df441e169e2fd974b5373a443d5c3fb410ec8d7dffd9cb2 +DIST NuSMV-2.3.1.tar.gz 2590944 SHA256 b8ba0f29afafdfdef8c30f722eead3ef6cbb17e4bfe5563240a01d8a99dbbf68 SHA512 24d258197ecfd314378f132c28722c6f91ee0ee10f5d67e51e924a682c03646b8700e28899eb8ab3ee67b231c26c2094c075b000d391adddfb82bb93a8dfc12b WHIRLPOOL c015aeeabff6fe0770a1d216ab783db0ea4d1915e09e2fa9ac2f470ffbcc6a89881f0e917c544598f7f6484a50b1216ca0e631084887c56bfc2efe29b8f82dbd +DIST NuSMV-2.5.0.tar.gz 3792968 SHA256 59310f5f23f72cb1ad16419e40f245db7c5aa41c0f59ba5c75732bb6c4b56ff1 +DIST NuSMV-2.5.2.tar.gz 3631420 SHA256 bc41c53c266d41d7bcb92851fbdb07d894c246d1189bfe420301c7b4fca46de0 +DIST NuSMV-2.5.3.tar.gz 3951637 SHA256 d5d6b2873dfa6f82ff9bef1a7eefa36dc5070557aa2b0e0d53cc8c54b2fe437d SHA512 8233a621d3cfad17d0b8f77a33460089b5c0a9fa694e6d91cbd6eb334213cd8d9e37fce8755e9ebc066279f25e86dfa7ded0197f679e42b8f2e7c048cc93356a WHIRLPOOL ea8075f405324179a822b9abd78f2c5d2a0c62ac31d2682f2145db7b033e2cf30f3a466689d75814cc3bfc551471425097d17515b19742f298899a432daec249 +DIST NuSMV-2.5.4.tar.gz 3968258 SHA256 3c250624cba801b1f62f50733f9507b0f3b3ca557ce1cd65956178eb273f1bdf SHA512 fc3cc641bbdbfc9464947c9991c8d363adeed9ed34af215c092a14b32d5ce536cb2dbc4eee1645d5aa85caa85e6e95b695620fa247f3a22652cdc4cd252c4c79 WHIRLPOOL 5822d1e7d853cf78cbdee07b0dafa1216fd226ecad803533310351573c7e9a864e6bba699a16c1b357da458311bf65b7362b6207b63e0c8008123e63950121e1 diff --git a/sci-mathematics/nusmv/files/MiniSat_v1.14-optimizedlib.patch b/sci-mathematics/nusmv/files/MiniSat_v1.14-optimizedlib.patch new file mode 100644 index 000000000000..a291339491bf --- /dev/null +++ b/sci-mathematics/nusmv/files/MiniSat_v1.14-optimizedlib.patch @@ -0,0 +1,44 @@ +diff -Nuar MiniSat_v1.14/Makefile MiniSat_v1.14.new/Makefile +--- MiniSat_v1.14/Makefile 2006-04-02 01:33:46.000000000 -0800 ++++ MiniSat_v1.14.new/Makefile 2006-04-02 01:31:39.000000000 -0800 +@@ -26,10 +26,11 @@ + RANLIB = ranlib + AR = ar + +-.PHONY : ls s p d r build clean depend ++.PHONY : lr ls s p d r build clean depend + + s: WAY=standard + ls: WAY=standard ++lr: WAY=release + p: WAY=profile + d: WAY=debug + r: WAY=release +@@ -38,8 +39,7 @@ + s: CFLAGS+=$(COPTIMIZE) -ggdb -D DEBUG + p: CFLAGS+=$(COPTIMIZE) -pg -ggdb -D DEBUG + d: CFLAGS+=-O0 -ggdb -D DEBUG +-r: CFLAGS+=$(COPTIMIZE) -D NDEBUG +-rs: CFLAGS+=$(COPTIMIZE) -D NDEBUG ++r rs ls lr: CFLAGS+=$(COPTIMIZE) -D NDEBUG + + s: build $(EXEC) + p: build $(EXEC)_profile +@@ -48,7 +48,7 @@ + rs: build $(EXEC)_static + + s: CFLAGS+=$(COPTIMIZE) -ggdb -D DEBUG +-ls: lbuild $(LIB)_s ++ls lr: lbuild $(LIB)_s + + build: + @echo Building $(EXEC) "("$(WAY)")" +@@ -63,7 +63,7 @@ + ## Build rule + %.o %.op %.od %.or: %.C + @echo Compiling: $< +- @$(CXX) $(CFLAGS) -c -o $@ $< ++ $(CXX) $(CFLAGS) -c -o $@ $< + + ## Linking rules (standard/profile/debug/release) + $(EXEC): $(COBJS) diff --git a/sci-mathematics/nusmv/files/MiniSat_v1.14_gcc41.patch b/sci-mathematics/nusmv/files/MiniSat_v1.14_gcc41.patch new file mode 100644 index 000000000000..dd5856ae57e5 --- /dev/null +++ b/sci-mathematics/nusmv/files/MiniSat_v1.14_gcc41.patch @@ -0,0 +1,92 @@ +Index: MiniSat/MiniSat_v1.14/SolverTypes.h +=================================================================== +--- MiniSat/MiniSat_v1.14/SolverTypes.h (revision 1040) ++++ MiniSat/MiniSat_v1.14/SolverTypes.h (working copy) +@@ -42,19 +42,32 @@ + public: + Lit() : x(2*var_Undef) {} // (lit_Undef) + explicit Lit(Var var, bool sign = false) : x((var+var) + (int)sign) { } +- friend Lit operator ~ (Lit p) { Lit q; q.x = p.x ^ 1; return q; } ++ friend Lit operator ~ (Lit p); + +- friend bool sign (Lit p) { return p.x & 1; } +- friend int var (Lit p) { return p.x >> 1; } +- friend int index (Lit p) { return p.x; } // A "toInt" method that guarantees small, positive integers suitable for array indexing. +- friend Lit toLit (int i) { Lit p; p.x = i; return p; } // Inverse of 'index()'. +- friend Lit unsign(Lit p) { Lit q; q.x = p.x & ~1; return q; } +- friend Lit id (Lit p, bool sgn) { Lit q; q.x = p.x ^ (int)sgn; return q; } ++ friend bool sign (Lit p); ++ friend int var (Lit p); ++ friend int index (Lit p); // A "toInt" method that guarantees small, positive integers suitable for array indexing. ++ friend Lit toLit (int i); // Inverse of 'index()'. ++ friend Lit unsign(Lit p); ++ friend Lit id (Lit p, bool sgn); + +- friend bool operator == (Lit p, Lit q) { return index(p) == index(q); } +- friend bool operator < (Lit p, Lit q) { return index(p) < index(q); } // '<' guarantees that p, ~p are adjacent in the ordering. ++ friend bool operator == (Lit p, Lit q); ++ friend bool operator < (Lit p, Lit q); // '<' guarantees that p, ~p are adjacent in the ordering. + }; + ++inline Lit operator ~ (Lit p) { Lit q; q.x = p.x ^ 1; return q; } ++ ++inline bool sign (Lit p) { return p.x & 1; } ++inline int var (Lit p) { return p.x >> 1; } ++inline int index (Lit p) { return p.x; } // A "toInt" method that guarantees small, positive integers suitable for array indexing. ++inline Lit toLit (int i) { Lit p; p.x = i; return p; } // Inverse of 'index()'. ++inline Lit unsign(Lit p) { Lit q; q.x = p.x & ~1; return q; } ++inline Lit id (Lit p, bool sgn) { Lit q; q.x = p.x ^ (int)sgn; return q; } ++ ++inline bool operator == (Lit p, Lit q) { return index(p) == index(q); } ++inline bool operator < (Lit p, Lit q) { return index(p) < index(q); } // '<' guarantees that p, ~p are adjacent in the ordering. ++ ++ + const Lit lit_Undef(var_Undef, false); // }- Useful special constants. + const Lit lit_Error(var_Undef, true ); // } + +@@ -79,11 +92,7 @@ + if (learnt) activity() = 0; } + + // -- use this function instead: +- friend Clause* Clause_new(bool learnt, const vec<Lit>& ps) { +- assert(sizeof(Lit) == sizeof(uint)); +- assert(sizeof(float) == sizeof(uint)); +- void* mem = xmalloc<char>(sizeof(Clause) + sizeof(uint)*(ps.size() + (int)learnt)); +- return new (mem) Clause(learnt, ps); } ++ friend Clause* Clause_new(bool learnt, const vec<Lit>& ps); + + int size () const { return size_learnt >> 1; } + bool learnt () const { return size_learnt & 1; } +@@ -92,6 +101,12 @@ + float& activity () const { return *((float*)&data[size()]); } + }; + ++inline Clause* Clause_new(bool learnt, const vec<Lit>& ps) { ++ assert(sizeof(Lit) == sizeof(uint)); ++ assert(sizeof(float) == sizeof(uint)); ++ void* mem = xmalloc<char>(sizeof(Clause) + sizeof(uint)*(ps.size() + (int)learnt)); ++ return new (mem) Clause(learnt, ps); ++} + + //================================================================================================= + // GClause -- Generalize clause: +@@ -102,8 +117,8 @@ + void* data; + GClause(void* d) : data(d) {} + public: +- friend GClause GClause_new(Lit p) { return GClause((void*)((index(p) << 1) + 1)); } +- friend GClause GClause_new(Clause* c) { assert(((uintp)c & 1) == 0); return GClause((void*)c); } ++ friend GClause GClause_new(Lit p); ++ friend GClause GClause_new(Clause* c); + + bool isLit () const { return ((uintp)data & 1) == 1; } + bool isNull () const { return data == NULL; } +@@ -114,6 +129,8 @@ + }; + #define GClause_NULL GClause_new((Clause*)NULL) + ++inline GClause GClause_new(Lit p) { return GClause((void*)((index(p) << 1) + 1)); } ++inline GClause GClause_new(Clause* c) { assert(((uintp)c & 1) == 0); return GClause((void*)c); } + + //================================================================================================= + #endif diff --git a/sci-mathematics/nusmv/files/cudd-no-pentium4.patch b/sci-mathematics/nusmv/files/cudd-no-pentium4.patch new file mode 100644 index 000000000000..844f7c00d638 --- /dev/null +++ b/sci-mathematics/nusmv/files/cudd-no-pentium4.patch @@ -0,0 +1,11 @@ +--- Makefile.orig 2010-07-12 02:54:26.000000000 +0200 ++++ Makefile 2010-07-12 02:54:49.000000000 +0200 +@@ -69,7 +69,7 @@ + # Gcc 2.8.1 or higher on i686. + #XCFLAGS = -mcpu=pentiumpro -malign-double -DHAVE_IEEE_754 -DBSD + # Gcc 3.2.2 or higher on i686. +-XCFLAGS = -mcpu=pentium4 -malign-double -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4 ++XCFLAGS = -malign-double -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4 + # Icc on i686. + #XCFLAGS = -ansi -align -ip -DHAVE_IEEE_754 -DBSD + # Gcc on ia64. diff --git a/sci-mathematics/nusmv/metadata.xml b/sci-mathematics/nusmv/metadata.xml new file mode 100644 index 000000000000..da589122a2f5 --- /dev/null +++ b/sci-mathematics/nusmv/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>sci-mathematics</herd> + <maintainer> + <email>robbat2@gentoo.org</email> + </maintainer> + <use> + <flag name="minisat">Enable support for MiniSat</flag> + </use> +</pkgmetadata> diff --git a/sci-mathematics/nusmv/nusmv-2.3.1.ebuild b/sci-mathematics/nusmv/nusmv-2.3.1.ebuild new file mode 100644 index 000000000000..49764e298196 --- /dev/null +++ b/sci-mathematics/nusmv/nusmv-2.3.1.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils toolchain-funcs + +NUSMV_PN="NuSMV" +NUSMV_PV="${PV}" +NUSMV_P="${NUSMV_PN}-${NUSMV_PV}" +NUSMV_A="${NUSMV_P}.tar.gz" +NUSMV_S="${WORKDIR}/${NUSMV_P}/nusmv" + +MINISAT_PN="MiniSat" +MINISAT_PV="1.14" +MINISAT_P="${MINISAT_PN}_v${MINISAT_PV}" +MINISAT_A="${MINISAT_P}_src.zip" +MINISAT_S="${WORKDIR}/${NUSMV_P}/MiniSat/${MINISAT_P}" + +CUDD_PN="cudd" +CUDD_PV="2.3.0.1" +CUDD_P="${CUDD_PN}-${CUDD_PV}" +#CUDD_A is none +CUDD_S="${WORKDIR}/${NUSMV_P}/${CUDD_P}" + +DESCRIPTION="NuSMV: new symbolic model checker" +HOMEPAGE="http://nusmv.irst.itc.it/" +# The Homepage is _very_ slow, 2Kb/sec or worse. +# So we use our own mirror. +# Additionally, MiniSat is distributed with a slightly different filename +# So we mirror it ourselves +SRC_URI="mirror://gentoo/${NUSMV_A} + http://nusmv.irst.itc.it/distrib/${NUSMV_A} + minisat? ( mirror://gentoo/${MINISAT_A} )" +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~x86 ~amd64" +IUSE="minisat examples" +RDEPEND="dev-libs/expat" +DEPEND="${RDEPEND} + virtual/latex-base + dev-texlive/texlive-latexextra + app-text/ghostscript-gpl + www-client/lynx + dev-lang/perl" +# the above 4 are for docs, which aren't optional yet patches welcome to +# avoid building the docs but I suspect anybody using this package will +# actually need them +S="${NUSMV_S}" + +src_unpack() { + unpack ${NUSMV_A} + if use minisat; then + cd "${WORKDIR}"/${NUSMV_P}/MiniSat + unpack ${MINISAT_A} + epatch ${MINISAT_P}_nusmv.patch + epatch "${FILESDIR}"/${MINISAT_P}-optimizedlib.patch + fi + for i in ${NUSMV_S}/doc/{user-man,tutorial}/Makefile.in ; do + sed -i.orig \ + '/install_sh_DATA/s!$(datadir)!$(DESTDIR)$(datadir)!g' \ + ${i} || die "sed $i failed" + done +} + +src_compile() { + rm -f ${NUSMV_S}/${MINISAT_P} + if use minisat; then + cd ${MINISAT_S} + # do NOT merge these targets + emake COPTIMIZE="${CFLAGS}" r || die "Failed to build minisat bin" + emake COPTIMIZE="${CFLAGS}" lr || die "Failed to build minisat lib" + ln -sf ${MINISAT_S} "${WORKDIR}"/${NUSMV_P}/${MINISAT_P} + fi + + cd ${CUDD_S} + emake clean || die "Failed to clean cudd out." + emake \ + CPP="$(tc-getCPP)" CC="$(tc-getCC)" \ + RANLIB="$(tc-getRANLIB)" ICFLAGS="${CFLAGS}" \ + || die "Failed to build cudd." + + cd ${NUSMV_S} + econf `use_enable minisat` \ + --enable-sa \ + --enable-sa-cpp \ + --enable-psl + emake || die "emake failed" + + VARTEXFONTS="${T}"/fonts emake docs +} + +src_install() { + into /usr + if use minisat; then + newbin ${MINISAT_S}/minisat_release minisat + fi + + dodir /usr/share/nusmv/doc + cd ${NUSMV_S} + emake DESTDIR="${D}" install || die "emake install failed" + # duplicate items + rm -f "${D}"/usr/share/nusmv/{LGPL-2.1,README*,NEWS} + # real docs + dodoc README* NEWS AUTHORS + dodoc doc/tutorial/tutorial.pdf + dodoc doc/user-man/nusmv.pdf + + # move package-installed docs + mv "${D}"/usr/share/nusmv/doc/* "${D}"/usr/share/doc/${PF}/ + rmdir "${D}"/usr/share/nusmv/doc + + # clean out examples if not needed + if use !examples ; then + rm -rf "${D}"/usr/share/nusmv/examples || die "Failed to remove examples" + fi +} + +src_test() { + cd ${NUSMV_S} + emake check || die "emake check failed" +} diff --git a/sci-mathematics/nusmv/nusmv-2.5.0.ebuild b/sci-mathematics/nusmv/nusmv-2.5.0.ebuild new file mode 100644 index 000000000000..58220e1e95b6 --- /dev/null +++ b/sci-mathematics/nusmv/nusmv-2.5.0.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils toolchain-funcs + +NUSMV_PN="NuSMV" +NUSMV_PV="${PV}" +NUSMV_P="${NUSMV_PN}-${NUSMV_PV}" +NUSMV_A="${NUSMV_P}.tar.gz" +NUSMV_S="${WORKDIR}/${NUSMV_P}/nusmv" + +MINISAT_PN="MiniSat" +MINISAT_PV="1.14" +MINISAT_P="${MINISAT_PN}_v${MINISAT_PV}" +MINISAT_A="${MINISAT_P}_src.zip" +MINISAT_S="${WORKDIR}/${NUSMV_P}/MiniSat/${MINISAT_P}" + +CUDD_PN="cudd" +CUDD_PV="2.4.1.1" +CUDD_P="${CUDD_PN}-${CUDD_PV}" +#CUDD_A is none +CUDD_S="${WORKDIR}/${NUSMV_P}/${CUDD_P}" + +DESCRIPTION="NuSMV: new symbolic model checker" +HOMEPAGE="http://nusmv.irst.itc.it/" +# The Homepage is _very_ slow, 2Kb/sec or worse. +# So we use our own mirror. +# Additionally, MiniSat is distributed with a slightly different filename +# So we mirror it ourselves +SRC_URI="mirror://gentoo/${NUSMV_A} + http://nusmv.irst.itc.it/distrib/${NUSMV_A} + minisat? ( mirror://gentoo/${MINISAT_A} )" +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~x86 ~amd64" +IUSE="minisat examples" +RDEPEND="dev-libs/expat" +DEPEND="${RDEPEND} + virtual/latex-base + dev-texlive/texlive-latexextra + app-text/ghostscript-gpl + www-client/lynx + dev-lang/perl" +# the above 4 are for docs, which aren't optional yet patches welcome to +# avoid building the docs but I suspect anybody using this package will +# actually need them +S="${NUSMV_S}" + +src_unpack() { + unpack ${NUSMV_A} + if use minisat; then + cd "${WORKDIR}"/${NUSMV_P}/MiniSat + unpack ${MINISAT_A} + epatch ${MINISAT_P}_nusmv.patch + epatch "${FILESDIR}"/${MINISAT_P}-optimizedlib.patch + epatch "${FILESDIR}"/${MINISAT_P}_gcc41.patch + fi + + cd "${CUDD_S}" + epatch "${FILESDIR}"/${CUDD_PN}-no-pentium4.patch + if [[ "$(tc-arch)" = amd64 ]] ; then + mv Makefile_64bit Makefile || die + fi + + for i in ${NUSMV_S}/doc/{user-man,tutorial}/Makefile.in ; do + sed -i.orig \ + '/install_sh_DATA/s!$(datadir)!$(DESTDIR)$(datadir)!g' \ + ${i} || die "sed $i failed" + done +} + +src_compile() { + rm -f ${NUSMV_S}/${MINISAT_P} + if use minisat; then + cd ${MINISAT_S} + # do NOT merge these targets + emake COPTIMIZE="${CFLAGS}" r || die "Failed to build minisat bin" + emake COPTIMIZE="${CFLAGS}" lr || die "Failed to build minisat lib" + ln -sf ${MINISAT_S} "${WORKDIR}"/${NUSMV_P}/${MINISAT_P} + fi + + cd ${CUDD_S} + emake clean || die "Failed to clean cudd out." + emake \ + CPP="$(tc-getCPP)" CC="$(tc-getCC)" \ + RANLIB="$(tc-getRANLIB)" ICFLAGS="${CFLAGS}" \ + || die "Failed to build cudd." + + local myconf="$(use_enable minisat) --enable-pslparser" + if use minisat; then + myconf="${myconf} + --with-minisat-incdir=../${MINISAT_P} + --with-minisat-libdir=../${MINISAT_P}" + fi + + cd ${NUSMV_S} + econf ${myconf} + emake || die "emake failed" + + VARTEXFONTS="${T}"/fonts emake docs +} + +src_install() { + into /usr + if use minisat; then + newbin ${MINISAT_S}/minisat_release minisat + fi + + dodir /usr/share/nusmv/doc + cd ${NUSMV_S} + emake DESTDIR="${D}" install || die "emake install failed" + # duplicate items + rm -f "${D}"/usr/share/nusmv/{LGPL-2.1,README*,NEWS} + # real docs + dodoc README* NEWS AUTHORS + dodoc doc/tutorial/tutorial.pdf + dodoc doc/user-man/nusmv.pdf + + # move package-installed docs + mv "${D}"/usr/share/nusmv/doc/* "${D}"/usr/share/doc/${PF}/ + rmdir "${D}"/usr/share/nusmv/doc + + # clean out examples if not needed + if use !examples ; then + rm -rf "${D}"/usr/share/nusmv/examples || die "Failed to remove examples" + fi +} + +src_test() { + cd ${NUSMV_S} + emake check || die "emake check failed" +} diff --git a/sci-mathematics/nusmv/nusmv-2.5.2.ebuild b/sci-mathematics/nusmv/nusmv-2.5.2.ebuild new file mode 100644 index 000000000000..38ce8b01c809 --- /dev/null +++ b/sci-mathematics/nusmv/nusmv-2.5.2.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils flag-o-matic toolchain-funcs + +NUSMV_PN="NuSMV" +NUSMV_PV="${PV}" +NUSMV_P="${NUSMV_PN}-${NUSMV_PV}" +NUSMV_A="${NUSMV_P}.tar.gz" +NUSMV_S="${WORKDIR}/${NUSMV_P}/nusmv" + +MINISAT_PN="MiniSat" +MINISAT_PV="1.14" +MINISAT_P="${MINISAT_PN}_v${MINISAT_PV}" +MINISAT_A="${MINISAT_P}_src.zip" +MINISAT_S="${WORKDIR}/${NUSMV_P}/MiniSat/${MINISAT_P}" + +CUDD_PN="cudd" +CUDD_PV="2.4.1.1" +CUDD_P="${CUDD_PN}-${CUDD_PV}" +#CUDD_A is none +CUDD_S="${WORKDIR}/${NUSMV_P}/${CUDD_P}" + +DESCRIPTION="NuSMV: new symbolic model checker" +HOMEPAGE="http://nusmv.irst.itc.it/" +SRC_URI="http://nusmv.fbk.eu/distrib/${NUSMV_A} + minisat? ( mirror://gentoo/${MINISAT_A} )" +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~x86 ~amd64" +IUSE="minisat examples" +RDEPEND="dev-libs/expat" +DEPEND="${RDEPEND} + virtual/latex-base + dev-texlive/texlive-latexextra + app-text/ghostscript-gpl + www-client/lynx + dev-lang/perl" +# the above 4 are for docs, which aren't optional yet patches welcome to +# avoid building the docs but I suspect anybody using this package will +# actually need them +S="${NUSMV_S}" + +src_unpack() { + unpack ${NUSMV_A} + if use minisat; then + cd "${WORKDIR}"/${NUSMV_P}/MiniSat + unpack ${MINISAT_A} + epatch ${MINISAT_P}_nusmv.patch + epatch "${FILESDIR}"/${MINISAT_P}-optimizedlib.patch + epatch "${FILESDIR}"/${MINISAT_P}_gcc41.patch + fi + + cd "${CUDD_S}" + if [[ "$(tc-arch)" = amd64 ]] ; then + mv Makefile_64bit Makefile || die + fi + sed -i Makefile -e 's/-mcpu=[^\s]*//' || die + + for i in ${NUSMV_S}/doc/{user-man,tutorial}/Makefile.in ; do + sed -i.orig \ + '/install_sh_DATA/s!$(datadir)!$(DESTDIR)$(datadir)!g' \ + ${i} || die "sed $i failed" + done +} + +src_compile() { + if [[ "$(tc-arch)" = x86 ]] ; then + append-flags -DNUSMV_SIZEOF_VOID_P=4 -DNUSMV_SIZEOF_LONG=4 -DNUSMV_SIZEOF_INT=4 + fi + + rm -f ${NUSMV_S}/${MINISAT_P} + if use minisat; then + cd ${MINISAT_S} + # do NOT merge these targets + emake COPTIMIZE="${CFLAGS}" r || die "Failed to build minisat bin" + emake COPTIMIZE="${CFLAGS}" lr || die "Failed to build minisat lib" + ln -sf ${MINISAT_S} "${WORKDIR}"/${NUSMV_P}/${MINISAT_P} + fi + + cd ${CUDD_S} + emake clean || die "Failed to clean cudd out." + emake \ + CPP="$(tc-getCPP)" CC="$(tc-getCC)" \ + RANLIB="$(tc-getRANLIB)" ICFLAGS="${CFLAGS}" \ + || die "Failed to build cudd." + + local myconf="$(use_enable minisat) --enable-pslparser" + if use minisat; then + myconf="${myconf} + --with-minisat-incdir=../${MINISAT_P} + --with-minisat-libdir=../${MINISAT_P}" + fi + + cd ${NUSMV_S} + econf ${myconf} + emake || die "emake failed" + + VARTEXFONTS="${T}"/fonts emake docs +} + +src_install() { + into /usr + if use minisat; then + newbin ${MINISAT_S}/minisat_release minisat + fi + + dodir /usr/share/nusmv/doc + cd ${NUSMV_S} + emake DESTDIR="${D}" install || die "emake install failed" + # duplicate items + rm -f "${D}"/usr/share/nusmv/{LGPL-2.1,README*,NEWS} + # real docs + dodoc README* NEWS AUTHORS + dodoc doc/tutorial/tutorial.pdf + dodoc doc/user-man/nusmv.pdf + + # move package-installed docs + mv "${D}"/usr/share/nusmv/doc/* "${D}"/usr/share/doc/${PF}/ + rmdir "${D}"/usr/share/nusmv/doc + + # clean out examples if not needed + if use !examples ; then + rm -rf "${D}"/usr/share/nusmv/examples || die "Failed to remove examples" + fi +} + +src_test() { + cd ${NUSMV_S} + emake check || die "emake check failed" +} diff --git a/sci-mathematics/nusmv/nusmv-2.5.3.ebuild b/sci-mathematics/nusmv/nusmv-2.5.3.ebuild new file mode 100644 index 000000000000..9fa6a28a8923 --- /dev/null +++ b/sci-mathematics/nusmv/nusmv-2.5.3.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils flag-o-matic toolchain-funcs + +NUSMV_PN="NuSMV" +NUSMV_PV="${PV}" +NUSMV_P="${NUSMV_PN}-${NUSMV_PV}" +NUSMV_A="${NUSMV_P}.tar.gz" +NUSMV_S="${WORKDIR}/${NUSMV_P}/nusmv" + +MINISAT_PN="MiniSat" +MINISAT_PV="1.14" +MINISAT_P="${MINISAT_PN}_v${MINISAT_PV}" +MINISAT_A="${MINISAT_P}_src.zip" +MINISAT_S="${WORKDIR}/${NUSMV_P}/MiniSat/${MINISAT_P}" + +CUDD_PN="cudd" +CUDD_PV="2.4.1.1" +CUDD_P="${CUDD_PN}-${CUDD_PV}" +#CUDD_A is none +CUDD_S="${WORKDIR}/${NUSMV_P}/${CUDD_P}" + +DESCRIPTION="NuSMV: new symbolic model checker" +HOMEPAGE="http://nusmv.irst.itc.it/" +SRC_URI="http://nusmv.fbk.eu/distrib/${NUSMV_A} + minisat? ( mirror://gentoo/${MINISAT_A} )" +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="minisat examples" +RDEPEND="dev-libs/expat" +DEPEND="${RDEPEND} + virtual/latex-base + dev-texlive/texlive-latexextra + app-text/ghostscript-gpl + www-client/lynx + dev-lang/perl" +# the above 4 are for docs, which aren't optional yet patches welcome to +# avoid building the docs but I suspect anybody using this package will +# actually need them +S="${NUSMV_S}" + +src_unpack() { + unpack ${NUSMV_A} + if use minisat; then + cd "${WORKDIR}"/${NUSMV_P}/MiniSat + unpack ${MINISAT_A} + epatch ${MINISAT_P}_nusmv.patch + epatch "${FILESDIR}"/${MINISAT_P}-optimizedlib.patch + epatch "${FILESDIR}"/${MINISAT_P}_gcc41.patch + fi + + cd "${CUDD_S}" + if [[ "$(tc-arch)" = amd64 ]] ; then + mv Makefile_64bit Makefile || die + fi + sed -i Makefile -e 's/-mcpu=[^\s]*//' || die + + for i in ${NUSMV_S}/doc/{user-man,tutorial}/Makefile.in ; do + sed -i.orig \ + '/install_sh_DATA/s!$(datadir)!$(DESTDIR)$(datadir)!g' \ + ${i} || die "sed $i failed" + done +} + +src_compile() { + if [[ "$(tc-arch)" = x86 ]] ; then + append-flags -DNUSMV_SIZEOF_VOID_P=4 -DNUSMV_SIZEOF_LONG=4 -DNUSMV_SIZEOF_INT=4 + fi + + rm -f ${NUSMV_S}/${MINISAT_P} + if use minisat; then + cd ${MINISAT_S} + # do NOT merge these targets + emake COPTIMIZE="${CFLAGS}" r || die "Failed to build minisat bin" + emake COPTIMIZE="${CFLAGS}" lr || die "Failed to build minisat lib" + ln -sf ${MINISAT_S} "${WORKDIR}"/${NUSMV_P}/${MINISAT_P} + fi + + cd ${CUDD_S} + emake clean || die "Failed to clean cudd out." + emake \ + CPP="$(tc-getCPP)" CC="$(tc-getCC)" \ + RANLIB="$(tc-getRANLIB)" ICFLAGS="${CFLAGS}" \ + || die "Failed to build cudd." + + local myconf="$(use_enable minisat) --enable-pslparser" + if use minisat; then + myconf="${myconf} + --with-minisat-incdir=../${MINISAT_P} + --with-minisat-libdir=../${MINISAT_P}" + fi + + cd ${NUSMV_S} + econf ${myconf} + emake || die "emake failed" + + VARTEXFONTS="${T}"/fonts emake docs +} + +src_install() { + into /usr + if use minisat; then + newbin ${MINISAT_S}/minisat_release minisat + fi + + dodir /usr/share/nusmv/doc + cd ${NUSMV_S} + emake DESTDIR="${D}" install || die "emake install failed" + # duplicate items + rm -f "${D}"/usr/share/nusmv/{LGPL-2.1,README*,NEWS} + # real docs + dodoc README* NEWS AUTHORS + dodoc doc/tutorial/tutorial.pdf + dodoc doc/user-man/nusmv.pdf + + # move package-installed docs + mv "${D}"/usr/share/nusmv/doc/* "${D}"/usr/share/doc/${PF}/ + rmdir "${D}"/usr/share/nusmv/doc + + # clean out examples if not needed + if use !examples ; then + rm -rf "${D}"/usr/share/nusmv/examples || die "Failed to remove examples" + fi +} + +src_test() { + cd ${NUSMV_S} + emake check || die "emake check failed" +} diff --git a/sci-mathematics/nusmv/nusmv-2.5.4.ebuild b/sci-mathematics/nusmv/nusmv-2.5.4.ebuild new file mode 100644 index 000000000000..1f08cca70b7f --- /dev/null +++ b/sci-mathematics/nusmv/nusmv-2.5.4.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils flag-o-matic toolchain-funcs + +NUSMV_PN="NuSMV" +NUSMV_PV="${PV}" +NUSMV_P="${NUSMV_PN}-${NUSMV_PV}" +NUSMV_A="${NUSMV_P}.tar.gz" +NUSMV_S="${WORKDIR}/${NUSMV_P}/nusmv" + +MINISAT_PN="MiniSat" +MINISAT_PV="1.14" +MINISAT_P="${MINISAT_PN}_v${MINISAT_PV}" +MINISAT_A="${MINISAT_P}_src.zip" +MINISAT_S="${WORKDIR}/${NUSMV_P}/MiniSat/${MINISAT_P}" + +CUDD_PN="cudd" +CUDD_PV="2.4.1.1" +CUDD_P="${CUDD_PN}-${CUDD_PV}" +#CUDD_A is none +CUDD_S="${WORKDIR}/${NUSMV_P}/${CUDD_P}" + +DESCRIPTION="NuSMV: new symbolic model checker" +HOMEPAGE="http://nusmv.irst.itc.it/" +SRC_URI="http://nusmv.fbk.eu/distrib/${NUSMV_A} + minisat? ( mirror://gentoo/${MINISAT_A} )" +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="minisat examples" +RDEPEND="dev-libs/expat" +DEPEND="${RDEPEND} + virtual/latex-base + dev-texlive/texlive-latexextra + app-text/ghostscript-gpl + www-client/lynx + dev-lang/perl" +# the above 4 are for docs, which aren't optional yet patches welcome to +# avoid building the docs but I suspect anybody using this package will +# actually need them +S="${NUSMV_S}" + +src_unpack() { + unpack ${NUSMV_A} + if use minisat; then + cd "${WORKDIR}"/${NUSMV_P}/MiniSat + unpack ${MINISAT_A} + epatch ${MINISAT_P}_nusmv.patch + epatch "${FILESDIR}"/${MINISAT_P}-optimizedlib.patch + epatch "${FILESDIR}"/${MINISAT_P}_gcc41.patch + fi + + cd "${CUDD_S}" + if [[ "$(tc-arch)" = amd64 ]] ; then + mv Makefile_64bit Makefile || die + fi + sed -i Makefile -e 's/-mcpu=[^\s]*//' || die + + for i in ${NUSMV_S}/doc/{user-man,tutorial}/Makefile.in ; do + sed -i.orig \ + '/install_sh_DATA/s!$(datadir)!$(DESTDIR)$(datadir)!g' \ + ${i} || die "sed $i failed" + done +} + +src_compile() { + if [[ "$(tc-arch)" = x86 ]] ; then + append-flags -DNUSMV_SIZEOF_VOID_P=4 -DNUSMV_SIZEOF_LONG=4 -DNUSMV_SIZEOF_INT=4 + fi + # With LTO, it tried to link for 6 hours on an i7 system before failing. + filter-flags -flto -Wl,-flto + + rm -f ${NUSMV_S}/${MINISAT_P} + if use minisat; then + cd ${MINISAT_S} + # do NOT merge these targets + emake COPTIMIZE="${CFLAGS}" r || die "Failed to build minisat bin" + emake COPTIMIZE="${CFLAGS}" lr || die "Failed to build minisat lib" + ln -sf ${MINISAT_S} "${WORKDIR}"/${NUSMV_P}/${MINISAT_P} + fi + + cd ${CUDD_S} + emake clean || die "Failed to clean cudd out." + emake \ + CPP="$(tc-getCPP)" CC="$(tc-getCC)" \ + RANLIB="$(tc-getRANLIB)" ICFLAGS="${CFLAGS}" \ + || die "Failed to build cudd." + + local myconf="$(use_enable minisat) --enable-pslparser" + if use minisat; then + myconf="${myconf} + --with-minisat-incdir=../${MINISAT_P} + --with-minisat-libdir=../${MINISAT_P}" + fi + + cd ${NUSMV_S} + econf ${myconf} + einfo "Don't be alarmed if compileWriteUdg.o takes a very long time to compile, ~90 minutes on an i7" + emake || die "emake failed" + + VARTEXFONTS="${T}"/fonts emake docs +} + +src_install() { + into /usr + if use minisat; then + newbin ${MINISAT_S}/minisat_release minisat + fi + + dodir /usr/share/nusmv/doc + cd ${NUSMV_S} + emake DESTDIR="${D}" install || die "emake install failed" + # duplicate items + rm -f "${D}"/usr/share/nusmv/{LGPL-2.1,README*,NEWS} + # real docs + dodoc README* NEWS AUTHORS + dodoc doc/tutorial/tutorial.pdf + dodoc doc/user-man/nusmv.pdf + + # move package-installed docs + mv "${D}"/usr/share/nusmv/doc/* "${D}"/usr/share/doc/${PF}/ + rmdir "${D}"/usr/share/nusmv/doc + + # clean out examples if not needed + if use !examples ; then + rm -rf "${D}"/usr/share/nusmv/examples || die "Failed to remove examples" + fi +} + +src_test() { + cd ${NUSMV_S} + emake check || die "emake check failed" +} |