+
+grand-replace:
+ $(MAKE) -C scripts/build
+ PATH=$(buildscript-dir):$(PATH) $(buildscript-dir)/grand-replace
+
+################################################################
+# testing
+
+RESULT_DIR=$(top-build-dir)/out/test-results
+
+
+test:
+ @echo -en 'For tracking crashes: use\n\n\t'
+ @echo 'grep sourcefilename `grep -L systems.texi out/lybook-db/*/*log|sed s/log/ly/g`'
+ @echo
+ $(MAKE) -C input/regression/ out=test local-test
+ $(MAKE) -C input/regression/musicxml out=test local-test
+
+test-baseline:
+ @if test -d .git ; then \
+ $(if $(shell git diff), echo "commit before base lining" && false,true) ; \
+ fi
+ $(MAKE)
+ $(MAKE) test
+ $(MAKE) out=test -C input/regression/ local-test-baseline
+ $(MAKE) out=test -C input/regression/musicxml local-test-baseline
+ $(MAKE) test-snippets-clean
+
+
+local-check: test
+ rm -rf $(RESULT_DIR)
+ mkdir -p $(RESULT_DIR)
+ $(buildscript-dir)/output-distance --create-images --output-dir $(RESULT_DIR) input/regression/out-test-baseline input/regression/out-test/
+ @find input ly -name '*.ly' -print |grep -v 'out.*/' | xargs grep '\\version' -L | grep -v "standard input" |sed 's/^/**** Missing version: /g'
+
+
+test-redo:
+ for a in `cat $(RESULT_DIR)/changed.txt` ; do \
+ echo removing $$a* ; \
+ rm -f $$a* ;\
+ done
+ $(MAKE) check
+
+test-clean: test-snippets-clean
+ $(MAKE) -C input/regression/ out=test clean
+
+snippets-clean:
+ rm -rf out/lybook-db
+
+test-snippets-clean:
+ rm -rf out/lybook-testdb