arc: use the release for binutils/gcc
[openadk.git] / package / ffmpeg / Makefile
blobddb3e72e390daff1d3475138f5e851fcb89a0d8a
1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(ADK_TOPDIR)/rules.mk
6 PKG_NAME:= ffmpeg
7 PKG_VERSION:= 3.4.2
8 PKG_RELEASE:= 2
9 PKG_HASH:= eb0370bf223809b9ebb359fed5318f826ac038ce77933b3afd55ab1a0a21785a
10 PKG_DESCR:= record, convert and stream audio & video
11 PKG_SECTION:= libs/video
12 PKG_NEEDS:= threads
13 PKG_DEPENDS:= libncurses libressl
14 PKG_BUILDDEP:= ncurses libressl
15 PKG_URL:= http://www.ffmpeg.org/
16 PKG_SITES:= http://www.ffmpeg.org/releases/
17 PKG_LIBNAME:= libffmpeg
18 PKG_OPTS:= dev
20 PKG_SUBPKGS:= LIBFFMPEG FFSERVER FFPROBE FFMPEG
21 PKGSD_FFMPEG:= video converter
22 PKGSC_FFMPEG:= mm/video
23 PKGSS_FFMPEG:= libffmpeg
24 PKGSD_FFSERVER:= streaming server
25 PKGSC_FFSERVER:= mm/video
26 PKGSS_FFSERVER:= libffmpeg
27 PKGSD_FFPROBE:= simple multimedia stream analyzer
28 PKGSC_FFPROBE:= mm/video
29 PKGSS_FFPROBE:= libffmpeg
30 PKGSD_LIBFFMPEG:= video library
31 PKGSC_LIBFFMPEG:= libs/video
33 PKG_FLAVOURS_LIBFFMPEG:= WITH_MP3 WITH_VP8 WITH_THEORA
34 PKG_FLAVOURS_LIBFFMPEG+= WITH_XVID WITH_VORBIS WITH_X264 WITH_X265
35 PKG_FLAVOURS_LIBFFMPEG+= WITH_ZLIB WITH_BZIP2
37 PKGFD_WITH_BZIP2:= with bzip2 compression support
38 PKGFS_WITH_BZIP2:= bzip2
39 PKGFB_WITH_BZIP2:= bzip2
41 PKGFD_WITH_ZLIB:= with zlib compression support
42 PKGFS_WITH_ZLIB:= zlib
43 PKGFB_WITH_ZLIB:= zlib
45 PKGFD_WITH_X264:= with x264 decoding support
46 PKGFS_WITH_X264:= libx264
47 PKGFB_WITH_X264:= libx264
48 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264),y)
49 PKG_FDEPENDS+= libx264
50 endif
52 PKGFD_WITH_X265:= with x265 decoding support
53 PKGFS_WITH_X265:= libx265
54 PKGFB_WITH_X265:= libx265
55 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X265),y)
56 PKG_FDEPENDS+= libx265
57 endif
59 PKGFD_WITH_MP3:= with mp3 encoding support
60 PKGFS_WITH_MP3:= libmp3lame
61 PKGFB_WITH_MP3:= lame
62 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
63 PKG_FDEPENDS+= libmp3lame
64 endif
66 PKGFD_WITH_VP8:= with vp8 encoding support
67 PKGFS_WITH_VP8:= libvpx
68 PKGFB_WITH_VP8:= libvpx
69 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8),y)
70 PKG_FDEPENDS+= libvpx
71 endif
73 PKGFD_WITH_THEORA:= with theora encoding support
74 PKGFS_WITH_THEORA:= libtheora
75 PKGFB_WITH_THEORA:= libtheora
76 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA),y)
77 PKG_FDEPENDS+= libtheora
78 endif
80 PKGFD_WITH_XVID:= with xvid encoding support
81 PKGFS_WITH_XVID:= libxvid
82 PKGFB_WITH_XVID:= xvidcore
83 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID),y)
84 PKG_FDEPENDS+= libxvid
85 endif
87 PKGFD_WITH_VORBIS:= with vorbis encoding support
88 PKGFS_WITH_VORBIS:= libvorbisenc
89 PKGFB_WITH_VORBIS:= libvorbis
90 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS),y)
91 PKG_FDEPENDS+= libvorbisenc
92 endif
94 DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
96 include $(ADK_TOPDIR)/mk/package.mk
98 $(eval $(call PKG_template,LIBFFMPEG,libffmpeg,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_FDEPENDS),$(PKGSD_LIBFFMPEG),$(PKGSC_LIBFFMPEG),$(PKG_OPTS)))
99 $(eval $(call PKG_template,FFMPEG,ffmpeg,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFMPEG),$(PKGSC_FFMPEG)))
100 $(eval $(call PKG_template,FFSERVER,ffserver,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFSERVER),$(PKGSC_FFSERVER)))
101 $(eval $(call PKG_template,FFPROBE,ffprobe,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFPROBE),$(PKGSC_FFPROBE)))
103 ifeq ($(ADK_DEBUG),y)
104 TARGET_CFLAGS:= $(subst O0,O2,$(TARGET_CFLAGS))
105 else
106 TARGET_CFLAGS:= $(subst Os,O2,$(TARGET_CFLAGS))
107 endif
108 TARGET_CPPFLAGS+= -D_POSIX_SOURCE -D_GNU_SOURCE
110 ifeq ($(ADK_TARGET_CPU_WITH_MMX),y)
111 CONFIGURE_CPU_OPTS+= --enable-mmx
112 else
113 CONFIGURE_CPU_OPTS+= --disable-mmx
114 endif
115 ifeq ($(ADK_TARGET_CPU_WITH_MMXEXT),y)
116 CONFIGURE_CPU_OPTS+= --enable-mmxext
117 else
118 CONFIGURE_CPU_OPTS+= --disable-mmxext
119 endif
120 ifeq ($(ADK_TARGET_CPU_WITH_SSE4_2),y)
121 CONFIGURE_CPU_OPTS+= --enable-sse42 \
122 --disable-sse4 \
123 --disable-ssse3 \
124 --disable-sse3 \
125 --disable-sse2 \
126 --disable-sse
127 else
128 CONFIGURE_CPU_OPTS+= --disable-sse42
129 ifeq ($(ADK_TARGET_CPU_WITH_SSE4_1),y)
130 CONFIGURE_CPU_OPTS+= --enable-sse4 \
131 --disable-ssse3 \
132 --disable-sse3 \
133 --disable-sse2 \
134 --disable-sse
135 else
136 CONFIGURE_CPU_OPTS+= --disable-sse4
137 ifeq ($(ADK_TARGET_CPU_WITH_SSSE3),y)
138 CONFIGURE_CPU_OPTS+= --enable-ssse3 \
139 --disable-sse3 \
140 --disable-sse2 \
141 --disable-sse
142 else
143 CONFIGURE_CPU_OPTS+= --disable-ssse3
144 ifeq ($(ADK_TARGET_CPU_WITH_SSE3),y)
145 CONFIGURE_CPU_OPTS+= --enable-sse3 \
146 --disable-sse2 \
147 --disable-sse
148 else
149 CONFIGURE_CPU_OPTS+= --disable-sse3
150 ifeq ($(ADK_TARGET_CPU_WITH_SSE2),y)
151 CONFIGURE_CPU_OPTS+= --enable-sse2 \
152 --disable-sse
153 else
154 CONFIGURE_CPU_OPTS+= --disable-sse2
155 ifeq ($(ADK_TARGET_CPU_WITH_SSE),y)
156 CONFIGURE_CPU_OPTS+= --enable-sse
157 else
158 CONFIGURE_CPU_OPTS+= --disable-sse
159 endif
160 endif
161 endif
162 endif
163 endif
164 endif
165 ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
166 CONFIGURE_CPU_OPTS:= --enable-armv6
167 endif
168 ifeq ($(ADK_TARGET_CPU_MIPS_MIPS32),y)
169 CONFIGURE_CPU_OPTS+= --disable-mipsdsp --disable-mipsdspr2
170 endif
172 ifeq ($(ADK_TARGET_ARCH_ARM_WITH_NEON),y)
173 CONFIGURE_CPU_OPTS+= --enable-neon
174 else
175 CONFIGURE_CPU_OPTS+= --disable-neon
176 endif
178 CONFIG_STYLE:= minimal
179 CONFIGURE_ARGS:= --prefix=/usr \
180 --target-os=linux \
181 --arch=$(ADK_TARGET_CPU_ARCH) \
182 --enable-cross-compile \
183 --sysroot=$(STAGING_TARGET_DIR) \
184 --cross-prefix=$(TARGET_CROSS) \
185 --cc='$(TARGET_CC)' \
186 --host-cc='$(HOST_CC)' \
187 --pkg-config='$(STAGING_HOST_DIR)/usr/bin/pkg-config' \
188 --disable-doc \
189 --disable-debug \
190 --disable-iconv \
191 --disable-yasm \
192 --disable-optimizations \
193 --disable-stripping \
194 --enable-shared \
195 --enable-static \
196 --enable-gpl \
197 --enable-nonfree \
198 --enable-swscale \
199 --enable-postproc \
200 --enable-openssl \
201 $(CONFIGURE_CPU_OPTS)
203 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_BZIP2),y)
204 CONFIGURE_ARGS+= --enable-bzlib
205 else
206 CONFIGURE_ARGS+= --disable-bzlib
207 endif
209 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_ZLIB),y)
210 CONFIGURE_ARGS+= --enable-zlib
211 else
212 CONFIGURE_ARGS+= --disable-zlib
213 endif
215 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264),y)
216 CONFIGURE_ARGS+= --enable-libx264
217 endif
218 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X265),y)
219 CONFIGURE_ARGS+= --enable-libx265
220 endif
221 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
222 CONFIGURE_ARGS+= --enable-libmp3lame
223 endif
224 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8),y)
225 CONFIGURE_ARGS+= --enable-libvpx
226 endif
227 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA),y)
228 CONFIGURE_ARGS+= --enable-libtheora
229 endif
230 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID),y)
231 CONFIGURE_ARGS+= --enable-libxvid
232 endif
233 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS),y)
234 CONFIGURE_ARGS+= --enable-libvorbis \
235 --enable-muxer=ogg \
236 --enable-encoder=libvorbis
237 endif
239 libffmpeg-install:
240 $(INSTALL_DIR) $(IDIR_LIBFFMPEG)/usr/lib
241 $(CP) $(WRKINST)/usr/lib/libavdevice.so* $(IDIR_LIBFFMPEG)/usr/lib
242 $(CP) $(WRKINST)/usr/lib/libavformat.so* $(IDIR_LIBFFMPEG)/usr/lib
243 $(CP) $(WRKINST)/usr/lib/libavfilter.so* $(IDIR_LIBFFMPEG)/usr/lib
244 $(CP) $(WRKINST)/usr/lib/libavcodec.so* $(IDIR_LIBFFMPEG)/usr/lib
245 $(CP) $(WRKINST)/usr/lib/libavutil.so* $(IDIR_LIBFFMPEG)/usr/lib
246 $(CP) $(WRKINST)/usr/lib/libpostproc.so* $(IDIR_LIBFFMPEG)/usr/lib
247 $(CP) $(WRKINST)/usr/lib/libswscale.so* $(IDIR_LIBFFMPEG)/usr/lib
248 $(CP) $(WRKINST)/usr/lib/libswresample.so* $(IDIR_LIBFFMPEG)/usr/lib
250 ffmpeg-install:
251 $(INSTALL_DIR) $(IDIR_FFMPEG)/usr/bin
252 $(INSTALL_BIN) $(WRKINST)/usr/bin/ffmpeg \
253 $(IDIR_FFMPEG)/usr/bin
255 ffserver-install:
256 $(INSTALL_DIR) $(IDIR_FFSERVER)/etc
257 $(INSTALL_DATA) $(WRKBUILD)/doc/ffserver.conf \
258 $(IDIR_FFSERVER)/etc
259 $(INSTALL_DIR) $(IDIR_FFSERVER)/usr/bin
260 $(INSTALL_BIN) $(WRKINST)/usr/bin/ffserver \
261 $(IDIR_FFSERVER)/usr/bin
263 ffprobe-install:
264 $(INSTALL_DIR) $(IDIR_FFPROBE)/usr/bin
265 $(INSTALL_BIN) $(WRKINST)/usr/bin/ffprobe \
266 $(IDIR_FFPROBE)/usr/bin
268 include $(ADK_TOPDIR)/mk/pkg-bottom.mk