swupdate.mk 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. ################################################################################
  2. #
  3. # swupdate
  4. #
  5. ################################################################################
  6. SWUPDATE_VERSION = 2018.11
  7. SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
  8. SWUPDATE_LICENSE = GPL-2.0+, LGPL-2.1+, MIT
  9. SWUPDATE_LICENSE_FILES = COPYING
  10. # swupdate uses $CROSS-cc instead of $CROSS-gcc, which is not
  11. # available in all external toolchains, and use CC for linking. Ensure
  12. # TARGET_CC is used for both.
  13. SWUPDATE_MAKE_ENV = CC="$(TARGET_CC)" LD="$(TARGET_CC)"
  14. # swupdate bundles its own version of mongoose (version 6.11)
  15. ifeq ($(BR2_PACKAGE_JSON_C),y)
  16. SWUPDATE_DEPENDENCIES += json-c
  17. SWUPDATE_MAKE_ENV += HAVE_JSON_C=y
  18. else
  19. SWUPDATE_MAKE_ENV += HAVE_JSON_C=n
  20. endif
  21. ifeq ($(BR2_PACKAGE_LIBARCHIVE),y)
  22. SWUPDATE_DEPENDENCIES += libarchive
  23. SWUPDATE_MAKE_ENV += HAVE_LIBARCHIVE=y
  24. else
  25. SWUPDATE_MAKE_ENV += HAVE_LIBARCHIVE=n
  26. endif
  27. ifeq ($(BR2_PACKAGE_LIBCONFIG),y)
  28. SWUPDATE_DEPENDENCIES += libconfig
  29. SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=y
  30. else
  31. SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=n
  32. endif
  33. ifeq ($(BR2_PACKAGE_LIBCURL),y)
  34. SWUPDATE_DEPENDENCIES += libcurl
  35. SWUPDATE_MAKE_ENV += HAVE_LIBCURL=y
  36. else
  37. SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n
  38. endif
  39. ifeq ($(BR2_PACKAGE_HAS_LUAINTERPRETER),y)
  40. SWUPDATE_DEPENDENCIES += luainterpreter host-pkgconf
  41. # defines the base name for the pkg-config file ("lua" or "luajit")
  42. define SWUPDATE_SET_LUA_VERSION
  43. $(call KCONFIG_SET_OPT,CONFIG_LUAPKG,$(BR2_PACKAGE_PROVIDES_LUAINTERPRETER),$(SWUPDATE_BUILD_CONFIG))
  44. endef
  45. SWUPDATE_MAKE_ENV += HAVE_LUA=y
  46. else
  47. SWUPDATE_MAKE_ENV += HAVE_LUA=n
  48. endif
  49. ifeq ($(BR2_PACKAGE_MTD),y)
  50. SWUPDATE_DEPENDENCIES += mtd
  51. SWUPDATE_MAKE_ENV += HAVE_LIBMTD=y
  52. SWUPDATE_MAKE_ENV += HAVE_LIBUBI=y
  53. else
  54. SWUPDATE_MAKE_ENV += HAVE_LIBMTD=n
  55. SWUPDATE_MAKE_ENV += HAVE_LIBUBI=n
  56. endif
  57. ifeq ($(BR2_PACKAGE_OPENSSL),y)
  58. SWUPDATE_DEPENDENCIES += openssl
  59. SWUPDATE_MAKE_ENV += HAVE_LIBSSL=y
  60. SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=y
  61. else
  62. SWUPDATE_MAKE_ENV += HAVE_LIBSSL=n
  63. SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=n
  64. endif
  65. ifeq ($(BR2_PACKAGE_UBOOT_TOOLS),y)
  66. SWUPDATE_DEPENDENCIES += uboot-tools
  67. SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=y
  68. else
  69. SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=n
  70. endif
  71. ifeq ($(BR2_PACKAGE_ZEROMQ),y)
  72. SWUPDATE_DEPENDENCIES += zeromq
  73. SWUPDATE_MAKE_ENV += HAVE_LIBZEROMQ=y
  74. else
  75. SWUPDATE_MAKE_ENV += HAVE_LIBZEROMQ=n
  76. endif
  77. ifeq ($(BR2_PACKAGE_ZLIB),y)
  78. SWUPDATE_DEPENDENCIES += zlib
  79. SWUPDATE_MAKE_ENV += HAVE_ZLIB=y
  80. else
  81. SWUPDATE_MAKE_ENV += HAVE_ZLIB=n
  82. endif
  83. SWUPDATE_BUILD_CONFIG = $(@D)/.config
  84. SWUPDATE_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG))
  85. SWUPDATE_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
  86. ifeq ($(BR2_STATIC_LIBS),y)
  87. define SWUPDATE_PREFER_STATIC
  88. $(call KCONFIG_ENABLE_OPT,CONFIG_STATIC,$(SWUPDATE_BUILD_CONFIG))
  89. endef
  90. endif
  91. define SWUPDATE_SET_BUILD_OPTIONS
  92. $(call KCONFIG_SET_OPT,CONFIG_CROSS_COMPILE,"$(TARGET_CROSS)", \
  93. $(SWUPDATE_BUILD_CONFIG))
  94. $(call KCONFIG_SET_OPT,CONFIG_SYSROOT,"$(STAGING_DIR)", \
  95. $(SWUPDATE_BUILD_CONFIG))
  96. $(call KCONFIG_SET_OPT,CONFIG_EXTRA_CFLAGS,"$(TARGET_CFLAGS)", \
  97. $(SWUPDATE_BUILD_CONFIG))
  98. $(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDFLAGS,"$(TARGET_LDFLAGS)", \
  99. $(SWUPDATE_BUILD_CONFIG))
  100. endef
  101. define SWUPDATE_KCONFIG_FIXUP_CMDS
  102. $(SWUPDATE_PREFER_STATIC)
  103. $(SWUPDATE_SET_BUILD_OPTIONS)
  104. $(SWUPDATE_SET_LUA_VERSION)
  105. endef
  106. define SWUPDATE_BUILD_CMDS
  107. $(TARGET_MAKE_ENV) $(SWUPDATE_MAKE_ENV) $(MAKE) -C $(@D)
  108. endef
  109. define SWUPDATE_INSTALL_TARGET_CMDS
  110. $(INSTALL) -D -m 0755 $(@D)/swupdate $(TARGET_DIR)/usr/bin/swupdate
  111. $(if $(BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE), \
  112. mkdir -p $(TARGET_DIR)/var/www/swupdate; \
  113. cp -dpfr $(@D)/examples/www/v2/* $(TARGET_DIR)/var/www/swupdate)
  114. endef
  115. # Checks to give errors that the user can understand
  116. # Must be before we call to kconfig-package
  117. ifeq ($(BR2_PACKAGE_SWUPDATE)$(BR_BUILDING),yy)
  118. ifeq ($(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG)),)
  119. $(error No Swupdate configuration file specified, check your BR2_PACKAGE_SWUPDATE_CONFIG setting)
  120. endif
  121. endif
  122. $(eval $(kconfig-package))