5fc943c872bf54a15441c57f425bc476c4218770
[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 CMAKE_OPTIONS += -DCMAKE_SKIP_RPATH=FALSE
179
180 CAMBOZOLA:=cambozola-0.936.tar.gz
181
182 # Distribution URL doesn't always have the correct version
183 # Using the OpenWrt mirror provides a stable version
184 # orig-URL:=http://www.andywilcock.com/code/cambozola
185 define Download/cambozola
186 URL:=https://sources.openwrt.org/
187 FILE:=$(CAMBOZOLA)
188 HASH:=4e4e92d95673edd051e6b4d36bed8c5328873f5fc374073760b457d4be33415b
189 endef
190
191 # redefine prepare to extract to our build dir
192 # apply patches
193 define Build/Prepare
194 $(Build/Prepare/Default)
195 # Fetch latest cambozola that works with latest Java(s)
196 # Yes, I know this is ugly
197 ifneq ($(CONFIG_PACKAGE_mjpg-streamer-www),)
198 $(eval $(call Download,cambozola))
199 $(TAR) -xf $(DL_DIR)/$(CAMBOZOLA) --strip=2 --wildcards \
200 -C $(PKG_BUILD_DIR)/www */dist/cambozola.jar
201 endif
202 endef
203
204 define Build/Configure
205 $(RM) $(PKG_BUILD_DIR)/plugins/input_uvc/uvcvideo.h
206 $(call Build/Configure/Default)
207 endef
208
209 TARGET_LDFLAGS+= -ljpeg
210
211 ifeq ($(CONFIG_MJPG_STREAMER_V4L2),y)
212 TARGET_CFLAGS+= -DUSE_LIBV4L2
213 TARGET_LDFLAGS+= -lv4l2
214 endif
215
216 define Package/mjpg-streamer/install
217 $(INSTALL_DIR) $(1)/usr/bin
218 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mjpg_streamer $(1)/usr/bin/
219 $(INSTALL_DIR) $(1)/etc/config
220 $(CP) ./files/mjpg-streamer.config $(1)/etc/config/mjpg-streamer
221 $(INSTALL_DIR) $(1)/etc/init.d
222 $(INSTALL_BIN) ./files/mjpg-streamer.init $(1)/etc/init.d/mjpg-streamer
223 $(INSTALL_DIR) $(1)/etc/hotplug.d/usb
224 $(INSTALL_DATA) ./files/mjpg-streamer.hotplug $(1)/etc/hotplug.d/usb/20-mjpg-streamer
225 endef
226
227 define Package/mjpg-streamer-input-file/install
228 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
229 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_file.so $(1)/usr/lib/mjpg-streamer
230 endef
231
232 define Package/mjpg-streamer-input-uvc/install
233 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
234 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_uvc.so $(1)/usr/lib/mjpg-streamer
235 endef
236
237 define Package/mjpg-streamer-input-http/install
238 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
239 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_http.so $(1)/usr/lib/mjpg-streamer
240 endef
241
242 define Package/mjpg-streamer-output-rtsp/install
243 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
244 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_rtsp.so $(1)/usr/lib/mjpg-streamer
245 endef
246
247 define Package/mjpg-streamer-output-udp/install
248 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
249 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_udp.so $(1)/usr/lib/mjpg-streamer
250 endef
251
252 define Package/mjpg-streamer-output-file/install
253 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
254 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_file.so $(1)/usr/lib/mjpg-streamer
255 endef
256
257 define Package/mjpg-streamer-output-http/install
258 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
259 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_http.so $(1)/usr/lib/mjpg-streamer
260 endef
261
262 define Package/mjpg-streamer-output-zmq/install
263 $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
264 $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_zmqserver.so $(1)/usr/lib/mjpg-streamer
265 endef
266
267 define Package/mjpg-streamer-www/install
268 $(INSTALL_DIR) $(1)/www/webcam
269 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mjpg-streamer/www/* $(1)/www/webcam
270 endef
271
272 define Package/mjpg-streamer-www-simple/install
273 $(INSTALL_DIR) $(1)/www/webcam
274 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mjpg-streamer/www/stream_simple.html $(1)/www/webcam/index.html
275 endef
276
277 $(eval $(call BuildPackage,mjpg-streamer))
278 $(eval $(call BuildPackage,mjpg-streamer-input-file))
279 $(eval $(call BuildPackage,mjpg-streamer-input-uvc))
280 $(eval $(call BuildPackage,mjpg-streamer-input-http))
281 $(eval $(call BuildPackage,mjpg-streamer-output-rtsp))
282 $(eval $(call BuildPackage,mjpg-streamer-output-file))
283 $(eval $(call BuildPackage,mjpg-streamer-output-http))
284 $(eval $(call BuildPackage,mjpg-streamer-output-zmq))
285 $(eval $(call BuildPackage,mjpg-streamer-www))
286 $(eval $(call BuildPackage,mjpg-streamer-www-simple))