Makefile 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. include $(TOPDIR)/rules.mk
  2. PKG_NAME:=gluon-site
  3. GLUON_SITEDIR = $(call qstrip,$(CONFIG_GLUON_SITEDIR))
  4. GLUON_SITE_VERSION = $(shell ( cd '$(GLUON_SITEDIR)' && git --git-dir=.git describe --always --dirty=+ ) 2>/dev/null || echo unknown)
  5. PKG_VERSION:=$(if $(DUMP),x,$(GLUON_SITE_VERSION))
  6. PKG_CONFIG_DEPENDS := CONFIG_GLUON_RELEASE CONFIG_GLUON_SITEDIR CONFIG_GLUON_MULTIDOMAIN
  7. PKG_FILE_DEPENDS := $(GLUON_SITEDIR)/site.conf $(GLUON_SITEDIR)/domains/ $(GLUON_SITEDIR)/i18n/
  8. PKG_BUILD_DEPENDS := lua-cjson/host
  9. PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
  10. include ../gluon.mk
  11. PKG_CONFIG_DEPENDS += $(GLUON_I18N_CONFIG)
  12. define Package/gluon-site
  13. SECTION:=gluon
  14. CATEGORY:=Gluon
  15. TITLE:=Site-specific files of Gluon
  16. endef
  17. define Package/gluon-site/config
  18. config GLUON_RELEASE
  19. string "Gluon release number"
  20. depends on PACKAGE_gluon-site
  21. default ""
  22. config GLUON_SITEDIR
  23. string "Gluon site configuration directory"
  24. depends on PACKAGE_gluon-site
  25. default ""
  26. config GLUON_MULTIDOMAIN
  27. bool "Gluon site configuration directory"
  28. depends on PACKAGE_gluon-site
  29. endef
  30. define Build/Prepare
  31. mkdir -p $(PKG_BUILD_DIR)
  32. endef
  33. define GenerateJSON
  34. GLUON_SITEDIR='$$(GLUON_SITEDIR)' GLUON_SITE_CONFIG='$(1).conf' lua -e 'print(require("cjson").encode(assert(dofile("../../scripts/site_config.lua"))))' > '$$(PKG_BUILD_DIR)/$(1).json'
  35. endef
  36. define Build/Compile
  37. $(call GenerateJSON,site)
  38. ifdef CONFIG_GLUON_MULTIDOMAIN
  39. rm -rf $(PKG_BUILD_DIR)/domains
  40. mkdir -p $(PKG_BUILD_DIR)/domains
  41. $(foreach domain,$(patsubst $(GLUON_SITEDIR)/domains/%.conf,%,$(wildcard $(GLUON_SITEDIR)/domains/*.conf)),
  42. [ ! -e '$(PKG_BUILD_DIR)/domains/$(domain).json' ]
  43. $(call GenerateJSON,domains/$(domain))
  44. lua ../../scripts/domain_aliases.lua '$(PKG_BUILD_DIR)/domains/$(domain).json' | while read alias; do \
  45. [ "$$$${alias}" != '$(domain)' ] || continue; \
  46. ln -s '$(domain).json' $(PKG_BUILD_DIR)/domains/$$$${alias}.json || exit 1; \
  47. done
  48. )
  49. endif
  50. $(call GluonBuildI18N,gluon-site,$(GLUON_SITEDIR)/i18n)
  51. endef
  52. define Package/gluon-site/install
  53. $(INSTALL_DIR) $(1)/lib/gluon
  54. $(INSTALL_DATA) $(PKG_BUILD_DIR)/site.json $(1)/lib/gluon/
  55. ifdef CONFIG_GLUON_MULTIDOMAIN
  56. $(CP) $(PKG_BUILD_DIR)/domains $(1)/lib/gluon/
  57. endif
  58. echo '$(GLUON_SITE_VERSION)' > $(1)/lib/gluon/site-version
  59. echo '$(call qstrip,$(CONFIG_GLUON_RELEASE))' > $(1)/lib/gluon/release
  60. $(call GluonInstallI18N,gluon-site,$(1))
  61. endef
  62. $(eval $(call BuildPackage,gluon-site))