# New ports collection makefile for: mplayer
# Date created: 10 August 2001
# Whom: Thomas E. Zander
# with lots of help from Vladimir Kushnir
# $FreeBSD$
#
# There are many knobs to tune mplayer towards your specific wishes
# and preferences.
# You can activate a knob by typing something like
# "make -DKNOB" or "make KNOB=yes" instead of just "make"
#
# A description of the several possibilities is available here:
#
# Core funcionality:
#
# WITH_OPTIMIZED_CFLAGS
# default: undefined
# define if you want to enable -O3 -ffast-math -fomit-frame-pointer
# on gcc build commands. This will improve speed on most machines.
#
# WITHOUT_RUNTIME_CPUDETECTION
# default: undefined
# by default, mplayer is built with support for changing the used cpu
# instruction set while playing. This is necessary for package building.
# If you want to compile a specific version of mplayer working faster
# but only on your cpu type, then define this knob.
# If you define this, there are several additional knobs to explicitly
# disable some possible CPU features. See below.
#
# WITHOUT_MENCODER
# default: undefined
# the default is to build mplayer with mencoder. If you're sure that you
# don't want to encode or recode any media file, then define this.
#
# WITH_GUI
# default: defined if gtk12 libs are installed on the system
# defining this knob will force the ports system to install gtk12 first
# (if not available) and then link mplayer against it. Then you'll
# be able to use gmplayer, the graphical version of mplayer
#
# WITHOUT_FREETYPE
# default: undefined
# since freetype is installed on almost any system people might want
# to run mplayer on, this port now defaults to freetype unless not
# defined otherwise
#
#
# CPU features:
#
# The following is only of interest if you have enabled
# WITHOUT_RUNTIME_CPUDETECTION
# Further, the correct instruction set of your processor is normally
# auto-detected, so there is probably no necissity to change them.
#
# WITHOUT_MMX
# default: autodetected
# disables using of mmx code
#
# WITHOUT_3DNOW
# default: autodetected
# disables using of 3dNow! instructions on AMD CPUs
#
# WITHOUT_DSP
# default: autodetected
# disables using of AMD Athlon DSP extentions
#
# WITHOUT_SSE
# default: autodetected
# disables all mmx2 and sse/sse2 code
# CAUTION: There are some Athlon CPUs which claim to be sse-able but
# they aren't. If you have strange problems on this subject, try
# to build mplayer with this knob and report the problem
# NOTE: SSE is available only if "options CPU_ENABLE_SSE" in your
# kernel config. This is standard for 5.x systems on I686_CPU and above.
# 4.x users will have to define this explicitly.
#
#
# Feature options:
# These options influence, which libraries mplayer is linked to.
# Note: The libraries are needed to play the particular files under
# particular circumstances.
# ("autodetect" in this sections means: If the ports system finds
# the libary on your system, it is used, otherwise not.
# If you define it, it will be built and installed as dependency.)
#
# WITH_DVD
# default: autodetect
#
# WITH_LIBDVDREAD
# default: disabled
# define this if you prefer the use of libdvdread instead of the
# mplayer-internal dvd reading routine (which is derived from
# libdvdread). This only affect mplayer if WITH_DVD is used.
#
# WITH_LIBDVDNAV
# default: autodetect
#
# WITH_ARTS
# default: autodetect
#
# WITH_CDPARANOIA
# default: autodetect
#
# WITH_LIBDV
# default: autodetect
#
# WITH_MAD
# default: autodetect
#
# WITH_SVGALIB
# default: autodetect
#
# WITH_AALIB
# default: autodetect
#
# WITH_SDL
# default: autodetect
# (implies WITH_AALIB)
#
# WITH_ESOUND
# default: autodetect
#
# WITH_VORBIS
# default: autodetect
#
# WITH_XANIM
# default: autodetect
#
# WITH_REALPLAYER
# default: autodetect
#
# WITH_LIVEMEDIA
# default: autotedect
#
# WITH_XVID
# default: autodetect
#
# WITH_FAAD
# default: autodetect
#
# WITH_LZO
# default: autodetect
#
# WITH_XMMS
# default: autodetect
#
# WITH_LANG
# default: en
# Enables language support bg, cz, de, dk, en, es, fr, gr, hu, it, ko, nl, no, pl, pt_BR, ro, ru, sk, tr, uk, zh
#
# WITHOUT_WIN32_CODECS
# default: undefined
# By default, mplayer depends on and uses the win32-codecs collection.
# Of course, thanks to Microsoft's very cool hyper-super-multi-platform
# support, this is only available on x86 architecture.
# If you're working on x86 and want to disable using of the windows codecs,
# define this knob.
#
#
# Additional knobs:
#
# NOPORTDOCS
# default: undefined
# This knob prevents the ports system from installing additional
# documentation. If you define this, only the manpage is going
# to be installed.
PORTNAME= mplayer
PORTVERSION= 0.92.0
PORTREVISION= 2
CATEGORIES= multimedia audio ipv6
MASTER_SITES= http://www1.mplayerhq.hu/MPlayer/releases/ \
http://www2.mplayerhq.hu/MPlayer/releases/ \
http://ftp.lug.udel.edu/MPlayer/releases/ \
http://www4.mplayerhq.hu/MPlayer/releases/ \
http://mirrors.xmission.com/MPlayer/releases/ \
ftp://ftp1.mplayerhq.hu/MPlayer/releases/ \
ftp://ftp2.mplayerhq.hu/MPlayer/releases/ \
ftp://ftp.lug.udel.edu/MPlayer/releases/ \
ftp://mirrors.xmission.com/MPlayer/releases/ \
http://www.rrr.de/~riggs/mplayer/
DISTNAME= MPlayer-0.92
PATCH_SITES= ${MASTER_SITE_RINGSERVER:S,%SUBDIR%,net/kame/misc/&,}
PATCHFILES= mplayer-0.9.1-v6-20030825.diff.gz
PATCH_DIST_STRIP= -p1
MAINTAINER= riggs@rrr.de
COMMENT= High performance media player/encoder supporting many formats
LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png \
iconv.3:${PORTSDIR}/converters/libiconv
USE_BZIP2= yes
USE_GMAKE= yes
USE_XLIB= yes
GNU_CONFIGURE= yes
CONFIGURE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
PTHREAD_LIBS=${PTHREAD_LIBS} \
TMPDIR="${WRKSRC}"
CONFIGURE_ARGS= --with-extralibdir=${LOCALBASE}/lib \
--with-extraincdir=${LOCALBASE}/include \
--with-x11libdir=${X11BASE}/lib \
--with-x11incdir=${X11BASE}/include \
--enable-png \
--disable-libfame \
--disable-tv-v4l
.if defined(WITH_LANG)
CONFIGURE_ARGS+=--language=${WITH_LANG}
.endif
WANT_GNOME= yes
USE_REINPLACE= yes
MAN1= mplayer.1
MANCOMPRESSED= no
INSTALLS_SHLIB= yes
LDCONFIG_DIRS= %%PREFIX%%/lib %%PREFIX%%/lib/mplayer/vidix
CONFFILES= codecs.conf example.conf input.conf menu.conf
DOCFILES= bugreports.html cd-dvd.html codecs-in.html \
codecs.html documentation.html faq.html skin.html \
encoding.html formats.html sound.html \
users_against_developers.html \
video.html
TOOLFILES= calcbpp.pl countquant.pl \
dvd2divxscript.pl menc2pass \
mencvcd mp.pl sws-test w32codec_dl.pl \
x2mpsub.sh
.include <bsd.port.pre.mk>
.if exists(${LOCALBASE}/lib/libartsc.so.0)
WITH_ARTS= yes
.endif
.if exists(${LOCALBASE}/lib/libcdda_paranoia.so)
WITH_CDPARANOIA= yes
.endif
.if exists(${LOCALBASE}/lib/libdv.so.3)
WITH_LIBDV= yes
.endif
.if exists(${LOCALBASE}/lib/libdvdcss.so.2)
WITH_DVD= yes
.endif
.if exists(${LOCALBASE}/lib/libdvdnav.so.1)
WITH_LIBDVDNAV= yes
.endif
.if exists(${LOCALBASE}/lib/libmad.so.1)
WITH_MAD= yes
.endif
.if exists(${LOCALBASE}/lib/libvga.so.1)
WITH_SVGALIB= yes
.endif
.if exists(${LOCALBASE}/lib/libaa.so.1)
WITH_AALIB= yes
.endif
.if exists(${LOCALBASE}/lib/libSDL-1.1.so.5)
WITH_SDL= yes
WITH_AALIB= yes
.endif
.if ${HAVE_GNOME:Mesound}!=""
WITH_ESOUND= yes
.endif
.if exists(${LOCALBASE}/lib/libvorbis.so.2)
WITH_VORBIS= yes
.endif
.if exists(${LOCALBASE}/lib/libjpeg.so.9)
LIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg
.endif
.if exists(${X11BASE}/bin/xanim)
WITH_XANIM= yes
.endif
.if exists(${LOCALBASE}/lib/RealPlayer8/realplay)
WITH_REALPLAYER= yes
.endif
.if exists(${LOCALBASE}/live/liveMedia/libliveMedia.a)
WITH_LIVEMEDIA= yes
.endif
.if exists(${LOCALBASE}/lib/libxvidcore.so)
WITH_XVID= yes
.endif
.if exists(${LOCALBASE}/lib/libfaad.so)
WITH_FAAD= yes
.endif
.if exists(${X11BASE}/lib/libxmms.so)
WITH_XMMS= yes
.endif
.if exists(${LOCALBASE}/lib/liblzo.so)
WITH_LZO= yes
.endif
.if exists(${LOCALBASE}/lib/libfreetype.so.9) && !defined(WITHOUT_FREETYPE)
WITH_FREETYPE= yes
.endif
.if defined(WITH_OPTIMIZED_CFLAGS)
CFLAGS+= -O3 -ffast-math -fomit-frame-pointer
.endif
.if ${HAVE_GNOME:Mgtk12}!=""
WITH_GUI= yes
PLIST_SUB+= GMPLAYER=""
.else
PLIST_SUB+= GMPLAYER="@comment "
.endif
.if defined(WITH_GUI)
USE_GNOME+= gtk12
RUN_DEPENDS+= ${LOCALBASE}/share/mplayer/Skin:${PORTSDIR}/multimedia/mplayer-skins
.if defined(PKGNAMESUFFIX)
PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-gtk
.else
PKGNAMESUFFIX= -gtk
.endif
CONFIGURE_ARGS+= --enable-gui
.endif
.if !defined(WITHOUT_MENCODER)
LIB_DEPENDS+= mp3lame.0:${PORTSDIR}/audio/lame
MLINKS+= mplayer.1 mencoder.1
PLIST_SUB+= MENCODER=""
.else
CONFIGURE_ARGS+= --disable-mencoder
PLIST_SUB+= MENCODER="@comment "
.endif
.if defined(WITH_ARTS)
LIB_DEPENDS+= artsc.0:${PORTSDIR}/audio/arts
CONFIGURE_ARGS+= --enable-arts
.else
CONFIGURE_ARGS+= --disable-arts
.endif
.if defined(WITH_CDPARANOIA)
LIB_DEPENDS+= cdda_paranoia.0:${PORTSDIR}/audio/cdparanoia
.else
CONFIGURE_ARGS+= --disable-cdparanoia
.endif
.if defined(WITH_DVD)
.if !defined(WITH_LIBDVDREAD)
LIB_DEPENDS+= dvdcss.2:${PORTSDIR}/multimedia/libdvdcss
.else
LIB_DEPENDS+= dvdread.3:${PORTSDIR}/multimedia/libdvdread
.endif
.if defined(WITH_LIBDVDNAV)
LIB_DEPENDS+= dvdnav.1:${PORTSDIR}/multimedia/libdvdnav
CONFIGURE_ARGS+= --enable-dvdnav
.else
CONFIGURE_ARGS+= --disable-dvdnav
.endif
CONFIGURE_ARGS+= --enable-css \
--with-csslibdir=${LOCALBASE}/lib
.else
CONFIGURE_ARGS+= --disable-css
.endif
.if defined(WITH_LIBDV)
LIB_DEPENDS+= dv.3:${PORTSDIR}/multimedia/libdv
CONFIGURE_ARGS+= --enable-libdv
.else
CONFIGURE_ARGS+= --disable-libdv
.endif
.if defined(WITH_MAD)
LIB_DEPENDS+= mad.1:${PORTSDIR}/audio/mad
CONFIGURE_ARGS+= --enable-mad \
--with-madlibdir=${LOCALBASE}/lib
.else
CONFIGURE_ARGS+= --disable-mad
.endif
.if defined(WITH_SVGALIB)
LIB_DEPENDS+= vga.1:${PORTSDIR}/graphics/svgalib
.endif
.if defined(WITH_AALIB)
LIB_DEPENDS+= aa.1:${PORTSDIR}/graphics/aalib
.endif
.if defined(WITH_SDL)
USE_SDL= yes
.endif
.if defined(WITH_ESOUND)
USE_GNOME+= esound
.if defined(PKGNAMESUFFIX)
PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-esound
.else
PKGNAMESUFFIX= -esound
.endif
.endif
.if defined(WITH_VORBIS)
LIB_DEPENDS+= vorbis.2:${PORTSDIR}/audio/libvorbis
.endif
.if defined(WITH_REALPLAYER)
CONFIGURE_ARGS+= --enable-real \
--with-reallibdir=${LOCALBASE}/lib/RealPlayer8/Codecs
RUN_DEPENDS+= realplay:${PORTSDIR}/multimedia/linux-realplayer
BUILD_DEPENDS+= realplay:${PORTSDIR}/multimedia/linux-realplayer
.endif
.if defined(WITH_LIVEMEDIA)
CONFIGURE_ARGS+= --enable-live \
--with-livelibdir=${LOCALBASE}/live
RUN_DEPENDS+= ${LOCALBASE}/live/liveMedia/libliveMedia.a:${PORTSDIR}/net/liveMedia
BUILD_DEPENDS+= ${LOCALBASE}/live/liveMedia/libliveMedia.a:${PORTSDIR}/net/liveMedia
.endif
.if defined(WITH_XVID)
CONFIGURE_ARGS+= --enable-xvid \
--with-xvidcore=${LOCALBASE}/lib/libxvidcore.so
LIB_DEPENDS+= xvidcore.2:${PORTSDIR}/multimedia/xvid
.endif
.if defined(WITH_LZO)
LIB_DEPENDS+= lzo.1:${PORTSDIR}/archivers/lzo
.else
CONFIGURE_ARGS+= --disable-liblzo
.endif
.if defined(WITH_XMMS)
CONFIGURE_ARGS+= --enable-xmms
LIB_DEPENDS+= xmms.4:${PORTSDIR}/multimedia/xmms
.endif
.if defined(WITH_FAAD)
CONFIGURE_ARGS+= --enable-faad
LIB_DEPENDS+= faad.0:${PORTSDIR}/audio/faad
.endif
.if defined(WITH_FREETYPE)
CONFIGURE_ARGS+= --with-extraincdir=${LOCALBASE}/include/freetype2 \
--enable-freetype
LIB_DEPENDS+= freetype.9:${PORTSDIR}/print/freetype2
.else
RUN_DEPENDS+= ${LOCALBASE}/share/mplayer/fonts:${PORTSDIR}/multimedia/mplayer-fonts
CONFIGURE_ARGS+= --disable-freetype
.endif
.if defined(WITH_XANIM)
BUILD_DEPENDS+= xanim:${PORTSDIR}/multimedia/xanim
CONFIGURE_ARGS+=--enable-xanim --with-xanimlibdir=${X11BASE}/lib/X11/xanim
.else
CONFIGURE_ARGS+=--disable-xanim
.endif
# "enable" build for other archs
.if ${ARCH} == "i386"
.if !defined(WITHOUT_RUNTIME_CPUDETECTION)
CONFIGURE_ARGS+=--enable-runtime-cpudetection
.else #WITHOUT_RUNTIME_CPUDETECTION
.if defined(WITHOUT_MMX)
CONFIGURE_ARGS+=--disable-mmx
.endif
.if defined(WITHOUT_3DNOW) || ${OSVERSION} < 400021
CONFIGURE_ARGS+=--disable-3dnow
.endif
.if defined(WITHOUT_DSP) || defined(WITHOUT_3DNOW) || ${OSVERSION} < 400021
CONFIGURE_ARGS+=--disable-3dnowex
.endif
.if defined(WITHOUT_SSE)
CONFIGURE_ARGS+=--disable-mmx2 --disable-sse
.endif
.endif #WITHOUT_RUNTIME_CPUDETECTION
.if !defined(WITH_SVGALIB)
CONFIGURE_ARGS+=--disable-svga
.endif
.if !defined(WITH_AALIB)
CONFIGURE_ARGS+=--disable-aa
.endif
.if !defined(WITH_SDL)
CONFIGURE_ARGS+=--disable-sdl
.endif
.if !defined(WITH_VORBIS)
CONFIGURE_ARGS+=--disable-vorbis
.endif
.if !defined(WITHOUT_WIN32_CODECS)
RUN_DEPENDS+= ${CODEC_DETECTION_FILE}:${CODEC_PORT}
CONFIGURE_ARGS+= --with-win32libdir=${LOCALBASE}/lib/win32
CODEC_PORT= ${PORTSDIR}/multimedia/win32-codecs
CODEC_DETECTION_FILE!= ${MAKE} -f ${CODEC_PORT}/Makefile -V CODEC_DETECTION_FILE
.else
CONFIGURE_ARGS+= --disable-win32 \
--disable-qtx-codecs
.endif
.endif # ARCH == i386
pre-everything::
@${ECHO_MSG} "N - O - T - E"
@${ECHO_MSG} ""
@${ECHO_MSG} "Take a careful look into the Makefile in order"
@${ECHO_MSG} "to learn how to tune mplayer towards you personal preferences!"
@${ECHO_MSG} "For example,"
@${ECHO_MSG} "make WITH_GUI=yes"
@${ECHO_MSG} "builds MPlayer with GUI support."
.if defined(WITH_GUI)
@${ECHO_MSG} "If you want to use the GUI, you can either install"
@${ECHO_MSG} "${PORTSDIR}/multimedia/mplayer-skins"
@${ECHO_MSG} "or download official skin collections from"
@${ECHO_MSG} "http://www.mplayerhq.hu/homepage/dload.html"
.endif
post-patch:
@${REINPLACE_CMD} -e \
's|libxmms.so.1|libxmms.so|' \
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
@${REINPLACE_CMD} -Ee 's#-pthread|-lc_r#${PTHREAD_LIBS}#g' \
${WRKSRC}/configure
pre-configure:
.if defined(WITH_LIBDVDREAD)
@${RM} -Rf ${WRKSRC}/libmpdvdkit2/
.endif
post-configure:
@${REINPLACE_CMD} -e 's#-pthread#${PTHREAD_LIBS}#g' \
${WRKSRC}/config.mak
post-install:
@${MKDIR} ${DATADIR}
@${CHMOD} 755 ${DATADIR}
@${MKDIR} ${DATADIR}/tools
@${CHMOD} 755 ${DATADIR}/tools
.for conf in ${CONFFILES}
${INSTALL_DATA} ${WRKSRC}/etc/${conf} ${DATADIR}
.endfor
.for tool in ${TOOLFILES}
${INSTALL_SCRIPT} ${WRKSRC}/TOOLS/${tool} ${DATADIR}/tools
.endfor
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
@${CHMOD} 755 ${DOCSDIR}
.for doc in ${DOCFILES}
@${INSTALL_DATA} ${WRKSRC}/DOCS/${doc} ${DOCSDIR}
.endfor
.endif
.if defined(WITH_GUI)
@${LN} -sf ${PREFIX}/bin/mplayer ${PREFIX}/bin/gmplayer
.endif
@${CAT} ${.CURDIR}/pkg-message
install-user:
@${PERL} ${FILESDIR}/install-user
.include <bsd.port.post.mk>