ffmpeg: cross build support.

This commit is contained in:
Juan RP 2013-06-22 09:29:53 +02:00
parent 46e91d13d2
commit e81de1077f

View file

@ -1,7 +1,7 @@
# Template file for 'ffmpeg' # Template file for 'ffmpeg'
pkgname=ffmpeg pkgname=ffmpeg
version=1.0.5 version=1.0.5
revision=4 revision=5
short_desc="Decoding, encoding and streaming software" short_desc="Decoding, encoding and streaming software"
maintainer="Juan RP <xtraeme@gmail.com>" maintainer="Juan RP <xtraeme@gmail.com>"
license="GPL-3" license="GPL-3"
@ -9,24 +9,47 @@ homepage="http://www.ffmpeg.org"
distfiles="${homepage}/releases/ffmpeg-${version}.tar.bz2" distfiles="${homepage}/releases/ffmpeg-${version}.tar.bz2"
checksum=1f1af23112e2da8403abce605749db9111d45d2e4e28910831e778c6e2cbdcce checksum=1f1af23112e2da8403abce605749db9111d45d2e4e28910831e778c6e2cbdcce
makedepends="pkg-config perl yasm zlib-devel alsa-lib-devel libXfixes-devel hostmakedepends="pkg-config perl yasm"
makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
libXext-devel libXvMC-devel faad2-devel lame-devel libtheora-devel libXext-devel libXvMC-devel faad2-devel lame-devel libtheora-devel
libvorbis-devel x264-devel xvidcore-devel jack-devel SDL-devel libcdio-devel libvorbis-devel x264-devel xvidcore-devel jack-devel SDL-devel libcdio-devel
libvpx-devel libva-devel libvdpau-devel librtmp-devel freetype-devel libvpx-devel librtmp-devel freetype-devel libmodplug-devel speex-devel
libmodplug-devel speex-devel celt-devel harfbuzz-devel libass-devel opus-devel" celt-devel harfbuzz-devel libass-devel opus-devel pulseaudio-devel"
if [ "$XBPS_TARGET_MACHINE" = "i686" -o "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
makedepends+=" libva-devel libvdpau-devel "
fi
do_configure() { do_configure() {
if [ "$XBPS_TARGET_MACHINE" = "i686" -o "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
_args="--enable-vdpau --enable-vaapi"
fi
if [ "$CROSS_BUILD" ]; then
case "$XBPS_TARGET_MACHINE" in
arm*) _arch="arm";;
mips*) _arch="mips";;
i686|x86_64) _arch="$XBPS_TARGET_MACHINE";;
esac
_args+=" --enable-cross-compile
--sysroot=$XBPS_CROSS_BASE
--cross-prefix=${XBPS_CROSS_TRIPLET}-
--target-os=linux --arch=${_arch}"
# Remove this pkg_config kludge, breaks cross build.
sed -e 's,$pkg_config --,pkg-config --,g' -i configure
fi
./configure --prefix=/usr --disable-debug --enable-gpl \ ./configure --prefix=/usr --disable-debug --enable-gpl \
--enable-libcdio --enable-version3 --enable-runtime-cpudetect \ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
--enable-libmp3lame --enable-libvorbis --enable-libxvid \ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
--enable-libx264 --enable-libvpx --enable-libtheora \ --enable-libx264 --enable-libvpx --enable-libtheora \
--enable-vdpau --enable-vaapi --enable-postproc \
--enable-shared --enable-x11grab --enable-librtmp \ --enable-shared --enable-x11grab --enable-librtmp \
--enable-libpulse --enable-libfreetype --enable-libmodplug \ --enable-libpulse --enable-libfreetype --enable-libmodplug \
--enable-libspeex --enable-libcelt --enable-libass \ --enable-libspeex --enable-libcelt --enable-libass \
--disable-libopencore_amrnb --disable-libopencore_amrwb \ --disable-libopencore_amrnb --disable-libopencore_amrwb \
--disable-libschroedinger --disable-libopenjpeg \ --disable-libschroedinger --disable-libopenjpeg \
--disable-static --disable-static --enable-postproc ${_args}
} }
do_build() { do_build() {
@ -41,56 +64,56 @@ do_install() {
libavcodec_package() { libavcodec_package() {
short_desc="FFmpeg codec library" short_desc="FFmpeg codec library"
pkg_install() { pkg_install() {
vmove "usr/lib/libavcodec.so*" vmove "usr/lib/libavcodec.so.*"
} }
} }
libavdevice_package() { libavdevice_package() {
short_desc="FFmpeg device handling library" short_desc="FFmpeg device handling library"
pkg_install() { pkg_install() {
vmove "usr/lib/libavdevice.so*" vmove "usr/lib/libavdevice.so.*"
} }
} }
libavformat_package() { libavformat_package() {
short_desc="FFmpeg file format library" short_desc="FFmpeg file format library"
pkg_install() { pkg_install() {
vmove "usr/lib/libavformat.so*" vmove "usr/lib/libavformat.so.*"
} }
} }
libavutil_package() { libavutil_package() {
short_desc="FFmpeg utility library" short_desc="FFmpeg utility library"
pkg_install() { pkg_install() {
vmove "usr/lib/libavutil.so*" vmove "usr/lib/libavutil.so.*"
} }
} }
libavfilter_package() { libavfilter_package() {
short_desc="FFmpeg audio/video filter library" short_desc="FFmpeg audio/video filter library"
pkg_install() { pkg_install() {
vmove "usr/lib/libavfilter.so*" vmove "usr/lib/libavfilter.so.*"
} }
} }
libpostproc_package() { libpostproc_package() {
short_desc="FFmpeg video postprocessing library" short_desc="FFmpeg video postprocessing library"
pkg_install() { pkg_install() {
vmove "usr/lib/libpostproc.so*" vmove "usr/lib/libpostproc.so.*"
} }
} }
libswscale_package() { libswscale_package() {
short_desc="FFmpeg video scaling library" short_desc="FFmpeg video scaling library"
pkg_install() { pkg_install() {
vmove "usr/lib/libswscale.so*" vmove "usr/lib/libswscale.so.*"
} }
} }
libswresample_package() { libswresample_package() {
short_desc="FFmpeg video resampling library" short_desc="FFmpeg video resampling library"
pkg_install() { pkg_install() {
vmove "usr/lib/libswresample.so*" vmove "usr/lib/libswresample.so.*"
} }
} }
@ -98,18 +121,17 @@ ffmpeg-devel_package() {
depends="libavcodec>=${version} libavdevice>=${version} libavformat>=${version} depends="libavcodec>=${version} libavdevice>=${version} libavformat>=${version}
libavutil>=${version} libavfilter>=${version} libpostproc>=${version} libavutil>=${version} libavfilter>=${version} libpostproc>=${version}
libswscale>=${version} libswresample>=${version}" libswscale>=${version} libswresample>=${version}"
short_desc="${short_desc} - development files" short_desc+=" - development files"
pkg_install() { pkg_install() {
vmove usr/include vmove usr/include
vmove usr/lib/pkgconfig vmove usr/lib/pkgconfig
vmove "usr/lib/*.so"
vmove usr/share/ffmpeg/examples vmove usr/share/ffmpeg/examples
} }
} }
ffmpeg_package() { ffmpeg_package() {
pkg_install() { pkg_install() {
vmove usr/bin vmove all
vmove usr/share/man
vmove usr/share/ffmpeg
} }
} }