diff --git a/Makefile b/Makefile index 7eff3b9e..b6183bed 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,14 @@ cmake = cmake $(cmake_gen) cmake_debug = $(cmake) -D CMAKE_BUILD_TYPE=Debug cmake_release = $(cmake) -D CMAKE_BUILD_TYPE=Release -cmake_tests = $(cmake) -D BUILD_TESTS=ON + +cmake_gui = -D BUILD_GUI=ON +cmake_static = -D STATIC=ON +cmake_tests = -D BUILD_TESTS=ON + +gui: + $(eval command += $(cmake_release) $(cmake_gui)) + $(call CMAKE,$(dir_release),$(command)) && $(MAKE) # Helper macro define CMAKE @@ -30,16 +37,42 @@ release: $(eval command += $(cmake_release)) $(call CMAKE,$(dir_release),$(command)) && $(MAKE) -test-release: - $(eval command += $(cmake_release) $(cmake_tests)) - $(call CMAKE,$(dir_release),$(command)) && $(MAKE) && $(MAKE) test - -test: test-release - debug: $(eval command += $(cmake_debug)) $(call CMAKE,$(dir_debug),$(command)) && $(MAKE) +static: static-release +static-release: + $(eval command += $(cmake_release) $(cmake_static)) + $(call CMAKE,$(dir_release),$(command)) && $(MAKE) + +# +# GUI +# + +gui: gui-release +gui-release: + $(eval command += $(cmake_release) $(cmake_gui)) + $(call CMAKE,$(dir_release),$(command)) && $(MAKE) + +gui-debug: + $(eval command += $(cmake_debug) $(cmake_gui)) + $(call CMAKE,$(dir_debug),$(command)) && $(MAKE) + +gui-static: gui-release-static +gui-release-static: + $(eval command += $(cmake_release) $(cmake_gui) $(cmake_static)) + $(call CMAKE,$(dir_release),$(command)) && $(MAKE) + +# +# Tests +# + +test: test-release +test-release: + $(eval command += $(cmake_release) $(cmake_tests)) + $(call CMAKE,$(dir_release),$(command)) && $(MAKE) && $(MAKE) test + test-debug: $(eval command += $(cmake_debug) $(cmake_tests)) $(call CMAKE,$(dir_debug),$(command)) && $(MAKE) && $(MAKE) test @@ -50,4 +83,4 @@ clean: tags: ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ src contrib tests/gtest -.PHONY: all release test-release test all-debug debug test-debug clean tags +.PHONY: all release debug static static-release gui gui-release gui-static gui-release-static gui-debug test test-release test-debug clean tags