summaryrefslogtreecommitdiff
blob: dae934513993812b6161f89b9e553bf86cc7140a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6

inherit flag-o-matic java-pkg-opt-2

PATCHSET_VER="12"

DESCRIPTION="YAP is a high-performance Prolog compiler"
HOMEPAGE="http://www.dcc.fc.up.pt/~vsc/Yap/"
SRC_URI="http://www.dcc.fc.up.pt/~vsc/Yap/${P}.tar.gz
	mirror://gentoo/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"

LICENSE="Artistic LGPL-2"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="R debug doc examples gmp java mpi mysql odbc readline static threads"

RDEPEND="sys-libs/zlib
	gmp? ( dev-libs/gmp:0 )
	java? ( >=virtual/jdk-1.4:= )
	mpi? ( virtual/mpi )
	mysql? ( dev-db/mysql-connector-c:0= )
	odbc? ( dev-db/unixODBC )
	readline? ( sys-libs/readline:= sys-libs/ncurses:= )
	R? ( dev-lang/R )"

DEPEND="${RDEPEND}
	doc? ( app-text/texi2html )"

PATCHES=( "${WORKDIR}"/${PV} )

src_prepare() {
	default
	rm -rf "${S}"/yap || die "failed to remove yap xcode project"

	# Fix QA error on doc location
	local mFile
	for mFile in Makefile.in packages/Dialect.defs.in \
			$(find packages -name Makefile.in) ; do
		sed -i -e "s~doc/Yap~doc/${PF}~" "${mFile}" || die
	done
}

src_configure() {
	append-flags -fno-strict-aliasing

	local myddas_conf
	if use mysql || use odbc; then
		myddas_conf="--enable-myddas"
	else
		myddas_conf="--disable-myddas"
	fi
	if use mysql; then
		myddas_conf="$myddas_conf yap_with_mysql=yes"
	fi
	if use odbc; then
		myddas_conf="$myddas_conf yap_with_odbc=yes"
	fi

	econf \
		--libdir=/usr/$(get_libdir) \
		--disable-chr \
		--disable-prism \
		--disable-gecode \
		$(use_enable !static dynamic-loading) \
		$(use_enable threads) \
		$(use_enable threads pthread-locking) \
		$(use_enable debug debug-yap) \
		$(use_enable debug low-level-tracer) \
		$(use_with gmp) \
		$(use_with readline) \
		$(use_with mpi) \
		$(use_with mpi mpe) \
		$(use_with java) \
		$(use_with R) \
		${myddas_conf}
}

src_compile() {
	default

	if use doc ; then
		emake html
	fi
}

src_test() {
	# libtai package contains check.c which confuses the default
	# src_test() function
	true
}

src_install() {
	default

	dodoc changes*.html README

	if use doc ; then
		dodoc yap.html
	fi

	if use examples ; then
		insinto /usr/share/doc/${PF}/examples/chr
		doins packages/chr/Examples/*
		insinto /usr/share/doc/${PF}/examples/clib
		doins packages/clib/demo/*
		insinto /usr/share/doc/${PF}/examples/http
		doins -r packages/http/examples/*
		insinto /usr/share/doc/${PF}/examples/plunit
		doins packages/plunit/examples/*
		if use java ; then
			insinto /usr/share/doc/${PF}/examples/jpl/prolog
			doins packages/jpl/examples/prolog/*
			insinto /usr/share/doc/${PF}/examples/jpl/java
			doins packages/jpl/examples/java/README
			doins -r packages/jpl/examples/java/*/*.{java,pl}
		fi
		if use mpi ; then
			insinto /usr/share/doc/${PF}/examples/mpi
			doins library/mpi/examples/*.pl
		fi
	fi
}