remove a bunch of rpath hacks
[feed/packages.git] / multimedia / mjpg-streamer / Makefile
1 #
2 # This is free software, licensed under the GNU General Public License v2.
3 # See /LICENSE for more information.
4 #
5
6 include $(TOPDIR)/rules.mk
7
8 PKG_NAME:=mjpg-streamer
9 PKG_VERSION:=1.0.0
10 PKG_RELEASE:=$(AUTORELEASE)
11
12 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
13 PKG_SOURCE_URL:=https://codeload.github.com/jacksonliam/mjpg-streamer/tar.gz/v$(PKG_VERSION)?
14 PKG_HASH:=31850cd533b0290640cbdf4da44f7a774bfba050647cb0a0c84a435e90b08598
15
16 PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>, \
17 Ted Hess <thess@kitschensync.net>
18 PKG_LICENSE:=GPL-2.0-or-later
19 PKG_LICENSE_FILES:=LICENSE
20
21 PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip=2 -xf $(DL_DIR)/$(PKG_SOURCE)
22 PKG_BUILD_DEPENDS:=MJPG_STREAMER_V4L2:libv4l zmq protobuf-c/host
23
24 include $(INCLUDE_DIR)/package.mk
25 include $(INCLUDE_DIR)/cmake.mk
26
27 define Package/mjpg-streamer
28 SECTION:=multimedia
29 CATEGORY:=Multimedia
30 TITLE:=MJPG-streamer
31 DEPENDS:=+libpthread +libjpeg +MJPG_STREAMER_V4L2:libv4l
32 URL:=https://github.com/jacksonliam/mjpg-streamer
33 endef
34
35 define Package/mjpg-streamer/Default/description
36 Streaming application for Linux-UVC compatible webcams
37 endef
38
39 define Package/mjpg-streamer/description
40 $(call Package/mjpg-streamer/Default/description)
41 endef
42
43 define Package/mjpg-streamer/conffiles
44 /etc/config/mjpg-streamer
45 endef
46
47 define Package/mjpg-streamer/config
48 if PACKAGE_mjpg-streamer-input-uvc
49
50 config MJPG_STREAMER_V4L2
51 bool "Build input_uvc with libv4l2 (camera controls)"
52 default n
53 select PACKAGE_libv4l
54 endif
55 endef
56
57 define Package/mjpg-streamer/Default
58 SECTION:=multimedia
59 CATEGORY:=Multimedia
60 TITLE:=MJPG-streamer
61 URL:=https://github.com/jacksonliam/mjpg-streamer
62 DEPENDS:=mjpg-streamer
63 endef
64
65 define Package/mjpg-streamer-input-file
66 $(call Package/mjpg-streamer/Default)
67 TITLE+= (file input)
68 endef
69
70 define Package/mjpg-streamer-input-file/description
71 $(call Package/mjpg-streamer/Default/description)
72
73 This package provides the file input plugin.
74 endef
75
76 define Package/mjpg-streamer-input-uvc
77 $(call Package/mjpg-streamer/Default)
78 TITLE+= (UVC input)
79 endef
80
81 define Package/mjpg-streamer-input-uvc/description
82 $(call Package/mjpg-streamer/Default/description)
83
84 This package provides the UVC input plugin.
85 endef
86
87 define Package/mjpg-streamer-input-http
88 $(call Package/mjpg-streamer/Default)
89 TITLE+= (HTTP input)
90 endef
91
92 define Package/mjpg-streamer-input-http/description
93 $(call Package/mjpg-streamer/Default/description)
94
95 This package provides the http input plugin.
96 endef
97
98 define Package/mjpg-streamer-output-rtsp
99 $(call Package/mjpg-streamer/Default)
100 TITLE+= (RTSP output)
101 endef
102
103 define Package/mjpg-streamer-output-rtsp/description
104 $(call Package/mjpg-streamer/Default/description)
105
106 This package provides the RTSP output plugin.
107 endef
108
109 define Package/mjpg-streamer-output-udp
110 $(call Package/mjpg-streamer/Default)
111 TITLE+= (UDP output)
112 endef
113
114 define Package/mjpg-streamer-output-udp/description
115 $(call Package/mjpg-streamer/Default/description)
116
117 This package provides the UDP output plugin.
118 endef
119
120 define Package/mjpg-streamer-output-file
121 $(call Package/mjpg-streamer/Default)
122 TITLE+= (file output)
123 endef
124
125 define Package/mjpg-streamer-output-file/description
126 $(call Package/mjpg-streamer/Default/description)
127
128 This package provides the file output plugin.
129 endef
130
131 define Package/mjpg-streamer-output-http
132 $(call Package/mjpg-streamer/Default)
133 TITLE+= (HTTP output)
134 endef
135
136 define Package/mjpg-streamer-output-http/description
137 $(call Package/mjpg-streamer/Default/description)
138
139 This package provides the HTTP output plugin.
140 endef
141
142 define Package/mjpg-streamer-output-zmq
143 $(call Package/mjpg-streamer/Default)
144 TITLE+= (zmq output)
145 DEPENDS+= +libzmq +libprotobuf-c
146 endef
147
148 define Package/mjpg-streamer-output-zmq/description
149 $(call Package/mjpg-streamer/Default/description)
150
151 This package provides the ZeroMQ output plugin.
152 endef
153
154 define Package/mjpg-streamer-www
155 $(call Package/mjpg-streamer/Default)
156 TITLE+= (full www)
157 CONFLICTS:=mjpg-streamer-www-simple
158 endef
159
160 define Package/mjpg-streamer-www/description
161 $(call Package/mjpg-streamer/Default/description)
162
163 This package provides full version of the web content.
164 Includes cambozola applet.
165 endef
166
167 define Package/mjpg-streamer-www-simple
168 $(call Package/mjpg-streamer/Default)
169 TITLE+= (simple www)
170 endef
171
172 define Package/mjpg-streamer-www-simple/description
173 $(call Package/mjpg-streamer/Default/description)
174
175 This package provides simple version of the web content.
176 endef
177
178 CAMBOZOLA:=cambozola-0.936.tar.gz
179
180 # Distribution URL doesn't always have the correct version
181 # Using the OpenWrt mirror provides a stable version
182 # orig-URL:=http://www.andywilcock.com/code/cambozola
183 define Download/cambozola
184 URL:=https://sources.openwrt.org/
185 FILE:=$(CAMBOZOLA)
186 HASH:=4e4e92d95673edd051e6b4d36bed8c5328873f5fc374073760b457d4be33415b
187 endef
188
189 # redefine prepare to extract to our build dir
190 # apply patches
191 define Build/Prepare
192 $(Build/Prepare/Default)
193 # Fetch latest cambozola that works with latest Java(s)
194 # Yes, I know this is ugly
195 ifneq ($(CONFIG_PACKAGE_mjpg-streamer-www),)
196 $(eval $(call Download,cambozola))
197 $(TAR) -xf $(DL_DIR)/$(CAMBOZOLA) --strip=2 --wildcards \
198 -C $(PKG_BUILD_DIR)/www */dist/cambozola.jar
199 endif
200 endef
201
202 define Build/Configure
203 $(RM) $(PKG_BUILD_DIR)/plugins/input_uvc/uvcvideo.h
204 $(call Build/Configure/Default)
205 endef
206
207 TARGET_LDFLAGS+= -ljpeg
208
209 ifeq ($(CONFIG_MJPG_STREAMER_V4L2),y)
210 TARGET_CFLAGS+= -DUSE_LIBV4L2
211 TARGET_LDFLAGS+= -lv4l2
212 endif
213
214 define Package/mjpg-streamer/install
215 $(INSTALL_DIR) $(1)/usr/bin
216 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mjpg_streamer $(1)/usr/bin/
217 $(INSTALL_DIR) $(1)/etc/config
218 $(CP) ./files/mjpg-streamer.config $(1)/etc/config/mjpg-streamer
219 $(INSTALL_DIR) $(1)/etc/init.d
220 $(INSTALL_BIN) ./files/mjpg-streamer.init $(1)/etc/init.d/mjpg-streamer
221 $(INSTALL_DIR) $(1)/etc/hotplug.d/usb
222 $(INSTALL_DATA) ./files/mjpg-streamer.hotplug $(1)/etc/hotplug.d/usb/20-mjpg-streamer
223 endef
224
225 define Package/mjpg-streamer-input-file/install
226 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
227 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_file.so $(1)/usr/lib/mjpg-streamer
228 endef
229
230 define Package/mjpg-streamer-input-uvc/install
231 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
232 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_uvc.so $(1)/usr/lib/mjpg-streamer
233 endef
234
235 define Package/mjpg-streamer-input-http/install
236 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
237 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_http.so $(1)/usr/lib/mjpg-streamer
238 endef
239
240 define Package/mjpg-streamer-output-rtsp/install
241 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
242 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_rtsp.so $(1)/usr/lib/mjpg-streamer
243 endef
244
245 define Package/mjpg-streamer-output-udp/install
246 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
247 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_udp.so $(1)/usr/lib/mjpg-streamer
248 endef
249
250 define Package/mjpg-streamer-output-file/install
251 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
252 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_file.so $(1)/usr/lib/mjpg-streamer
253 endef
254
255 define Package/mjpg-streamer-output-http/install
256 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
257 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_http.so $(1)/usr/lib/mjpg-streamer
258 endef
259
260 define Package/mjpg-streamer-output-zmq/install
261 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
262 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_zmqserver.so $(1)/usr/lib/mjpg-streamer
263 endef
264
265 define Package/mjpg-streamer-www/install
266 $(INSTALL_DIR) $(1)/www/webcam
267 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mjpg-streamer/www/* $(1)/www/webcam
268 endef
269
270 define Package/mjpg-streamer-www-simple/install
271 $(INSTALL_DIR) $(1)/www/webcam
272 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mjpg-streamer/www/stream_simple.html $(1)/www/webcam/index.html
273 endef
274
275 $(eval $(call BuildPackage,mjpg-streamer))
276 $(eval $(call BuildPackage,mjpg-streamer-input-file))
277 $(eval $(call BuildPackage,mjpg-streamer-input-uvc))
278 $(eval $(call BuildPackage,mjpg-streamer-input-http))
279 $(eval $(call BuildPackage,mjpg-streamer-output-rtsp))
280 $(eval $(call BuildPackage,mjpg-streamer-output-file))
281 $(eval $(call BuildPackage,mjpg-streamer-output-http))
282 $(eval $(call BuildPackage,mjpg-streamer-output-zmq))
283 $(eval $(call BuildPackage,mjpg-streamer-www))
284 $(eval $(call BuildPackage,mjpg-streamer-www-simple))