Tweak multimedia/l-smash version 2.9.1
[dports.git] / multimedia / libav / Makefile
1 # $FreeBSD$
2
3 PORTNAME=       libav
4 PORTVERSION=    11.7
5 PORTREVISION=   3
6 CATEGORIES=     multimedia audio ipv6 net
7 MASTER_SITES=   http://libav.org/releases/
8
9 MAINTAINER=     dem.procopiou@gmail.com
10 COMMENT=        Realtime audio/video conversion library
11
12 BUILD_DEPENDS=  yasm:devel/yasm
13 LIB_DEPENDS=    libopencv_core.so:graphics/opencv2-core \
14                 libgmp.so:math/gmp \
15                 libvdpau.so:multimedia/libvdpau \
16                 libhogweed.so:security/nettle
17
18 USES=           cpe gmake perl5 pkgconfig tar:xz
19 USE_XORG=       x11
20 HAS_CONFIGURE=  yes
21 USE_PERL5=      build
22 USE_LDCONFIG=   ${PREFIX}/lib/${PORTNAME}
23
24 CPPFLAGS+=      -I${LOCALBASE}/include
25 CONFIGURE_ARGS= --prefix="${PREFIX}" \
26                 --libdir="${PREFIX}/lib/${PORTNAME}" \
27                 --shlibdir="${PREFIX}/lib/${PORTNAME}" \
28                 --incdir="${PREFIX}/include/${PORTNAME}" \
29                 --mandir="${PREFIX}/man" \
30                 --datadir="${DATADIR}" \
31                 --extra-ldflags="-L${LOCALBASE}/lib" \
32                 --enable-pthreads \
33                 --enable-shared \
34                 --enable-runtime-cpudetect \
35                 --disable-debug \
36                 --cc="${CC}"
37
38 OPTIONS_DEFINE= ALSA AMR_NB AMR_WB BZIP2 CDIO FAAC FDK_AAC DC1394 DOCS FREETYPE \
39                 FREI0R GNUTLS GSM ILBC JACK LAME OPENCV OPENJPEG OPENSSL \
40                 OPUS PULSEAUDIO RTMP SCHROEDINGER SDL SPEEX THEORA V4L VAAPI \
41                 VDPAU VO_AACENC VO_AMRWBENC VORBIS VPX WAVPACK WEBP X11GRAB \
42                 X264 XVID ZLIB
43 OPTIONS_DEFAULT=BZIP2 FREETYPE FREI0R GNUTLS OPENCV SCHROEDINGER \
44                 THEORA VAAPI VDPAU VO_AACENC VORBIS VPX X264 XVID ZLIB
45
46 FDK_AAC_DESC=   AAC audio encoding via Fraunhofer FDK
47 ILBC_DESC=      iLBC en/decoding via libilbc
48 X11GRAB_DESC=   X11 grabbing
49 DC1394_DESC=    IIDC-1394 grabbing using libdc1394
50
51 OPTIONS_SUB=    yes
52
53 ALSA_LIB_DEPENDS=               libasound.so:audio/alsa-lib
54 ALSA_CONFIGURE_ON=              --enable-indev=alsa --enable-outdev=alsa
55 ALSA_CONFIGURE_OFF=             --disable-indev=alsa --disable-outdev=alsa
56
57 AMR_NB_LIB_DEPENDS=             libopencore-amrnb.so:audio/opencore-amr
58 AMR_NB_CONFIGURE_ENABLE=        libopencore-amrnb
59
60 AMR_WB_LIB_DEPENDS=             libopencore-amrnb.so:audio/opencore-amr
61 AMR_WB_CONFIGURE_ENABLE=        libopencore-amrwb
62
63 BZIP2_CONFIGURE_ENABLE=         bzlib
64
65 CDIO_LIB_DEPENDS=               libcdio.so:sysutils/libcdio \
66                                 libcdio_paranoia.so:sysutils/libcdio-paranoia
67 CDIO_CONFIGURE_ENABLE=          libcdio
68
69 DC1394_LIB_DEPENDS=             libdc1394.so:multimedia/libdc1394
70 DC1394_CONFIGURE_ENABLE=        libdc1394
71
72 DOCS_BUILD_DEPENDS=             texi2html:textproc/texi2html
73
74 FREI0R_BUILD_DEPENDS=           ${LOCALBASE}/include/frei0r.h:graphics/frei0r
75 FREI0R_CONFIGURE_ENABLE=        frei0r
76
77 FAAC_LIB_DEPENDS=               libfaac.so:audio/faac
78 FAAC_CONFIGURE_ENABLE=          libfaac
79
80 FDK_AAC_LIB_DEPENDS=            libfdk-aac.so:audio/fdk-aac
81 FDK_AAC_CONFIGURE_ENABLE=       libfdk-aac
82
83 FREETYPE_LIB_DEPENDS=           libfreetype.so:print/freetype2
84 FREETYPE_CONFIGURE_ENABLE=      libfreetype
85
86 GNUTLS_LIB_DEPENDS=             libgnutls.so:security/gnutls
87 GNUTLS_CONFIGURE_ENABLE=        gnutls
88
89 GSM_LIB_DEPENDS=                libgsm.so:audio/gsm
90 GSM_CONFIGURE_ENABLE=           libgsm
91
92 ILBC_BUILD_DEPENDS=             ${LOCALBASE}/include/ilbc.h:net/libilbc
93 ILBC_CONFIGURE_ENABLE=          libilbc
94
95 JACK_LIB_DEPENDS=               libjack.so:audio/jack
96 JACK_CONFIGURE_ON=              --enable-indev=jack
97 JACK_CONFIGURE_OFF=             --disable-indev=jack
98
99 LAME_LIB_DEPENDS=               libmp3lame.so:audio/lame
100 LAME_CONFIGURE_ENABLE=          libmp3lame
101
102 OPENCV_LIB_DEPENDS=             libopencv_gpu.so:graphics/opencv2
103 OPENCV_CONFIGURE_ENABLE=        libopencv
104
105 OPENJPEG_LIB_DEPENDS=           libopenjpeg.so:graphics/openjpeg15
106 OPENJPEG_CONFIGURE_ENABLE=      libopenjpeg
107
108 OPENSSL_CONFIGURE_ENABLE=       openssl
109 OPENSSL_USES=                   ssl
110
111 OPUS_LIB_DEPENDS=               libopus.so:audio/opus
112 OPUS_CONFIGURE_ENABLE=          libopus
113
114 PULSEAUDIO_LIB_DEPENDS=         libpulse.so:audio/pulseaudio
115 PULSEAUDIO_CONFIGURE_ENABLE=    libpulse
116
117 RTMP_LIB_DEPENDS=               librtmp.so:multimedia/librtmp
118 RTMP_CONFIGURE_ENABLE=          librtmp
119
120 SCHROEDINGER_LIB_DEPENDS=       libschroedinger-1.0.so:multimedia/schroedinger
121 SCHROEDINGER_CONFIGURE_ENABLE=  libschroedinger
122
123 SDL_USE=                        SDL=sdl
124 SDL_CONFIGURE_ENABLE=           avplay
125
126 SPEEX_LIB_DEPENDS=              libspeex.so:audio/speex
127 SPEEX_CONFIGURE_ENABLE=         libspeex
128
129 THEORA_LIB_DEPENDS=             libtheora.so:multimedia/libtheora
130 THEORA_CONFIGURE_ENABLE=        libtheora
131
132 V4L_BUILD_DEPENDS=              ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat
133 V4L_CONFIGURE_ON=               --enable-indev=v4l2
134 V4L_CONFIGURE_OFF=              --disable-indev=v4l2
135
136 VAAPI_LIB_DEPENDS=              libva.so:multimedia/libva
137 VAAPI_CONFIGURE_ENABLE=         vaapi
138
139 VDPAU_BUILD_DEPENDS=            ${LOCALBASE}/include/vdpau/vdpau.h:multimedia/libvdpau
140 VDPAU_CONFIGURE_ENABLE=         vdpau
141
142 VO_AACENC_LIB_DEPENDS=          libvo-aacenc.so:audio/vo-aacenc
143 VO_AACENC_CONFIGURE_ENABLE=     libvo-aacenc
144
145 VO_AMRWBENC_LIB_DEPENDS=        libvo-amrwbenc.so:audio/vo-amrwbenc
146 VO_AMRWBENC_CONFIGURE_ENABLE=   libvo-amrwbenc
147
148 VORBIS_LIB_DEPENDS=             libvorbisenc.so:audio/libvorbis
149 VORBIS_CONFIGURE_ENABLE=        libvorbis
150
151 VPX_LIB_DEPENDS=                libvpx.so:multimedia/libvpx
152 VPX_CONFIGURE_ENABLE=           libvpx
153
154 WAVPACK_LIB_DEPENDS=            libwavpack.so:audio/wavpack
155 WAVPACK_CONFIGURE_ENABLE=       libwavpack
156
157 WEBP_LIB_DEPENDS=               libwebp.so:graphics/webp
158 WEBP_CONFIGURE_ENABLE=          libwebp
159
160 X11GRAB_USE=                    XORG=x11,xext,xfixes
161
162 X264_LIB_DEPENDS=               libx264.so:multimedia/libx264
163 X264_CONFIGURE_ENABLE=          libx264
164
165 XVID_LIB_DEPENDS=               libxvidcore.so:multimedia/xvid
166 XVID_CONFIGURE_ENABLE=          libxvid
167
168 ZLIB_CONFIGURE_ENABLE=          zlib
169
170 .include <bsd.port.options.mk>
171
172 .if ${ARCH} == "armv6"
173 CONFIGURE_ENV+= ASFLAGS=-no-integrated-as
174 .endif
175
176 .if ${ARCH} == "i386"
177 CONFIGURE_ARGS+=        --extra-cflags=-m32
178 .endif
179
180 # License definitions
181
182 .if ${PORT_OPTIONS:MFAAC} || ${PORT_OPTIONS:MFDK_AAC} || ${PORT_OPTIONS:MOPENSSL}
183 RESTRICTED=     linking to libfaac or libaacplus or using OpenSSL support restricts redistribution
184 CONFIGURE_ARGS+=        --enable-nonfree
185 AV_NONFREE=             true
186 .endif
187
188 .if ${PORT_OPTIONS:MCDIO} || ${PORT_OPTIONS:MX264} || ${PORT_OPTIONS:MXVID} || ${PORT_OPTIONS:MX11GRAB}
189 CONFIGURE_ARGS+=        --enable-gpl
190 .if !defined(AV_NONFREE)
191 LICENSE=                GPLv2+
192 AV_ISGPL=               true
193 .endif
194 .endif
195
196 .if ${PORT_OPTIONS:MAMR_NB} || ${PORT_OPTIONS:MAMR_WB} || ${PORT_OPTIONS:MVO_AACENC} || ${PORT_OPTIONS:MVO_AMRWBENC}
197 CONFIGURE_ARGS+=        --enable-version3
198 .if !defined(AV_NONFREE)
199 .if defined(AV_ISGPL)
200 LICENSE=        GPLv3+
201 .else
202 LICENSE=        LGPL3+
203 .endif
204 .endif
205 .endif
206
207 .if !defined(AV_NONFREE) && !defined(AV_ISGPL) && !defined(LICENSE)
208 LICENSE=        LGPL21+
209 .endif
210
211 post-patch:
212         @${REINPLACE_CMD} -e 's|freetype/freetype.h|freetype2/freetype.h|' \
213                 -e 's|-ldc1394 -lraw1394|-ldc1394|' \
214                 ${WRKSRC}/configure
215         @${REINPLACE_CMD} -e 's|gsm/gsm.h|gsm.h|' \
216                 ${WRKSRC}/configure \
217                 ${WRKSRC}/libavcodec/libgsmdec.c
218         @${REINPLACE_CMD} -e 's|$$(LIBDIR)/pkgconfig|${STAGEDIR}${PREFIX}/libdata/pkgconfig|' \
219                 ${WRKSRC}/library.mak
220
221 post-configure-DOCS-off:
222         @${REINPLACE_CMD} -e 's|CONFIG_TEXI2HTML=yes|!CONFIG_TEXI2HTML=yes|' ${WRKSRC}/config.mak
223
224 post-stage:
225 .for a in bin/avconv bin/avprobe lib/libav/libavdevice.so.55.0.0\
226         lib/libav/libavfilter.so.5.0.0 lib/libav/libavformat.so.56.1.0\
227         lib/libav/libavcodec.so.56.1.0 lib/libav/libavresample.so.2.1.0\
228         lib/libav/libswscale.so.3.0.0 lib/libav/libavutil.so.54.3.0
229         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${a}
230 .endfor
231
232 .include <bsd.port.mk>