motion: add non/ffmpeg variants
authorLuiz Angelo Daros de Luca <luizluca@gmail.com>
Sat, 6 Jul 2024 06:33:57 +0000 (03:33 -0300)
committerRosen Penev <rosenp@gmail.com>
Sat, 6 Jul 2024 17:29:11 +0000 (10:29 -0700)
With ffmpeg support, motion can encode videos and process network camera
streams. It is a small code base and buinding it twice will not
significantly impact a full build.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
multimedia/motion/Makefile

index bd2b4809292e7bec20f4158f3e9536b41b274688..0758f3b1b6b6e7d742af7bd36b6ae8310fee9c79 100644 (file)
@@ -14,7 +14,7 @@ PKG_RELEASE:=1
 PKG_SOURCE:=$(PKG_NAME)-release-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/Motion-Project/motion/tar.gz/release-$(PKG_VERSION)?
 PKG_HASH:=42320a1c7b54a3f0b5a49cecf34a5d752760b28383bc573b3ca1240581786fe5
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-release-$(PKG_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-release-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
@@ -29,30 +29,70 @@ PKG_BUILD_DEPENDS:=gettext-full/host
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
 
-define Package/motion
+define Package/motion/Default
   SECTION:=multimedia
   CATEGORY:=Multimedia
   DEPENDS:=+libjpeg +libpthread +libmicrohttpd $(INTL_DEPENDS)
   TITLE:=webcam motion sensing and logging
+  PROVIDES:=motion
   URL:=https://motion-project.github.io/
 endef
 
+define Package/motion/Default/description
+Motion is a program that monitor video signals from many types of cameras and
+depending upon how they are configured, perform actions when movement is
+detected.
+endef
+
+define Package/motion-noffmpeg
+$(call Package/motion/Default)
+  TITLE+= (w/o FFMPEG support)
+  VARIANT:=noffmpeg
+  DEFAULT_VARIANT:=1
+endef
+
+define Package/motion-noffmpeg/description
+$(call Package/motion/Default/description)
+This package is built without FFMPEG support.
+endef
+
+define Package/motion-ffmpeg
+$(call Package/motion/Default)
+  TITLE+= (with FFMPEG support)
+  VARIANT:=ffmpeg
+  DEPENDS+=+libffmpeg-full
+endef
+
+define Package/motion-ffmpeg/description
+$(call Package/motion/Default/description)
+This package is built with FFMPEG support.
+endef
+
 define Package/motion/conffiles
 /etc/config/motion
 /etc/motion.conf
 endef
 
+Package/motion-noffmpeg/conffiles = $(Package/motion/conffiles)
+Package/motion-ffmpeg/conffiles = $(Package/motion/conffiles)
+
 CONFIGURE_ARGS += \
        --without-bktr \
        --without-webp \
        --without-mmal \
-       --without-ffmpeg \
        --without-mariadb \
        --without-mysql \
        --without-pgsql \
        --without-sqlite3 \
        --without-optimizecpu
 
+ifeq ($(BUILD_VARIANT),noffmpeg)
+       CONFIGURE_ARGS += --without-ffmpeg
+endif
+ifeq ($(BUILD_VARIANT),ffmpeg)
+       CONFIGURE_ARGS += --with-ffmpeg
+endif
+
 define Package/motion/install
        $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d
        $(INSTALL_CONF) ./files/motion.conf $(1)/etc/config/motion
@@ -61,5 +101,8 @@ define Package/motion/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/motion $(1)/usr/bin/
 endef
+Package/motion-noffmpeg/install = $(Package/motion/install)
+Package/motion-ffmpeg/install = $(Package/motion/install)
 
-$(eval $(call BuildPackage,motion))
+$(eval $(call BuildPackage,motion-noffmpeg))
+$(eval $(call BuildPackage,motion-ffmpeg))