blob: 736df2db039d9b0d6034da2ae90c63dc3b551a2b [file] [log] [blame] [edit]
# 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.1 2010/02/08 20:30:19 alexxy 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) : ;;
*) DEPEND="EAPI-TOO-OLD" ;;
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"
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}"
;;
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 (from ${FILESDIR}/${PV}/ dir)
# 2. Applies package-specific patches (from ${FILESDIR}/, PATCHES can be used)
# 3. Modifies makefiles for split build. Uses VOS_EXTRACT
# 4. eautoreconf
virtuoso_src_prepare() {
debug-print-function ${FUNCNAME} "$@"
for file in "${FILESDIR}/${PV}"/*; do
epatch "${file}"
done
base_src_prepare
# @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 `grep --color=never -P "SUBDIRS\s*=.*${subdir}\b" "${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
}