# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI="2" inherit eutils toolchain-funcs DESCRIPTION="Small yet efficient SAT solver with reference paper" HOMEPAGE="http://minisat.se/Main.html" SRC_URI="http://minisat.se/downloads/${P}.tar.gz doc? ( http://minisat.se/downloads/MiniSat.pdf )" SLOT="0" KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" LICENSE="MIT" IUSE="debug doc extended-solver" DEPEND="sys-libs/zlib" RDEPEND="${DEPEND}" S=${WORKDIR}/${PN} pkg_setup() { if use debug; then myconf="d" myext="debug" else myconf="r" myext="release" fi if use extended-solver; then mydir="simp" else mydir="core" fi tc-export CXX if has_version "=sci-mathematics/minisat-2.1*" ; then elog "" elog "The minisat2 2.1 and 2.2 ABIs are not compatible and there" elog "is currently no slotting. Please mask it yourself (eg, in" elog "packages.mask) if you still need the older version." elog "" epause 5 fi } src_prepare() { sed -e "s/\$(CXX) \$^/\$(CXX) \$(LDFLAGS) \$^/" \ -i -e "s|-O3|${CFLAGS}|" mtl/template.mk || die } src_compile() { export MROOT="${S}" emake -C ${mydir} "$myconf" || die LIB="${PN}" emake -C ${mydir} lib"$myconf" || die } src_install() { # somewhat brute-force, but so is the build setup... fix_headers insinto /usr/include/${PN}2/mtl doins mtl/*.h || die insinto /usr/include/${PN}2/core doins core/Solver*.h || die insinto /usr/include/${PN}2/simp doins simp/Simp*.h || die insinto /usr/include/${PN}2/utils doins utils/*.h || die newbin ${mydir}/${PN}_${myext} ${PN} || die newlib.a ${mydir}/lib${PN}_${myext}.a lib${PN}.a || die dodoc README doc/ReleaseNotes-2.2.0.txt || die if use doc; then dodoc "${DISTDIR}"/MiniSat.pdf || die fi } fix_headers() { # need to fix the circular internal includes a bit for standard usage elog "Fixing header files..." patch -p0 < "${FILESDIR}"/${P}-header_fix.patch \ || die "header patch failed..." }