JL = julia --project

default: init update test

init:
	$(JL) -e 'using Pkg; Pkg.precompile();'

init-docs:
	julia --project=docs -e 'using Pkg; Pkg.precompile();'

update:
	$(JL) -e 'using Pkg; Pkg.update(); Pkg.precompile();'

test:
	$(JL) -e 'using Pkg; Pkg.test()'

coverage:
	$(JL) -e 'using Pkg; Pkg.test(; coverage=true)'

serve:
	$(JL) -e 'using Pkg; Pkg.activate("docs"); using LiveServer; servedocs(;skip_dirs=["docs/src/assets", "docs/src/generated"])'

clean:
	rm -rf docs/build
	find . -name "*.cov" -type f -print0 | xargs -0 /bin/rm -f

.PHONY: init test coverage serve clean update
