diff options
| author | bloodstalker <thabogre@gmail.com> | 2016-12-23 20:49:34 +0000 | 
|---|---|---|
| committer | bloodstalker <thabogre@gmail.com> | 2016-12-23 20:49:34 +0000 | 
| commit | 02744f56e3f7d59b9132b15f47851d5d9e766ba5 (patch) | |
| tree | 930cff01065f28c93455da18690a69acd9eb9a07 | |
| parent | added the clean rule to the makefile (diff) | |
| download | mutator-02744f56e3f7d59b9132b15f47851d5d9e766ba5.tar.gz mutator-02744f56e3f7d59b9132b15f47851d5d9e766ba5.zip  | |
for different build modes, make will now return an error if the right compiler is not used for the build mode
Diffstat (limited to '')
| -rw-r--r-- | makefile | 33 | 
1 files changed, 29 insertions, 4 deletions
@@ -7,12 +7,18 @@ BUILD_MODE?=COV_NO_CLANG  CXX_FLAGS=$(shell $(LLVM_CONF) --cxxflags)  ifeq ($(BUILD_MODE), COV_USE) +ifneq ($(CXX), clang++) +$(error This build mode is only useable with clang++.) +endif  EXTRA_CXX_FALGS=-I$(shell $(LLVM_CONF) --src-root)/tools/clang/include -I$(shell $(LLVM_CONF) --obj-root)/tools/clang/include\   -std=c++11 -stdlib=libstdc++ -UNDEBUG -fprofile-instr-use=code.profdata  EXTRA_LD_FLAGS=-v tinyxml2/tinyxml2.o -fprofile-instr-use=code.profdata  endif  ifeq ($(BUILD_MODE), COV_GEN) +ifneq ($(CXX), clang++) +$(error This build mode is only useable with clang++.) +endif  EXTRA_CXX_FALGS=-I$(shell $(LLVM_CONF) --src-root)/tools/clang/include -I$(shell $(LLVM_CONF) --obj-root)/tools/clang/include\   -std=c++11 -stdlib=libstdc++ -UNDEBUG -fprofile-instr-generate  EXTRA_LD_FLAGS=-v tinyxml2/tinyxml2.o -fprofile-instr-generate @@ -20,6 +26,9 @@ endif  #for gcov compatibility  ifeq ($(BUILD_MODE), COV_GNU) +ifneq ($(CXX), clang++) +$(error This build mode is only useable with clang++.) +endif  EXTRA_CXX_FALGS=-I$(shell $(LLVM_CONF) --src-root)/tools/clang/include -I$(shell $(LLVM_CONF) --obj-root)/tools/clang/include\   -std=c++11 -stdlib=libstdc++ -UNDEBUG -fprofile-arcs -ftest-coverage  EXTRA_LD_FLAGS=-v tinyxml2/tinyxml2.o -fprofile-arcs -ftest-coverage @@ -32,12 +41,18 @@ EXTRA_LD_FLAGS=-v tinyxml2/tinyxml2.o  endif  ifeq ($(BUILD_MODE), COV_NO_CLANG_1Z) +ifneq ($(CXX), clang++) +$(error This build mode is only useable with clang++.) +endif  EXTRA_CXX_FALGS=-I$(shell $(LLVM_CONF) --src-root)/tools/clang/include -I$(shell $(LLVM_CONF) --obj-root)/tools/clang/include\   -std=c++1z -stdlib=libstdc++ -UNDEBUG  EXTRA_LD_FLAGS=-v tinyxml2/tinyxml2.o  endif  ifeq ($(BUILD_MODE), GNU_MODE) +ifneq ($(CXX), g++) +$(error This build mode is only useable with g++.) +endif  EXTRA_CXX_FALGS=-I$(shell $(LLVM_CONF) --src-root)/tools/clang/include -I$(shell $(LLVM_CONF) --obj-root)/tools/clang/include\   -std=c++11 -stdlib=libstdc++ -UNDEBUG  EXTRA_LD_FLAGS=-v tinyxml2/tinyxml2.o @@ -82,7 +97,17 @@ clean:  	rm -f *.o *~ $(TARGET0) $(TARGET) $(TARGET2)   help: -	@echo 'there is help.' -	@echo 'all is the default.' -	@echo 'clean.' -	@echo 'press tab for more targets if you have zsh!' +	@echo '- There is help.' +	@echo '- All is the default.' +	@echo '- Clean.' +	@echo '- You can use the target names as build targets to just build one executable.' +	@echo '- LLVM_CONF will tell the makefile the name of llvm-config. llvm-config is the default.' +	@echo '- CXX will let you set the compiler. currently the only accepted values are clang++ and g++. clang++ is the default.' +	@echo '- BUILD_MODE will let you choose to build for different coverage formats. the default is COV_NO_CLANG. the supported values are:' +	@echo '		COV_USE: adds the clang -fprofile-instr-use option(clang++ only mode).' +	@echo '		COV_GEN: adds the clang -fprofile-instr-generate option(clang++ only mode).' +	@echo '		COV_GNU: generates coverage for the build compatible with gcov(clang++ only mode).' +	@echo '		COV_NO_CLANG: this build mode will not support any coverage format and is meant to be used with clang++(clang++ only mode).' +	@echo '		COV_NO_CLANG_1Z: does not instrument the code for any coverage and uses -std=c++1z (clang++ only mode).' +	@echo '		GNU_MODE: meant to be used for builds with g++. supports no coverage(g++ only mode).' +	@echo '- Press tab for more targets if you have zsh!'  | 
