summaryrefslogtreecommitdiff
blob: d97b4adc0bf0e35b931ccf0ad96dd90e722847d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-sound/timidity++/timidity++-2.13.2-r2.ebuild,v 1.20 2007/01/05 20:10:30 flameeyes Exp $

inherit eutils

MY_PV=${PV/_/-}
MY_P=TiMidity++-${MY_PV}
S=${WORKDIR}/${MY_P}

DESCRIPTION="A handy MIDI to WAV converter with OSS and ALSA output support"
HOMEPAGE="http://timidity.sourceforge.net/"
SRC_URI="mirror://sourceforge/timidity/${MY_P}.tar.bz2 mirror://gentoo/${P}-exiterror.patch"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~arm hppa ppc ppc64 sparc x86 ~x86-fbsd"
IUSE="oss nas esd motif X gtk gtk vorbis tcltk slang alsa arts jack portaudio emacs ao speex flac ncurses"

RDEPEND="ncurses? ( >=sys-libs/ncurses-5.0 )
	gtk? ( >=x11-libs/gtk+-2.0 )
	tcltk? ( >=dev-lang/tk-8.1 )
	motif? ( virtual/motif )
	esd? ( >=media-sound/esound-0.2.22 )
	nas? ( >=media-libs/nas-1.4 )
	alsa? ( media-libs/alsa-lib )
	slang? ( =sys-libs/slang-1.4* )
	arts? ( kde-base/arts )
	jack? ( media-sound/jack-audio-connection-kit )
	portaudio? ( !ppc? ( media-libs/portaudio ) )
	vorbis? ( >=media-libs/libvorbis-1.0_beta4 )
	flac? ( ~media-libs/flac-1.1.2 )
	speex? ( >=media-libs/speex-1.1.5 )
	ao? ( >=media-libs/libao-0.8.5 )"

DEPEND="${RDEPEND}
	sys-devel/autoconf"

RDEPEND="${RDEPEND}
	emacs? ( virtual/emacs )"

PDEPEND="|| ( media-sound/timidity-eawpatches media-sound/timidity-shompatches )"

src_unpack() {
	unpack ${MY_P}.tar.bz2
	cd ${S}
	epatch "${DISTDIR}/${P}-exiterror.patch"
	epatch "${FILESDIR}/${P}-gtk26.patch"
	epatch "${FILESDIR}/${P}-gcc4.patch"

	# fix header location of speex
	sed -i -e "s:#include <speex:#include <speex/speex:g" configure* timidity/speex_a.c
}

src_compile() {
	local myconf
	local audios

	use flac && audios="${audios},flac"
	use speex && audios="${audios},speex"
	use vorbis && audios="${audios},vorbis"

	use oss && audios="${audios},oss"
	use esd && audios="${audios},esd"
	use arts && audios="${audios},arts"
	use jack && audios="${audios},jack"
	use portaudio && use !ppc && audios="${audios},portaudio"
	use ao && audios="${audios},ao"

	if use nas; then
		audios="${audios},nas"
		myconf="${myconf} --with-nas-library=/usr/$(get_libdir)/libaudio.so"
	fi

	if use alsa; then
		audios="${audios},alsa"
		myconf="${myconf} --with-default-output=alsa --enable-alsaseq"
	fi

	econf \
		--localstatedir=/var/state/timidity++ \
		--with-elf \
		--enable-audio=${audios} \
		--enable-server \
		--enable-network \
		--enable-dynamic \
		--enable-vt100 \
		--enable-spline=cubic \
		$(use_enable emacs) \
		$(use_enable slang) \
		$(use_enable ncurses) \
		$(use_with X x) \
		$(use_enable X spectrogram) \
		$(use_enable X wrd) \
		$(use_enable X xskin) \
		$(use_enable X xaw) \
		$(use_enable gtk) \
		$(use_enable motif) \
		$(use_enable tcltk) \
		${myconf} || die

	emake || die
}

src_install() {
	make DESTDIR="${D}" install || die

	dodoc AUTHORS ChangeLog*
	dodoc NEWS README* "${FILESDIR}/timidity.cfg"

	# these are only for the ALSA sequencer mode
	if use alsa; then
		newconfd "${FILESDIR}/conf.d.timidity" timidity
		newinitd "${FILESDIR}/init.d.timidity" timidity
	fi

	insinto /etc
	newins "${FILESDIR}/timidity.cfg-r1" timidity.cfg

	dodir /usr/share/timidity
	dosym /etc/timidity.cfg /usr/share/timidity/timidity.cfg

	newbin "${FILESDIR}/timidity-update" timidity-update

	if use emacs ; then
		dosed 's:/usr/local/bin/timidity:/usr/bin/timidity:g' /usr/share/emacs/site-lisp/timidity.el
	else
		rm "${D}/timidity.el"
	fi
}

pkg_postinst() {
	elog
	elog "A timidity config file has been installed in /etc/timidity.cfg."
	elog
	elog "Do not edit this file as it will interfere with the timidity-update tool."
	elog "You will need to emerge timidity-eawpatches or timidity-shompatches."
	elog
	elog "The tool 'timidity-update' can be used to switch between installed patchsets."
	elog

	if use alsa; then
		elog "An init script for the alsa timidity sequencer has been installed."
		elog "If you wish to use the timidity virtual sequencer, edit /etc/conf.d/timidity"
		elog "and run 'rc-update add timidity <runlevel> && /etc/init.d/timidity start'"
	fi

	if use sparc; then
		ewarn "sparc support is experimental. oss, alsa, esd, and portaudio do not work."
		ewarn "-Ow (save to wave file) does..."
	fi
}