fix gstreamer compile
[openwrt/svn-archive/archive.git] / multimedia / ffmpeg / Makefile
1 #
2 # Copyright (C) 2006-2008 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id$
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=ffmpeg
12 PKG_VERSION:=20080419
13 PKG_RELEASE:=1
14
15 PKG_SOURCE:=$(PKG_NAME)-export-snapshot-$(PKG_VERSION).tar.bz2
16 PKG_SOURCE_URL:=http://downloads.openwrt.org/sources/
17 PKG_MD5SUM:=63aeb859941b96ed3ef7b0c7a643bf4d
18
19 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-export-2008-04-19
20
21 include $(INCLUDE_DIR)/package.mk
22
23 define Package/ffmpeg/Default
24 TITLE:=FFmpeg
25 URL:=http://ffmpeg.mplayerhq.hu/
26 endef
27
28 define Package/ffmpeg/Default/description
29 FFmpeg is a a software package that can record, convert and stream digital
30 audio and video in numerous formats.
31 endef
32
33 define Package/ffmpeg
34 $(call Package/ffmpeg/Default)
35 SECTION:=multimedia
36 CATEGORY:=Multimedia
37 TITLE+= program
38 DEPENDS+= +libpthread +libffmpeg
39 endef
40
41 define Package/ffmpeg/description
42 $(call Package/ffmpeg/Default/description)
43 .
44 This package contains the FFmpeg command line tool.
45 endef
46
47 define Package/ffserver
48 $(call Package/ffserver/Default)
49 SECTION:=multimedia
50 CATEGORY:=Multimedia
51 TITLE+= streaming server
52 DEPENDS+= +libpthread +libffmpeg
53 endef
54
55 define Package/ffserver/description
56 $(call Package/ffmpeg/Default/description)
57 .
58 This package contains the FFmpeg streaming server.
59 endef
60
61 define Package/libffmpeg
62 $(call Package/ffmpeg/Default)
63 SECTION:=libs
64 CATEGORY:=Libraries
65 TITLE+= libraries
66 DEPENDS+= +libpthread +libfaad2 +zlib
67 MENU:=1
68 endef
69
70 define Package/libffmpeg/config
71 menu "Configuration"
72 depends on PACKAGE_libffmpeg
73 source "$(SOURCE)/Config.in"
74 endmenu
75 endef
76
77 define Package/libffmeg/description
78 $(call Package/ffmpeg/Default/description)
79 .
80 This package contains FFmpeg shared libraries.
81 endef
82
83 FFMPEG_ENCODERS:= \
84 ac3 \
85 jpegls \
86 mpeg1video \
87 mpeg2video \
88 mpeg4 \
89 png \
90 zlib \
91
92 FFMPEG_DECODERS:= \
93 ac3 \
94 atrac3 \
95 gif \
96 h264 \
97 jpegls \
98 mp3 \
99 mpeg1video \
100 mpeg2video \
101 mpeg4 \
102 mpeg4aac \
103 mpegvideo \
104 png \
105 wmav1 \
106 wmav2 \
107 zlib \
108
109 FFMPEG_MUXERS:= \
110 ac3 \
111 ffm \
112 h264 \
113 mp3 \
114 mp4 \
115 mpeg1video \
116 mpeg2video \
117 mpegts \
118 rtp \
119
120 FFMPEG_DEMUXERS:= \
121 ac3 \
122 ffm \
123 h264 \
124 mp3 \
125 mpegps \
126 mpegts \
127 mpegvideo \
128 rtsp \
129 sdp \
130 v4l2 \
131
132 FFMPEG_PARSERS:= \
133 ac3 \
134 h264 \
135 mpegaudio \
136 mpegvideo \
137 mpeg4video \
138
139 FFMPEG_PROTOCOLS:= \
140 file http pipe rtp tcp udp \
141
142 FFMPEG_CONFIGURE_ENCODERS:= \
143 $(foreach c, $(FFMPEG_ENCODERS), \
144 $(if $(CONFIG_FFMPEG_ENCODER_$(c)),--enable-encoder="$(c)") \
145 )
146
147 FFMPEG_CONFIGURE_DECODERS:= \
148 $(foreach c, $(FFMPEG_DECODERS), \
149 $(if $(CONFIG_FFMPEG_DECODER_$(c)),--enable-decoder="$(c)") \
150 )
151
152 FFMPEG_CONFIGURE_MUXERS:= \
153 $(foreach c, $(FFMPEG_MUXERS), \
154 $(if $(CONFIG_FFMPEG_MUXER_$(c)),--enable-muxer="$(c)") \
155 )
156
157 FFMPEG_CONFIGURE_DEMUXERS:= \
158 $(foreach c, $(FFMPEG_DEMUXERS), \
159 $(if $(CONFIG_FFMPEG_DEMUXER_$(c)),--enable-demuxer="$(c)") \
160 )
161
162 FFMPEG_CONFIGURE_PARSERS:= \
163 $(foreach c, $(FFMPEG_PARSERS), \
164 $(if $(CONFIG_FFMPEG_PARSER_$(c)),--enable-parser="$(c)") \
165 )
166
167 FFMPEG_CONFIGURE_PROTOCOLS:= \
168 $(foreach c, $(FFMPEG_PROTOCOLS), \
169 $(if $(CONFIG_FFMPEG_PROTOCOL_$(c)),--enable-protocol="$(c)") \
170 )
171
172 define Build/Configure
173 # this is *NOT* GNU configure
174 ( cd $(PKG_BUILD_DIR); \
175 CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
176 LDFLAGS="-L$(STAGING_DIR)/usr/lib" \
177 ./configure \
178 --enable-cross-compile \
179 --cross-prefix="$(TARGET_CROSS)" \
180 --arch="$(ARCH)" \
181 --prefix="/usr" \
182 --enable-shared \
183 --enable-static \
184 --disable-debug \
185 --enable-ffmpeg \
186 --enable-ffserver \
187 --enable-gpl \
188 --disable-ipv6 \
189 --enable-libfaad \
190 --enable-pthreads \
191 --disable-optimizations \
192 --enable-small \
193 --disable-stripping \
194 --disable-vhook \
195 --enable-zlib \
196 \
197 --disable-encoders \
198 $(FFMPEG_CONFIGURE_ENCODERS) \
199 --disable-decoders \
200 $(FFMPEG_CONFIGURE_DECODERS) \
201 --disable-muxers \
202 $(FFMPEG_CONFIGURE_MUXERS) \
203 --disable-demuxers \
204 $(FFMPEG_CONFIGURE_DEMUXERS) \
205 --disable-parsers \
206 $(FFMPEG_CONFIGURE_PARSERS) \
207 --disable-bsfs \
208 --disable-protocols \
209 $(FFMPEG_CONFIGURE_PROTOCOLS) \
210 )
211 endef
212
213 define Build/Compile
214 $(MAKE) -C $(PKG_BUILD_DIR) \
215 DESTDIR="$(PKG_INSTALL_DIR)" \
216 all install
217 endef
218
219 define Build/InstallDev
220 $(INSTALL_DIR) $(1)/usr/include
221 $(CP) $(PKG_INSTALL_DIR)/usr/include/libav{codec,device,format,util} $(1)/usr/include/
222 $(INSTALL_DIR) $(1)/usr/lib
223 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libav{codec,device,format,util}.{a,so*} $(1)/usr/lib/
224 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
225 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libav{codec,device,format,util}.pc $(1)/usr/lib/pkgconfig/
226 endef
227
228 define Package/ffmpeg/install
229 $(INSTALL_DIR) $(1)/usr/bin
230 $(CP) $(PKG_INSTALL_DIR)/usr/bin/ffmpeg $(1)/usr/bin/
231 endef
232
233 define Package/ffserver/install
234 $(INSTALL_DIR) $(1)/usr/bin
235 $(CP) $(PKG_INSTALL_DIR)/usr/bin/ffserver $(1)/usr/bin/
236 endef
237
238 define Package/libffmpeg/install
239 $(INSTALL_DIR) $(1)/usr/lib
240 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libav{codec,device,format,util}.so.* $(1)/usr/lib/
241 endef
242
243 $(eval $(call BuildPackage,ffmpeg))
244 $(eval $(call BuildPackage,ffserver))
245 $(eval $(call BuildPackage,libffmpeg))