Makefile 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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.4.1
  6. PKG_RELEASE:= 2
  7. PKG_HASH:= f3443e20154a590ab8a9eef7bc951e8731425efc75b44ff4bee31d8a7a574a2c
  8. PKG_DESCR:= record, convert and stream audio & video
  9. PKG_SECTION:= libs/video
  10. PKG_NEEDS:= threads
  11. PKG_DEPENDS:= libncurses libressl
  12. PKG_BUILDDEP:= ncurses libressl
  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. PKG_FLAVOURS_LIBFFMPEG+= WITH_ZLIB WITH_BZIP2
  32. PKGFD_WITH_BZIP2:= with bzip2 compression support
  33. PKGFS_WITH_BZIP2:= bzip2
  34. PKGFB_WITH_BZIP2:= bzip2
  35. PKGFD_WITH_ZLIB:= with zlib compression support
  36. PKGFS_WITH_ZLIB:= zlib
  37. PKGFB_WITH_ZLIB:= zlib
  38. PKGFD_WITH_X264:= with x264 decoding support
  39. PKGFS_WITH_X264:= libx264
  40. PKGFB_WITH_X264:= libx264
  41. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264),y)
  42. PKG_FDEPENDS+= libx264
  43. endif
  44. PKGFD_WITH_MP3:= with mp3 encoding support
  45. PKGFS_WITH_MP3:= libmp3lame
  46. PKGFB_WITH_MP3:= lame
  47. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
  48. PKG_FDEPENDS+= libmp3lame
  49. endif
  50. PKGFD_WITH_VP8:= with vp8 encoding support
  51. PKGFS_WITH_VP8:= libvpx
  52. PKGFB_WITH_VP8:= libvpx
  53. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8),y)
  54. PKG_FDEPENDS+= libvpx
  55. endif
  56. PKGFD_WITH_THEORA:= with theora encoding support
  57. PKGFS_WITH_THEORA:= libtheora
  58. PKGFB_WITH_THEORA:= libtheora
  59. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA),y)
  60. PKG_FDEPENDS+= libtheora
  61. endif
  62. PKGFD_WITH_XVID:= with xvid encoding support
  63. PKGFS_WITH_XVID:= libxvid
  64. PKGFB_WITH_XVID:= xvidcore
  65. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID),y)
  66. PKG_FDEPENDS+= libxvid
  67. endif
  68. PKGFD_WITH_VORBIS:= with vorbis encoding support
  69. PKGFS_WITH_VORBIS:= libvorbisenc
  70. PKGFB_WITH_VORBIS:= libvorbis
  71. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS),y)
  72. PKG_FDEPENDS+= libvorbisenc
  73. endif
  74. DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
  75. include $(ADK_TOPDIR)/mk/package.mk
  76. $(eval $(call PKG_template,LIBFFMPEG,libffmpeg,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_FDEPENDS),$(PKGSD_LIBFFMPEG),$(PKGSC_LIBFFMPEG),$(PKG_OPTS)))
  77. $(eval $(call PKG_template,FFMPEG,ffmpeg,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFMPEG),$(PKGSC_FFMPEG)))
  78. $(eval $(call PKG_template,FFSERVER,ffserver,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFSERVER),$(PKGSC_FFSERVER)))
  79. $(eval $(call PKG_template,FFPROBE,ffprobe,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFPROBE),$(PKGSC_FFPROBE)))
  80. ifeq ($(ADK_DEBUG),y)
  81. TARGET_CFLAGS:= $(subst O0,O2,$(TARGET_CFLAGS))
  82. else
  83. TARGET_CFLAGS:= $(subst Os,O2,$(TARGET_CFLAGS))
  84. endif
  85. TARGET_CPPFLAGS+= -D_POSIX_SOURCE -D_GNU_SOURCE
  86. ifeq ($(ADK_TARGET_CPU_WITH_MMX),y)
  87. CONFIGURE_CPU_OPTS+= --enable-mmx
  88. else
  89. CONFIGURE_CPU_OPTS+= --disable-mmx
  90. endif
  91. ifeq ($(ADK_TARGET_CPU_WITH_MMXEXT),y)
  92. CONFIGURE_CPU_OPTS+= --enable-mmxext
  93. else
  94. CONFIGURE_CPU_OPTS+= --disable-mmxext
  95. endif
  96. ifeq ($(ADK_TARGET_CPU_WITH_SSE4_2),y)
  97. CONFIGURE_CPU_OPTS+= --enable-sse42 \
  98. --disable-sse4 \
  99. --disable-ssse3 \
  100. --disable-sse3 \
  101. --disable-sse2 \
  102. --disable-sse
  103. else
  104. CONFIGURE_CPU_OPTS+= --disable-sse42
  105. ifeq ($(ADK_TARGET_CPU_WITH_SSE4_1),y)
  106. CONFIGURE_CPU_OPTS+= --enable-sse4 \
  107. --disable-ssse3 \
  108. --disable-sse3 \
  109. --disable-sse2 \
  110. --disable-sse
  111. else
  112. CONFIGURE_CPU_OPTS+= --disable-sse4
  113. ifeq ($(ADK_TARGET_CPU_WITH_SSSE3),y)
  114. CONFIGURE_CPU_OPTS+= --enable-ssse3 \
  115. --disable-sse3 \
  116. --disable-sse2 \
  117. --disable-sse
  118. else
  119. CONFIGURE_CPU_OPTS+= --disable-ssse3
  120. ifeq ($(ADK_TARGET_CPU_WITH_SSE3),y)
  121. CONFIGURE_CPU_OPTS+= --enable-sse3 \
  122. --disable-sse2 \
  123. --disable-sse
  124. else
  125. CONFIGURE_CPU_OPTS+= --disable-sse3
  126. ifeq ($(ADK_TARGET_CPU_WITH_SSE2),y)
  127. CONFIGURE_CPU_OPTS+= --enable-sse2 \
  128. --disable-sse
  129. else
  130. CONFIGURE_CPU_OPTS+= --disable-sse2
  131. ifeq ($(ADK_TARGET_CPU_WITH_SSE),y)
  132. CONFIGURE_CPU_OPTS+= --enable-sse
  133. else
  134. CONFIGURE_CPU_OPTS+= --disable-sse
  135. endif
  136. endif
  137. endif
  138. endif
  139. endif
  140. endif
  141. ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
  142. CONFIGURE_CPU_OPTS:= --enable-armv6
  143. endif
  144. ifeq ($(ADK_TARGET_CPU_MIPS_MIPS32),y)
  145. CONFIGURE_CPU_OPTS+= --disable-mipsdsp --disable-mipsdspr2
  146. endif
  147. CONFIG_STYLE:= minimal
  148. CONFIGURE_ARGS:= --prefix=/usr \
  149. --target-os=linux \
  150. --arch=$(ADK_TARGET_CPU_ARCH) \
  151. --enable-cross-compile \
  152. --sysroot=$(STAGING_TARGET_DIR) \
  153. --cross-prefix=$(TARGET_CROSS) \
  154. --cc='$(TARGET_CC)' \
  155. --host-cc='$(HOST_CC)' \
  156. --pkg-config='$(STAGING_HOST_DIR)/usr/bin/pkg-config' \
  157. --disable-doc \
  158. --disable-debug \
  159. --disable-iconv \
  160. --disable-yasm \
  161. --disable-optimizations \
  162. --disable-stripping \
  163. --enable-shared \
  164. --enable-static \
  165. --enable-gpl \
  166. --enable-nonfree \
  167. --enable-swscale \
  168. --enable-postproc \
  169. --enable-openssl \
  170. $(CONFIGURE_CPU_OPTS)
  171. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_BZIP2),y)
  172. CONFIGURE_ARGS+= --enable-bzlib
  173. else
  174. CONFIGURE_ARGS+= --disable-bzlib
  175. endif
  176. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_ZLIB),y)
  177. CONFIGURE_ARGS+= --enable-zlib
  178. else
  179. CONFIGURE_ARGS+= --disable-zlib
  180. endif
  181. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264),y)
  182. CONFIGURE_ARGS+= --enable-libx264
  183. endif
  184. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
  185. CONFIGURE_ARGS+= --enable-libmp3lame
  186. endif
  187. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8),y)
  188. CONFIGURE_ARGS+= --enable-libvpx
  189. endif
  190. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA),y)
  191. CONFIGURE_ARGS+= --enable-libtheora
  192. endif
  193. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID),y)
  194. CONFIGURE_ARGS+= --enable-libxvid
  195. endif
  196. ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS),y)
  197. CONFIGURE_ARGS+= --enable-libvorbis \
  198. --enable-muxer=ogg \
  199. --enable-encoder=libvorbis
  200. endif
  201. libffmpeg-install:
  202. $(INSTALL_DIR) $(IDIR_LIBFFMPEG)/usr/lib
  203. $(CP) $(WRKINST)/usr/lib/libavdevice.so* $(IDIR_LIBFFMPEG)/usr/lib
  204. $(CP) $(WRKINST)/usr/lib/libavformat.so* $(IDIR_LIBFFMPEG)/usr/lib
  205. $(CP) $(WRKINST)/usr/lib/libavfilter.so* $(IDIR_LIBFFMPEG)/usr/lib
  206. $(CP) $(WRKINST)/usr/lib/libavcodec.so* $(IDIR_LIBFFMPEG)/usr/lib
  207. $(CP) $(WRKINST)/usr/lib/libavutil.so* $(IDIR_LIBFFMPEG)/usr/lib
  208. $(CP) $(WRKINST)/usr/lib/libpostproc.so* $(IDIR_LIBFFMPEG)/usr/lib
  209. $(CP) $(WRKINST)/usr/lib/libswscale.so* $(IDIR_LIBFFMPEG)/usr/lib
  210. $(CP) $(WRKINST)/usr/lib/libswresample.so* $(IDIR_LIBFFMPEG)/usr/lib
  211. ffmpeg-install:
  212. $(INSTALL_DIR) $(IDIR_FFMPEG)/usr/bin
  213. $(INSTALL_BIN) $(WRKINST)/usr/bin/ffmpeg \
  214. $(IDIR_FFMPEG)/usr/bin
  215. ffserver-install:
  216. $(INSTALL_DIR) $(IDIR_FFSERVER)/etc
  217. $(INSTALL_DATA) $(WRKBUILD)/doc/ffserver.conf \
  218. $(IDIR_FFSERVER)/etc
  219. $(INSTALL_DIR) $(IDIR_FFSERVER)/usr/bin
  220. $(INSTALL_BIN) $(WRKINST)/usr/bin/ffserver \
  221. $(IDIR_FFSERVER)/usr/bin
  222. ffprobe-install:
  223. $(INSTALL_DIR) $(IDIR_FFPROBE)/usr/bin
  224. $(INSTALL_BIN) $(WRKINST)/usr/bin/ffprobe \
  225. $(IDIR_FFPROBE)/usr/bin
  226. include $(ADK_TOPDIR)/mk/pkg-bottom.mk