rules.mk: Add targets to check shell syntax #32

Merged
Jan Lindemann merged 2 commits from jan/feature/20260624-rules-mk-add-targets-to-check-shell-syntax into master 2026-06-24 22:03:26 +02:00 AGit
2 changed files with 29 additions and 5 deletions

View file

@ -98,6 +98,14 @@ endif
ifndef PRISTINE_MAKE
PRISTINE_MAKE := umask $(MINIMAL_UMASK) && MAKEFLAGS=$(MINIMAL_MAKEFLAGS) LD_LIBRARY_PATH=$(MINIMAL_LD_LIBRARY_PATH) PATH=$(MINIMAL_PATH) $(MAKE)
endif
ifndef SHELLCHECK
SHELLCHECK := $(shell $(WHICH) shellcheck)
endif
ifdef SHELLCHECK
SHELLCHECK += -f gcc
else
SHELLCHECK := bash -n
endif
# ----- Function definitions
@ -356,17 +364,18 @@ INSTALLED_DOC ?= $(addprefix $(INSTALL_DOCDIR)/,$(DOCS))
# -- EXE
INSTALLATION_FILE_TYPES += EXE
EXE_SH += $(filter-out $(DONT_INSTALL),$(wildcard *.sh *.pl *.pm *.py *.bat *.feedfs))
EXE_SH += $(wildcard *.sh)
EXE_SH += $(patsubst %.sh.tmpl,%.sh,$(filter-out $(DONT_INSTALL),$(wildcard *.sh.tmpl)))
EXE_SCRIPTS += $(EXE_SH) $(filter-out $(DONT_INSTALL),$(wildcard *.pl *.pm *.py *.bat *.feedfs))
#EXE_ALL += $(EXE) $(wildcard *.a *.dll *.so *.so.*)
BUILD_EXE_BIN += $(addprefix $(BUILD_EXEDIR)/,$(EXE) $(EXE_SH))
BUILD_EXE_BIN += $(addprefix $(BUILD_EXEDIR)/,$(EXE) $(EXE_SCRIPTS))
INSTALLED_EXE_BIN += $(addprefix $(INSTALL_EXEDIR)/,$(EXE_BIN))
BUILD_EXEDIR = $(TOPDIR)/bin
INSTALL_EXEDIR ?= $(EXE_PREFIX)/bin
BUILD_EXE += $(BUILD_EXE_BIN)
INSTALLED_EXE += $(addprefix $(INSTALL_EXEDIR)/,$(EXE) $(EXE_SH)) $(INSTALLED_EXE_BIN)
INSTALLED_EXE += $(addprefix $(INSTALL_EXEDIR)/,$(EXE) $(EXE_SCRIPTS)) $(INSTALLED_EXE_BIN)
# -- CGI
INSTALLATION_FILE_TYPES += CGI

View file

@ -16,6 +16,7 @@ distclean: clean
%.this \
allclean \
checkroot \
check-syntax \
collect \
coreclean \
depclean \
@ -39,6 +40,7 @@ distclean: clean
rccclean \
remake \
runclean \
sh-check-syntax \
textclean \
tmpclean \
uicclean \
@ -58,8 +60,6 @@ installexe: all checkroot $(INSTALLED_EXE)
installso: all checkroot install_dir_LIB $(INSTALLED_SHOBJS)
installsh: all checkroot $(INSTALL_EXEDIR) $(INSTALLED_EXE_SH)
pckgclean:
$(RM) -rf *.zip *.tar.gz *.rpm *.deb
@ -432,4 +432,19 @@ find:
collect:
bash $(JWB_SCRIPT_DIR)/collect-installed-pkg-changes.sh -t $(TOPDIR)
check: check-syntax
check-syntax: sh-check-syntax
sh-check-syntax:
ifneq ($(strip $(EXE_SH)),)
$(info EXE_SH=>$(EXE_SH)<)
sh-check-syntax: sh-check-syntax-rule
sh-check-syntax-rule: $(EXE_SH)
$(SHELLCHECK) $^
set -e; for script in $^; do \
echo "Checking $$script" ;\
$(SHELLCHECK) $$script ;\
done
endif
endif # ifndef JW_PKG_RULES_MK_INCLUDED