treewide: refactor to use PKG_BUILD_FLAGS:=no-mips16
[feed/packages.git] / multimedia / gst1-libav / Makefile
1 #
2 # Copyright (C) 2006-2016 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=gst1-libav
11 PKG_VERSION:=1.20.5
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=gst-libav-$(PKG_VERSION).tar.xz
15 PKG_SOURCE_URL:=https://gstreamer.freedesktop.org/src/gst-libav
16 PKG_HASH:=b152e3cc49d014899f53c39d8a6224a44e1399b4cf76aa5f9a903fdf9793c3cc
17 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-libav-$(PKG_VERSION)
18
19 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
20 Ted Hess <thess@kitschensync.net>
21 PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later
22 PKG_LICENSE_FILES:=COPYING COPYING.LIB
23
24 PKG_BUILD_FLAGS:=no-mips16
25
26 GST_VERSION:=1.0
27
28 LIBAV_ENCODERS:= \
29 ac3 \
30 jpegls \
31 mpeg1video \
32 mpeg2video \
33 mpeg4 \
34 pcm_s16be \
35 pcm_s16le \
36 png \
37 vorbis \
38 zlib \
39
40 LIBAV_DECODERS:= \
41 aac \
42 ac3 \
43 atrac3 \
44 gif \
45 h264 \
46 jpegls \
47 mp2 \
48 mp3 \
49 mpeg1video \
50 mpeg2video \
51 mpeg4 \
52 mpegvideo \
53 pcm_s16be \
54 pcm_s16le \
55 png \
56 vorbis \
57 wmav1 \
58 wmav2 \
59 zlib \
60
61 LIBAV_MUXERS:= \
62 ac3 \
63 ffm \
64 h264 \
65 mp3 \
66 mp4 \
67 mpeg1video \
68 mpeg2video \
69 mpegts \
70 ogg \
71 oss \
72 rtp \
73
74 LIBAV_DEMUXERS:= \
75 ac3 \
76 ffm \
77 h264 \
78 mp3 \
79 mpegps \
80 mpegts \
81 mpegvideo \
82 ogg \
83 rm \
84 rtsp \
85 sdp \
86 v4l2 \
87
88 LIBAV_PARSERS:= \
89 aac \
90 ac3 \
91 h264 \
92 mpegaudio \
93 mpegvideo \
94 mpeg4video \
95
96 LIBAV_PROTOCOLS:= \
97 file http pipe rtp tcp udp
98
99 PKG_CONFIG_DEPENDS:= \
100 $(patsubst %,CONFIG_GST1_LIBAV_ENCODER_%,$(LIBAV_ENCODERS)) \
101 $(patsubst %,CONFIG_GST1_LIBAV_DECODER_%,$(LIBAV_DECODERS)) \
102 $(patsubst %,CONFIG_GST1_LIBAV_MUXER_%,$(LIBAV_DEMUXERS)) \
103 $(patsubst %,CONFIG_GST1_LIBAV_DEMUXER_%,$(LIBAV_DEMUXERS)) \
104 $(patsubst %,CONFIG_GST1_LIBAV_PARSER_%,$(LIBAV_PARSERS)) \
105 $(patsubst %,CONFIG_GST1_LIBAV_PROTOCOL_%,$(LIBAV_PROTOCOLS))
106
107 include $(INCLUDE_DIR)/package.mk
108 include $(INCLUDE_DIR)/nls.mk
109 include $(INCLUDE_DIR)/meson.mk
110
111 define Package/gst1-libav
112 SECTION:=multimedia
113 CATEGORY:=Multimedia
114 TITLE:=GStreamer Libav plugin
115 URL:=https://www.gstreamer.net/modules/gst-libav.html
116 DEPENDS:= +libgstreamer1 +gstreamer1-plugins-base \
117 +gst1-mod-alsa +libgst1audio +libgst1pbutils +libgst1video \
118 +libbz2 +liblzma +libffmpeg-full
119 endef
120
121 define Package/gst1-libav/description
122 GStreamer with libav bindings using internal Libav
123 endef
124
125 define Package/gst1-libav/config
126 source "$(SOURCE)/Config.in"
127 endef
128
129 FILTER_CONFIG= \
130 $(foreach c, $(3), \
131 $(if $(CONFIG_GST1_LIBAV_$(1)_$(c)),--enable-$(2)='$(c)') \
132 )
133
134 LIBAV_CONFIGURE_ENCODERS:=$(call FILTER_CONFIG,ENCODER,encoder,$(LIBAV_ENCODERS))
135 LIBAV_CONFIGURE_DECODERS:=$(call FILTER_CONFIG,DECODER,decoder,$(LIBAV_DECODERS))
136 LIBAV_CONFIGURE_MUXERS:=$(call FILTER_CONFIG,MUXER,muxer,$(LIBAV_MUXERS))
137 LIBAV_CONFIGURE_DEMUXERS:=$(call FILTER_CONFIG,DEMUXER,demuxer,$(LIBAV_DEMUXERS))
138 LIBAV_CONFIGURE_PARSERS:=$(call FILTER_CONFIG,PARSER,parser,$(LIBAV_PARSERS))
139 LIBAV_CONFIGURE_PROTOCOLS:=$(call FILTER_CONFIG,PROTOCOL,protocol,$(LIBAV_PROTOCOLS))
140
141 # Hack to build on mips64.
142 ifneq ($(findstring octeonplus,$(CONFIG_CPU_TYPE)),)
143 REAL_CPU_TYPE:=octeon+
144 else
145 # Strip off FPU notation.
146 REAL_CPU_TYPE:=$(firstword $(subst +, ,$(CONFIG_CPU_TYPE)))
147 endif
148
149 CONFIGURE_ARGS += \
150 --disable-Bsymbolic \
151 --disable-fatal-warnings \
152 --disable-glib-asserts \
153 --disable-gobject-cast-checks \
154 --disable-gtk-doc-html \
155 --disable-valgrind \
156 --without-system-libav \
157 --with-pic \
158 --with-libav-extra-configure=" \
159 $(if $(REAL_CPU_TYPE),--cpu=$(call qstrip,$(REAL_CPU_TYPE)),) \
160 --disable-bsfs \
161 --disable-programs \
162 --disable-devices \
163 --disable-debug \
164 --disable-doc \
165 --disable-extra-warnings \
166 --disable-htmlpages \
167 --disable-manpages \
168 --disable-podpages \
169 --disable-txtpages \
170 --disable-runtime-cpudetect \
171 --disable-encoders \
172 $(LIBAV_CONFIGURE_ENCODERS) \
173 --disable-decoders \
174 $(LIBAV_CONFIGURE_DECODERS) \
175 --disable-muxers \
176 $(LIBAV_CONFIGURE_MUXERS) \
177 --disable-demuxers \
178 $(LIBAV_CONFIGURE_DEMUXERS) \
179 --disable-parsers \
180 $(LIBAV_CONFIGURE_PARSERS) \
181 --disable-protocols \
182 $(LIBAV_CONFIGURE_PROTOCOLS) \
183 --disable-asm \
184 --disable-altivec \
185 --disable-amd3dnow \
186 --disable-amd3dnowext \
187 --disable-mmx \
188 --disable-mmxext \
189 --disable-sse \
190 --disable-sse2 \
191 --disable-sse3 \
192 --disable-ssse3 \
193 --disable-sse4 \
194 --disable-sse42 \
195 --disable-avx \
196 --disable-xop \
197 --disable-fma3 \
198 --disable-fma4 \
199 --disable-avx2 \
200 --disable-inline-asm \
201 --disable-x86asm"
202
203 define Package/gst1-libav/install
204 $(INSTALL_DIR) $(1)/usr/lib/gstreamer-$(GST_VERSION)
205 ( cd $(PKG_INSTALL_DIR); $(CP) \
206 ./usr/lib/gstreamer-$(GST_VERSION)/libgstlibav.so* \
207 $(1)/usr/lib/gstreamer-$(GST_VERSION)/ \
208 )
209 endef
210
211 $(eval $(call BuildPackage,gst1-libav))