diff options
author | Mark Wright <gienah@gentoo.org> | 2017-01-02 11:18:51 +1100 |
---|---|---|
committer | Mark Wright <gienah@gentoo.org> | 2017-01-02 11:20:08 +1100 |
commit | e1bee0588417636345663574e7c1ef127abbebe6 (patch) | |
tree | 0531ba68e6da9a2bda0cc307f9c92fff34461be2 /sci-mathematics/z3/z3-4.5.0.ebuild | |
parent | net-dns/libidn2: Version bump. (diff) | |
download | gentoo-e1bee0588417636345663574e7c1ef127abbebe6.tar.gz gentoo-e1bee0588417636345663574e7c1ef127abbebe6.tar.bz2 gentoo-e1bee0588417636345663574e7c1ef127abbebe6.zip |
sci-mathematics/z3: Thanks to Yichao Zhou, jlec and slyfox for development
on the z3 ebuilds. Thanks to David E. Narv?ez for reporting and patching.
Gentoo-bug: 602498, 602600
Package-Manager: portage-2.3.3
Diffstat (limited to 'sci-mathematics/z3/z3-4.5.0.ebuild')
-rw-r--r-- | sci-mathematics/z3/z3-4.5.0.ebuild | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/sci-mathematics/z3/z3-4.5.0.ebuild b/sci-mathematics/z3/z3-4.5.0.ebuild new file mode 100644 index 000000000000..58d2b6b6832c --- /dev/null +++ b/sci-mathematics/z3/z3-4.5.0.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +inherit flag-o-matic java-pkg-2 java-pkg-simple python-r1 toolchain-funcs + +DESCRIPTION="An efficient theorem prover" +HOMEPAGE="http://z3.codeplex.com/" +SRC_URI="https://github.com/Z3Prover/z3/archive/${P}.tar.gz" + +SLOT="0" +LICENSE="MIT" +KEYWORDS="~amd64 ~x86" +IUSE="doc gmp isabelle java python" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="${PYTHON_DEPS} + gmp? ( dev-libs/gmp:0 )" +DEPEND="${RDEPEND} + java? ( >=virtual/jdk-1.8 )" + +S=${WORKDIR}/${PN}-${P} +JAVA_SRC_DIR=${S}/src/api/java + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + if [[ $(tc-getCXX)$ == *g++* ]] && ! tc-has-openmp; then + ewarn "Please use an openmp compatible compiler" + ewarn "like >gcc-4.2 with USE=openmp" + die "Openmp support missing in compiler" + fi + fi +} + +src_prepare() { + default + + sed \ + -e 's:-O3::g' \ + -e 's:-fomit-frame-pointer::' \ + -e 's:-msse2::g' \ + -e 's:-msse::g' \ + -e "/LINK_EXTRA_FLAGS/s:@LDFLAGS@:-lrt $(usex gmp -lgmp ""):g" \ + -e 's:t@\$:t\$:g' \ + -i scripts/*mk* || die + + sed \ + -e "s:SLIBEXTRAFLAGS = '':SLIBEXTRAFLAGS = '-Wl,-soname,lib${PN}.so.0.1':" \ + -i scripts/mk_util.py || die + + sed -e 's:api\\html\\ml:api/html/ml:' \ + -e 's:python/z3.py:python/z3/z3.py:' \ + -i doc/mk_api_doc.py || die + + append-ldflags -fopenmp +} + +src_configure() { + python_setup + python_export PYTHON_SITEDIR + export Z3_INSTALL_LIB_DIR="$(get_libdir)" + export Z3_INSTALL_INCLUDE_DIR="include/z3" + set -- \ + --pypkgdir="${PYTHON_SITEDIR}" \ + --prefix="${ROOT}usr" \ + $(usex gmp --gmp "") \ + $(usex python --python "") \ + $(usex java --java "") + elog ./configure "$@" + ./configure "$@" || die + ${EPYTHON} scripts/mk_make.py || die +} + +src_compile() { + emake \ + --directory="build" \ + CXX=$(tc-getCXX) \ + LINK="$(tc-getCXX) ${LDFLAGS}" \ + LINK_FLAGS="${LDFLAGS}" + + use java && java-pkg-simple_src_compile + + if use doc; then + pushd doc || die + ${EPYTHON} mk_api_doc.py || die + popd || die + fi +} + +src_install() { + emake \ + --directory="build" \ + CXX=$(tc-getCXX) \ + LINK="$(tc-getCXX) ${LDFLAGS}" \ + LINK_FLAGS="${LDFLAGS}" \ + install DESTDIR="${D}" + + if use python; then + python_foreach_impl python_domodule src/api/python/*.py + fi + + use java && java-pkg-simple_src_install + + if use isabelle; then + ISABELLE_HOME="${ROOT}usr/share/Isabelle" + dodir "${ISABELLE_HOME}/contrib/${PN}-${PV}/etc" + cat <<- EOF >> "${S}/settings" + Z3_COMPONENT="\$COMPONENT" + Z3_HOME="${ROOT}usr/bin" + Z3_SOLVER="${ROOT}usr/bin/z3" + Z3_REMOTE_SOLVER="z3" + Z3_VERSION="${PV}" + Z3_INSTALLED="yes" + Z3_NON_COMMERCIAL="yes" + EOF + insinto "${ISABELLE_HOME}/contrib/${PN}-${PV}/etc" + doins "${S}/settings" + fi + + local DOCS=( "README.md" "RELEASE_NOTES" ) + local HTML_DOCS=( "doc/api/html" ) + einstalldocs +} + +pkg_postinst() { + if use isabelle; then + if [ -f "${ROOT}etc/isabelle/components" ]; then + if egrep "contrib/${PN}-[0-9.]*" "${ROOT}etc/isabelle/components"; then + sed -e "/contrib\/${PN}-[0-9.]*/d" \ + -i "${ROOT}etc/isabelle/components" + fi + cat <<- EOF >> "${ROOT}etc/isabelle/components" + contrib/${PN}-${PV} + EOF + fi + fi +} + +pkg_postrm() { + if use isabelle; then + if [ ! -f "${ROOT}usr/bin/Z3" ]; then + if [ -f "${ROOT}etc/isabelle/components" ]; then + # Note: this sed should only match the version of this ebuild + # Which is what we want as we do not want to remove the line + # of a new Isabelle component being installed during an upgrade. + sed -e "/contrib\/${PN}-${PV}/d" \ + -i "${ROOT}etc/isabelle/components" + fi + fi + fi +} |