# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 name ffmpeg-devel set svn_rev 19723 set swscale_rev 29548 version ${svn_rev} categories multimedia maintainers devans openmaintainer description Digital VCR and streaming server (new unstable API/ABI libavcodec version 52) long_description \ FFmpeg is a complete solution to record, convert and \ stream audio and video. It includes libavcodec, the \ leading audio/video codec library. \ \ FFmpeg is currently undergoing major changes in its API/ABI in \ libavcodec version 52. This development release reflects those \ changes and may break applications coded to libavcodec version 51. \ \ For the last valid revision for libavcodec version 51 (r15261) \ please use port ffmpeg. homepage http://www.ffmpeg.org/ master_sites distfiles patchfiles patch-libavfilter-avfilter.h.diff \ patch-libswscale-Makefile.diff \ patch-libswscale-swscale.h.diff worksrcdir trunk use_parallel_build yes depends_build bin:svn:subversion \ port:gmake depends_lib port:lame \ port:libvorbis \ port:libogg \ port:libtheora \ port:dirac \ port:schroedinger \ port:faac \ port:faad2 \ port:XviD \ port:x264 \ port:libsdl \ port:bzip2 \ port:zlib build.cmd gmake configure.compiler gcc-4.0 pre-fetch { if {[file isdirectory ${distpath}/${svn_rev}]} { if {![file isdirectory ${distpath}/${svn_rev}/trunk/.svn] || ![file exists ${distpath}/${svn_rev}/trunk/.complete]} { file delete -force ${distpath}/${svn_rev} } } } fetch { if {![file isdirectory ${distpath}/${svn_rev}]} { file mkdir ${distpath}/${svn_rev} system "svn co -r${svn_rev} --ignore-externals svn://svn.ffmpeg.org/ffmpeg/trunk ${distpath}/${svn_rev}/trunk" system "svn co -r${swscale_rev} svn://svn.ffmpeg.org/mplayer/trunk/libswscale ${distpath}/${svn_rev}/trunk/libswscale" system "touch ${distpath}/${svn_rev}/trunk/.complete" } } # # enable auto configure of mmx and related Intel optimizations by default # requires Xcode 3.1 or better on Leopard # pre-extract { if {"darwin" == ${os.platform} && 9 == ${os.major}} { set minimum_xcodeversion 3.1 set current_xcodeversion [exec defaults read /Developer/Applications/Xcode.app/Contents/Info CFBundleShortVersionString] if {[rpm-vercomp ${current_xcodeversion} ${minimum_xcodeversion}] < 0} { ui_error "On Mac OS X ${macosx_version}, ${name} ${version} requires Xcode ${minimum_xcodeversion} or later but you have Xcode ${current_xcodeversion}." return -code error "incompatible Xcode version" } } } extract { file copy ${distpath}/${svn_rev}/trunk ${worksrcpath} } platforms darwin configure.cflags-append -DHAVE_LRINTF ${configure.cppflags} configure.args \ --enable-nonfree \ --enable-gpl \ --enable-postproc \ --enable-avfilter --enable-avfilter-lavf \ --enable-libmp3lame \ --enable-libvorbis \ --enable-libtheora \ --enable-libdirac --enable-libschroedinger \ --enable-libfaac \ --enable-libfaad \ --enable-libxvid \ --enable-libx264 \ --mandir=${prefix}/share/man \ --enable-shared --enable-pthreads \ --disable-indevs \ --cc=gcc-4.0 #add --enable-libopenjpeg when problems with openjpeg.h are resolved test.run yes # # configure isn't autoconf and they do use a dep cache # universal_variant no post-destroot { file mkdir ${destroot}${prefix}/share/doc/ffmpeg file copy ${worksrcpath}/doc/APIchanges ${destroot}${prefix}/share/doc/ffmpeg file copy ${worksrcpath}/doc/TODO ${destroot}${prefix}/share/doc/ffmpeg foreach f [glob ${worksrcpath}/doc/*.txt ${worksrcpath}/doc/*.html] { file copy $f ${destroot}${prefix}/share/doc/ffmpeg } } variant no_mmx description {disable all x86 asm optimizations} { configure.args-append --disable-mmx --disable-mmx2 --disable-sse --disable-ssse3 --disable-amd3dnow --disable-amd3dnowext } variant no_gpl description {disallow use of GPL code, license will be LGPL if +no_nonfree is selected} { configure.args-delete --enable-gpl configure.args-delete --enable-postproc configure.args-delete --enable-swscale configure.args-delete --enable-libfaad depends_lib-delete port:faad2 configure.args-delete --enable-libx264 depends_build-delete port:x264 configure.args-delete --enable-libxvid depends_lib-delete port:XviD } variant no_nonfree description {disallow use of nonfree code, libraries and binaries will be redistributable under GPL/LGPL} { configure.args-delete --enable-nonfree configure.args-delete --enable-libfaac depends_lib-delete port:faac } # # make speex a variant since it requires speex version 1.2 # which is currently only available via port speex-devel # remove variant and make default when 1.2 is available in speex # variant speex description {enable Speex decoding via libspeex} { configure.args-append --enable-libspeex depends_lib-append path:lib/libspeex.dylib:speex-devel } pre-configure { if {[variant_isset speex]} { if {![file exists ${prefix}/lib/libspeexdsp.dylib]} { error " ******* ******* Variant speex requires port speex-devel but ******* port speex is active. Please deactivate port speex ******* and install/activate port speex-devel then try ******* again. ******* " } } } # # jack indev support is currently broken # since Darwin doesn't support memory based POSIX semaphores # only named ones # variant jack description {Enable jack input device support (currently broken)} { configure.args-delete --disable-indevs depends_lib-append port:jack } post-activate { if {![variant_isset no_nonfree]} { ui_msg " ******* ******* This build of ${name} includes nonfree code as follows: ******* ******* libfaac ******* ******* The following libraries and binaries may not be redistributed: ******* ******* ffmpeg ******* libavcodec ******* libavdevice ******* libavfilter ******* libavformat ******* libavutil ******* ******* To remove this restriction use variant +no_nonfree ******* " } elseif {![variant_isset no_gpl]} { ui_msg " ******* ******* This build of ${name} includes GPLed code and ******* is therefore licensed under GPL. ******* ******* The following modules are GPLed: ******* ******* postproc ******* swscale ******* libfaad ******* libx264 ******* libxvid ******* ******* To include only LGPLed code use variant +no_gpl +no_nonfree ******* " } else { ui_msg " ******* ******* This build of ${name} includes no GPLed or nonfree ******* code and is therefore licensed under LGPL. ******* " } } # #disable livecheck # livecheck.check none