Portfile

# $Id: Portfile 22939 2007-03-19 21:19:34Z pipping@macports.org $

PortSystem 1.0
name MPlayer
version 1.0rc1
revision 4
categories multimedia
maintainers ecronin@gizmolabs.org \
openmaintainer@macports.org
description The Unix movie player
long_description \
MPlayer can play most standard video formats out of the box and almost \
all others with the help of external codecs. MPlayer currently works \
best from the command line, but visual feedback for many functions is \
available from its onscreen status display (OSD), which is also used for \
displaying subtitles. MPlayer also has a GUI with skin support and \
several unofficial alternative graphical frontends are available.

platforms darwin

homepage http://www.mplayerhq.hu/
master_sites ftp://ftp1.mplayerhq.hu/MPlayer/releases/ \
http://www2.mplayerhq.hu/MPlayer/releases/ \
ftp://ftp2.mplayerhq.hu/MPlayer/releases/ \
ftp://ftp5.mplayerhq.hu/MPlayer/releases/ \
ftp://ftp.fu-berlin.de/unix/X11/multimedia/MPlayer/releases/ \
http://www1.mplayerhq.hu/MPlayer/releases/ \
http://www.people.virginia.edu/~drf8f/MPlayer/releases/ \
http://www1.mplayerhq.hu/MPlayer/releases/codecs/:codecs \
http://www2.mplayerhq.hu/MPlayer/releases/codecs/:codecs
patch_sites http://www.mplayerhq.hu/MPlayer/patches/
patchfiles asmrules_fix_20061231.diff
use_bzip2 yes

checksums ${distname}${extract.suffix} \
md5 18c05d88e22c3b815a43ca8d7152ccdc \
sha1 a450c0b0749c343a8496ba7810363c9d46dfa73c \
rmd160 8cea02e832aec5d9e090829d61d0f131dcc177a2 \
asmrules_fix_20061231.diff \
md5 f0b71c38b1207c1d604be091876ac051 \
sha1 84412f4bd85d64a92586ca4db7e8585d16cd1acd \
rmd160 370877b45b314c9deb2d89739f8067a4a77c0844

depends_lib port:jpeg port:lame port:libiconv port:libmad \
port:libpng port:libvorbis port:lzo port:ncurses \
port:zlib

configure.args \
--with-extraincdir=${prefix}/include:${prefix}/include/cdparanoia/interface:${prefix}/include/cdparanoia/paranoia \
--with-extralibdir=${prefix}/lib:${prefix}/lib/samba3 \
--datadir=${prefix}/share/${name} \
--confdir=${prefix}/etc/${name} \
--mandir=${prefix}/share/man \
--enable-png --enable-jpeg \
--enable-liblzo --enable-libvorbis \
--enable-mad --disable-faad-external \
--enable-largefiles

# MPlayer autodetects many support libs. To prevent undeclared
# dependencies, explicitly disable everything optional first.
# Later, let autodetect do its magic not explicit --enable
configure.args-append \
--disable-smb --disable-live --disable-dvdnav \
--disable-dvdread --disable-mpdvdkit \
--disable-cdparanoia --disable-freetype \
--disable-fontconfig --disable-unrarlib \
--disable-fribidi --disable-enca \
--disable-gif --disable-libcdio --disable-xvid \
--disable-x264 --disable-nut --disable-libfame \
--disable-speex --disable-theora --disable-faac \
--disable-ladspa --disable-libdv --disable-toolame \
--disable-twolame --disable-xmms --disable-libdts \
--disable-musepack --disable-sdl --disable-aa \
--disable-caca --disable-x11 --disable-arts \
--disable-esd

