/[gentoo-x86]/media-video/libav/libav-10.9999.ebuild
Gentoo

Contents of /media-video/libav/libav-10.9999.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.10 - (show annotations) (download)
Fri Jan 30 16:57:31 2015 UTC (5 years, 6 months ago) by mgorny
Branch: MAIN
Changes since 1.9: +4 -4 lines
Convert to CPU_FLAGS_X86.

(Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key EFB4464E!)

1 # Copyright 1999-2015 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/media-video/libav/libav-10.9999.ebuild,v 1.9 2014/09/13 09:34:20 mgorny Exp $
4
5 EAPI=5
6
7 if [[ ${PV} == *9999 ]] ; then
8 SCM="git-2"
9 EGIT_REPO_URI="git://git.libav.org/libav.git"
10 [[ ${PV%9999} != "" ]] && EGIT_BRANCH="release/${PV%.9999}"
11 fi
12
13 inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM}
14
15 DESCRIPTION="Complete solution to record, convert and stream audio and video"
16 HOMEPAGE="http://libav.org/"
17 if [[ ${PV} == *9999 ]] ; then
18 SRC_URI=""
19 elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
20 SRC_URI="http://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
21 else # Official release
22 SRC_URI="http://${PN}.org/releases/${P}.tar.xz"
23 fi
24
25 SRC_URI+=" test? ( http://dev.gentoo.org/~lu_zero/libav/fate-10.tar.xz )"
26
27 LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
28 SLOT="0/10"
29 [[ ${PV} == *9999 ]] || KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64
30 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos
31 ~x64-solaris ~x86-solaris"
32 IUSE="aac alsa amr bindist +bzip2 cdio cpudetection custom-cflags debug doc
33 +encode faac fdk frei0r +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k mp3
34 +network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
35 static-libs test theora threads tools truetype v4l vaapi vdpau vorbis vpx X
36 wavpack webp x264 xvid +zlib"
37
38 # String for CPU features in the useflag[:configure_option] form
39 # if :configure_option isn't set, it will use 'useflag' as configure option
40 CPU_FEATURES="cpu_flags_x86_3dnow:amd3dnow cpu_flags_x86_3dnowext:amd3dnowext altivec cpu_flags_x86_avx:avx cpu_flags_x86_mmx:mmx cpu_flags_x86_mmxext:mmxext neon cpu_flags_x86_ssse3:ssse3 vis cpu_flags_x86_avx2:avx2"
41 for i in ${CPU_FEATURES} ; do
42 IUSE+=" ${i%:*}"
43 done
44
45 RDEPEND="
46 !media-video/ffmpeg:0
47 alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
48 amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
49 bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
50 cdio? (
51 || (
52 >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}]
53 <dev-libs/libcdio-0.90[-minimal,${MULTILIB_USEDEP}]
54 )
55 )
56 encode? (
57 aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
58 amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
59 faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
60 fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
61 mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
62 theora? (
63 >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
64 >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
65 )
66 vorbis? (
67 >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
68 >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
69 )
70 webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
71 wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
72 x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
73 xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
74 )
75 frei0r? ( media-plugins/frei0r-plugins )
76 gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
77 ieee1394? (
78 >=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
79 >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
80 )
81 jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
82 jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
83 opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
84 pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
85 rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
86 ssl? (
87 openssl? ( >=dev-libs/openssl-1.0.1h-r2[${MULTILIB_USEDEP}] )
88 !openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
89 )
90 sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
91 schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
92 speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
93 truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
94 vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
95 vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
96 vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
97 X? (
98 >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
99 >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
100 >=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
101 )
102 zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
103 "
104
105 DEPEND="${RDEPEND}
106 >=sys-devel/make-3.81
107 doc? ( app-text/texi2html )
108 ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
109 cpu_flags_x86_mmx? ( dev-lang/yasm )
110 rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
111 schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
112 ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
113 test? ( sys-devel/bc )
114 truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
115 v4l? ( sys-kernel/linux-headers )
116 "
117
118 RDEPEND="${RDEPEND}
119 abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
120 !app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
121
122 # faac can't be binary distributed
123 # openssl support marked as nonfree
124 # faac and aac are concurent implementations
125 # amr and aac require at least lgpl3
126 # x264 requires gpl2
127 REQUIRED_USE="bindist? ( !faac !openssl !fdk )
128 rtmp? ( network )
129 amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) X? ( gpl ) cdio? ( gpl )
130 test? ( encode zlib )
131 "
132
133 # Test on live ebuild are not possible as they require trunk fate
134 RESTRICT="test"
135
136 MULTILIB_WRAPPED_HEADERS=(
137 /usr/include/libavutil/avconfig.h
138 )
139
140 src_prepare() {
141 epatch_user
142
143 # if we have snapshot then we need to hardcode the version
144 if [[ ${PV%_p*} != ${PV} ]]; then
145 sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
146 fi
147
148 TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
149 use zlib && TOOLS+=( cws2fws )
150
151 MAKEOPTS+=" V=1"
152 }
153
154 multilib_src_configure() {
155 local myconf=( ${EXTRA_LIBAV_CONF} )
156 local uses i
157
158 myconf+=(
159 $(use_enable gpl)
160 $(use_enable gpl version3)
161 --enable-avfilter
162 )
163
164 # enabled by default
165 uses="debug doc network zlib"
166 for i in ${uses}; do
167 use ${i} || myconf+=( --disable-${i} )
168 done
169 use bzip2 || myconf+=( --disable-bzlib )
170 use sdl || myconf+=( --disable-avplay )
171
172 if use ssl; then
173 use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
174 || myconf+=( --enable-gnutls )
175 fi
176
177 use custom-cflags && myconf+=( --disable-optimizations )
178 use cpudetection && myconf+=( --enable-runtime-cpudetect )
179
180 use vdpau || myconf+=( --disable-vdpau )
181
182 use vaapi && myconf+=( --enable-vaapi )
183
184 # Encoders
185 if use encode; then
186 use faac && myconf+=( --enable-nonfree )
187 use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
188 use mp3 && myconf+=( --enable-libmp3lame )
189 use amr && myconf+=( --enable-libvo-amrwbenc )
190 use aac && myconf+=( --enable-libvo-aacenc )
191 uses="faac theora vorbis wavpack webp x264 xvid"
192 for i in ${uses}; do
193 use ${i} && myconf+=( --enable-lib${i} )
194 done
195 else
196 myconf+=( --disable-encoders )
197 fi
198
199 # libavdevice options
200 use cdio && myconf+=( --enable-libcdio )
201 use ieee1394 && myconf+=( --enable-libdc1394 )
202 use pulseaudio && myconf+=( --enable-libpulse )
203
204 # Indevs
205 # v4l1 is gone since linux-headers-2.6.38
206 myconf+=( --disable-indev=v4l )
207 use v4l || myconf+=( --disable-indev=v4l2 )
208 for i in alsa oss jack; do
209 use ${i} || myconf+=( --disable-indev=${i} )
210 done
211 use X && myconf+=( --enable-x11grab )
212 # Outdevs
213 for i in alsa oss ; do
214 use ${i} || myconf+=( --disable-outdev=${i} )
215 done
216 # libavfilter options
217 multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
218 use truetype && myconf+=( --enable-libfreetype )
219
220 # Threads; we only support pthread for now
221 use threads && myconf+=( --enable-pthreads )
222
223 # Decoders
224 use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
225 uses="gsm opus rtmp schroedinger speex vpx"
226 for i in ${uses}; do
227 use ${i} && myconf+=( --enable-lib${i} )
228 done
229 use jpeg2k && myconf+=( --enable-libopenjpeg )
230
231 # CPU features
232 for i in ${CPU_FEATURES}; do
233 use ${i%:*} || myconf+=( --disable-${i#*:} )
234 done
235
236 # pass the right -mfpu as extra
237 use neon && myconf+=( --extra-cflags=-mfpu=neon )
238
239 # disable mmx accelerated code if PIC is required
240 # as the provided asm decidedly is not PIC for x86.
241 if use pic && [[ ${ABI} == x86 ]]; then
242 myconf+=( --disable-mmx --disable-mmxext )
243 fi
244
245 # Option to force building pic
246 use pic && myconf+=( --enable-pic )
247
248 # cross compile support
249 if tc-is-cross-compiler ; then
250 myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
251 case ${CHOST} in
252 *freebsd*)
253 myconf+=( --target-os=freebsd )
254 ;;
255 mingw32*)
256 myconf+=( --target-os=mingw32 )
257 ;;
258 *linux*)
259 myconf+=( --target-os=linux )
260 ;;
261 esac
262 fi
263
264 # Misc stuff
265 use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
266
267 # Specific workarounds for too-few-registers arch...
268 if [[ ${ABI} == x86 ]]; then
269 local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
270 filter-flags -fforce-addr -momit-leaf-frame-pointer
271 append-flags -fomit-frame-pointer
272 is-flag -O? || append-flags -O2
273 if use debug; then
274 # no need to warn about debug if not using debug flag
275 ewarn ""
276 ewarn "Debug information will be almost useless as the frame pointer is omitted."
277 ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
278 ewarn "difficult to fix. Please have that in mind."
279 ewarn ""
280 fi
281 fi
282
283 set -- "${S}"/configure \
284 --prefix="${EPREFIX}"/usr \
285 --libdir="${EPREFIX}"/usr/$(get_libdir) \
286 --shlibdir="${EPREFIX}"/usr/$(get_libdir) \
287 --mandir="${EPREFIX}"/usr/share/man \
288 --enable-shared \
289 --cc="$(tc-getCC)" \
290 --ar="$(tc-getAR)" \
291 --optflags="${CFLAGS}" \
292 --extra-cflags="${CFLAGS}" \
293 $(use_enable static-libs static) \
294 "${myconf[@]}"
295 echo "${@}"
296 "${@}" || die
297 }
298
299 multilib_src_compile() {
300 emake
301
302 if use tools; then
303 tc-export CC
304
305 emake ${TOOLS[@]/#/tools/}
306 fi
307 }
308
309 multilib_src_install() {
310 emake DESTDIR="${D}" install install-man
311
312 if use tools; then
313 dobin ${TOOLS[@]/#/tools/}
314 fi
315 }
316
317 multilib_src_install_all() {
318 dodoc Changelog README INSTALL
319 dodoc doc/*.txt
320 use doc && dodoc doc/*.html
321 }
322
323 multilib_src_test() {
324 LD_LIBRARY_PATH="${BUILD_DIR}/libavcore:${BUILD_DIR}/libswscale:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil" \
325 emake -j1 fate
326 }

  ViewVC Help
Powered by ViewVC 1.1.20