| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| PYTHON_DEPEND="python? 2:2.6" |
| inherit eutils toolchain-funcs multilib python |
| |
| DESCRIPTION="An open source multimedia framework, designed and developed for television broadcasting" |
| HOMEPAGE="http://www.mltframework.org/" |
| SRC_URI="mirror://sourceforge/mlt/${P}.tar.gz" |
| |
| LICENSE="GPL-3" |
| SLOT="0" |
| KEYWORDS="amd64 ~ppc ~ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux" |
| IUSE="compressed-lumas dv debug ffmpeg frei0r gtk jack kde kdenlive libav libsamplerate melt |
| cpu_flags_x86_mmx qt4 quicktime rtaudio sdl cpu_flags_x86_sse cpu_flags_x86_sse2 vorbis xine xml lua python ruby vdpau" # java perl php tcl |
| IUSE="${IUSE} kernel_linux" |
| |
| #rtaudio will use OSS on non linux OSes |
| RDEPEND=" |
| ffmpeg? ( |
| libav? ( media-video/libav:0=[vdpau?] ) |
| !libav? ( media-video/ffmpeg:0=[vdpau?] ) |
| ) |
| dv? ( >=media-libs/libdv-0.104 ) |
| xml? ( >=dev-libs/libxml2-2.5 ) |
| vorbis? ( >=media-libs/libvorbis-1.1.2 ) |
| sdl? ( >=media-libs/libsdl-1.2.10[X,opengl] |
| >=media-libs/sdl-image-1.2.4 ) |
| libsamplerate? ( >=media-libs/libsamplerate-0.1.2 ) |
| jack? ( >=media-sound/jack-audio-connection-kit-0.121.3 |
| media-libs/ladspa-sdk |
| >=dev-libs/libxml2-2.5 ) |
| frei0r? ( media-plugins/frei0r-plugins ) |
| gtk? ( x11-libs/gtk+:2 |
| media-libs/libexif |
| x11-libs/pango ) |
| quicktime? ( media-libs/libquicktime ) |
| rtaudio? ( kernel_linux? ( media-libs/alsa-lib ) ) |
| xine? ( >=media-libs/xine-lib-1.1.2_pre20060328-r7 ) |
| qt4? ( dev-qt/qtgui:4 |
| dev-qt/qtsvg:4 |
| media-libs/libexif ) |
| kde? ( kde-base/kdelibs:4 |
| media-libs/libexif ) |
| !media-libs/mlt++ |
| lua? ( >=dev-lang/lua-5.1.4-r4 ) |
| ruby? ( dev-lang/ruby )" |
| # sox? ( media-sound/sox ) |
| # java? ( >=virtual/jre-1.5 ) |
| # perl? ( dev-lang/perl ) |
| # php? ( dev-lang/php ) |
| # tcl? ( dev-lang/tcl:0= ) |
| |
| SWIG_DEPEND=">=dev-lang/swig-2.0" |
| DEPEND="${RDEPEND} |
| virtual/pkgconfig |
| compressed-lumas? ( || ( media-gfx/imagemagick[png] |
| media-gfx/graphicsmagick[imagemagick,png] ) ) |
| lua? ( ${SWIG_DEPEND} virtual/pkgconfig ) |
| python? ( ${SWIG_DEPEND} ) |
| ruby? ( ${SWIG_DEPEND} )" |
| # java? ( ${SWIG_DEPEND} >=virtual/jdk-1.5 ) |
| # perl? ( ${SWIG_DEPEND} ) |
| # php? ( ${SWIG_DEPEND} ) |
| # tcl? ( ${SWIG_DEPEND} ) |
| |
| pkg_setup() { |
| python_set_active_version 2 |
| python_pkg_setup |
| } |
| |
| src_prepare() { |
| epatch "${FILESDIR}"/${PN}-0.8.6-ruby-link.patch \ |
| "${FILESDIR}"/${PN}-0.9.0-freetype251.patch |
| |
| # respect CFLAGS LDFLAGS when building shared libraries. Bug #308873 |
| for x in python lua; do |
| sed -i "/mlt.so/s: -lmlt++ :& ${CFLAGS} ${LDFLAGS} :" src/swig/$x/build || die |
| done |
| sed -i "/^LDFLAGS/s: += :& ${LDFLAGS} :" src/swig/ruby/build || die |
| |
| epatch_user |
| } |
| |
| src_configure() { |
| tc-export CC CXX |
| |
| local myconf="--enable-gpl |
| --enable-gpl3 |
| --enable-motion-est |
| --target-arch=$(tc-arch-kernel) |
| --disable-swfdec |
| $(use_enable debug) |
| $(use_enable dv) |
| $(use_enable cpu_flags_x86_sse sse) |
| $(use_enable cpu_flags_x86_sse2 sse2) |
| $(use_enable gtk gtk2) |
| $(use_enable vorbis) |
| $(use_enable sdl) |
| $(use_enable jack jackrack) |
| $(use_enable ffmpeg avformat) |
| $(use_enable frei0r) |
| $(use_enable melt) |
| $(use_enable libsamplerate resample) |
| $(use_enable rtaudio) |
| $(use vdpau && echo ' --avformat-vdpau') |
| $(use_enable xml) |
| $(use_enable xine) |
| $(use_enable kdenlive) |
| $(use_enable qt4 qimage) |
| --disable-sox" |
| #$(use_enable sox) FIXME |
| |
| use ffmpeg && myconf="${myconf} --avformat-swscale" |
| use kde || myconf="${myconf} --without-kde" |
| (use quicktime && use dv) || myconf="${myconf} --disable-kino" |
| use compressed-lumas && myconf="${myconf} --luma-compress" |
| |
| ( use x86 || use amd64 ) && \ |
| myconf="${myconf} $(use_enable cpu_flags_x86_mmx mmx)" || |
| myconf="${myconf} --disable-mmx" |
| |
| if ! use melt; then |
| sed -i -e "s;src/melt;;" Makefile || die |
| fi |
| |
| # TODO: add swig language bindings |
| # see also http://www.mltframework.org/twiki/bin/view/MLT/ExtremeMakeover |
| |
| local swig_lang |
| # TODO: java perl php tcl |
| for i in lua python ruby ; do |
| use $i && swig_lang="${swig_lang} $i" |
| done |
| [ -z "${swig_lang}" ] && swig_lang="none" |
| |
| econf ${myconf} --swig-languages="${swig_lang}" |
| sed -i -e s/^OPT/#OPT/ "${S}/config.mak" || die |
| } |
| |
| src_install() { |
| emake DESTDIR="${D}" install |
| dodoc AUTHORS ChangeLog NEWS README docs/*.txt |
| |
| dodir /usr/share/${PN} |
| insinto /usr/share/${PN} |
| doins -r demo |
| |
| docinto swig |
| |
| # Install SWIG bindings |
| if use lua; then |
| cd "${S}"/src/swig/lua || die |
| exeinto $(pkg-config --variable INSTALL_CMOD lua) |
| doexe mlt.so |
| dodoc play.lua |
| fi |
| |
| if use python; then |
| cd "${S}"/src/swig/python || die |
| insinto $(python_get_sitedir) |
| doins mlt.py |
| exeinto $(python_get_sitedir) |
| doexe _mlt.so |
| dodoc play.py |
| fi |
| |
| if use ruby; then |
| cd "${S}"/src/swig/ruby || die |
| exeinto $("${EPREFIX}"/usr/bin/ruby -r rbconfig -e 'print Config::CONFIG["sitearchdir"]') |
| doexe mlt.so |
| dodoc play.rb thumbs.rb |
| fi |
| # TODO: java perl php tcl |
| } |
| |
| pkg_postinst() { |
| if use python; then |
| python_mod_optimize mlt.py |
| fi |
| } |
| |
| pkg_postrm() { |
| if use python; then |
| python_mod_cleanup mlt.py |
| fi |
| } |