summaryrefslogtreecommitdiff
blob: cd555c4fd4786df5eb194a9dc083e980f0b18f33 (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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/virtuoso.eclass,v 1.6 2010/08/22 08:09:51 scarabeus Exp $

# @ECLASS: virtuoso.eclass
# @MAINTAINER:
# Maciej Mrozowski <reavertm@gentoo.org>
#
# @BLURB: Provides splitting functionality for Virtuoso
# @DESCRIPTION:
# This eclass provides common code for splitting Virtuoso OpenSource database

case ${EAPI:-0} in
	2|3) : ;;
	*) die "EAPI=${EAPI} is not supported" ;;
esac

inherit base autotools flag-o-matic multilib

MY_P="virtuoso-opensource-${PV}"

case ${PV} in
	*9999*)
		ECVS_SERVER="virtuoso.cvs.sourceforge.net:/cvsroot/virtuoso"
		ECVS_PROJECT='virtuoso'
		SRC_URI=""
		inherit cvs
		;;
	*)
		# Use this variable to determine distribution method (live or tarball)
		TARBALL="${MY_P}.tar.gz"
		SRC_URI="mirror://sourceforge/virtuoso/${TARBALL} mirror://gentoo/VOS-genpatches-${PV}.tar.bz2"
		;;
esac

EXPORT_FUNCTIONS src_prepare src_configure src_compile src_install

# Set some defaults
HOMEPAGE='http://virtuoso.openlinksw.com/wiki/main/Main/'
LICENSE='GPL-2'
SLOT='0'

DEPEND='
	>=sys-devel/libtool-2.2.6a
'
RDEPEND=''

S="${WORKDIR}/${MY_P}"

# @FUNCTION: virtuoso_src_prepare
# @DESCRIPTION:
# 1. Applies common release patches
# 2. Applies package-specific patches (from ${FILESDIR}/, PATCHES can be used)
# 3. Applies user patches from /etc/portage/patches/${CATEGORY}/${PN}/
# 4. Modifies makefiles for split build. Uses VOS_EXTRACT
# 5. eautoreconf
virtuoso_src_prepare() {
	debug-print-function ${FUNCNAME} "$@"

	EPATCH_SUFFIX='patch' EPATCH_FORCE='yes' epatch
	base_src_prepare
	epatch_user

	# @ECLASS-VARIABLE: VOS_EXTRACT
	# @DESCRIPTION:
	# Lists any subdirectories that are required to be extracted
	# and enabled in Makefile.am's for current package.
	if [[ -n ${VOS_EXTRACT} ]]; then
		# Comment out everything
		find . -name Makefile.am -exec \
			sed -e '/SUBDIRS\s*=/s/^/# DISABLED /g' -i {} + \
				|| die 'failed to disable subdirs'

		# Uncomment specified
		local path
		for path in ${VOS_EXTRACT}; do
			if [[ -d "${path}" ]]; then
				# Uncomment leaf
				if [[ -f "${path}"/Makefile.am ]]; then
					sed -e '/^# DISABLED \s*SUBDIRS\s*=/s/# DISABLED //g' \
						-i "${path}"/Makefile.am || die "failed to uncomment leaf in ${path}/Makefile.am"
				fi
				# Process remaining path elements
				while true; do
					local subdir=`basename "${path}"`
					path=`dirname "${path}"`
					if [[ -f "${path}"/Makefile.am ]]; then
						# Uncomment if necessary
						sed -e '/^# DISABLED \s*SUBDIRS\s*=/s/.*/SUBDIRS =/g' \
							-i "${path}"/Makefile.am
						# Append subdirs if not there already
						if [[ -z `sed -ne "/SUBDIRS\s*=.*${subdir}\b/p" "${path}"/Makefile.am` ]]; then
							sed -e "/^SUBDIRS\s*=/s|$| ${subdir}|" \
								-i "${path}"/Makefile.am || die "failed to append ${subdir}"
						fi
					fi
					[[ "${path}" = . ]] && break
				done
			fi
		done
	fi

	eautoreconf
}

# @FUNCTION: virtuoso_src_configure
# @DESCRIPTION:
# Runs ./configure with common and user options specified via myconf variable
virtuoso_src_configure() {
	debug-print-function ${FUNCNAME} "$@"

	use amd64 && append-flags '-m64'

	# Override some variables to make tests work
	if [[ ${PN} != virtuoso-server ]]; then
		[[ ${EAPI} == 2 ]] && ! use prefix && EPREFIX=
		export ISQL="${EPREFIX}"/usr/bin/isql-v
		export SERVER="${EPREFIX}"/usr/bin/virtuoso-t
	fi

	econf \
		--with-layout=gentoo \
		--localstatedir="${EPREFIX}"/var \
		--enable-shared \
		--with-pthreads \
		--without-internal-zlib \
		${myconf}
}

# @FUNCTION: virtuoso_src_compile
# @DESCRIPTION:
# Runs make for specified subdirs
virtuoso_src_compile() {
	debug-print-function ${FUNCNAME} "$@"

	base_src_compile
}

# @FUNCTION: virtuoso_src_install
# @DESCRIPTION:
# Default src_install
virtuoso_src_install() {
	debug-print-function ${FUNCNAME} "$@"

	base_src_install
}