post-destroot {
file mkdir ${destroot}${prefix}/share/doc/${name}
eval file copy [glob ${worksrcpath}/DOCS/*] \
${destroot}${prefix}/share/doc/${name}
}

##### Mplayer features

# Install all possible languages for man pages
variant man_all_lang {
configure.args-append --language=all
}

# configure doesn't fully build up necessary flags when --enable-fontconfig
# is used, so use autodetect instead
variant fontconfig {
depends_lib-append port:fontconfig
configure.args-delete --disable-fontconfig
}

variant freetype {
depends_lib-append port:freetype
configure.args-delete --disable-freetype
configure.args-append --enable-freetype
}

variant fribidi {
depends_lib-append port:fribidi
configure.args-delete --disable-fribidi
#configure.args-append --enable-fribidi
}

##### Inputs

## Broken as of 10/25/06 (samba3 produces bad libsmbclient.dylib)
#variant smb {
# depends_lib-append port:samba3
# configure.args-delete --disable-smb
# #configure.args-append --enable-smb
#}

variant dvdread {
depends_lib-append port:libdvdread
configure.args-delete --disable-dvdread
}

## Broken as of 10/25/06 (version issue?)
#variant cdparanoia {
# depends_lib-append port:cdparanoia
# configure.args-delete --disable-cdparanoia
# #configure.args-append --enable-dvdread
#}

##### External codecs

variant gif {
depends_lib-append port:libungif
configure.args-delete --disable-gif
}

## Broken as of 10/25/06 (undefined symbol _read_toc)
#variant cdio {
# depends_lib-append port:libcdio
# configure.args-delete --disable-libcdio
# #configure.args-append --enable-libcdio
#}

variant theora {
depends_lib-append port:libtheora
configure.args-delete --disable-theora
configure.args-append --enable-theora
}

variant xvid {
depends_lib-append port:XviD
configure.args-delete --disable-xvid
configure.args-append --enable-xvid
}

## Needs 20070316 snapshot of x264 or later
variant x264 {
depends_lib-append port:x264
configure.args-delete --disable-x264
configure.args-append --enable-x264
}

# binary_codecs replaced 'variant real'
variant real requires binary_codecs {}

variant binary_codecs {
if {[variant_isset darwin_powerpc]} {
global mplayercodecs mplayercodecsfile
set mplayercodecs rp9codecs-macosx-20041107.pkg
set mplayercodecsfile ${mplayercodecs}.zip
distfiles-append ${mplayercodecsfile}:codecs
checksums-append ${mplayercodecsfile} \
md5 788cf4940280fd787c0a2141d88ce3c7 \
sha1 18abd6d0424c4682815a13b34695d37d2fda2a73 \
rmd160 c6f49012633bbb84ffa405b8881dc90605d26fc6

extract.only ${distname}${extract.suffix}

depends_build-append bin:unzip:unzip

post-extract {
cd ${worksrcpath}
system "unzip -q ${distpath}/${mplayercodecsfile}"
}

configure.args-append --with-codecsdir=${prefix}/share/${name}/codecs

post-destroot {
xinstall -m 755 -d ${destroot}${prefix}/share/${name}/codecs
cd ${destroot}${prefix}/share/${name}/codecs
system "gunzip -c \
${worksrcpath}/${mplayercodecs}/Contents/Archive.pax.gz | pax -r"
}
}
if {[variant_isset darwin_i386]} {
global mplayercodecs mplayercodecsfile
set mplayercodecs "Essential Codecs Package (Intel).pkg"
set mplayercodecsfile essential-macosx-x86-20060611.zip
distfiles-append ${mplayercodecsfile}:codecs
checksums-append ${mplayercodecsfile} \
md5 1e409d500336a8318cbe2a67bbf9d9ca \
sha1 4f8fee483b6c227d8cb774d2d30e1ef36a43e04a \
rmd160 87beaa40263deb0d0b9166f24d6f9dd686f594fd

extract.only ${distname}${extract.suffix}

depends_lib-append bin:unzip:unzip

post-extract {
cd ${worksrcpath}
system "unzip -q ${distpath}/${mplayercodecsfile}"
}

configure.args-append --with-codecsdir=${prefix}/share/${name}/codecs

post-destroot {
xinstall -m 755 -d ${destroot}${prefix}/share/${name}/codecs
cd ${destroot}${prefix}/share/${name}/codecs
system "gunzip -c \
\"${worksrcpath}/${mplayercodecs}/Contents/Archive.pax.gz\" | pax -r"
}
}
}

variant speex {
depends_lib-append port:speex-devel
configure.args-delete --disable-speex
#configure.args-append --enable-speex
}

variant faac {
depends_lib-append port:faac
configure.args-delete --disable-faac
}

variant dv {
depends_lib-append port:libdv
configure.args-delete --disable-libdv
}

variant twolame {
depends_lib-append port:twolame
configure.args-delete --disable-twolame
}

variant dts {
depends_lib-append port:libdts
configure.args-delete --disable-libdts
}

##### Outputs

variant sdl {
depends_lib-append port:libsdl
configure.args-delete --disable-sdl
}

variant aa {
depends_lib-append port:aalib
configure.args-delete --disable-aa
}

variant caca {
depends_lib-append port:libcaca
configure.args-delete --disable-caca
}

variant x11 requires freetype requires fontconfig {
depends_lib-append lib:libX11.6:XFree86
configure.args-delete --disable-x11
configure.env-append PKG_CONFIG_PATH=${prefix}/lib/pkgconfig:${x11prefix}/lib/pkgconfig
}

variant arts {
depends_lib-append port:arts
configure.args-delete --disable-arts
}

variant esd {
depends_lib-append port:esound
configure.args-delete --disable-esd
}


platform macosx {
configure.args-append --enable-macosx --enable-macosx-finder-support \
--enable-macosx-bundle --enable-qtx
}

platform darwin {
post-patch {
reinplace "s|\$\(CC\) \$\(CFLAGS\) -o|\$\(LD\) \$\(CFLAGS\) -o|g" \
${worksrcpath}/Makefile
reinplace "s|-isysroot /Developer/SDKs/MacOSX10.4u.sdk||g" \
${worksrcpath}/configure
}
build.env LD=cc
}

platform darwin 8 {
# Need to force use of c++ for linking when Xcode 2.2 is used since some
# bits of libstdc++ are needed during linking
build.env LD=c++
}

platform darwin i386 {
configure.args-append --disable-win32 --disable-mp3lib
}

platform darwin powerpc {}