# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=5 WX_GTK_VER=2.8 inherit eutils toolchain-funcs flag-o-matic wxwidgets MY_P="${P/a/A}" DESCRIPTION="integrated development + performance environment for chuck" HOMEPAGE="http://audicle.cs.princeton.edu/mini/" SRC_URI="http://audicle.cs.princeton.edu/mini/release/files/${MY_P}.tgz" LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 x86" IUSE="+alsa jack oss" RDEPEND="jack? ( media-sound/jack-audio-connection-kit ) alsa? ( >=media-libs/alsa-lib-0.9 ) media-libs/libsndfile >=x11-libs/gtk+-2.10:2 x11-libs/wxGTK:2.8[X] app-eselect/eselect-miniaudicle" DEPEND="${RDEPEND} sys-devel/bison sys-devel/flex" S="${WORKDIR}/${MY_P}" REQUIRED_USE="|| ( alsa jack oss )" src_prepare() { epatch \ "${FILESDIR}/${P}-hid-smc.patch" \ "${FILESDIR}/${P}-gcc44.patch" \ "${FILESDIR}/${P}-void-to-int-cast.patch" sed -i -e 's/make -C/#make -C/' \ -e 's/g++/$(CXX)/' \ -e 's/-O3 -c/-c $(CFLAGS)/' \ -e 's/$(LIBS)/$(LDFLAGS) $(LIBS)/' \ makefile.* || die "sed failed" # Respect LDFLAGS in bundled media-sound/chuck # prevent underlinking with pthreads library sed -i -e 's/$(LIBS)/$(LDFLAGS) $(LIBS) -lpthread/' \ chuck/src/makefile.* || die "sed failed" epatch_user } compile_backend() { local backend="$1" einfo "Compiling against ${backend}" cd "${S}/chuck/src" emake -f "makefile.${backend}" CC="$(tc-getCC)" \ CXX="$(tc-getCXX)" cd "${S}" emake -f "makefile.${backend}" CC="$(tc-getCC)" \ CXX="$(tc-getCXX)" mv wxw/miniAudicle{,-${backend}} emake -f "makefile.${backend}" clean cd "${S}/chuck/src" emake -f "makefile.${backend}" clean } src_compile() { # when compiled with -march=athlon or -march=athlon-xp # miniaudicle crashes on removing a shred with a double free or corruption # it happens in Chuck_VM_Stack::shutdown() on the line # SAFE_DELETE_ARRAY( stack ); replace-cpu-flags athlon athlon-xp i686 use jack && compile_backend jack use alsa && compile_backend alsa use oss && compile_backend oss } src_install() { use jack && dobin wxw/miniAudicle-jack use alsa && dobin wxw/miniAudicle-alsa use oss && dobin wxw/miniAudicle-oss dodoc BUGS README.linux VERSIONS } pkg_postinst() { elog "miniAudicle now can use many audio engines, so you can specify audio engine" elog "with miniAudicle-{jack,alsa,oss}" elog "Or you can use 'eselect miniaudicle' to set the audio engine" einfo "Calling eselect miniaudicle update..." eselect miniaudicle update --if-unset }