diff --git a/share/Makefile.linting b/share/Makefile.linting index b13d5892b2ef32dd36c3a51e61faf13886a493ad..5d2d83119ac2f5d783c454d57cfbc74474ed6434 100644 --- a/share/Makefile.linting +++ b/share/Makefile.linting @@ -52,17 +52,21 @@ TO_UTF8 ?= iconv -t UTF-8 -f OCP_INDENT ?= ocp-indent CLANG_FORMAT ?= clang-format +# wc, tail, head, cmp # Default values necessary for # LINT_MAKEFILE=<this-makefile> make -f <this-makefile> <lint-target>` # Otherwise theses variables are defined into share/Makefile.common SED ?= LC_ALL=C sed ISED ?= sed -i +FIND ?= find GIT ?= git MKDIR ?= mkdir -p MV ?= mv RM ?= rm -f +RMDIR ?= rm -rf TOUCH ?= touch +XARGS ?= xargs --no-run-if-empty ############ @@ -136,7 +140,7 @@ endif .PHONY: clean-lint clean-lint: echo "Cleaning LINT targets..." - rm -rf .lint + $(RMDIR) .lint clean:: clean-lint @@ -157,7 +161,7 @@ LINT.clean-targets+= \ # Generic rule $(LINT.clean-targets): echo "[LINT] Cleaning $(patsubst clean-%,%,$@) targets..." - find .lint -type f -name \*.$(patsubst clean-%,%,$@) | xargs -n 10 $(RM) + $(FIND) .lint -type f -name \*.$(patsubst clean-%,%,$@) | $(XARGS) -n 10 $(RM) ############################### @@ -180,7 +184,7 @@ $(LINT.check-targets): $(GIT) ls-files $(LINT.dir) -z \ | $(GIT) check-attr --stdin -z $@ \ | $(SED) -zne 'x;n;n;s/^set$$//;t print;b;:print;x;p' \ - | xargs --null -IXX sh -c '$(LINT.make) LINT_FILE="XX" $@ || exit 255' + | $(XARGS) -0 -IXX sh -c '$(LINT.make) LINT_FILE="XX" $@ || exit 255' #### fix-XXX targets @@ -195,7 +199,7 @@ $(LINT.fix-targets): $(GIT) ls-files $(LINT.dir) -z \ | $(GIT) check-attr --stdin -z $(patsubst fix-%,check-%,$@) \ | $(SED) -zne 'x;n;n;s/^set$$//;t print;b;:print;x;p' \ - | xargs --null -IXX sh -c '$(LINT.make) LINT_FILE="XX" $@ || exit 255' + | $(XARGS) -0 -IXX sh -c '$(LINT.make) LINT_FILE="XX" $@ || exit 255' else # LINT_FILE are given diff --git a/share/Makefile.testing b/share/Makefile.testing index 352d58e1b5e0c7c7c282b014eb7b7ae3eb336021..7b9b0bca93f251e4018518843568ca8bd9517df4 100644 --- a/share/Makefile.testing +++ b/share/Makefile.testing @@ -24,11 +24,24 @@ # TESTING # ########### +################################ +## Default variables + # Defines where to find the ptest_config files PURGED_PTEST_DIRS?=tests $(wildcard src/plugins/*/tests) PTEST_OPTS?= PTEST_DIRS?=$(PURGED_PTEST_DIRS) +############ +# Default values necessary for make -f <this-makefile> + +XARGS ?= xargs --no-run-if-empty +GREP ?= grep +RM ?= rm -f +RMDIR ?= rm -rf + +########################################################################## + # Defines the related dune targets PTEST_ALIASES=$(addsuffix /ptests,$(addprefix @, tests src/plugins)) # TODO: uncomments when a dune file is at least generated for all PTEST_DIRS @@ -58,7 +71,7 @@ else # PTESTS is internal PTESTS=dune exec $(DUNE_BUILD_OPTS) --root ptests -- frama-c-ptests -#PTESTS=dune exec --root ptests -- frama-c-ptests -v +#PTESTS=dune exec $(DUNE_BUILD_OPTS) --root ptests -- frama-c-ptests -v # Note: the public name of ptest.exe is frama-c-ptests $(FRAMAC_PTESTS): ptests/ptests.ml @@ -96,18 +109,18 @@ wtests-help: $(WTESTS) --help ########################################################################## -## Removes all dune files generated for testing: xargs -n 10 avoids a too long line +## Removes all dune files generated for testing .PHONY: purge-tests purge-tests: find $(PURGED_PTEST_DIRS) -name dune \ - | grep -e "/oracle.*/dune\|/result.*/dune" \ - | xargs --no-run-if-empty -n 10 rm + | $(GREP) -e "/oracle.*/dune\|/result.*/dune" \ + | $(XARGS) -n 10 $(RM) # Force the full cleaning of the testing environment .PHONY: clean-tests clean-tests: purge-tests - rm -rf $(addprefix _build/default/,$(PURGED_PTEST_DIRS)) + $(RMDIR) $(addprefix _build/default/,$(PURGED_PTEST_DIRS)) ########################################################################## ## Generates all dune files used for testing