gluon.mk 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # Dependencies for LuaSrcDiet
  2. PKG_BUILD_DEPENDS += luci-base/host
  3. include $(INCLUDE_DIR)/package.mk
  4. # Annoyingly, make's shell function replaces all newlines with spaces, so we have to do some escaping work. Yuck.
  5. define GluonCheckSite
  6. [ -z "$$IPKG_INSTROOT" ] || sed -e 's/-@/\n/g' -e 's/+@/@/g' <<'END__GLUON__CHECK__SITE' | "${TOPDIR}/staging_dir/hostpkg/bin/lua" -e 'dofile()'
  7. local f = assert(io.open(os.getenv('IPKG_INSTROOT') .. '/lib/gluon/site.json'))
  8. local site_json = f:read('*a')
  9. f:close()
  10. site = require('cjson').decode(site_json)
  11. $(shell cat '$(TOPDIR)/../scripts/check_site_lib.lua' '$(1)' | sed -ne '1h; 1!H; $$ {g; s/@/+@/g; s/\n/-@/g; p}')
  12. END__GLUON__CHECK__SITE
  13. endef
  14. # Languages supported by LuCi
  15. GLUON_SUPPORTED_LANGS := ca cs de el en es fr he hu it ja ms no pl pt-br pt ro ru sk sv tr uk vi zh-cn zh-tw
  16. GLUON_LANG_de := German
  17. GLUON_LANG_fr := French
  18. GLUON_I18N_PACKAGES := $(foreach lang,$(GLUON_SUPPORTED_LANGS),+LUCI_LANG_$(lang):luci-i18n-base-$(lang))
  19. GLUON_I18N_CONFIG := $(foreach lang,$(GLUON_SUPPORTED_LANGS),CONFIG_LUCI_LANG_$(lang))
  20. GLUON_ENABLED_LANGS := $(foreach lang,$(GLUON_SUPPORTED_LANGS),$(if $(CONFIG_LUCI_LANG_$(lang)),$(lang)))
  21. define GluonBuildI18N
  22. mkdir -p $$(PKG_BUILD_DIR)/i18n
  23. for lang in $$(GLUON_ENABLED_LANGS); do \
  24. if [ -e $(2)/$$$$lang.po ]; then \
  25. rm -f $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo; \
  26. po2lmo $(2)/$$$$lang.po $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo; \
  27. fi; \
  28. done
  29. endef
  30. define GluonInstallI18N
  31. $$(INSTALL_DIR) $(2)/usr/lib/lua/luci/i18n
  32. for lang in $$(GLUON_ENABLED_LANGS); do \
  33. if [ -e $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo ]; then \
  34. $$(INSTALL_DATA) $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo $(2)/usr/lib/lua/luci/i18n/$(1).$$$$lang.lmo; \
  35. fi; \
  36. done
  37. endef
  38. define GluonSrcDiet
  39. rm -rf $(2)
  40. $(CP) $(1) $(2)
  41. $(FIND) $(2) -type f | while read src; do \
  42. if LuaSrcDiet --noopt-binequiv -o "$$$$src.o" "$$$$src"; then \
  43. chmod $$$$(stat -c%a "$$$$src") "$$$$src.o"; \
  44. mv "$$$$src.o" "$$$$src"; \
  45. fi; \
  46. done
  47. endef