diff Makefile @ 1274:c8d6580d9307 tooling/benchmarks

Add Make targets for running benchmarks
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Tue, 28 Feb 2023 20:46:29 +0100
parents c9e35f1ca269
children e1aefebe4ea2
line wrap: on
line diff
--- a/Makefile	Tue Feb 21 21:00:25 2023 +0100
+++ b/Makefile	Tue Feb 28 20:46:29 2023 +0100
@@ -10,16 +10,24 @@
 
 help:
 	@echo 'Targets:'
-	@echo '    help        - Show this help.'
-	@echo '    docs        - Generate docs for webserver deployment.'
-	@echo '    localdocs   - Generate docs for local viewing.'
-	@echo '    opendocs    - Open documentation in the browser remaking it if necessary.'
+	@echo '    help           - Show this help.'
+	@echo '    docs           - Generate docs for webserver deployment.'
+	@echo '    localdocs      - Generate docs for local viewing.'
+	@echo '    opendocs       - Open documentation in the browser remaking it if necessary.'
+	@echo '    benchmark      - Run benchmark suite.'
+	@echo '    benchmarkrev   - Run benchmark suite for revision REV.'
+	@echo '    benchmarkcmp   - Run benchmark suite comparing TARGET to BASELINE.'
 	@echo ''
 	@echo 'Variables:'
 	@echo '    JULIA       - Controls which command is used to run julia'
 	@echo '                  Default $(JULIA_DEFAULT)'
 	@echo '    BROWSER     - Sets the command for how to open html files'
 	@echo '                  Default: xdg-open if it exists otherwise open'
+	@echo '    REV         - Valid Mercurial revision specifier used in benchmarkrev'
+	@echo '    TARGET      - Valid Mercurial revision specifier used in benchmarkcmp'
+	@echo '                  as the target revision'
+	@echo '    BASELINE    - Valid Mercurial revision specifier used in benchmarkcmp'
+	@echo '                  as the baseline revision'
 	@echo ''
 	@echo 'Variables can be set on the commandline using the -e flag for make, e.g.'
 	@echo '    make localdocs -e JULIA=path/to/julia'
@@ -32,11 +40,23 @@
 opendocs: localdocs
 	$(BROWSER) docs/build-local/index.html
 
-clean:
+cleandocs:
 	rm -rf docs/build
-	rm -rf docs/build-local
+	rm -rf docs/build-local	
+
+benchmark: benchmark/run-benchmark
+
+benchmarkrev: benchmark/run-benchmark-rev
+
+benchmarkcmp: benchmark/run-benchmark-cmp
 
-.PHONY: help docs localdocs opendocs clean
+cleanbenchmark:
+	rm -rf benchmark/results
+	rm -f benchmark/tune.json
+
+clean: cleandocs cleanbenchmark
+
+.PHONY: help clean docs localdocs opendocs cleandocs benchmark benchmarkrev benchmarkcmp cleanbenchmark
 
 SRC_DIRS = src docs/src
 SRC_FILES_AND_DIRS = $(foreach dir,$(SRC_DIRS),$(shell find $(dir)))
@@ -48,6 +68,15 @@
 docs/build-local: $(DOCS_DEPENDENCIES)
 	$(JULIA) --project=docs docs/make.jl --build-dir build-local
 
+benchmark/run-benchmark:
+	$(JULIA) --project=benchmark benchmark/make.jl
+
+benchmark/run-benchmark-rev:
+	$(JULIA) --project=benchmark benchmark/make.jl --rev $(REV)
+
+benchmark/run-benchmark-cmp:
+	$(JULIA) --project=benchmark benchmark/make.jl --cmp $(TARGET) $(BASELINE)
+
 
 .PHONY: temp
 temp: