aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkoobs <koobs@FreeBSD.org>2014-12-27 18:17:54 +0800
committerkoobs <koobs@FreeBSD.org>2014-12-27 18:17:54 +0800
commit87ae2d4fbb071665d280615c8322e7a3d0eb2f0a (patch)
tree7e2f9bf1ed55fe254237e63d9e197067e1d62393
parent115ac8c5984935315bb39886d984f0258753e51b (diff)
downloadfreebsd-ports-gnome-87ae2d4fbb071665d280615c8322e7a3d0eb2f0a.tar.gz
freebsd-ports-gnome-87ae2d4fbb071665d280615c8322e7a3d0eb2f0a.tar.zst
freebsd-ports-gnome-87ae2d4fbb071665d280615c8322e7a3d0eb2f0a.zip
multimedia/x264: Use libx264's config headers
An encoding error condition is created when HI10P is enabled in libx264, since the x264 is not built with that options. Make x264 use the headers provided by the libx264 port, not the ones that come with the sources, so the configuration options between the two ports (libx264 and x264) can't end up mismatched. Thanks to astrodog and a_b (IRC) for coming up with an elegant solution. [1] While I'm here: - Update COMMENT to reflect this is just the x264 CLI frontend - Add LICENSE_FILE - Tweak BUILD_DEPENDS - Sort USES and OPTIONS - Update GCC_DESC to match libx264 - Use OPTIONS helpers (except for PGO & GCC .. *shakes fist*) - Sort PLIST_* - Remove conditional LDFLAGS (-fstack-protector is now handled by the framework) - Whitespace alignment - Remove pkgconfig REINPLACE_CMD, its not needed here. - Strip x264 binary x264 PR: 195292 [1] Submitted by: Harrison Grundy <harrison dot grundy at astrodoggroup com>
-rw-r--r--multimedia/x264/Makefile67
1 files changed, 25 insertions, 42 deletions
diff --git a/multimedia/x264/Makefile b/multimedia/x264/Makefile
index edd6c1ba24ff..6e6e0e47056a 100644
--- a/multimedia/x264/Makefile
+++ b/multimedia/x264/Makefile
@@ -19,6 +19,7 @@
PORTNAME= x264
PORTVERSION= 0.${X264_BUILD}.${X264_REV}
+PORTREVISION= 1
CATEGORIES= multimedia
MASTER_SITES= ftp://ftp.videolan.org/pub/videolan/x264/snapshots/ \
http://samples.mplayerhq.hu/yuv4mpeg2/:pgo
@@ -28,12 +29,13 @@ DIST_SUBDIR= x264
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= koobs@FreeBSD.org
-COMMENT= Tool for encoding H.264/AVC video streams
+COMMENT= Front-end for encoding H.264/MPEG-4 AVC video
LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= yasm>=0.6.0:${PORTSDIR}/devel/yasm \
- ${LOCALBASE}/bin/bash:${PORTSDIR}/shells/bash
+ bash:${PORTSDIR}/shells/bash
LIB_DEPENDS= libx264.so:${PORTSDIR}/multimedia/libx264
X264_BUILD= 142
@@ -42,24 +44,35 @@ X264_COMMIT= 021c0dc6c95c1bc239c9db78a80dd85fc856a4dd
X264_GITVER= ${X264_COMMIT:C/^(.......).*$/\1/g}
X264_SNAPSHOT= 20140827
-USES= gmake tar:bzip2 pkgconfig
+USES= gmake pkgconfig tar:bzip2
WRKSRC= ${WRKDIR}/${DISTNAME}
USE_LDCONFIG= yes
HAS_CONFIGURE= yes
-OPTIONS_DEFINE= ASM DEBUG PGO GCC GPAC LAVF
+OPTIONS_DEFINE= ASM DEBUG GCC GPAC LAVF PGO
OPTIONS_DEFAULT= ASM GPAC
-GCC_DESC= Force use of modern GCC
+
+GCC_DESC= Use current GCC
GPAC_DESC= MPEG-4 output support
LAVF_DESC= libav* format input/output support (requires FFmpeg)
+ASM_CONFIGURE_OFF= --disable-asm
+DEBUG_CONFIGURE_ON= --enable-debug
+GPAC_LIB_DEPENDS= libgpac.so:${PORTSDIR}/multimedia/gpac-libgpac
+GPAC_CONFIGURE_OFF= --disable-gpac
+LAVF_LIB_DEPENDS= libavcodec.so:${PORTSDIR}/multimedia/ffmpeg \
+ libavformat.so:${PORTSDIR}/multimedia/ffmpeg \
+ libavutil.so:${PORTSDIR}/multimedia/ffmpeg \
+ libswscale.so:${PORTSDIR}/multimedia/ffmpeg
+LAVF_CONFIGURE_OFF= --disable-swscale --disable-lavf
+
CONFIGURE_ARGS+= --extra-cflags="-I${LOCALBASE}/include" \
--extra-ldflags="-L${LOCALBASE}/lib" \
--disable-opencl \
--system-libx264
-PLIST_SUB+= X264_BUILD=${X264_BUILD}
PLIST_FILES= bin/x264
+PLIST_SUB+= X264_BUILD=${X264_BUILD}
.include <bsd.port.options.mk>
@@ -69,49 +82,19 @@ USE_GCC= yes
USE_GCC= any
.endif
-.if !${PORT_OPTIONS:MASM}
-CONFIGURE_ARGS+= --disable-asm
-.endif
-
-.if ${PORT_OPTIONS:MDEBUG} || defined(WITH_DEBUG)
-CONFIGURE_ARGS+= --enable-debug
-.endif
-
-# Around the time GCC stack protection (aka Propolice) for userland
-# was enabled on src/share/mk/bsd.sys.mk
-# SVN rev 180012 on 2008-06-25 21:33:28Z by ru
-.if ${OSVERSION} >= 800040
-LDFLAGS+= -fstack-protector
-.endif
-
.if ${PORT_OPTIONS:MPGO}
# y4m sample video
-Y4M_VIDEO=example.y4m
-Y4M_VIDEO_DISTFILE=example.y4m.bz2
+Y4M_VIDEO= example.y4m
+Y4M_VIDEO_DISTFILE= example.y4m.bz2
DISTFILES+= ${Y4M_VIDEO_DISTFILE}:pgo
ALL_TARGET= fprofiled
MAKE_ENV+= VIDS="${WRKDIR}/${Y4M_VIDEO}"
-RESTRICTED= ${Y4M_VIDEO_DISTFILE} file may not be mirrored
+RESTRICTED= ${Y4M_VIDEO_DISTFILE} file may not be mirrored
RESTRICTED_FILES= ${Y4M_VIDEO_DISTFILE}
.endif
-.if ${PORT_OPTIONS:MGPAC}
-LIB_DEPENDS+= libgpac.so:${PORTSDIR}/multimedia/gpac-libgpac
-.else
-CONFIGURE_ARGS+= --disable-gpac
-.endif
-
-.if ${PORT_OPTIONS:MLAVF}
-LIB_DEPENDS+= libavcodec.so:${PORTSDIR}/multimedia/ffmpeg
-LIB_DEPENDS+= libavformat.so:${PORTSDIR}/multimedia/ffmpeg
-LIB_DEPENDS+= libavutil.so:${PORTSDIR}/multimedia/ffmpeg
-LIB_DEPENDS+= libswscale.so:${PORTSDIR}/multimedia/ffmpeg
-.else
-CONFIGURE_ARGS+= --disable-swscale --disable-lavf
-.endif
-
post-extract:
.if ${PORT_OPTIONS:MPGO}
@( cd ${WRKDIR} && ${BZIP2_CMD} -dc ${DISTDIR}/${DIST_SUBDIR}/${Y4M_VIDEO_DISTFILE} > ${Y4M_VIDEO} )
@@ -127,9 +110,9 @@ post-patch:
s|VER="x"|VER="${X264_REV} ${X264_GITVER}"|; \
s|VERSION=""|VERSION=" r${X264_REV} ${X264_GITVER}"|' \
${WRKSRC}/version.sh
- @${REINPLACE_CMD} -e 's|$$(libdir)/pkgconfig|${PREFIX}/libdata/pkgconfig|; \
- s|$${libdir}/pkgconfig|${PREFIX}/libdata/pkgconfig|' \
- ${WRKSRC}/Makefile
+
+pre-build:
+ @(${RM} ${WRKSRC}/x264_config.h)
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/x264