Makefile 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. # This file is part of the OpenADK project. OpenADK is copyrighted
  2. # material, please see the LICENCE file in the top-level directory.
  3. include ${ADK_TOPDIR}/rules.mk
  4. PKG_NAME:= ffmpeg
  5. PKG_VERSION:= 3.3.2
  6. PKG_RELEASE:= 1
  7. PKG_HASH:= 216900d5c0af9017bb8f76b0ad23f0ac53cf7fc618cf04b40d989bd99b088e6a
  8. PKG_DESCR:= record, convert and stream audio & video
  9. PKG_SECTION:= libs/video
  10. PKG_NEEDS:= threads
  11. PKG_DEPENDS:= libncurses
  12. PKG_BUILDDEP:= ncurses
  13. PKG_URL:= http://www.ffmpeg.org/
  14. PKG_SITES:= http://www.ffmpeg.org/releases/
  15. PKG_LIBNAME:= libffmpeg
  16. PKG_OPTS:= dev
  17. PKG_SUBPKGS:= LIBFFMPEG FFSERVER FFPROBE FFMPEG
  18. PKGSD_FFMPEG:= video converter
  19. PKGSC_FFMPEG:= mm/video
  20. PKGSS_FFMPEG:= libffmpeg
  21. PKGSD_FFSERVER:= streaming server
  22. PKGSC_FFSERVER:= mm/video
  23. PKGSS_FFSERVER:= libffmpeg
  24. PKGSD_FFPROBE:= simple multimedia stream analyzer
  25. PKGSC_FFPROBE:= mm/video
  26. PKGSS_FFPROBE:= libffmpeg
  27. PKGSD_LIBFFMPEG:= video library
  28. PKGSC_LIBFFMPEG:= libs/video
  29. PKG_FLAVOURS_LIBFFMPEG:= WITH_MP3 WITH_VP8 WITH_THEORA
  30. PKG_FLAVOURS_LIBFFMPEG+= WITH_XVID WITH_VORBIS WITH_X264
  31. PKGFD_WITH_X264:= with X264 decoding support
  32. PKGFS_WITH_X264:= libx264
  33. PKGFB_WITH_X264:= libx264
  34. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264),y)
  35. PKG_FDEPENDS+= libx264
  36. endif
  37. PKGFD_WITH_MP3:= with MP3 encoding support
  38. PKGFS_WITH_MP3:= libmp3lame
  39. PKGFB_WITH_MP3:= lame
  40. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
  41. PKG_FDEPENDS+= libmp3lame
  42. endif
  43. PKGFD_WITH_VP8:= with VP8 encoding support
  44. PKGFS_WITH_VP8:= libvpx
  45. PKGFB_WITH_VP8:= libvpx
  46. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8),y)
  47. PKG_FDEPENDS+= libvpx
  48. endif
  49. PKGFD_WITH_THEORA:= with Theora encoding support
  50. PKGFS_WITH_THEORA:= libtheora
  51. PKGFB_WITH_THEORA:= libtheora
  52. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA),y)
  53. PKG_FDEPENDS+= libtheora
  54. endif
  55. PKGFD_WITH_XVID:= with Xvid encoding support
  56. PKGFS_WITH_XVID:= libxvid
  57. PKGFB_WITH_XVID:= xvidcore
  58. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID),y)
  59. PKG_FDEPENDS+= libxvid
  60. endif
  61. PKGFD_WITH_VORBIS:= with Vorbis encoding support
  62. PKGFS_WITH_VORBIS:= libvorbisenc
  63. PKGFB_WITH_VORBIS:= libvorbis
  64. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS),y)
  65. PKG_FDEPENDS+= libvorbisenc
  66. endif
  67. DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
  68. include ${ADK_TOPDIR}/mk/package.mk
  69. $(eval $(call PKG_template,LIBFFMPEG,libffmpeg,${PKG_VERSION}-${PKG_RELEASE},${PKG_FDEPENDS},${PKGSD_LIBFFMPEG},${PKGSC_LIBFFMPEG},${PKG_OPTS}))
  70. $(eval $(call PKG_template,FFMPEG,ffmpeg,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFMPEG},${PKGSC_FFMPEG}))
  71. $(eval $(call PKG_template,FFSERVER,ffserver,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFSERVER},${PKGSC_FFSERVER}))
  72. $(eval $(call PKG_template,FFPROBE,ffprobe,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFPROBE},${PKGSC_FFPROBE}))
  73. ifeq ($(ADK_DEBUG),y)
  74. TARGET_CFLAGS:= $(subst O0,O2,$(TARGET_CFLAGS))
  75. else
  76. TARGET_CFLAGS:= $(subst Os,O2,$(TARGET_CFLAGS))
  77. endif
  78. TARGET_CPPFLAGS+= -D_POSIX_SOURCE -D_GNU_SOURCE
  79. ifeq ($(ADK_TARGET_CPU_WITH_MMX),y)
  80. CONFIGURE_CPU_OPTS+= --enable-mmx
  81. else
  82. CONFIGURE_CPU_OPTS+= --disable-mmx
  83. endif
  84. ifeq ($(ADK_TARGET_CPU_WITH_MMXEXT),y)
  85. CONFIGURE_CPU_OPTS+= --enable-mmxext
  86. else
  87. CONFIGURE_CPU_OPTS+= --disable-mmxext
  88. endif
  89. ifeq (${ADK_TARGET_CPU_WITH_SSE4_2},y)
  90. CONFIGURE_CPU_OPTS+= --enable-sse42 \
  91. --disable-sse4 \
  92. --disable-ssse3 \
  93. --disable-sse3 \
  94. --disable-sse2 \
  95. --disable-sse
  96. else
  97. CONFIGURE_CPU_OPTS+= --disable-sse42
  98. ifeq (${ADK_TARGET_CPU_WITH_SSE4_1},y)
  99. CONFIGURE_CPU_OPTS+= --enable-sse4 \
  100. --disable-ssse3 \
  101. --disable-sse3 \
  102. --disable-sse2 \
  103. --disable-sse
  104. else
  105. CONFIGURE_CPU_OPTS+= --disable-sse4
  106. ifeq (${ADK_TARGET_CPU_WITH_SSSE3},y)
  107. CONFIGURE_CPU_OPTS+= --enable-ssse3 \
  108. --disable-sse3 \
  109. --disable-sse2 \
  110. --disable-sse
  111. else
  112. CONFIGURE_CPU_OPTS+= --disable-ssse3
  113. ifeq (${ADK_TARGET_CPU_WITH_SSE3},y)
  114. CONFIGURE_CPU_OPTS+= --enable-sse3 \
  115. --disable-sse2 \
  116. --disable-sse
  117. else
  118. CONFIGURE_CPU_OPTS+= --disable-sse3
  119. ifeq (${ADK_TARGET_CPU_WITH_SSE2},y)
  120. CONFIGURE_CPU_OPTS+= --enable-sse2 \
  121. --disable-sse
  122. else
  123. CONFIGURE_CPU_OPTS+= --disable-sse2
  124. ifeq (${ADK_TARGET_CPU_WITH_SSE},y)
  125. CONFIGURE_CPU_OPTS+= --enable-sse
  126. else
  127. CONFIGURE_CPU_OPTS+= --disable-sse
  128. endif
  129. endif
  130. endif
  131. endif
  132. endif
  133. endif
  134. ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
  135. CONFIGURE_CPU_OPTS:= --enable-armv6
  136. endif
  137. ifeq ($(ADK_TARGET_CPU_MIPS_MIPS32),y)
  138. CONFIGURE_CPU_OPTS+= --disable-mipsdsp --disable-mipsdspr2
  139. endif
  140. CONFIG_STYLE:= minimal
  141. CONFIGURE_ARGS:= --prefix=/usr \
  142. --target-os=linux \
  143. --arch=${ADK_TARGET_CPU_ARCH} \
  144. --enable-cross-compile \
  145. --sysroot=${STAGING_TARGET_DIR} \
  146. --cross-prefix=${TARGET_CROSS} \
  147. --cc='$(TARGET_CC)' \
  148. --host-cc='$(HOST_CC)' \
  149. --disable-bzlib \
  150. --disable-doc \
  151. --disable-debug \
  152. --disable-iconv \
  153. --disable-yasm \
  154. --disable-optimizations \
  155. --disable-stripping \
  156. --enable-shared \
  157. --enable-static \
  158. --enable-gpl \
  159. --enable-nonfree \
  160. --enable-swscale \
  161. --enable-postproc \
  162. ${CONFIGURE_CPU_OPTS}
  163. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264),y)
  164. CONFIGURE_ARGS+= --enable-libx264
  165. endif
  166. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
  167. CONFIGURE_ARGS+= --enable-libmp3lame
  168. endif
  169. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8),y)
  170. CONFIGURE_ARGS+= --enable-libvpx
  171. endif
  172. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA),y)
  173. CONFIGURE_ARGS+= --enable-libtheora
  174. endif
  175. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID),y)
  176. CONFIGURE_ARGS+= --enable-libxvid
  177. endif
  178. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS),y)
  179. CONFIGURE_ARGS+= --enable-libvorbis
  180. endif
  181. libffmpeg-install:
  182. ${INSTALL_DIR} ${IDIR_LIBFFMPEG}/usr/lib
  183. ${CP} ${WRKINST}/usr/lib/libavdevice.so* ${IDIR_LIBFFMPEG}/usr/lib
  184. ${CP} ${WRKINST}/usr/lib/libavformat.so* ${IDIR_LIBFFMPEG}/usr/lib
  185. ${CP} ${WRKINST}/usr/lib/libavfilter.so* ${IDIR_LIBFFMPEG}/usr/lib
  186. ${CP} ${WRKINST}/usr/lib/libavcodec.so* ${IDIR_LIBFFMPEG}/usr/lib
  187. ${CP} ${WRKINST}/usr/lib/libavutil.so* ${IDIR_LIBFFMPEG}/usr/lib
  188. ${CP} ${WRKINST}/usr/lib/libpostproc.so* ${IDIR_LIBFFMPEG}/usr/lib
  189. ${CP} ${WRKINST}/usr/lib/libswscale.so* ${IDIR_LIBFFMPEG}/usr/lib
  190. ${CP} ${WRKINST}/usr/lib/libswresample.so* ${IDIR_LIBFFMPEG}/usr/lib
  191. ffmpeg-install:
  192. ${INSTALL_DIR} ${IDIR_FFMPEG}/usr/bin
  193. ${INSTALL_BIN} ${WRKINST}/usr/bin/ffmpeg ${IDIR_FFMPEG}/usr/bin
  194. ffserver-install:
  195. ${INSTALL_DIR} ${IDIR_FFSERVER}/etc
  196. $(INSTALL_DATA) $(WRKBUILD)/doc/ffserver.conf ${IDIR_FFSERVER}/etc
  197. ${INSTALL_DIR} ${IDIR_FFSERVER}/usr/bin
  198. ${INSTALL_BIN} ${WRKINST}/usr/bin/ffserver ${IDIR_FFSERVER}/usr/bin
  199. ffprobe-install:
  200. ${INSTALL_DIR} ${IDIR_FFPROBE}/usr/bin
  201. ${INSTALL_BIN} ${WRKINST}/usr/bin/ffprobe ${IDIR_FFPROBE}/usr/bin
  202. include ${ADK_TOPDIR}/mk/pkg-bottom.mk