blob: 9b434d63b4018eeefb27b3b012d97e3b8891c178 (
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
153
154
155
156
157
158
159
160
161
162
163
|
# Copyright 1999-2007 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-0.102.20.ebuild,v 1.7 2007/08/04 12:28:54 grobian Exp $
inherit flag-o-matic eutils multilib linux-info
NETJACK=netjack-0.12rc1
DESCRIPTION="A low-latency audio server"
HOMEPAGE="http://www.jackaudio.org"
SRC_URI="mirror://sourceforge/jackit/${P}.tar.gz http://netjack.sourceforge.net/${NETJACK}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~arm ia64 ~ppc ~ppc64 ~sh ~sparc ~x86"
IUSE="altivec alsa caps coreaudio doc debug jack-tmpfs mmx oss portaudio sndfile sse netjack cpudetection"
RDEPEND="dev-util/pkgconfig
sndfile? ( >=media-libs/libsndfile-1.0.0 )
sys-libs/ncurses
caps? ( sys-libs/libcap )
portaudio? ( =media-libs/portaudio-18* )
alsa? ( >=media-libs/alsa-lib-0.9.1 )
!media-sound/jack-cvs"
DEPEND="${RDEPEND}
doc? ( app-doc/doxygen )
netjack? ( dev-util/scons )"
pkg_setup() {
if ! use sndfile ; then
ewarn "sndfile not in USE flags. jack_rec will not be installed!"
fi
if use caps; then
if kernel_is 2 4 ; then
elog "will build jackstart for 2.4 kernel"
else
elog "using compatibility symlink for jackstart"
fi
fi
if use netjack; then
elog "including support for experimental netjack, see http://netjack.sourceforge.net/"
fi
}
src_unpack() {
unpack ${A}
use netjack && unpack ${NETJACK}.tar.bz2
cd ${S}
epatch ${FILESDIR}/${PN}-transport.patch
}
src_compile() {
local myconf
sed -i "s/^CFLAGS=\$JACK_CFLAGS/CFLAGS=\"\$JACK_CFLAGS $(get-flag -march)\"/" configure
use doc && myconf="--with-html-dir=/usr/share/doc/${PF}"
if use jack-tmpfs; then
myconf="${myconf} --with-default-tmpdir=/dev/shm"
else
myconf="${myconf} --with-default-tmpdir=/var/run/jack"
fi
if [[ ${CHOST} == *-darwin* ]] ; then
append-flags -fno-common
use altivec && append-flags -force_cpusubtype_ALL \
-maltivec -mabi=altivec -mhard-float -mpowerpc-gfxopt
fi
# CPU Detection (dynsimd) uses asm routines which requires 3dnow, mmx and sse.
# Also, without -O2 it will not compile as well.
# we test if it is present before enabling the configure flag.
if use cpudetection ; then
if (! grep 3dnow /proc/cpuinfo >/dev/null) ; then
ewarn "Can't build cpudetection (dynsimd) without cpu 3dnow support. see bug #136565."
elif (! grep sse /proc/cpuinfo >/dev/null) ; then
ewarn "Can't build cpudetection (dynsimd) without cpu sse support. see bug #136565."
elif (! grep mmx /proc/cpuinfo >/dev/null) ; then
ewarn "Can't build cpudetection (dynsimd) without cpu mmx support. see bug #136565."
else
elog "Enabling cpudetection (dynsimd). Adding -mmmx, -msse, -m3dnow and -O2 to CFLAGS."
myconf="${myconf} --enable-dynsimd"
filter-flags -O*
append-flags -mmmx -msse -m3dnow -O2
fi
fi
use sndfile && \
export SNDFILE_CFLAGS="-I/usr/include" \
export SNDFILE_LIBS="-L/usr/$(get_libdir) -lsndfile"
econf \
$(use_enable altivec) \
$(use_enable alsa) \
$(use_enable caps capabilities) $(use_enable caps stripped-jackd) \
$(use_enable coreaudio) \
$(use_enable debug) \
$(use_enable doc html-docs) \
$(use_enable mmx) \
$(use_enable oss) \
$(use_enable portaudio) \
$(use_enable sse) \
--with-pic \
${myconf} || die "configure failed"
emake || die "compilation failed"
if use caps && kernel_is 2 4 ; then
elog "Building jackstart for 2.4 kernel"
cd ${S}/jackd
emake jackstart || die "jackstart build failed."
fi
if use netjack; then
cd ${WORKDIR}/${NETJACK}
scons jack_source_dir=${S}
fi
}
src_install() {
make DESTDIR=${D} datadir=/usr/share/doc install || die
if use caps; then
if kernel_is 2 4 ; then
cd ${S}/jackd
dobin jackstart
else
dosym /usr/bin/jackd /usr/bin/jackstart
fi
fi
if ! use jack-tmpfs; then
keepdir /var/run/jack
chmod 4777 ${D}/var/run/jack
fi
if use doc; then
mv ${D}/usr/share/doc/${PF}/reference/html \
${D}/usr/share/doc/${PF}/
insinto /usr/share/doc/${PF}
doins -r ${S}/example-clients
else
rm -rf ${D}/usr/share/doc
fi
rm -rf ${D}/usr/share/doc/${PF}/reference
if use netjack; then
cd ${WORKDIR}/${NETJACK}
dobin alsa_in
dobin alsa_out
dobin jacknet_client
insinto /usr/lib/jack
doins jack_net.so
fi
}
|