blob: 029a36faab2c38f4265adac4581c3ceb6be56a0f [file] [log] [blame]
# 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..."
}