Guest User

ffmpeg-0.10.8 Makefile

a guest
Oct 11th, 2013
83
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Created by: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
  2. # $FreeBSD: multimedia/ffmpeg/Makefile 327343 2013-09-15 14:54:36Z az $
  3.  
  4. PORTNAME= ffmpeg
  5. PORTVERSION= 0.10.8
  6. PORTEPOCH= 1
  7. PORTREVISION= 1
  8. CATEGORIES= multimedia audio ipv6 net
  9. MASTER_SITES= http://ffmpeg.org/releases/
  10.  
  11. MAINTAINER= mm@FreeBSD.org
  12. COMMENT= Realtime audio/video encoder/converter and streaming server
  13.  
  14. CONFLICTS= libav-[0-9]*
  15.  
  16. LICENSE= GPLv2 LGPL21
  17. LICENSE_COMB= multi
  18. LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING.GPLv2
  19. LICENSE_FILE_LGPL21= ${WRKSRC}/COPYING.LGPLv2.1
  20.  
  21. BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm \
  22. ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils \
  23. ${LOCALBASE}/bin/texi2html:${PORTSDIR}/textproc/texi2html
  24.  
  25. HAS_CONFIGURE= yes
  26. CONFIGURE_LOG= config.err
  27. USES= gmake perl5 pkgconfig
  28. USE_BZIP2= yes
  29. WANT_SDL= yes
  30. USE_PERL5= build
  31.  
  32. OPTIONS_DEFINE= AACPLUS ALSA AMR_NB AMR_WB CELT DEBUG DIRAC FAAC \
  33. FFSERVER FREETYPE FREI0R GSM LAME OPENCV OPENJPEG \
  34. OPTIMIZED_CFLAGS RTMP SCHROEDINGER SDL SPEEX THEORA VAAPI \
  35. VDPAU VO_AACENC VO_AMRWBENC VORBIS VPX X11GRAB X264 XVID
  36.  
  37. OPTIONS_DEFAULT= FFSERVER FREETYPE FREI0R OPENCV SCHROEDINGER THEORA \
  38. VORBIS VPX X264 XVID
  39.  
  40. FFSERVER_DESC= Build and install ffserver
  41. X11GRAB_DESC= Enable x11 grabbing
  42.  
  43. COMPAT_HEADERS=libavcodec/avcodec.h \
  44. libavcodec/opt.h \
  45. libavcodec/vdpau.h \
  46. libavcodec/xvmc.h \
  47. libavdevice/avdevice.h \
  48. libavfilter/avfilter.h \
  49. libavformat/avformat.h \
  50. libavformat/avio.h \
  51. libavutil/adler32.h \
  52. libavutil/avstring.h \
  53. libavutil/avutil.h \
  54. libavutil/base64.h \
  55. libavutil/common.h \
  56. libavutil/crc.h \
  57. libavutil/fifo.h \
  58. libavutil/intfloat_readwrite.h \
  59. libavutil/log.h \
  60. libavutil/lzo.h \
  61. libavutil/mathematics.h \
  62. libavutil/md5.h \
  63. libavutil/mem.h \
  64. libavutil/pixfmt.h \
  65. libavutil/rational.h \
  66. libavutil/sha1.h \
  67. libpostproc/postprocess.h \
  68. libswscale/swscale.h
  69.  
  70. MAN1+= ffmpeg.1 ffprobe.1
  71.  
  72. .include <bsd.port.options.mk>
  73.  
  74. # PORTDOCS
  75. .if ${PORT_OPTIONS:MFFSERVER}
  76. MAN1+= ffserver.1
  77. .endif
  78.  
  79. # rtmp
  80. .if ${PORT_OPTIONS:MRTMP}
  81. USE_OPENSSL= yes
  82. .endif
  83.  
  84. # x11grab
  85. .if ${PORT_OPTIONS:MX11GRAB}
  86. USE_XORG= x11 xext xfixes
  87. CONFIGURE_ARGS+= --enable-x11grab
  88. .endif
  89.  
  90. .include <bsd.port.pre.mk>
  91.  
  92. CONFIGURE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
  93. MAKE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
  94.  
  95. CONFIGURE_ARGS+=--prefix="${PREFIX}" \
  96. --mandir="${PREFIX}/man" \
  97. --enable-shared \
  98. --enable-gpl \
  99. --enable-postproc \
  100. --enable-avfilter \
  101. --enable-pthreads \
  102. --enable-memalign-hack \
  103. --enable-runtime-cpudetect \
  104. --cc="${CC}" \
  105. --extra-cflags="${FFMPEG_CFLAGS} -I${LOCALBASE}/include" \
  106. --extra-ldflags="-L${LOCALBASE}/lib ${FFMPEG_LDFLAGS}" \
  107. --extra-libs="${PTHREAD_LIBS}"
  108. SHLIB_VER= 1
  109. PLIST_SUB= SHLIB_VER=${SHLIB_VER}
  110. USE_LDCONFIG= yes
  111.  
  112. DOC_FILES= CREDITS INSTALL LICENSE MAINTAINERS README RELEASE
  113. # under doc subdirectory
  114. DOC_DOCFILES= APIchanges RELEASE_NOTES TODO *.txt *.html
  115. PORTDOCS= *
  116.  
  117. .if ${PORT_OPTIONS:MDEBUG}
  118. CONFIGURE_ARGS+= --disable-stripping
  119. .else
  120. CONFIGURE_ARGS+= --disable-debug
  121. .endif
  122.  
  123. .if ${PORT_OPTIONS:MFFSERVER}
  124. USE_RC_SUBR= ffserver
  125. .endif
  126.  
  127. # sse hardware vector support
  128. .if defined(MACHINE_CPU) && (${MACHINE_CPU:Msse} == "sse" || ${MACHINE_CPU:Mamd64} == "amd64")
  129. _BUILTIN_VECTOR= yes
  130. .else
  131. CONFIGURE_ARGS+= --disable-sse
  132. .endif
  133.  
  134. # mmx support
  135. .if defined(MACHINE_CPU) && ${MACHINE_CPU:Mmmx} == "" && ${MACHINE_CPU:Mamd64} == ""
  136. CONFIGURE_ARGS+= --disable-mmx
  137. _NO_BUILTIN_VECTOR= yes
  138. .endif
  139.  
  140. # builtin vector, requires mmx and sse
  141. .if !defined(_NO_BUILTIN_VECTOR) && defined(_BUILTIN_VECTOR)
  142. CFLAGS+= -msse
  143. .endif
  144.  
  145. # optimizations
  146. .if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
  147. CFLAGS+= -O3 -ffast-math -fno-finite-math-only -fomit-frame-pointer
  148. .endif
  149.  
  150. #aacplus
  151. .if ${PORT_OPTIONS:MAACPLUS}
  152. FFMPEG_NONFREE= yes
  153. LIB_DEPENDS+= aacplus.2:${PORTSDIR}/audio/libaacplus
  154. CONFIGURE_ARGS+= --enable-libaacplus
  155. .else
  156. CONFIGURE_ARGS+= --disable-libaacplus
  157. .endif
  158.  
  159. #alsa
  160. .if ${PORT_OPTIONS:MALSA}
  161. LIB_DEPENDS+= asound.2:${PORTSDIR}/audio/alsa-lib
  162. .else
  163. CONFIGURE_ARGS+= --disable-indev=alsa \
  164. --disable-outdev=alsa
  165. .endif
  166.  
  167. # Opencore AMR NB
  168. .if ${PORT_OPTIONS:MAMR_NB}
  169. FFMPEG_LICENSE_GPL3= yes
  170. LIB_DEPENDS+= opencore-amrnb.0:${PORTSDIR}/audio/opencore-amr
  171. CONFIGURE_ARGS+= --enable-libopencore-amrnb
  172. .else
  173. CONFIGURE_ARGS+= --disable-libopencore-amrnb
  174. .endif
  175.  
  176. # Opencore AMR WB
  177. .if ${PORT_OPTIONS:MAMR_WB}
  178. FFMPEG_LICENSE_GPL3= yes
  179. LIB_DEPENDS+= opencore-amrwb.0:${PORTSDIR}/audio/opencore-amr
  180. CONFIGURE_ARGS+= --enable-libopencore-amrwb
  181. .else
  182. CONFIGURE_ARGS+= --disable-libopencore-amrwb
  183. .endif
  184.  
  185. # celt
  186. .if ${PORT_OPTIONS:MCELT}
  187. LIB_DEPENDS+= celt0.2:${PORTSDIR}/audio/celt
  188. CONFIGURE_ARGS+= --enable-libcelt
  189. .else
  190. CONFIGURE_ARGS+= --disable-libcelt
  191. .endif
  192.  
  193. # dirac
  194. .if ${PORT_OPTIONS:MDIRAC}
  195. LIB_DEPENDS+= dirac_encoder.1:${PORTSDIR}/multimedia/dirac
  196. CONFIGURE_ARGS+= --enable-libdirac
  197. .else
  198. CONFIGURE_ARGS+= --disable-libdirac
  199. .endif
  200.  
  201. # faac
  202. .if ${PORT_OPTIONS:MFAAC}
  203. FFMPEG_NONFREE= yes
  204. LIB_DEPENDS+= faac.0:${PORTSDIR}/audio/faac
  205. CONFIGURE_ARGS+= --enable-libfaac
  206. .else
  207. CONFIGURE_ARGS+= --disable-libfaac
  208. .endif
  209.  
  210. # ffserver
  211. .if ${PORT_OPTIONS:MFFSERVER}
  212. PLIST_SUB+= FFSERVER=""
  213. .else
  214. PLIST_SUB+= FFSERVER="@comment "
  215. CONFIGURE_ARGS+= --disable-ffserver
  216. .endif
  217.  
  218. # freetype
  219. .if ${PORT_OPTIONS:MFREETYPE}
  220. LIB_DEPENDS+= freetype.9:${PORTSDIR}/print/freetype2
  221. CONFIGURE_ARGS+= --enable-libfreetype
  222. .else
  223. CONFIGURE_ARGS+= --disable-libfreetype
  224. .endif
  225.  
  226. # frei0r
  227. .if ${PORT_OPTIONS:MFREI0R}
  228. BUILD_DEPENDS+= ${LOCALBASE}/include/frei0r.h:${PORTSDIR}/graphics/frei0r
  229. CONFIGURE_ARGS+= --enable-frei0r
  230. .else
  231. CONFIGURE_ARGS+= --disable-frei0r
  232. .endif
  233.  
  234. # gsm
  235. .if ${PORT_OPTIONS:MGSM}
  236. LIB_DEPENDS+= gsm.1:${PORTSDIR}/audio/gsm
  237. CONFIGURE_ARGS+= --enable-libgsm
  238. .else
  239. CONFIGURE_ARGS+= --disable-libgsm
  240. .endif
  241.  
  242. # mp3
  243. .if ${PORT_OPTIONS:MLAME}
  244. LIB_DEPENDS+= mp3lame.0:${PORTSDIR}/audio/lame
  245. CONFIGURE_ARGS+= --enable-libmp3lame
  246. .else
  247. CONFIGURE_ARGS+= --disable-libmp3lame
  248. .endif
  249.  
  250. # opencv
  251. .if ${PORT_OPTIONS:MOPENCV}
  252. LIB_DEPENDS+= opencv_imgproc.2:${PORTSDIR}/graphics/opencv-core
  253. CONFIGURE_ARGS+= --enable-libopencv
  254. .else
  255. CONFIGURE_ARGS+= --disable-libopencv
  256. .endif
  257.  
  258. # openjpeg
  259. .if ${PORT_OPTIONS:MOPENJPEG}
  260. LIB_DEPENDS+= openjpeg.2:${PORTSDIR}/graphics/openjpeg
  261. CONFIGURE_ARGS+= --enable-libopenjpeg
  262. .else
  263. CONFIGURE_ARGS+= --disable-libopenjpeg
  264. .endif
  265.  
  266. # rtmp
  267. .if ${PORT_OPTIONS:MRTMP}
  268. LIB_DEPENDS+= rtmp.0:${PORTSDIR}/multimedia/rtmpdump
  269. CONFIGURE_ARGS+= --enable-librtmp
  270. . if ${OPENSSLBASE} != "/usr"
  271. FFMPEG_CFLAGS+= -I${OPENSSLINC}
  272. FFMPEG_LDFLAGS+= -L${OPENSSLLIB}
  273. . endif
  274. .else
  275. CONFIGURE_ARGS+= --disable-librtmp
  276. .endif
  277.  
  278. # schroedinger
  279. .if ${PORT_OPTIONS:MSCHROEDINGER}
  280. LIB_DEPENDS+= schroedinger-1.0.11:${PORTSDIR}/multimedia/schroedinger
  281. CONFIGURE_ARGS+= --enable-libschroedinger
  282. .else
  283. CONFIGURE_ARGS+= --disable-libschroedinger
  284. .endif
  285.  
  286. # sdl
  287. .if ${PORT_OPTIONS:MSDL}
  288. USE_SDL+= sdl
  289. PLIST_FILES+= bin/ffplay
  290. MAN1+= ffplay.1
  291. .else
  292. CONFIGURE_ARGS+= --disable-ffplay
  293. .endif
  294.  
  295. # speex
  296. .if ${PORT_OPTIONS:MSPEEX}
  297. LIB_DEPENDS+= speex.1:${PORTSDIR}/audio/speex
  298. CONFIGURE_ARGS+= --enable-libspeex
  299. .else
  300. CONFIGURE_ARGS+= --disable-libspeex
  301. .endif
  302.  
  303. # theora
  304. .if ${PORT_OPTIONS:MTHEORA}
  305. LIB_DEPENDS+= theora.0:${PORTSDIR}/multimedia/libtheora
  306. CONFIGURE_ARGS+= --enable-libtheora
  307. .else
  308. CONFIGURE_ARGS+= --disable-libtheora
  309. .endif
  310.  
  311. # vaapi
  312. .if ${PORT_OPTIONS:MVAAPI}
  313. FFMPEG_LICENSE_GPL3= yes
  314. LIB_DEPENDS+= va.1:${PORTSDIR}/multimedia/libva
  315. CONFIGURE_ARGS+= --enable-vaapi
  316. .else
  317. CONFIGURE_ARGS+= --disable-vaapi
  318. .endif
  319.  
  320. # vdpau
  321. .if ${PORT_OPTIONS:MVDPAU}
  322. BUILD_DEPENDS+= ${LOCALBASE}/include/vdpau/vdpau.h:${PORTSDIR}/multimedia/libvdpau
  323. CONFIGURE_ARGS+= --enable-vdpau
  324. .else
  325. CONFIGURE_ARGS+= --disable-vdpau
  326. .endif
  327.  
  328. # vo-aacenc
  329. .if ${PORT_OPTIONS:MVO_AACENC}
  330. FFMPEG_LICENSE_GPL3= yes
  331. LIB_DEPENDS+= vo-aacenc.0:${PORTSDIR}/audio/vo-aacenc
  332. CONFIGURE_ARGS+= --enable-libvo-aacenc
  333. .else
  334. CONFIGURE_ARGS+= --disable-libvo-aacenc
  335. .endif
  336.  
  337. # vo-amrwbenc
  338. .if ${PORT_OPTIONS:MVO_AMRWBENC}
  339. FFMPEG_LICENSE_GPL3= yes
  340. LIB_DEPENDS+= vo-amrwbenc.0:${PORTSDIR}/audio/vo-amrwbenc
  341. CONFIGURE_ARGS+= --enable-libvo-amrwbenc
  342. .else
  343. CONFIGURE_ARGS+= --disable-libvo-amrwbenc
  344. .endif
  345.  
  346. # vorbis
  347. .if ${PORT_OPTIONS:MVORBIS}
  348. LIB_DEPENDS+= vorbisenc.2:${PORTSDIR}/audio/libvorbis
  349. CONFIGURE_ARGS+= --enable-libvorbis
  350. FFMPEG_CFLAGS+= -I${LOCALBASE}/include/vorbis
  351. .else
  352. CONFIGURE_ARGS+= --disable-libvorbis
  353. .endif
  354.  
  355. # vp8
  356. .if ${PORT_OPTIONS:MVPX}
  357. LIB_DEPENDS+= vpx.1:${PORTSDIR}/multimedia/libvpx
  358. CONFIGURE_ARGS+= --enable-libvpx
  359. .else
  360. CONFIGURE_ARGS+= --disable-libvpx
  361. .endif
  362.  
  363. # x264
  364. .if ${PORT_OPTIONS:MX264}
  365. LIB_DEPENDS+= x264.125:${PORTSDIR}/multimedia/x264
  366. CONFIGURE_ARGS+= --enable-libx264
  367. .else
  368. CONFIGURE_ARGS+= --disable-libx264
  369. .endif
  370.  
  371. # xvid
  372. .if ${PORT_OPTIONS:MXVID}
  373. LIB_DEPENDS+= xvidcore.4:${PORTSDIR}/multimedia/xvid
  374. CONFIGURE_ARGS+= --enable-libxvid
  375. .else
  376. CONFIGURE_ARGS+= --disable-libxvid
  377. .endif
  378.  
  379. # License knobs
  380. .if defined(FFMPEG_NONFREE)
  381. RESTRICTED= linking to libfaac or libaacplus restricts redistribution
  382. CONFIGURE_ARGS+= --enable-nonfree
  383. .endif
  384.  
  385. .if defined(FFMPEG_LICENSE_GPL3)
  386. LICENSE= GPLv3 LGPL3
  387. LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPLv3
  388. LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPLv3
  389. CONFIGURE_ARGS+= --enable-version3
  390. .endif
  391.  
  392.  
  393. .if ${PORT_OPTIONS:MDSL}
  394. @${REINPLACE_CMD} -E \
  395. -e 's|sdl-config|${SDL_CONFIG}|g' \
  396. ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
  397. @${FIND} ${WRKSRC} -type f | \
  398. ${XARGS} -n 10 ${REINPLACE_CMD} -E \
  399. -e 's|#include <SDL|#include <SDL/SDL|'
  400. .endif
  401.  
  402. post-configure:
  403. .if empty(PORT_OPTIONS:MTHEORA)
  404. @${REINPLACE_CMD} -E \
  405. -e 's|^(CONFIG_LIBTHEORA).*$$|\1=no|' \
  406. ${WRKSRC}/config.mak
  407. .endif
  408.  
  409. post-install:
  410. .if ${PORT_OPTIONS:MFFSERVER}
  411. ${INSTALL_DATA} ${WRKSRC}/doc/ffserver.conf ${PREFIX}/etc/ffserver.conf-dist
  412. if [ ! -f ${PREFIX}/etc/ffserver.conf ]; then \
  413. ${INSTALL_DATA} ${WRKSRC}/doc/ffserver.conf ${PREFIX}/etc; \
  414. fi
  415. .endif
  416.  
  417. ${MKDIR} ${PREFIX}/include/ffmpeg
  418. .for FILE in ${COMPAT_HEADERS}
  419. ${LN} -sf ../${FILE} ${PREFIX}/include/ffmpeg/${FILE:C,^[^/]+/([^/]+).*,\1,}
  420. .endfor
  421. ${MKDIR} ${PREFIX}/include/postproc
  422. ${LN} -sf ../libpostproc/postprocess.h \
  423. ${PREFIX}/include/postproc/postprocess.h
  424.  
  425. .include <bsd.port.post.mk>
RAW Paste Data