# grm version
VERSION = "$(shell grep 'const VERSION' src/grm/grm.hpp | cut -d '"' -f 2)"

nothing:
	@echo "Use \"make release\" or \"make debug\" to compile the binaries."
	@echo "See the other commands in Makefile."

release:
	mkdir -p build/release
	cd build/release && cmake -DCMAKE_BUILD_TYPE=Release ../.. && cmake --build . -j 8
	@echo "Binaries generated in build/release"

debug:
	mkdir -p build/debug
	cd build/debug && cmake -DCMAKE_BUILD_TYPE=Debug ../.. && cmake --build . -j 8
	@echo "Binaries generated in build/debug"

clean:
	rm -rf doc
	rm -rf "grm-lib-$(VERSION).zip"
	rm -rf "grm-dist-$(VERSION).zip"
	rm -rf "grm-lib-$(VERSION)"
	rm -rf "grm-dist-$(VERSION)"
	rm -rf build
	rm -f tags
	rm -f CMakeLists.txt.user

# To distribute only the library
lib: clean
	mkdir "grm-lib-$(VERSION)"
	cp -r grm grm-lib-$(VERSION)
	zip -r "grm-lib-$(VERSION).zip" "grm-lib-$(VERSION)"
	rm -rf "grm-lib-$(VERSION)"

# To distribute the library and the tests
dist: clean
	mkdir "grm-dist-$(VERSION)"
	cp -r "grm grm-dist-$(VERSION)"
	cp README.md Makefile \
		"grm-dist-$(VERSION)"
	zip -r "grm-dist-$(VERSION).zip" "grm-dist-$(VERSION)"
	rm -rf "grm-dist-$(VERSION)"

doc:
	doxygen Doxyfile

fmt:
	tools/format-src.sh src

.PHONY: nothing release debug clean lib dist doc fmt
