################################################################################ # # swupdate # ################################################################################ SWUPDATE_VERSION = 2018.11 SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION)) SWUPDATE_LICENSE = GPL-2.0+, LGPL-2.1+, MIT SWUPDATE_LICENSE_FILES = COPYING # swupdate uses $CROSS-cc instead of $CROSS-gcc, which is not # available in all external toolchains, and use CC for linking. Ensure # TARGET_CC is used for both. SWUPDATE_MAKE_ENV = CC="$(TARGET_CC)" LD="$(TARGET_CC)" # swupdate bundles its own version of mongoose (version 6.11) ifeq ($(BR2_PACKAGE_JSON_C),y) SWUPDATE_DEPENDENCIES += json-c SWUPDATE_MAKE_ENV += HAVE_JSON_C=y else SWUPDATE_MAKE_ENV += HAVE_JSON_C=n endif ifeq ($(BR2_PACKAGE_LIBARCHIVE),y) SWUPDATE_DEPENDENCIES += libarchive SWUPDATE_MAKE_ENV += HAVE_LIBARCHIVE=y else SWUPDATE_MAKE_ENV += HAVE_LIBARCHIVE=n endif ifeq ($(BR2_PACKAGE_LIBCONFIG),y) SWUPDATE_DEPENDENCIES += libconfig SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=y else SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=n endif ifeq ($(BR2_PACKAGE_LIBCURL),y) SWUPDATE_DEPENDENCIES += libcurl SWUPDATE_MAKE_ENV += HAVE_LIBCURL=y else SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n endif ifeq ($(BR2_PACKAGE_HAS_LUAINTERPRETER):$(BR2_STATIC_LIBS),y:) SWUPDATE_DEPENDENCIES += luainterpreter host-pkgconf # defines the base name for the pkg-config file ("lua" or "luajit") define SWUPDATE_SET_LUA_VERSION $(call KCONFIG_SET_OPT,CONFIG_LUAPKG,$(BR2_PACKAGE_PROVIDES_LUAINTERPRETER),$(SWUPDATE_BUILD_CONFIG)) endef SWUPDATE_MAKE_ENV += HAVE_LUA=y else SWUPDATE_MAKE_ENV += HAVE_LUA=n endif ifeq ($(BR2_PACKAGE_MTD),y) SWUPDATE_DEPENDENCIES += mtd SWUPDATE_MAKE_ENV += HAVE_LIBMTD=y SWUPDATE_MAKE_ENV += HAVE_LIBUBI=y else SWUPDATE_MAKE_ENV += HAVE_LIBMTD=n SWUPDATE_MAKE_ENV += HAVE_LIBUBI=n endif ifeq ($(BR2_PACKAGE_OPENSSL),y) SWUPDATE_DEPENDENCIES += openssl SWUPDATE_MAKE_ENV += HAVE_LIBSSL=y SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=y else SWUPDATE_MAKE_ENV += HAVE_LIBSSL=n SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=n endif ifeq ($(BR2_PACKAGE_UBOOT_TOOLS),y) SWUPDATE_DEPENDENCIES += uboot-tools SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=y else SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=n endif ifeq ($(BR2_PACKAGE_ZEROMQ),y) SWUPDATE_DEPENDENCIES += zeromq SWUPDATE_MAKE_ENV += HAVE_LIBZEROMQ=y else SWUPDATE_MAKE_ENV += HAVE_LIBZEROMQ=n endif ifeq ($(BR2_PACKAGE_ZLIB),y) SWUPDATE_DEPENDENCIES += zlib SWUPDATE_MAKE_ENV += HAVE_ZLIB=y else SWUPDATE_MAKE_ENV += HAVE_ZLIB=n endif SWUPDATE_BUILD_CONFIG = $(@D)/.config SWUPDATE_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG)) SWUPDATE_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig ifeq ($(BR2_STATIC_LIBS),y) define SWUPDATE_PREFER_STATIC $(call KCONFIG_ENABLE_OPT,CONFIG_STATIC,$(SWUPDATE_BUILD_CONFIG)) endef endif define SWUPDATE_SET_BUILD_OPTIONS $(call KCONFIG_SET_OPT,CONFIG_CROSS_COMPILE,"$(TARGET_CROSS)", \ $(SWUPDATE_BUILD_CONFIG)) $(call KCONFIG_SET_OPT,CONFIG_SYSROOT,"$(STAGING_DIR)", \ $(SWUPDATE_BUILD_CONFIG)) $(call KCONFIG_SET_OPT,CONFIG_EXTRA_CFLAGS,"$(TARGET_CFLAGS)", \ $(SWUPDATE_BUILD_CONFIG)) $(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDFLAGS,"$(TARGET_LDFLAGS)", \ $(SWUPDATE_BUILD_CONFIG)) endef define SWUPDATE_KCONFIG_FIXUP_CMDS $(SWUPDATE_PREFER_STATIC) $(SWUPDATE_SET_BUILD_OPTIONS) $(SWUPDATE_SET_LUA_VERSION) endef define SWUPDATE_BUILD_CMDS $(TARGET_MAKE_ENV) $(SWUPDATE_MAKE_ENV) $(MAKE) -C $(@D) endef define SWUPDATE_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/swupdate $(TARGET_DIR)/usr/bin/swupdate $(if $(BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE), \ mkdir -p $(TARGET_DIR)/var/www/swupdate; \ cp -dpfr $(@D)/examples/www/v2/* $(TARGET_DIR)/var/www/swupdate) endef # Checks to give errors that the user can understand # Must be before we call to kconfig-package ifeq ($(BR2_PACKAGE_SWUPDATE)$(BR_BUILDING),yy) ifeq ($(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG)),) $(error No Swupdate configuration file specified, check your BR2_PACKAGE_SWUPDATE_CONFIG setting) endif endif $(eval $(kconfig-package))