blob: 68754bdf6face35d1afee968a3390487baaea004 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# Created by: Michael Johnson <ahze@FreeBSD.org>
#
# NOTES FOR UPDATING PORT:
#
# We use tarballs from the *stable* branch of the upstream git repository.
#
# X264_BUILD is the "core" number, and can be found in x264.h.
#
# X264_REV requires a checkout the git revision for the version the port
# is being updated to. Then run version.sh against it.
#
# Bumping PORTREVISION for dependent ports? This is useful:
# fgrep -lr --include='*/Makefile*' :multimedia/libx264 $PORTSDIR |
# sed 's,/Makefile.*,,' | xargs $PORTSDIR/Tools/scripts/bump-revision.sh
# or
# rg -l :multimedia/libx264 $PORTSDIR | xargs -n1 portedit bump-revision -i
PORTNAME= x264
PORTVERSION= 0.${X264_BUILD}.${X264_REV}
PORTREVISION?= 0
CATEGORIES= multimedia
MASTER_SITES= https://samples.mplayerhq.hu/yuv4mpeg2/:pgo
DIST_SUBDIR= x264
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= koobs@FreeBSD.org
COMMENT?= H.264/MPEG-4 AVC Video Encoding (Front End CLI)
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= bash:shells/bash
LIB_DEPENDS?= libx264.so:multimedia/libx264
X264_BUILD= 161
X264_REV= 3039
X264_GITVER= ${GL_COMMIT:C/^(.{7}).*/\1/}
USES?= pkgconfig
USES+= compiler:c11 gmake localbase shebangfix
USE_GITLAB= yes
USE_LDCONFIG= yes
GL_SITE= https://code.videolan.org
GL_ACCOUNT= videolan
GL_COMMIT= 544c61f082194728d0391fb280a6e138ba320a96
HAS_CONFIGURE= yes
SHEBANG_FILES= configure
PLIST_FILES?= bin/x264
OPTIONS_DEFINE+= BASH DEBUG FFMS LAVF PGO SWSCALE
OPTIONS_RADIO+= MP4
OPTIONS_RADIO_MP4+= GPAC LSMASH
OPTIONS_DEFAULT+= BASH FFMS LAVF LSMASH SWSCALE
.if make(makesum) # for optional distfiles
.MAKEFLAGS: WITH="${OPTIONS_DEFINE}"
.endif
FFMS_DESC= FFmpeg Source input support
GPAC_DESC= GPAC library support
LAVF_DESC= libav* format input support (requires FFmpeg)
LSMASH_DESC= L-SMASH library support
MP4_DESC= MPEG-4 output
SWSCALE_DESC= Resize video filter
BASH_BUILD_DEPENDS= bash-completion>0:shells/bash-completion
BASH_RUN_DEPENDS= bash-completion>0:shells/bash-completion
BASH_CONFIGURE_ENABLE= bashcompletion
BASH_PLIST_FILES= share/bash-completion/completions/x264
DEBUG_CONFIGURE_ENABLE= debug
DEBUG_CONFIGURE_OFF= --enable-strip
FFMS_LIB_DEPENDS= libffms2.so:multimedia/ffms2
FFMS_CONFIGURE_ENABLE= ffms
FFMS_IMPLIES= SWSCALE
GPAC_LIB_DEPENDS= libgpac.so:multimedia/gpac-libgpac
GPAC_CONFIGURE_ENABLE= gpac
LAVF_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \
libavformat.so:multimedia/ffmpeg \
libavutil.so:multimedia/ffmpeg
LAVF_CONFIGURE_ENABLE= lavf
LAVF_IMPLIES= SWSCALE
LSMASH_LIB_DEPENDS= liblsmash.so:multimedia/l-smash
LSMASH_CONFIGURE_ENABLE=lsmash
PGO_DISTFILES= ${Y4M_VIDEO_DISTFILE}:pgo
PGO_MAKE_ENV= VIDS="${WRKDIR}/${Y4M_VIDEO}"
PGO_ALL_TARGET= fprofiled
# y4m sample video
Y4M_VIDEO= example.y4m
Y4M_VIDEO_DISTFILE= example.y4m.bz2
PGO_VARS= USE_GCC=any \
RESTRICTED="${Y4M_VIDEO_DISTFILE} file may not be mirrored" \
RESTRICTED_FILES="${Y4M_VIDEO_DISTFILE}"
SWSCALE_LIB_DEPENDS= libavutil.so:multimedia/ffmpeg \
libswscale.so:multimedia/ffmpeg
SWSCALE_CONFIGURE_ENABLE= swscale
CONFIGURE_ARGS?= --system-libx264
CONFIGURE_ARGS+= --prefix="${PREFIX}" \
--extra-cflags="${CPPFLAGS} ${CFLAGS}" \
--extra-ldflags="${LDFLAGS}"
post-extract-PGO-on:
@${BZIP2_CMD} -dc ${DISTDIR}/${DIST_SUBDIR}/${Y4M_VIDEO_DISTFILE} \
>${WRKDIR}/${Y4M_VIDEO}
post-patch:
@${REINPLACE_CMD} -e ' \
s|gpac_static|gpac|g' \
${WRKSRC}/configure
@${REINPLACE_CMD} -e ' \
s|bash|sh|; \
s|VER="x"|VER="${X264_REV} ${X264_GITVER}"|; \
s|VERSION=""|VERSION=" r${X264_REV} ${X264_GITVER}"|' \
${WRKSRC}/version.sh
.if !target(pre-build)
pre-build:
@(${RM} ${WRKSRC}/x264_config.h)
.endif
.include <bsd.port.mk>
|