diff --git a/Makefile b/Makefile index 3ecd33e..b18ae34 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,28 @@ SHELL = /bin/bash -o pipefail +# some platform compatibility hacks +rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)) +execsuffix := $(if $(findstring Windows_NT,$(OS)),.exe, ) +pathchar := $(if $(findstring Windows_NT,$(OS)),\,/) + +sourcefiles := $(call rwildcard,src,*.rs) + all: test build -build: +debugtarget := target$(pathchar)debug$(pathchar)ucg$(execsuffix) +releasetarget := target$(pathchar)release$(pathchar)ucg$(execsuffix) + +$(debugtarget): $(sourcefiles) cargo build +$(releasetarget): $(sourcefiles) + cargo build --release + +build: $(debugtarget) + cargo build + +buildrelease: $(releasetarget) + test: unit integration stdlibtest unit: @@ -23,5 +41,9 @@ publish: build test cargo publish (cd docsite; make deploysite) +bench: buildrelease + hyperfine --warmup=5 --runs=50 "target$(pathchar)release$(pathchar)ucg$(execsuffix) test -r integration_tests" + clean: - rm -f integration.log stdlibtest.log unittest.log \ No newline at end of file + rm -f integration.log stdlibtest.log unittest.log + cargo clean \ No newline at end of file