3386221ef1
A leading tab character usually marks recipe lines in Makefiles; non-recipe lines must be indented using spaces. The incorrect tab character doesn't seen to have caused any issues in this case, but it should be fixed nonetheless, if only for consistency.
126 lines
3.2 KiB
Makefile
126 lines
3.2 KiB
Makefile
GLUON_MK := $(abspath $(lastword $(MAKEFILE_LIST)))
|
|
PKG_FILE_DEPENDS += $(GLUON_MK)
|
|
|
|
PKG_BUILD_DEPENDS += luasrcdiet/host
|
|
|
|
ifneq ($(wildcard ./luasrc/.),)
|
|
PKG_CONFIG_DEPENDS += CONFIG_GLUON_MINIFY
|
|
endif
|
|
|
|
ifneq ($(wildcard ./src/respondd.c),)
|
|
PKG_BUILD_DEPENDS += respondd
|
|
endif
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
|
|
# Annoyingly, make's shell function replaces all newlines with spaces, so we have to do some escaping work. Yuck.
|
|
shell-escape = $(shell $(1) | sed -ne '1h; 1!H; $$ {g; s/@/@1/g; s/\n/@2/g; p}')
|
|
shell-unescape = $(subst @1,@,$(subst @2,$(newline),$(1)))
|
|
shell-verbatim = $(call shell-unescape,$(call shell-escape,$(1)))
|
|
|
|
|
|
define GluonCheckSite
|
|
[ -z "$$IPKG_INSTROOT" ] || "${TOPDIR}/staging_dir/hostpkg/bin/lua" "${TOPDIR}/../scripts/check_site.lua" <<'END__GLUON__CHECK__SITE'
|
|
$(call shell-verbatim,cat '$(1)')
|
|
END__GLUON__CHECK__SITE
|
|
endef
|
|
|
|
GLUON_SUPPORTED_LANGS := de fr
|
|
GLUON_LANG_de := German
|
|
GLUON_LANG_fr := French
|
|
|
|
GLUON_I18N_CONFIG := $(foreach lang,$(GLUON_SUPPORTED_LANGS),CONFIG_GLUON_WEB_LANG_$(lang))
|
|
GLUON_ENABLED_LANGS := en $(foreach lang,$(GLUON_SUPPORTED_LANGS),$(if $(CONFIG_GLUON_WEB_LANG_$(lang)),$(lang)))
|
|
|
|
ifneq ($(wildcard ./i18n/.),)
|
|
PKG_BUILD_DEPENDS += gluon-web/host
|
|
PKG_CONFIG_DEPENDS += $(GLUON_I18N_CONFIG)
|
|
endif
|
|
|
|
|
|
define GluonBuildI18N
|
|
mkdir -p $$(PKG_BUILD_DIR)/i18n
|
|
for lang in $$(GLUON_ENABLED_LANGS); do \
|
|
if [ -e $(1)/$$$$lang.po ]; then \
|
|
rm -f $$(PKG_BUILD_DIR)/i18n/$$$$lang.lmo; \
|
|
gluon-po2lmo $(1)/$$$$lang.po $$(PKG_BUILD_DIR)/i18n/$$$$lang.lmo; \
|
|
fi; \
|
|
done
|
|
endef
|
|
|
|
define GluonInstallI18N
|
|
$$(INSTALL_DIR) $(1)/lib/gluon/web/i18n
|
|
for lang in $$(GLUON_ENABLED_LANGS); do \
|
|
if [ -e $$(PKG_BUILD_DIR)/i18n/$$$$lang.lmo ]; then \
|
|
$$(INSTALL_DATA) $$(PKG_BUILD_DIR)/i18n/$$$$lang.lmo $(1)/lib/gluon/web/i18n/$(PKG_NAME).$$$$lang.lmo; \
|
|
fi; \
|
|
done
|
|
endef
|
|
|
|
define GluonSrcDiet
|
|
rm -rf $(2)
|
|
$(CP) $(1) $(2)
|
|
ifdef CONFIG_GLUON_MINIFY
|
|
# Use cp + rm instead of mv to preserve destination permissions
|
|
set -e; $(FIND) $(2) -type f | while read src; do \
|
|
luasrcdiet --noopt-binequiv -o "$$$$src.tmp" "$$$$src"; \
|
|
cp "$$$$src.tmp" "$$$$src"; \
|
|
rm "$$$$src.tmp"; \
|
|
done
|
|
endif
|
|
endef
|
|
|
|
|
|
define Gluon/Build/Compile
|
|
$(if $(wildcard ./src/Makefile ./src/CMakeLists.txt),
|
|
$(Build/Compile/Default)
|
|
)
|
|
$(if $(wildcard ./luasrc/.),
|
|
$(call GluonSrcDiet,luasrc,$(PKG_BUILD_DIR)/luadest/)
|
|
)
|
|
$(if $(wildcard ./i18n/.),
|
|
$(call GluonBuildI18N,i18n)
|
|
)
|
|
endef
|
|
|
|
define Gluon/Build/Install
|
|
$(if $(findstring $(PKG_INSTALL),1),
|
|
$(CP) $(PKG_INSTALL_DIR)/. $(1)/
|
|
)
|
|
$(if $(wildcard ./files/.),
|
|
$(CP) ./files/. $(1)/
|
|
)
|
|
$(if $(wildcard ./luasrc/.),
|
|
$(CP) $(PKG_BUILD_DIR)/luadest/. $(1)/
|
|
)
|
|
$(if $(wildcard ./src/respondd.c),
|
|
$(INSTALL_DIR) $(1)/usr/lib/respondd
|
|
$(CP) $(PKG_BUILD_DIR)/respondd.so $(1)/usr/lib/respondd/$(PKG_NAME).so
|
|
)
|
|
$(if $(wildcard ./i18n/.),
|
|
$(GluonInstallI18N)
|
|
)
|
|
endef
|
|
|
|
Build/Compile=$(call Gluon/Build/Compile)
|
|
|
|
define BuildPackageGluon
|
|
define Package/$(1) :=
|
|
SECTION:=gluon
|
|
CATEGORY:=Gluon
|
|
$$(Package/$(1))
|
|
endef
|
|
|
|
Package/$(1)/install ?= $$(Gluon/Build/Install)
|
|
|
|
ifneq ($(wildcard check_site.lua),)
|
|
define Package/$(1)/postinst
|
|
#!/bin/sh
|
|
$$(call GluonCheckSite,check_site.lua)
|
|
endef
|
|
endif
|
|
|
|
$$(eval $$(call BuildPackage,$(1)))
|
|
endef
|