123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- # Copyright 1999-2017 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI=6
- inherit versionator
- MY_PV=$(delete_all_version_separators "${PV}")
- MY_P="${PN}${MY_PV}"
- DESCRIPTION="An Automated Theorem Prover for First-Order Logic with Equality"
- HOMEPAGE="http://www.spass-prover.org/"
- SRC_URI="http://www.spass-prover.org/download/sources/${MY_P}.tgz"
- LICENSE="BSD-2"
- SLOT="0/${PV}"
- KEYWORDS="~amd64 ~x86"
- IUSE="isabelle"
- RDEPEND="isabelle? (
- sci-mathematics/isabelle:=
- )"
- DEPEND="${RDEPEND}"
- src_unpack() {
- mkdir -p "${P}" || die
- cd "${S}" || die
- unpack "${MY_P}.tgz"
- }
- src_compile() {
- einfo "generating parsers"
- bison -d -p pro_ -o proparser.c proparser.y || die
- bison -d -p tptp_ -o tptpparser.c tptpparser.y || die
- bison -d -p ia_ -o iaparser.c iaparser.y || die
- einfo "generating lexers"
- flex -Ppro_ -o proscanner.c proscanner.l || die
- flex -Ptptp_ -o tptpscanner.c tptpscanner.l || die
- flex -Pia_ -o iascanner.c iascanner.l || die
- einfo "compiling sources"
- local x
- for x in *.c
- do
- $(tc-getCC) \
- ${CPPFLAGS} ${CFLAGS} \
- -c -o ${x/.c/.o} ${x} || die "compile ${x} failed"
- done
- einfo "linking tptp2dfg"
- $(tc-getCC) \
- ${LDFLAGS} -o tptp2dfg \
- array.o clause.o cmdline.o context.o description.o dfg_diagnostic.o \
- dfg_string_table.o dfg_token.o dfgparser.o dfglexer.o \
- tptpparser.o tptpscanner.o eml.o flags.o foldfg.o hashmap.o kbo.o \
- list.o memory.o misc.o order.o rpos.o sharing.o st.o stack.o \
- strings.o subst.o symbol.o term.o unify.o tptp2dfg.o -lm \
- || die "link tptp2dfg failed"
- einfo "linking dfg2ascii"
- $(tc-getCC) \
- ${LDFLAGS} -o dfg2ascii \
- array.o clause.o cmdline.o context.o description.o dfg_diagnostic.o \
- dfg_string_table.o dfg_token.o dfgparser.o dfglexer.o \
- tptpparser.o tptpscanner.o eml.o flags.o foldfg.o hashmap.o kbo.o \
- list.o memory.o misc.o order.o rpos.o sharing.o st.o stack.o \
- strings.o subst.o symbol.o term.o unify.o dfg2ascii.o -lm \
- || die "link dfg2ascii failed"
- einfo "linking dfg2dfg"
- $(tc-getCC) \
- ${LDFLAGS} -o dfg2dfg \
- array.o clause.o cmdline.o context.o description.o dfg_diagnostic.o \
- dfg_string_table.o dfg_token.o dfgparser.o dfglexer.o \
- tptpparser.o tptpscanner.o eml.o flags.o foldfg.o hashmap.o kbo.o \
- list.o memory.o misc.o order.o rpos.o sharing.o st.o stack.o \
- strings.o subst.o symbol.o term.o unify.o approx.o dfg2dfg.o -lm \
- || die "link dfg2dfg failed"
- einfo "linking SPASS"
- $(tc-getCC) \
- ${LDFLAGS} -o SPASS \
- array.o clause.o cmdline.o context.o description.o dfg_diagnostic.o \
- dfg_string_table.o dfg_token.o dfgparser.o dfglexer.o \
- tptpparser.o tptpscanner.o eml.o flags.o foldfg.o hashmap.o kbo.o \
- list.o memory.o misc.o order.o rpos.o sharing.o st.o stack.o \
- strings.o subst.o symbol.o term.o unify.o analyze.o clock.o \
- closure.o cnf.o component.o condensing.o defs.o doc-proof.o graph.o \
- hash.o hasharray.o iaparser.o iascanner.o partition.o proofcheck.o \
- ras.o renaming.o resolution.o rules-inf.o rules-red.o rules-sort.o \
- rules-split.o rules-ur.o search.o sort.o subsumption.o table.o \
- tableau.o terminator.o top.o vector.o -lm \
- || die "link SPASS failed"
- }
- src_install() {
- exeinto /usr/bin
- local x
- for x in tptp2dfg dfg2ascii dfg2dfg SPASS
- do
- doexe ${x}
- done
- if use isabelle; then
- ewarn "All open source versions of spass are broken with Isabelle 2016.1"
- ISABELLE_HOME="$(isabelle getenv ISABELLE_HOME | cut -d'=' -f 2)"
- [[ -n "${ISABELLE_HOME}" ]] || die "ISABELLE_HOME empty"
- dodir "${ISABELLE_HOME}/contrib/${PN}-${PV}/etc"
- cat <<- EOF >> "${S}/settings"
- SPASS_HOME="${ROOT}usr/bin"
- SPASS_VERSION="${PV}"
- EOF
- insinto "${ISABELLE_HOME}/contrib/${PN}-${PV}/etc"
- doins "${S}/settings"
- fi
- }
- 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/SPASS" ]; 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 spass being installed during an upgrade.
- sed -e "/contrib\/${PN}-${PV}/d" \
- -i "${ROOT}etc/isabelle/components"
- fi
- fi
- fi
- }
|