# 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 # # @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 }