# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-sound/jack-audio-connection-kit/jack-audio-connection-kit-1.9.2.ebuild,v 1.1 2009/04/01 17:41:18 gibboris Exp $

inherit eutils

DESCRIPTION="A SMP low-latency audio server"
HOMEPAGE="http://www.grame.fr/~letz/jackdmp.html"
SRC_URI="http://www.grame.fr/~letz/jack-${PV}.tar.bz2"

#todo : which licence ?
LICENSE="GPL-2 LGPL-2.1"
SLOT="2"
KEYWORDS="~amd64"
#legacy jack dependencies
#IUSE="3dnow altivec alsa coreaudio doc debug examples mmx oss sse cpudetection"
IUSE="dbus doc"

#should depend upon waf if comes an ebuild in the tree
RDEPEND=">=media-libs/libsndfile-1.0.0
	media-libs/libsamplerate
	sys-libs/ncurses
	dev-libs/expat
	>=media-libs/alsa-lib-1.0.0
	dbus? ( sys-apps/dbus )"

#todo :
#libfreebob
#libffado
DEPEND="${RDEPEND}
	dev-util/pkgconfig
	doc? ( app-doc/doxygen )"

src_compile() {
	cd "${WORKDIR}/jack-${PV}"
	local myconf

	use doc && myconf=--doxygen && sed -i '/share_dir.*=/s;kit;kit-2;' wscript

	if use dbus; then
		myconf="${myconf} --dbus"
		sed -i  -e '/^Exec/s;@BINDIR@;/usr/bin;' \
			-e '/^Exec/s;jackdbus;jackdbus2;' dbus/org.jackaudio.service.in
		sed -i '/obj.target.*jackdbus/s/dbus/dbus2/' dbus/wscript
	fi

	#### dirty slotting start
	# /usr/include/jack -> /usr/include/jack2 and internal jackd linking
	sed -i  -e "/conf\.define.*ADDON_DIR/s; os\..*; '/usr/lib/jack2');" \
		-e "/conf\.define.*JACK_LOCATION/s; os\..*; '/usr/bin');" \
	 	wscript

	# but we still want to install it in the gentoo image directory ! so,
	# as blddir is not trustable :
	sed -i "/\${ADDON_DIR}/s;\${ADDON_DIR};\${${T}}\${ADDON_DIR};" example-clients/wscript linux/wscript

	sed -i '/ADDON_DIR/s;jack;jack2;' common/JackConstants.h

	# /usr/include/libjack[server].so -> /usr/include/libjack[server]2.so
	sed -i  -e '/serverlib\.target.*=/s/jackserver/jackserver2/' \
		-e '/clientlib\.target/s/jack/jack2/' \
		-e '/obj\.target/s/jack/jack2/' common/wscript # the 3rd one is NOT taken into accout : the .pc file !

	# headers
	sed -i '/bld.install_files/s;/jack;/jack2;' common/wscript

	# the pkg-config file also
	sed -i 's;jack;jack2;' jack.pc.in

	# all the binaries
	sed -i 's/jack_/jack2_/g' example-clients/wscript tests/wscript
	# and the name the binary think they are
	sed -i '49,52s/jack_/jack2_/' example-clients/connect.c

	# and of course the daemon binary
	sed -i "/jackd.target/s/'jackd'/'jackd2'/" linux/wscript

	# and finally the example script
	mv example-clients/jack_control example-clients/jack2_control

	# are we done ?
	# --destdir doesn't work
	# --blddir also ?
	./waf configure --prefix=/usr --blddir=${T} --libdir=/usr/lib ${myconf} || die "compilation failed"
	# can't slot if --enable-pkg-config-dbus-service-dir is used

	./waf build || die "build failed"

	# not yet :
	sed -i "s;${D%*/};;g" ${T}build/default/jack.pc
}
src_install() {
	cd "${WORKDIR}/jack-${PV}"

	./waf install || die "install failed"

	# because obj.target for pkgconfig .pc file build sux :
	mv "${D}usr/lib/pkgconfig/jack.pc" "${D}usr/lib/pkgconfig/jack2.pc"
	dodoc TODO README ChangeLog README_NETJACK2
}