Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Mar 2008 10:02:06 +0100 (CET)
From:      Martin Matuska <mm@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/121636: [PATCH] multimedia/ffmpeg add OPTIONS and improvements
Message-ID:  <20080312090206.6A2BA11447@mail.vx.sk>
Resent-Message-ID: <200803120910.m2C9A3at029561@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080312090206.6A2BA11447>