/[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.9 - (hide annotations) (download)
Sat Sep 13 09:34:20 2014 UTC (5 years, 10 months ago) by mgorny
Branch: MAIN
Changes since 1.8: +3 -1 lines
Add epatch_user in the modern ebuilds.

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

1 lu_zero 1.1 # Copyright 1999-2014 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 mgorny 1.9 # $Header: /var/cvsroot/gentoo-x86/media-video/libav/libav-10.9999.ebuild,v 1.8 2014/08/10 21:00:35 slyfox Exp $
4 lu_zero 1.1
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 mgorny 1.4 inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM}
14 lu_zero 1.1
15 slyfox 1.8 DESCRIPTION="Complete solution to record, convert and stream audio and video"
16 lu_zero 1.1 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 lu_zero 1.3 wavpack webp x264 xvid +zlib"
37 lu_zero 1.1
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 lu_zero 1.3 CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext altivec avx mmx mmxext neon ssse3 vis avx2"
41 lu_zero 1.1 for i in ${CPU_FEATURES} ; do
42     IUSE+=" ${i%:*}"
43     done
44    
45     RDEPEND="
46     !media-video/ffmpeg:0
47 mgorny 1.6 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 lu_zero 1.1 cdio? (
51     || (
52 mgorny 1.6 >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}]
53 mgorny 1.4 <dev-libs/libcdio-0.90[-minimal,${MULTILIB_USEDEP}]
54 lu_zero 1.1 )
55     )
56     encode? (
57 mgorny 1.6 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 lu_zero 1.1 theora? (
63 mgorny 1.4 >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
64 mgorny 1.6 >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
65 mgorny 1.4 )
66     vorbis? (
67 mgorny 1.6 >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
68     >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
69 lu_zero 1.1 )
70 mgorny 1.6 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 lu_zero 1.1 )
75     frei0r? ( media-plugins/frei0r-plugins )
76 mgorny 1.6 gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
77 lu_zero 1.1 ieee1394? (
78 mgorny 1.6 >=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
79     >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
80 lu_zero 1.1 )
81 mgorny 1.6 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 lu_zero 1.1 ssl? (
87 mgorny 1.6 openssl? ( >=dev-libs/openssl-1.0.1h-r2[${MULTILIB_USEDEP}] )
88     !openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
89 lu_zero 1.1 )
90 mgorny 1.6 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 lu_zero 1.1 X? (
98 mgorny 1.6 >=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 lu_zero 1.1 )
102 mgorny 1.6 zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
103 lu_zero 1.1 "
104    
105     DEPEND="${RDEPEND}
106     >=sys-devel/make-3.81
107     doc? ( app-text/texi2html )
108 mgorny 1.6 ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
109 lu_zero 1.1 mmx? ( dev-lang/yasm )
110 mgorny 1.6 rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
111     schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
112     ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
113 lu_zero 1.1 test? ( sys-devel/bc )
114 mgorny 1.6 truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
115 lu_zero 1.1 v4l? ( sys-kernel/linux-headers )
116     "
117    
118 mgorny 1.4 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 lu_zero 1.1 # 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 lu_zero 1.3 # Test on live ebuild are not possible as they require trunk fate
134     RESTRICT="test"
135    
136 mgorny 1.5 MULTILIB_WRAPPED_HEADERS=(
137     /usr/include/libavutil/avconfig.h
138     )
139    
140 lu_zero 1.1 src_prepare() {
141 mgorny 1.9 epatch_user
142    
143 lu_zero 1.1 # 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 mgorny 1.4
148     TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
149     use zlib && TOOLS+=( cws2fws )
150    
151     MAKEOPTS+=" V=1"
152 lu_zero 1.1 }
153    
154 mgorny 1.4 multilib_src_configure() {
155     local myconf=( ${EXTRA_LIBAV_CONF} )
156 lu_zero 1.1 local uses i
157    
158 mgorny 1.4 myconf+=(
159 lu_zero 1.1 $(use_enable gpl)
160     $(use_enable gpl version3)
161     --enable-avfilter
162 mgorny 1.4 )
163 lu_zero 1.1
164     # enabled by default
165     uses="debug doc network zlib"
166     for i in ${uses}; do
167 mgorny 1.4 use ${i} || myconf+=( --disable-${i} )
168 lu_zero 1.1 done
169 mgorny 1.4 use bzip2 || myconf+=( --disable-bzlib )
170     use sdl || myconf+=( --disable-avplay )
171 lu_zero 1.1
172     if use ssl; then
173 mgorny 1.4 use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
174     || myconf+=( --enable-gnutls )
175 lu_zero 1.1 fi
176    
177 mgorny 1.4 use custom-cflags && myconf+=( --disable-optimizations )
178     use cpudetection && myconf+=( --enable-runtime-cpudetect )
179 lu_zero 1.1
180 mgorny 1.4 use vdpau || myconf+=( --disable-vdpau )
181 lu_zero 1.1
182 mgorny 1.4 use vaapi && myconf+=( --enable-vaapi )
183 lu_zero 1.1
184     # Encoders
185     if use encode; then
186 mgorny 1.4 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 lu_zero 1.3 uses="faac theora vorbis wavpack webp x264 xvid"
192 lu_zero 1.1 for i in ${uses}; do
193 mgorny 1.4 use ${i} && myconf+=( --enable-lib${i} )
194 lu_zero 1.1 done
195     else
196 mgorny 1.4 myconf+=( --disable-encoders )
197 lu_zero 1.1 fi
198    
199     # libavdevice options
200 mgorny 1.4 use cdio && myconf+=( --enable-libcdio )
201     use ieee1394 && myconf+=( --enable-libdc1394 )
202     use pulseaudio && myconf+=( --enable-libpulse )
203 lu_zero 1.1
204     # Indevs
205     # v4l1 is gone since linux-headers-2.6.38
206 mgorny 1.4 myconf+=( --disable-indev=v4l )
207     use v4l || myconf+=( --disable-indev=v4l2 )
208 lu_zero 1.1 for i in alsa oss jack; do
209 mgorny 1.4 use ${i} || myconf+=( --disable-indev=${i} )
210 lu_zero 1.1 done
211 mgorny 1.4 use X && myconf+=( --enable-x11grab )
212 lu_zero 1.1 # Outdevs
213     for i in alsa oss ; do
214 mgorny 1.4 use ${i} || myconf+=( --disable-outdev=${i} )
215 lu_zero 1.1 done
216     # libavfilter options
217 mgorny 1.4 multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
218     use truetype && myconf+=( --enable-libfreetype )
219 lu_zero 1.1
220     # Threads; we only support pthread for now
221 mgorny 1.4 use threads && myconf+=( --enable-pthreads )
222 lu_zero 1.1
223     # Decoders
224 mgorny 1.4 use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
225 lu_zero 1.1 uses="gsm opus rtmp schroedinger speex vpx"
226     for i in ${uses}; do
227 mgorny 1.4 use ${i} && myconf+=( --enable-lib${i} )
228 lu_zero 1.1 done
229 mgorny 1.4 use jpeg2k && myconf+=( --enable-libopenjpeg )
230 lu_zero 1.1
231     # CPU features
232     for i in ${CPU_FEATURES}; do
233 mgorny 1.4 use ${i%:*} || myconf+=( --disable-${i#*:} )
234 lu_zero 1.1 done
235    
236     # pass the right -mfpu as extra
237 mgorny 1.4 use neon && myconf+=( --extra-cflags=-mfpu=neon )
238 lu_zero 1.1
239     # disable mmx accelerated code if PIC is required
240     # as the provided asm decidedly is not PIC for x86.
241 mgorny 1.4 if use pic && [[ ${ABI} == x86 ]]; then
242     myconf+=( --disable-mmx --disable-mmxext )
243 lu_zero 1.1 fi
244    
245     # Option to force building pic
246 mgorny 1.4 use pic && myconf+=( --enable-pic )
247 lu_zero 1.1
248     # cross compile support
249     if tc-is-cross-compiler ; then
250 mgorny 1.4 myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
251 lu_zero 1.1 case ${CHOST} in
252     *freebsd*)
253 mgorny 1.4 myconf+=( --target-os=freebsd )
254 lu_zero 1.1 ;;
255     mingw32*)
256 mgorny 1.4 myconf+=( --target-os=mingw32 )
257 lu_zero 1.1 ;;
258     *linux*)
259 mgorny 1.4 myconf+=( --target-os=linux )
260 lu_zero 1.1 ;;
261     esac
262     fi
263    
264     # Misc stuff
265 mgorny 1.4 use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
266 lu_zero 1.1
267     # Specific workarounds for too-few-registers arch...
268 mgorny 1.4 if [[ ${ABI} == x86 ]]; then
269     local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
270 lu_zero 1.1 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 mgorny 1.7 set -- "${S}"/configure \
284 lu_zero 1.1 --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 mgorny 1.7 "${myconf[@]}"
295     echo "${@}"
296     "${@}" || die
297 lu_zero 1.1 }
298    
299 mgorny 1.4 multilib_src_compile() {
300 lu_zero 1.1 emake
301    
302     if use tools; then
303     tc-export CC
304    
305 mgorny 1.4 emake ${TOOLS[@]/#/tools/}
306 lu_zero 1.1 fi
307     }
308    
309 mgorny 1.4 multilib_src_install() {
310     emake DESTDIR="${D}" install install-man
311 lu_zero 1.1
312 mgorny 1.4 if use tools; then
313     dobin ${TOOLS[@]/#/tools/}
314     fi
315     }
316 lu_zero 1.1
317 mgorny 1.4 multilib_src_install_all() {
318 lu_zero 1.1 dodoc Changelog README INSTALL
319     dodoc doc/*.txt
320     use doc && dodoc doc/*.html
321     }
322    
323 mgorny 1.4 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 lu_zero 1.1 emake -j1 fate
326     }

  ViewVC Help
Powered by ViewVC 1.1.20