ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/mports/trunk/multimedia/ffmpeg0/Makefile
Revision: 23278
Committed: Mon Apr 30 22:48:10 2018 UTC (6 years ago) by laffer1
File size: 10905 byte(s)
Log Message:
fix build

File Contents

# Content
1 # $MidnightBSD$
2 # $FreeBSD: ports/multimedia/ffmpeg/Makefile,v 1.135 2011/08/22 21:14:34 mm Exp $
3
4 PORTNAME= ffmpeg
5 PORTVERSION= 0.7.17
6 PORTREVISION= 2
7 PORTEPOCH= 1
8 CATEGORIES= multimedia audio ipv6 net
9 MASTER_SITES= http://ffmpeg.org/releases/
10 PKGNAMESUFFIX= 0
11
12 MAINTAINER= ports@MidnightBSD.org
13 COMMENT= Realtime audio/video encoder/converter and streaming server
14
15 LICENSE= gpl2 lgpl2.1
16 LICENSE_COMB= multi
17 LICENSE_FILE_gpl2= ${WRKSRC}/COPYING.GPLv2
18 LICENSE_FILE_lgpl2.1= ${WRKSRC}/COPYING.LGPLv2.1
19
20 BUILD_DEPENDS= yasm:devel/yasm \
21 ${LOCALBASE}/bin/as:devel/binutils \
22 ${LOCALBASE}/bin/texi2html:textproc/texi2html
23
24 PORTSCOUT= limit:^0\.7.*
25
26 USES= cpe gmake perl5 pkgconfig tar:bzip2 shebangfix
27 USE_LDCONFIG= ${PREFIX}/lib/ffmpeg${FFMPEG_SUFFIX}
28 USE_PERL5= build
29
30 FFMPEG_SUFFIX= 0
31 HAS_CONFIGURE= yes
32 CONFIGURE_LOG= config.err
33 CONFIGURE_ENV+= EXESUF="${FFMPEG_SUFFIX}"
34 MAKE_ARGS+= EXESUF="${FFMPEG_SUFFIX}"
35 PLIST_SUB+= SUFF="${FFMPEG_SUFFIX}"
36 PROGS= ffmpeg ffprobe
37
38 CONFIGURE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
39 MAKE_ENV+= COMPILER_PATH=${LOCALBASE}/bin V=1
40
41 CONFIGURE_ARGS+=--prefix="${PREFIX}" \
42 --mandir="${PREFIX}/man" \
43 --incdir="${PREFIX}/include/ffmpeg${FFMPEG_SUFFIX}" \
44 --libdir="${PREFIX}/lib/ffmpeg${FFMPEG_SUFFIX}" \
45 --shlibdir="${PREFIX}/lib/ffmpeg${FFMPEG_SUFFIX}" \
46 --datadir="${DATADIR}" \
47 --build-suffix="${FFMPEG_SUFFIX}" \
48 --enable-shared \
49 --enable-gpl \
50 --enable-postproc \
51 --enable-avfilter \
52 --enable-pthreads \
53 --enable-runtime-cpudetect \
54 --enable-memalign-hack \
55 --enable-pic \
56 --cc="${CC}" \
57 --extra-cflags="${FFMPEG_CFLAGS} -I${LOCALBASE}/include" \
58 --extra-ldflags="-L${LOCALBASE}/lib ${FFMPEG_LDFLAGS}" \
59 --extra-libs="-lpthread"
60
61 SHLIB_VER= 1
62 PLIST_SUB+= SHLIB_VER=${SHLIB_VER}
63
64 DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
65 DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
66
67 OPTIONS_DEFINE= AACPLUS ALSA AMR_NB AMR_WB CELT DEBUG DIRAC FAAC \
68 FFSERVER FREETYPE FREI0R GSM LAME OPENCV OPENJPEG \
69 OPTIMIZED_CFLAGS RTMP SCHROEDINGER SDL SPEEX THEORA VAAPI \
70 VDPAU VO_AACENC VO_AMRWBENC VORBIS VPX X11GRAB X264 XVID DOCS
71 OPTIONS_DEFAULT= FFSERVER FREETYPE FREI0R OPENCV SCHROEDINGER \
72 THEORA VORBIS VPX X264 XVID
73 OPTIONS_SUB= yes
74
75 FFSERVER_DESC= Build and install ffserver
76 X11GRAB_DESC= Enable x11 grabbing
77
78 ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
79 ALSA_CONFIGURE_OFF= --disable-indev=alsa \
80 --disable-outdev=alsa
81
82 CELT_LIB_DEPENDS= libcelt0.so:audio/celt
83 CELT_CONFIGURE_ENABLE= libcelt
84
85 DIRAC_LIB_DEPENDS= libdirac_encoder.so:multimedia/dirac
86 DIRAC_CONFIGURE_ENABLE= libdirac
87
88 DEBUG_CONFIGURE_ON= --disable-stripping
89 DEBUG_CONFIGURE_OFF= --disable-debug
90
91 FFSERVER_CONFIGURE_OFF= --disable-ffserver
92
93 FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2
94 FREETYPE_CONFIGURE_ENABLE= libfreetype
95
96 FREI0R_BUILD_DEPENDS= ${LOCALBASE}/include/frei0r.h:graphics/frei0r
97 FREI0R_CONFIGURE_ENABLE= frei0r
98
99 GSM_LIB_DEPENDS= libgsm.so:audio/gsm
100 GSM_CONFIGURE_ENABLE= libgsm
101
102 LAME_LIB_DEPENDS= libmp3lame.so:audio/lame
103 LAME_CONFIGURE_ENABLE= libmp3lame
104
105 OPENCV_LIB_DEPENDS= libopencv_imgproc.so:graphics/opencv-core
106 OPENCV_CONFIGURE_ENABLE= libopencv
107
108 OPENJPEG_LIB_DEPENDS= libopenjpeg.so:graphics/openjpeg15
109 OPENJPEG_CONFIGURE_ENABLE= libopenjpeg
110
111 RTMP_USE= OPENSSL=yes
112
113 SCHROEDINGER_LIB_DEPENDS= libschroedinger-1.0.so:multimedia/schroedinger
114 SCHROEDINGER_CONFIGURE_ENABLE= libschroedinger
115
116 SPEEX_LIB_DEPENDS= libspeex.so:audio/speex
117 SPEEX_CONFIGURE_ENABLE= libspeex
118
119 THEORA_LIB_DEPENDS= libtheora.so:multimedia/libtheora
120 THEORA_CONFIGURE_ENABLE= libtheora
121
122 X11GRAB_USE= XORG=x11,xext,xfixes
123 X11GRAB_CONFIGURE_ON= --enable-x11grab
124
125 X264_LIB_DEPENDS= libx264.so:multimedia/libx264
126 X264_CONFIGURE_ENABLE= libx264
127
128 XVID_LIB_DEPENDS= libxvidcore.so:multimedia/xvid
129 XVID_CONFIGURE_ENABLE= libxvid
130
131 VDPAU_BUILD_DEPENDS= ${LOCALBASE}/include/vdpau/vdpau.h:multimedia/libvdpau
132 VDPAU_CONFIGURE_ENABLE= vdpau
133
134 VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx
135 VPX_CONFIGURE_ENABLE= libvpx
136
137 COMPAT_HEADERS=libavcodec/avcodec.h \
138 libavcodec/opt.h \
139 libavcodec/vdpau.h \
140 libavcodec/xvmc.h \
141 libavdevice/avdevice.h \
142 libavfilter/avfilter.h \
143 libavformat/avformat.h \
144 libavformat/avio.h \
145 libavutil/adler32.h \
146 libavutil/avstring.h \
147 libavutil/avutil.h \
148 libavutil/base64.h \
149 libavutil/common.h \
150 libavutil/crc.h \
151 libavutil/fifo.h \
152 libavutil/intfloat_readwrite.h \
153 libavutil/log.h \
154 libavutil/lzo.h \
155 libavutil/mathematics.h \
156 libavutil/md5.h \
157 libavutil/mem.h \
158 libavutil/pixfmt.h \
159 libavutil/rational.h \
160 libavutil/sha1.h \
161 libpostproc/postprocess.h \
162 libswscale/swscale.h
163
164 .include <bsd.port.pre.mk>
165
166 .if ${OPSYS} == "FreeBSD" && ${OSVERSION} < 1000000
167 CONFIGURE_ARGS+= --enable-memalign-hack
168 .endif
169
170 .if ${ARCH} == armv6
171 CONFIGURE_ENV+= ASFLAGS=-no-integrated-as
172 CFLAGS+= -no-integrated-as
173 .endif
174
175 DOC_FILES= CREDITS INSTALL LICENSE MAINTAINERS README RELEASE
176 # under doc subdirectory
177 DOC_DOCFILES= APIchanges RELEASE_NOTES TODO *.txt *.html
178
179 .if ${PORT_OPTIONS:MFFSERVER}
180 USE_RC_SUBR= ffserver${FFMPEG_SUFFIX}
181 PROGS+= ffserver
182 .endif
183
184 # sse hardware vector support
185 .if defined(MACHINE_CPU) && (${MACHINE_CPU:Msse} == "sse" || ${MACHINE_CPU:Mamd64} == "amd64")
186 _BUILTIN_VECTOR= yes
187 .else
188 CONFIGURE_ARGS+= --disable-sse
189 .endif
190
191 # mmx support
192 .if defined(MACHINE_CPU) && ${MACHINE_CPU:Mmmx} == "" && ${MACHINE_CPU:Mamd64} == ""
193 CONFIGURE_ARGS+= --disable-mmx
194 _NO_BUILTIN_VECTOR= yes
195 .endif
196
197 # builtin vector, requires mmx and sse
198 .if !defined(_NO_BUILTIN_VECTOR) && defined(_BUILTIN_VECTOR)
199 CFLAGS+= -msse
200 .endif
201
202 # optimizations
203 .if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
204 CFLAGS+= -O3 -ffast-math -fno-finite-math-only -fomit-frame-pointer
205 .endif
206
207 #aacplus
208 .if ${PORT_OPTIONS:MAACPLUS}
209 FFMPEG_NONFREE= yes
210 LIB_DEPENDS+= libaacplus.so:audio/libaacplus
211 CONFIGURE_ARGS+= --enable-libaacplus
212 .else
213 CONFIGURE_ARGS+= --disable-libaacplus
214 .endif
215
216 # Opencore AMR NB
217 .if ${PORT_OPTIONS:MAMR_NB}
218 FFMPEG_LICENSE_GPL3= yes
219 LIB_DEPENDS+= libopencore-amrnb.so:audio/opencore-amr
220 CONFIGURE_ARGS+= --enable-libopencore-amrnb
221 .else
222 CONFIGURE_ARGS+= --disable-libopencore-amrnb
223 .endif
224
225 # Opencore AMR WB
226 .if ${PORT_OPTIONS:MAMR_WB}
227 FFMPEG_LICENSE_GPL3= yes
228 LIB_DEPENDS+= libopencore-amrwb.so:audio/opencore-amr
229 CONFIGURE_ARGS+= --enable-libopencore-amrwb
230 .else
231 CONFIGURE_ARGS+= --disable-libopencore-amrwb
232 .endif
233
234 # faac
235 .if ${PORT_OPTIONS:MFAAC}
236 FFMPEG_NONFREE= yes
237 LIB_DEPENDS+= libfaac.so:audio/faac
238 CONFIGURE_ARGS+= --enable-libfaac
239 .else
240 CONFIGURE_ARGS+= --disable-libfaac
241 .endif
242
243 # rtmp
244 .if ${PORT_OPTIONS:MRTMP}
245 LIB_DEPENDS+= librtmp.so:multimedia/librtmp
246 CONFIGURE_ARGS+= --enable-librtmp
247 . if ${OPENSSLBASE} != "/usr"
248 FFMPEG_CFLAGS+= -I${OPENSSLINC}
249 FFMPEG_LDFLAGS+= -L${OPENSSLLIB}
250 . endif
251 .else
252 CONFIGURE_ARGS+= --disable-librtmp
253 .endif
254
255 # sdl
256 .if ${PORT_OPTIONS:MSDL}
257 USE_SDL+= sdl
258 PLIST_FILES+= bin/ffplay${FFMPEG_SUFFIX} man/man1/ffplay${FFMPEG_SUFFIX}.1.gz
259 PROGS+= ffplay
260 .else
261 CONFIGURE_ARGS+= --disable-ffplay
262 .endif
263
264 # vaapi
265 .if ${PORT_OPTIONS:MVAAPI}
266 FFMPEG_LICENSE_GPL3= yes
267 LIB_DEPENDS+= libva.so:multimedia/libva
268 CONFIGURE_ARGS+= --enable-vaapi
269 .else
270 CONFIGURE_ARGS+= --disable-vaapi
271 .endif
272
273 # vo-aacenc
274 .if ${PORT_OPTIONS:MVO_AACENC}
275 FFMPEG_LICENSE_GPL3= yes
276 LIB_DEPENDS+= libvo-aacenc.so:audio/vo-aacenc
277 CONFIGURE_ARGS+= --enable-libvo-aacenc
278 .else
279 CONFIGURE_ARGS+= --disable-libvo-aacenc
280 .endif
281
282 # vo-amrwbenc
283 .if ${PORT_OPTIONS:MVO_AMRWBENC}
284 FFMPEG_LICENSE_GPL3= yes
285 LIB_DEPENDS+= libvo-amrwbenc.so:audio/vo-amrwbenc
286 CONFIGURE_ARGS+= --enable-libvo-amrwbenc
287 .else
288 CONFIGURE_ARGS+= --disable-libvo-amrwbenc
289 .endif
290
291 # vorbis
292 .if ${PORT_OPTIONS:MVORBIS}
293 LIB_DEPENDS+= libvorbisenc.so:audio/libvorbis
294 CONFIGURE_ARGS+= --enable-libvorbis
295 FFMPEG_CFLAGS+= -I${LOCALBASE}/include/vorbis
296 .else
297 CONFIGURE_ARGS+= --disable-libvorbis
298 .endif
299
300 # License knobs
301 .if defined(FFMPEG_NONFREE)
302 RESTRICTED= linking to libfaac or libaacplus restricts redistribution
303 CONFIGURE_ARGS+= --enable-nonfree
304 .endif
305
306 .if defined(FFMPEG_LICENSE_GPL3)
307 LICENSE+= GPLv3 LGPL3
308 LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPLv3
309 LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPLv3
310 CONFIGURE_ARGS+= --enable-version3
311 .endif
312
313 post-patch:
314 @${REINPLACE_CMD} -e 's|/usr/local/bin/perl|/usr/bin/perl|g' ${WRKSRC}/doc/texi2pod.pl
315 # {C,LD}FLAGS safeness
316 @${REINPLACE_CMD} -e 's|$$(LIBDIR)/pkgconfig|$$(DESTDIR)$$(prefix)/libdata/pkgconfig|' \
317 ${WRKSRC}/subdir.mak
318 @${REINPLACE_CMD} -e 's|/etc/ffserver.conf|${PREFIX}/etc/ffserver${FFMPEG_SUFFIX}.conf|' \
319 ${WRKSRC}/ffserver.c
320 @${REINPLACE_CMD} -E \
321 -e "s|(EXTRALIBS[[:space:]]*=)|\1-L${LOCALBASE}/lib |g; \
322 s|%%LOCALBASE%%|${LOCALBASE}|g; \
323 s|gsm/gsm.h|gsm.h|g" \
324 ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
325 @${REINPLACE_CMD} -e 's|-ldl||; s|$$(LIBMAJOR)|${SHLIB_VER}|g;' \
326 -e 's|opencv opencv/cxcore.h|opencv-core opencv2/core/core_c.h|g' \
327 -e 's|check_ldflags -Wl,--as-needed||' \
328 ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
329 .if ${PORT_OPTIONS:MSDL}
330 @${REINPLACE_CMD} -E \
331 -e 's|sdl-config|${SDL_CONFIG}|g' \
332 ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
333 @${FIND} ${WRKSRC} -type f | \
334 ${XARGS} -n 10 ${REINPLACE_CMD} -E \
335 -e 's|#include <SDL|#include <SDL/SDL|'
336 .endif
337
338 post-configure:
339 .if empty(PORT_OPTIONS:MTHEORA)
340 @${REINPLACE_CMD} -E \
341 -e 's|^(CONFIG_LIBTHEORA).*$$|\1=no|' \
342 ${WRKSRC}/config.mak
343 .endif
344 @${REINPLACE_CMD} -E \
345 -e 's|\$$\(INSTALL\) -m 644 \$$\(MANPAGES\) "\$$\(MANDIR\)/man1"||g' \
346 ${WRKSRC}/Makefile
347 @${REINPLACE_CMD} -E \
348 -e 's|\$$\$$\(INSTALL\) -m 644 \$$\$$\^ "\$$\(DESTDIR\)\$$\(prefix\)/libdata/pkgconfig"|\$$\$$\(INSTALL\) -m 644 \$$\$$\^ "\$$\(DESTDIR\)\$$\(prefix\)/libdata/pkgconfig/lib\$$\(NAME\)0.pc"|' \
349 ${WRKSRC}/subdir.mak
350
351 post-install:
352 .if ${PORT_OPTIONS:MFFSERVER}
353 ${INSTALL_DATA} ${WRKSRC}/doc/ffserver.conf ${STAGEDIR}${PREFIX}/etc/ffserver${FFMPEG_SUFFIX}.conf-dist
354 .endif
355 @${MKDIR} ${STAGEDIR}${DOCSDIR}
356 .for FILE in ${DOC_FILES}
357 ${INSTALL_DATA} ${WRKSRC}/${FILE} ${STAGEDIR}${DOCSDIR}
358 .endfor
359 .for FILE in ${DOC_DOCFILES}
360 ${INSTALL_DATA} ${WRKSRC}/doc/${FILE} ${STAGEDIR}${DOCSDIR}
361 .endfor
362 .for i in ${PROGS}
363 ${INSTALL_MAN} ${WRKSRC}/doc/${i}.1 ${STAGEDIR}${MANPREFIX}/man/man1/${i}0.1
364 .endfor
365 @${REINPLACE_CMD} \
366 -e 's|libavcodec|libavcodec0|' \
367 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libavformat0.pc
368 @${REINPLACE_CMD} \
369 -e 's|libavutil|libavutil0|' \
370 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libavcodec0.pc \
371 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libpostproc0.pc \
372 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libswscale0.pc
373 @${REINPLACE_CMD} \
374 -e 's|libavformat|libavformat0|' \
375 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libavdevice0.pc
376 @${RM} ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libavcodec0.pc.bak \
377 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libpostproc0.pc.bak \
378 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libswscale0.pc.bak \
379 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libavformat0.pc.bak \
380 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/libavdevice0.pc.bak
381
382 .include <bsd.port.post.mk>

Properties

Name Value
svn:keywords MidnightBSD=%H