You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
1.8 KiB
89 lines
1.8 KiB
# Copyright 1999-2024 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
inherit autotools flag-o-matic toolchain-funcs
|
|
|
|
DESCRIPTION="Native Prolog compiler with constraint solving over finite domains (FD)"
|
|
HOMEPAGE="http://www.gprolog.org/"
|
|
SRC_URI="http://www.gprolog.org/${P}.tar.gz"
|
|
S="${WORKDIR}"/${P}
|
|
|
|
LICENSE="|| ( GPL-2+ LGPL-3+ )"
|
|
SLOT="0"
|
|
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
|
IUSE="debug doc examples"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}"/${P}-ldflags.patch
|
|
"${FILESDIR}"/${P}-links.patch
|
|
"${FILESDIR}"/${P}-destdir.patch
|
|
"${FILESDIR}"/${P}-llvm-as.patch
|
|
)
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
cd "${S}"/src || die
|
|
eautoconf
|
|
}
|
|
|
|
src_configure() {
|
|
CFLAGS_MACHINE="$(get-flag -march) $(get-flag -mcpu) $(get-flag -mtune)"
|
|
|
|
use debug && append-flags -DDEBUG
|
|
|
|
if tc-enables-pie; then
|
|
# gplc generates its own native ASM; disable PIE
|
|
append-ldflags -no-pie
|
|
fi
|
|
|
|
if tc-is-gcc && ! use x86; then
|
|
gprolog_use_regs=yes
|
|
else
|
|
gprolog_use_regs=no
|
|
fi
|
|
|
|
if tc-is-clang; then
|
|
AS=$(tc-getCC)
|
|
else
|
|
AS=$(tc-getAS)
|
|
fi
|
|
|
|
cd "${S}"/src || die
|
|
local myeconfargs=(
|
|
AS="${AS}"
|
|
CFLAGS_MACHINE="${CFLAGS_MACHINE}"
|
|
--with-c-flags="${CFLAGS}"
|
|
--with-install-dir="${EPREFIX}"/usr/$(get_libdir)/${P}
|
|
--with-links-dir="${EPREFIX}"/usr/bin
|
|
--enable-regs=${gprolog_use_regs}
|
|
$(use_with doc doc-dir "${EPREFIX}"/usr/share/doc/${PF})
|
|
$(use_with doc html-dir "${EPREFIX}"/usr/share/doc/${PF}/html)
|
|
$(use_with examples examples-dir "${EPREFIX}"/usr/share/doc/${PF}/examples)
|
|
)
|
|
econf "${myeconfargs[@]}"
|
|
}
|
|
|
|
src_compile() {
|
|
cd "${S}"/src || die
|
|
|
|
# gprolog is compiled using gplc which cannot be run in parallel
|
|
emake -j1
|
|
}
|
|
|
|
src_test() {
|
|
cd "${S}"/src || die
|
|
|
|
emake -j1 check
|
|
}
|
|
|
|
src_install() {
|
|
cd "${S}"/src || die
|
|
emake DESTDIR="${D}" TXT_FILES= install
|
|
|
|
cd "${S}" || die
|
|
dodoc ChangeLog NEWS PROBLEMS README
|
|
}
|