diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c95eeee --- /dev/null +++ b/Makefile @@ -0,0 +1,73 @@ +PKG_NAME=$(shell grep name Cargo.toml | head -n 1 | awk -F \" '{print $$2}') +DOCS_DEFAULT_MODULE=$(subst -,_,$(PKG_NAME)) +ifeq (, $(shell which cargo-check 2> /dev/null)) +DEFAULT_TARGET=build +else +DEFAULT_TARGET=build +endif + +default: $(DEFAULT_TARGET) + +CARGO_FLAGS += -v + +ALL_TARGETS += build $(EXAMPLES) test doc +ifneq ($(RELEASE),) +$(info RELEASE BUILD: $(PKG_NAME)) +CARGO_FLAGS += --release +else +$(info DEBUG BUILD: $(PKG_NAME); use `RELEASE=true make [args]` for release build) +endif + +EXAMPLES = $(shell cd examples 2>/dev/null && ls *.rs 2>/dev/null | sed -e 's/.rs$$//g' ) + +all: $(ALL_TARGETS) + + +.PHONY: run test build doc clean clippy +run test build clean: + cargo $@ $(CARGO_FLAGS) + +check: + $(info Running check; use `make build` to actually build) + cargo $@ $(CARGO_FLAGS) + +clippy: + cargo build --features clippy + +.PHONY: bench +bench: + cargo $@ $(filter-out --release,$(CARGO_FLAGS)) + +.PHONY: travistest +travistest: test + +.PHONY: longtest +longtest: + @echo "Running longtest. Press Ctrl+C to stop at any time" + @sleep 2 + @i=0; while i=$$((i + 1)) && echo "Iteration $$i" && make test ; do :; done + +.PHONY: $(EXAMPLES) +named struct-log-self: + cargo build --example $@ $(CARGO_FLAGS) +singlethread: + cargo build --features nothreads --example $@ $(CARGO_FLAGS) + +.PHONY: doc +doc: FORCE + cargo doc + +.PHONY: publishdoc +publishdoc: + rm -rf target/doc + make doc + echo '<meta http-equiv="refresh" content="0;url='${DOCS_DEFAULT_MODULE}'/index.html">' > target/doc/index.html + ghp-import -n target/doc + git push -f origin gh-pages + +.PHONY: docview +docview: doc + xdg-open target/doc/$(PKG_NAME)/index.html + +.PHONY: FORCE +FORCE: |