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