# Run tests interleaved with main build. They have to be in the same target for this.
real-all:style $(if $(NO_TEST),,test)
style:$(VFILES)
style:$(VFILES) coq-lint.sh
# Make sure everything imports the options, and all Instance/Argument/Hint are qualified.
$(SHOW)"Performing some style checks..."
$(HIDE)forFILEin$(VFILES);do\
if ! fgrep -q 'From iris.prelude Require Import options.' "$$FILE"; then echo "ERROR:$$FILE does not import 'options'."; echo; exit 1; fi ; \
if egrep -n '^\s*((Existing\s+|Program\s+)Instance|Arguments|Remove|Hint\s+(Extern|Constructors|Resolve|Immediate|Mode|Opaque|Transparent|Unfold)|(Open|Close)\s+Scope|Opaque|Transparent)\b' "$$FILE"; then echo "ERROR: $$FILE contains 'Instance'/'Arguments'/'Hint' or another side-effect without locality (see above)."; echo "Please add 'Global' or 'Local' as appropriate."; echo; exit 1; fi\
./coq-lint.sh "$$FILE";\
done
# Make sure main Iris does not import other Iris packages.
$(HIDE)if egrep 'iris\.(heap_lang|deprecated|staging)' --include "*.v" -R iris; then echo "ERROR:Iris may not import modules from other Iris packages (see above for violations)."; echo; exit 1; fi
## A simple shell script checking for some common Coq issues.
FILE="$1"
if egrep -n'^\s*((Existing\s+|Program\s+)Instance|Arguments|Remove|Hint\s+(Extern|Constructors|Resolve|Immediate|Mode|Opaque|Transparent|Unfold)|(Open|Close)\s+Scope|Opaque|Transparent)\b'"$FILE";then
echo"ERROR: $FILE contains 'Instance'/'Arguments'/'Hint' or another side-effect without locality (see above)."
echo"Please add 'Global' or 'Local' as appropriate."