ports/121636: [PATCH] multimedia/ffmpeg add OPTIONS and improvements
Martin Matuska
mm at FreeBSD.org
Wed Mar 12 09:10:03 UTC 2008
>Number: 121636
>Category: ports
>Synopsis: [PATCH] multimedia/ffmpeg add OPTIONS and improvements
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Wed Mar 12 09:10:03 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Martin Matuska
>Release: FreeBSD 7.0-RELEASE i386 and amd64
>Organization:
>Environment:
System: FreeBSD 7.0-RELEASE i386 and amd64
>Description:
- move knobs into OPTIONS, make (almost) everything selectable
- add option VHOOK to disable video hooks
- patch configure to support enable/disable of freetype2 and imlib2 vhooks
- fix imlib2 detection if no ${X11BASE}/include/X11/Xlib.h present
Tested on tinderbox (i386 and amd64).
>How-To-Repeat:
>Fix:
Index: ports/multimedia/ffmpeg/Makefile
===================================================================
RCS file: /home/pcvs/ports/multimedia/ffmpeg/Makefile,v
retrieving revision 1.77
diff -u -r1.77 Makefile
--- ports/multimedia/ffmpeg/Makefile 11 Mar 2008 21:13:38 -0000 1.77
+++ ports/multimedia/ffmpeg/Makefile 12 Mar 2008 08:51:13 -0000
@@ -7,7 +7,7 @@
PORTNAME= ffmpeg
DISTVERSION= 2007-10-04
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= multimedia audio ipv6 net
MASTER_SITES= ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= ahze
@@ -21,6 +21,26 @@
USE_GMAKE= yes
WANT_SDL= yes
+OPTIONS= AMR_NB "AMR narrowband encoder" off \
+ AMR_WB "AMR wideband encoder" off \
+ FAAC "FAAC mp4/aac audio encoder" off \
+ FAAD "FAAD mp4/aac audio decoder" on \
+ GSM "gsm audio codec" off \
+ IPV6 "IPV6 network support" on \
+ LAME "lame MP3 codec" off \
+ LIBA52 "liba52 support" on \
+ OGG "OGG codec" on \
+ OPTIMIZED_CFLAGS "Additional optimizations" off \
+ SDL "SDL support (build ffplay)" off \
+ SWSCALER "Software scaler support" off \
+ THEORA "libtheora support (implies OGG)" on \
+ VHOOK "video hooking" on \
+ VHOOK_FREETYPE2 "drawtext support (implies VHOOK)" off \
+ VHOOK_IMLIB2 "imlib2 support (implies VHOOK)" off \
+ VORBIS "libvorbisenc support (implies OGG)" on \
+ X264 "X.264 codec" on \
+ XVID "XVID codec" off
+
.include <bsd.port.pre.mk>
CONFIGURE_ARGS+=--cc="${CC}" --prefix="${PREFIX}" \
@@ -86,29 +106,38 @@
#CONFIGURE_ARGS+= --enable-libdts
#.endif
## faac
-.ifdef(WITH_FAAC) || exists(${LOCALBASE}/lib/libfaac.so)
-LIB_DEPENDS+= faac.0:${PORTSDIR}/audio/faac
+.ifdef(WITH_FAAC)
+LIB_DEPENDS+= faac.0:${PORTSDIR}/audio/faac
CONFIGURE_ARGS+= --enable-libfaac
+.else
+CONFIGURE_ARGS+= --disable-libfaac
.endif
+
## faad
-.ifndef(WITHOUT_FAAD) || exists(${LOCALBASE}/lib/libfaad.so)
+.ifndef(WITHOUT_FAAD)
LIB_DEPENDS+= faad.0:${PORTSDIR}/audio/faad
-
CONFIGURE_ARGS+= --enable-libfaad \
--enable-libfaadbin
+.else
+CONFIGURE_ARGS+= --disable-libfaad
.endif
+
## amr
-.ifdef(WITH_AMR_NB) || exists($LOCALBASE}/lib/libamrnb.so)
+.ifdef(WITH_AMR_NB)
LIB_DEPENDS+= amrnb.3:${PORTSDIR}/audio/libamrnb
-
CONFIGURE_ARGS+= --enable-libamr-nb
+.else
+CONFIGURE_ARGS+= --disable-libamr-nb
.endif
-.ifdef(WITH_AMR_WB) || exists($LOCALBASE}/lib/libamrwb.so)
-LIB_DEPENDS+= amrwb.3:${PORTSDIR}/audio/libamrwb
+.ifdef(WITH_AMR_WB)
+LIB_DEPENDS+= amrwb.3:${PORTSDIR}/audio/libamrwb
CONFIGURE_ARGS+= --enable-libamr-wb
+.else
+CONFIGURE_ARGS+= --disable-libamr-wb
.endif
+
USE_RC_SUBR= ffserver
.if ${MACHINE_CPU:Mmmx}==""
@@ -117,28 +146,32 @@
WITHOUT_BUILTIN_VECTOR= yes
.endif
## gsm
-.ifdef(WITH_GSM) || exists(${LOCALBASE}/lib/libgsm.so)
+.ifdef(WITH_GSM)
LIB_DEPENDS+= gsm.1:${PORTSDIR}/audio/gsm
CONFIGURE_ARGS+= --enable-libgsm
+.else
+CONFIGURE_ARGS+= --disable-libgsm
.endif
## mp3
-.ifdef(WITH_LAME) || exists(${LOCALBASE}/lib/libmp3lame.so) || defined(WITH_MP3)
+.ifdef(WITH_LAME)
LIB_DEPENDS+= mp3lame.0:${PORTSDIR}/audio/lame
-
CONFIGURE_ARGS+= --enable-libmp3lame
+.else
+CONFIGURE_ARGS+= --disable-libmp3lame
.endif
+
## ogg
-.ifndef(WITHOUT_OGG) || exists(${LOCALBASE}/lib/libogg.so)
+.if !defined(WITHOUT_OGG) || !defined(WITHOUT_VORBIS) || !defined(WITHOUT_THEORA)
LIB_DEPENDS+= ogg.5:${PORTSDIR}/audio/libogg
-
CONFIGURE_ARGS+= --enable-libogg
+.else
+CONFIGURE_ARGS+= --disable-libogg
.endif
## SDL
-.ifdef(WITH_SDL) || ${HAVE_SDL:Msdl}
+.ifdef(WITH_SDL)
USE_SDL+= sdl
-
PLIST_FILES+= bin/ffplay
.if !defined(NOPORTDOCS)
MAN1+= ffplay.1
@@ -152,24 +185,29 @@
CONFIGURE_ARGS+= --enable-swscaler
PLIST_SUB+= SWSCAL=""
.else
+CONFIGURE_ARGS+= --disable-swscaler
PLIST_SUB+= SWSCAL="@comment "
.endif
## theora
.if !defined(WITHOUT_THEORA)
-WITH_OGG= yes
LIB_DEPENDS+= theora.0:${PORTSDIR}/multimedia/libtheora
CONFIGURE_ARGS+= --enable-libtheora
+.else
+CONFIGURE_ARGS+= --disable-libtheora
.endif
+
## vorbis
.if !defined(WITHOUT_VORBIS)
-WITH_OGG= yes
LIB_DEPENDS+= vorbisenc.2:${PORTSDIR}/audio/libvorbis
CONFIGURE_ARGS+= --enable-libvorbis
FFMPEG_CFLAGS+= -I${LOCALBASE}/include/vorbis
+.else
+CONFIGURE_ARGS+= --disable-libvorbis
.endif
+
# x264
.ifndef(WITHOUT_X264)
LIB_DEPENDS+= x264.50:${PORTSDIR}/multimedia/x264
@@ -182,84 +220,46 @@
.if !defined(WITHOUT_BUILTIN_VECTOR) && defined(WITH_BUILTIN_VECTOR)
FFMPEG_CFLAGS+= -msse
.endif
-. ifdef(WITH_FREETYPE2) || exists(${LOCALBASE}/lib/libfreetype.so)
-LIB_DEPENDS+= freetype.9:${PORTSDIR}/print/freetype2
-PLIST_FILES+= lib/vhook/drawtext.so
+.if !defined(WITHOUT_VHOOK) || defined(WITH_VHOOK_FREETYPE2) || defined(WITH_VHOOK_IMLIB2)
+. ifdef(WITH_VHOOK_FREETYPE2)
+LIB_DEPENDS+= freetype.9:${PORTSDIR}/print/freetype2
+PLIST_FILES+= lib/vhook/drawtext.so
+CONFIGURE_ARGS+= --enable-freetype2
+. else
+CONFIGURE_ARGS+= --disable-freetype2
. endif # freetype2
-. ifdef(WITH_IMLIB2) || exists(${LOCALBASE}/lib/libImlib2.so)
+. ifdef(WITH_VHOOK_IMLIB2)
USE_EFL+= imlib2
-
-PLIST_FILES+= lib/vhook/imlib2.so
+. if !exists(${LOCALBASE}/include/X11/Xlib.h)
+CFLAGS+= -DX_DISPLAY_MISSING
+. endif
+PLIST_FILES+= lib/vhook/imlib2.so
+CONFIGURE_ARGS+= --enable-imlib2
. else
-WITHOUT_IMLIB2= yes
+CONFIGURE_ARGS+= --disable-imlib2
. endif # imlib2
+CONFIGURE_ARGS+= --enable-vhook
+PLIST_SUB+= VHOOK=""
+.else
+CONFIGURE_ARGS+= --disable-vhook
+PLIST_SUB+= VHOOK="@comment "
+. endif
## xvid
-.ifdef(WITH_XVID) || exists(${LOCALBASE}/lib/libxvidcore.so)
+.ifdef(WITH_XVID)
LIB_DEPENDS+= xvidcore.4:${PORTSDIR}/multimedia/xvid
-
CONFIGURE_ARGS+= --enable-libxvid
+.else
+CONFIGURE_ARGS+= --disable-libxvid
.endif
-pre-everything::
-.ifndef(WITHOUT_A52)
- @${ECHO_MSG} 'You can disable liba52 support by defining WITHOUT_LIBA52'
- @${ECHO_MSG}
-.endif
-#.ifndef(WITH_DTS)
-# @${ECHO_MSG} 'Define WITH_DTS to enable DTS codec'
-# @${ECHO_MSG}
-#.endif
-.ifndef(WITH_FAAC)
- @${ECHO_MSG} 'Define WITH_FAAC to enable FAAC mp4/aac audio encoder'
- @${ECHO_MSG}
-.endif
-.ifndef(WITHOUT_FAAD)
- @${ECHO_MSG} 'Define WITHOUT_FAAD to disable FAAD mp4/aac audio decoder'
- @${ECHO_MSG}
-.endif
-.ifndef(WITH_FREETYPE2)
- @${ECHO_MSG} 'Define WITH_FREETYPE2 to enable VHOOK drawtext FREETYPE2 codec'
- @${ECHO_MSG}
-.endif
-.ifndef(WITHOUT_IPV6)
- @${ECHO_MSG} 'Define WITHOUT_IPV6 to disable IPV6 network support'
- @${ECHO_MSG}
-.endif
-.ifndef(WITH_LAME)
- @${ECHO_MSG} 'Define WITH_LAME to enable lame MP3 codec'
- @${ECHO_MSG}
-.endif
-.ifndef(WITH_OGG)
- @${ECHO_MSG} 'Define WITH_OGG to enable OGG codec'
- @${ECHO_MSG}
-.endif
-.ifndef(WITH_OPTIMIZED_CFLAGS)
- @${ECHO_MSG} 'You can enable additional compilation optimizations'
- @${ECHO_MSG} 'by defining WITH_OPTIMIZED_CFLAGS'
- @${ECHO_MSG}
-.endif
-.ifndef(WITH_SWSCALER)
- @${ECHO_MSG} 'Define WITH_SWSCALER to enable software scaler support'
- @${ECHO_MSG} 'Warning: swscaler does not work with VLC!'
- @${ECHO_MSG}
-.endif
-.ifndef(WITHOUT_THEORA)
- @${ECHO_MSG} 'Define WITHOUT_THEORA to disable libtheora support'
- @${ECHO_MSG}
-.endif
-.ifndef(WITHOUT_VORBIS)
- @${ECHO_MSG} 'Define WITHOUT_VORBIS to enable libvorbisenc VORBIS codec'
- @${ECHO_MSG}
-.endif
-.ifndef(WITHOUT_X264)
- @${ECHO_MSG} 'Define WITHOUT_X264 to disable X264 codec'
- @${ECHO_MSG}
+pre-configure:
+.if defined(WITHOUT_OGG) && (!defined(WITHOUT_VORBIS) || !defined(WITHOUT_THEORA))
+ @${ECHO_MSG} WITH_VORBIS or WITH_THEORA defined, libogg will be built
.endif
-.ifndef(WITH_XVID)
- @${ECHO_MSG} 'Define WITH_XVID to enable XVID codec'
- @${ECHO_MSG}
+.if defined(WITHOUT_VHOOK) && (defined(WITH_VHOOK_FREETYPE2) || defined(WITH_VHOOK_IMLIB2))
+ @${ECHO_MSG} WITH_VHOOK_FREETYPE2 or WITH_VHOOK_IMLIB2 defined, video hooks will be built
.endif
post-patch:
@@ -340,11 +340,11 @@
fi
.ifndef(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
-.for file in ${DOC_FILES}
- ${INSTALL_DATA} ${WRKSRC}/${file} ${DOCSDIR}
+.for FILE in ${DOC_FILES}
+ ${INSTALL_DATA} ${WRKSRC}/${FILE} ${DOCSDIR}
.endfor
-.for file in ${DOC_DOCFILES}
- ${INSTALL_DATA} ${WRKSRC}/doc/${file} ${DOCSDIR}
+.for FILE in ${DOC_DOCFILES}
+ ${INSTALL_DATA} ${WRKSRC}/doc/${FILE} ${DOCSDIR}
.endfor
.endif
Index: ports/multimedia/ffmpeg/pkg-plist
===================================================================
RCS file: /home/pcvs/ports/multimedia/ffmpeg/pkg-plist,v
retrieving revision 1.19
diff -u -r1.19 pkg-plist
--- ports/multimedia/ffmpeg/pkg-plist 9 Oct 2007 18:19:18 -0000 1.19
+++ ports/multimedia/ffmpeg/pkg-plist 12 Mar 2008 08:51:13 -0000
@@ -47,10 +47,10 @@
%%SWSCAL%%lib/libswscale.so
%%SWSCAL%%lib/libswscale.so.%%SHLIB_VER%%
%%SWSCAL%%lib/libswscale.so.0.5.0
-lib/vhook/fish.so
-lib/vhook/null.so
-lib/vhook/ppm.so
-lib/vhook/watermark.so
+%%VHOOK%%lib/vhook/fish.so
+%%VHOOK%%lib/vhook/null.so
+%%VHOOK%%lib/vhook/ppm.so
+%%VHOOK%%lib/vhook/watermark.so
libdata/pkgconfig/libavcodec.pc
libdata/pkgconfig/libavformat.pc
libdata/pkgconfig/libavutil.pc
Index: ports/multimedia/ffmpeg/files/patch-configure
===================================================================
RCS file: /home/pcvs/ports/multimedia/ffmpeg/files/patch-configure,v
retrieving revision 1.5
diff -u -r1.5 patch-configure
--- ports/multimedia/ffmpeg/files/patch-configure 29 Jul 2007 00:46:07 -0000 1.5
+++ ports/multimedia/ffmpeg/files/patch-configure 12 Mar 2008 08:51:13 -0000
@@ -1,6 +1,6 @@
---- configure.orig 2007-07-08 13:47:15.000000000 -0400
-+++ configure 2007-07-09 12:37:09.000000000 -0400
-@@ -210,11 +210,11 @@
+--- configure.orig 2007-09-29 22:25:06.000000000 +0200
++++ configure 2008-03-12 08:59:27.000000000 +0100
+@@ -211,11 +211,11 @@
# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z"
toupper(){
@@ -14,7 +14,19 @@
}
set_all(){
-@@ -992,15 +992,9 @@
+@@ -604,9 +604,11 @@
+ ffmpeg
+ ffplay
+ ffserver
++ freetype2
+ gpl
+ gprof
+ gray
++ imlib2
+ ipv6
+ liba52
+ liba52bin
+@@ -1033,15 +1035,9 @@
enable fast_unaligned
;;
x86_64|amd64)
@@ -32,7 +44,38 @@
;;
# armv4l is a subset of armv[567]*l
arm|armv[4567]*l)
-@@ -1734,12 +1728,6 @@
+@@ -1491,8 +1487,8 @@
+
+ if check_func dlopen; then
+ ldl=
+-elif check_func dlopen -ldl; then
+- ldl=-ldl
++elif check_func dlopen ; then
++ ldl=
+ fi
+
+ check_func fork
+@@ -1597,10 +1593,17 @@
+ if enabled vhook; then
+ check_ldflags -rdynamic
+ check_ldflags -export-dynamic
++ if enabled imlib2; then
++ check_foo_config imlib2 imlib2 Imlib2.h imlib_load_font
++ fi
++ if enabled freetype2; then
++ check_foo_config freetype2 freetype ft2build.h FT_Init_FreeType
++ fi
++else
++ disable imlib2
++ disable freetype2
+ fi
+
+-check_foo_config imlib2 imlib2 Imlib2.h imlib_load_font
+-check_foo_config freetype2 freetype ft2build.h FT_Init_FreeType
+
+ ##########################################
+ # SDL check
+@@ -1705,12 +1708,6 @@
check_cflags -Os # not all compilers support -Os
optimize="small"
elif enabled optimize; then
@@ -45,7 +88,7 @@
fi
# PIC flags for shared library objects where they are needed
-@@ -1927,15 +1915,15 @@
+@@ -1894,15 +1891,15 @@
if enabled shared; then
echo "BUILD_SHARED=yes" >> config.mak
echo "PIC=-fPIC -DPIC" >> config.mak
@@ -53,20 +96,29 @@
+ echo "SPPMAJOR=1" >> config.mak
echo "SPPVERSION=$pp_version" >> config.mak
- echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
-+ echo "LAVCMAJOR=%%SHLIB_VER%%" >> config.mak
++ echo "LAVCMAJOR=1" >> config.mak
echo "LAVCVERSION=$lavc_version" >> config.mak
- echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
-+ echo "LAVFMAJOR=%%SHLIB_VER%%" >> config.mak
++ echo "LAVFMAJOR=1" >> config.mak
echo "LAVFVERSION=$lavf_version" >> config.mak
- echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
-+ echo "LAVUMAJOR=%%SHLIB_VER%%" >> config.mak
++ echo "LAVUMAJOR=1" >> config.mak
echo "LAVUVERSION=$lavu_version" >> config.mak
- echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
-+ echo "SWSMAJOR=%%SHLIB_VER%%" >> config.mak
++ echo "SWSMAJOR=1" >> config.mak
echo "SWSVERSION=$sws_version" >> config.mak
echo "SLIBNAME=${SLIBNAME}" >> config.mak
echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
-@@ -1969,7 +1957,7 @@
+@@ -1911,7 +1908,7 @@
+ echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
+ fi
+ echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
+-echo "EXTRALIBS=$extralibs" >> config.mak
++echo "EXTRALIBS=-L/usr/local/lib -L/usr/local/lib $extralibs" >> config.mak
+
+ print_config ARCH_ $TMPH config.mak $ARCH_LIST
+ print_config HAVE_ $TMPH config.mak $HAVE_LIST
+@@ -1932,7 +1929,7 @@
echo "SRC_PATH=\"$source_path\"" >> config.mak
echo "SRC_PATH_BARE=$source_path" >> config.mak
@@ -74,25 +126,25 @@
+echo "BUILD_ROOT=\"$(pwd)\"" >> config.mak
# Apparently it's not possible to portably echo a backslash.
- if enabled asmalign_pot; then
-@@ -2047,8 +2035,8 @@
+ enabled asmalign_pot &&
+@@ -2008,8 +2005,8 @@
Version: $version
Requires: $requires
Conflicts:
-Libs: -L\${libdir} $libs
-Cflags: -I\${includedir} -I\${includedir}/$include
-+Libs: -L\${libdir} $libs -L%%LOCALBASE%%/lib
-+Cflags: -I\${includedir} -I\${includedir}/$include -I%%LOCALBASE%%/include
++Libs: -L\${libdir} $libs -L/usr/local/lib
++Cflags: -I\${includedir} -I\${includedir}/$include -I/usr/local/include
EOF
}
-@@ -2071,7 +2059,8 @@
+@@ -2032,7 +2029,8 @@
Requires: $requires
Conflicts:
Libs: \${libdir}/${LIBPREF}${shortname}${LIBSUF} $libs
-Cflags: -I\${includedir}
-+Ldflags: -L%%LOCALBASE%%/lib
-+Cflags: -I\${includedir} -I%%LOCALBASE%%/include
++Ldflags: -L/usr/local/lib
++Cflags: -I\${includedir} -I/usr/local/include
EOF
}
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list