summaryrefslogtreecommitdiff
blob: e8548adc5de79f88917cdb7d5c8e38882eac5a56 (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
# Copyright 1999-2005 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.ebuild,v 1.10 2005/07/09 19:16:21 swegener Exp $

IUSE="oss nas esd motif X gtk vorbis tcltk slang alsa arts jack portaudio emacs"

inherit gnuconfig 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"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ppc sparc x86 hppa"

RDEPEND=">=sys-libs/ncurses-5.0
	X? ( virtual/x11 )
	esd? ( >=media-sound/esound-0.2.22 )
	gtk? ( =x11-libs/gtk+-1.2* )
	nas? ( >=media-libs/nas-1.4 )
	alsa? ( media-libs/alsa-lib )
	motif? ( virtual/motif )
	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 )"

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

RDEPEND="${RDEPEND}
	X? ( tcltk? ( >=dev-lang/tk-8.1 ) )
	emacs? ( virtual/emacs )"

src_unpack() {
	unpack ${A}
	cd ${S}
	epatch ${FILESDIR}/${P}-gtk26.patch
}

src_compile() {
	local myconf
	local audios
	local interfaces

	interfaces="dynamic,ncurses,emacs,vt100"

	if use X ; then
		myconf="${myconf} --with-x --enable-spectrogram --enable-wrd"
		interfaces="${interfaces},xskin,xaw"
		# wrapping in a "use arts" because of bug #48761
		use arts || use gtk && interfaces="${interfaces},gtk"
		use motif && interfaces="${interfaces},motif"
	else
		myconf="${myconf} --without-x"
	fi

	use slang && interfaces="${interfaces},slang"

	use oss && audios="${audios},oss"
	use esd && audios="${audios},esd"
	use vorbis && audios="${audios},vorbis"
	use nas && { audios="${audios},nas"; myconf="${myconf} --with-nas-library=/usr/X11R6/$(get_libdir)/libaudio.so"; }
	use arts && audios="${audios},arts"
	use jack && audios="${audios},jack"
	use portaudio && use !ppc && audios="${audios},portaudio"

	use alsa \
		&& audios="${audios},alsa" \
		&& interfaces="${interfaces},alsaseq" \
		&& myconf="${myconf} --with-default-output=alsa"

	econf \
		--localstatedir=/var/state/timidity++ \
		--with-elf \
		--enable-audio=${audios} \
		--enable-interface=${interfaces} \
		--enable-server \
		--enable-network \
		${myconf} || die

	emake || die
}

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

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

	insinto /etc/conf.d
	newins ${FILESDIR}/conf.d.timidity timidity

	exeinto /etc/init.d
	newexe ${FILESDIR}/init.d.timidity timidity

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

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

	exeinto /usr/bin
	newexe ${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() {
	einfo
	einfo "A timidity config file has been installed in /etc/timidity.cfg."
	einfo
	einfo "Do not edit this file as it will interfere with the timidity-update tool."
	einfo "You will need to emerge timidity-eawpatches or timidity-shompatches."
	einfo
	einfo "The tool 'timidity-update' can be used to switch between installed patchsets."
	einfo
	einfo "An init script for the alsa timidity sequencer has been installed."
	einfo "If you wish to use the timidity virtual sequencer, edit /etc/conf.d/timidity"
	einfo "and run 'rc-update add timidity <runlevel> && /etc/init.d/timidity start'"

	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
}