2 # This is free software, licensed under the GNU General Public License v2.
3 # See /LICENSE for more information.
6 include $(TOPDIR
)/rules.mk
8 PKG_NAME
:=mjpg-streamer
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
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
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
24 include $(INCLUDE_DIR
)/package.mk
25 include $(INCLUDE_DIR
)/cmake.mk
27 define Package
/mjpg-streamer
31 DEPENDS
:=+libpthread
+libjpeg
+MJPG_STREAMER_V4L2
:libv4l
32 URL
:=https
://github.com
/jacksonliam
/mjpg-streamer
35 define Package
/mjpg-streamer
/Default
/description
36 Streaming application for Linux-UVC compatible webcams
39 define Package
/mjpg-streamer
/description
40 $(call Package
/mjpg-streamer
/Default
/description
)
43 define Package
/mjpg-streamer
/conffiles
44 /etc
/config
/mjpg-streamer
47 define Package
/mjpg-streamer
/config
48 if PACKAGE_mjpg-streamer-input-uvc
50 config MJPG_STREAMER_V4L2
51 bool
"Build input_uvc with libv4l2 (camera controls)"
57 define Package
/mjpg-streamer
/Default
61 URL
:=https
://github.com
/jacksonliam
/mjpg-streamer
62 DEPENDS
:=mjpg-streamer
65 define Package
/mjpg-streamer-input-file
66 $(call Package
/mjpg-streamer
/Default
)
70 define Package
/mjpg-streamer-input-file
/description
71 $(call Package
/mjpg-streamer
/Default
/description
)
73 This package provides the file input plugin.
76 define Package
/mjpg-streamer-input-uvc
77 $(call Package
/mjpg-streamer
/Default
)
81 define Package
/mjpg-streamer-input-uvc
/description
82 $(call Package
/mjpg-streamer
/Default
/description
)
84 This package provides the UVC input plugin.
87 define Package
/mjpg-streamer-input-http
88 $(call Package
/mjpg-streamer
/Default
)
92 define Package
/mjpg-streamer-input-http
/description
93 $(call Package
/mjpg-streamer
/Default
/description
)
95 This package provides the http input plugin.
98 define Package
/mjpg-streamer-output-rtsp
99 $(call Package
/mjpg-streamer
/Default
)
100 TITLE
+= (RTSP output
)
103 define Package
/mjpg-streamer-output-rtsp
/description
104 $(call Package
/mjpg-streamer
/Default
/description
)
106 This package provides the RTSP output plugin.
109 define Package
/mjpg-streamer-output-udp
110 $(call Package
/mjpg-streamer
/Default
)
114 define Package
/mjpg-streamer-output-udp
/description
115 $(call Package
/mjpg-streamer
/Default
/description
)
117 This package provides the UDP output plugin.
120 define Package
/mjpg-streamer-output-file
121 $(call Package
/mjpg-streamer
/Default
)
122 TITLE
+= (file output
)
125 define Package
/mjpg-streamer-output-file
/description
126 $(call Package
/mjpg-streamer
/Default
/description
)
128 This package provides the file output plugin.
131 define Package
/mjpg-streamer-output-http
132 $(call Package
/mjpg-streamer
/Default
)
133 TITLE
+= (HTTP output
)
136 define Package
/mjpg-streamer-output-http
/description
137 $(call Package
/mjpg-streamer
/Default
/description
)
139 This package provides the HTTP output plugin.
142 define Package
/mjpg-streamer-output-zmq
143 $(call Package
/mjpg-streamer
/Default
)
145 DEPENDS
+= +libzmq
+libprotobuf-c
148 define Package
/mjpg-streamer-output-zmq
/description
149 $(call Package
/mjpg-streamer
/Default
/description
)
151 This package provides the ZeroMQ output plugin.
154 define Package
/mjpg-streamer-www
155 $(call Package
/mjpg-streamer
/Default
)
157 CONFLICTS
:=mjpg-streamer-www-simple
160 define Package
/mjpg-streamer-www
/description
161 $(call Package
/mjpg-streamer
/Default
/description
)
163 This package provides full version of the web content.
164 Includes cambozola applet.
167 define Package
/mjpg-streamer-www-simple
168 $(call Package
/mjpg-streamer
/Default
)
172 define Package
/mjpg-streamer-www-simple
/description
173 $(call Package
/mjpg-streamer
/Default
/description
)
175 This package provides simple version of the web content.
178 CMAKE_OPTIONS
+= -DCMAKE_SKIP_RPATH
=FALSE
180 CAMBOZOLA
:=cambozola-0.936.
tar.gz
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
/
188 HASH
:=4e4e92d95673edd051e6b4d36bed8c5328873f5fc374073760b457d4be33415b
191 # redefine prepare to extract to our build dir
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
204 define Build
/Configure
205 $(RM
) $(PKG_BUILD_DIR
)/plugins
/input_uvc
/uvcvideo.h
206 $(call Build
/Configure
/Default
)
209 TARGET_LDFLAGS
+= -ljpeg
211 ifeq ($(CONFIG_MJPG_STREAMER_V4L2
),y
)
212 TARGET_CFLAGS
+= -DUSE_LIBV4L2
213 TARGET_LDFLAGS
+= -lv4l2
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
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
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
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
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
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
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
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
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
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
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
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
))