--- Makefile 2015-11-03 09:17:30.000000000 +0100 +++ Makefile 2015-11-06 14:26:08.884827907 +0100 @@ -37,6 +37,11 @@ SANITIZE_ADDRESS= endif +SANITIZE_UNDEFINED?= +ifneq ($(SANITIZE_UNDEFINED), yes) +SANITIZE_UNDEFINED= +endif + ifeq ($(OPTIMIZE),yes) BASE_CXXFLAGS += -O2 endif @@ -56,7 +61,7 @@ GCC_GTEQ_490 := $(shell expr `$(CXX) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/'` \>= 40900) BASE_CXXFLAGS += -Wno-literal-suffix -Wno-sign-compare ifeq "$(GCC_GTEQ_490)" "1" -BASE_CXXFLAGS += -fdiagnostics-color=auto -fsanitize=undefined +BASE_CXXFLAGS += -fdiagnostics-color=auto endif endif @@ -88,6 +93,11 @@ LDFLAGS += -fsanitize=address endif +# Check for sanitize-undefined option +ifeq ($(SANITIZE_UNDEFINED), yes) +BASE_CXXFLAGS += -fsanitize=undefined +endif + # Compiler include options, used after CXXFLAGS and CPPFLAGS. INC := -isystem external/include $(shell pkg-config --cflags x11 sdl2 glew SDL2_image SDL2_ttf libpng zlib freetype2 cairo) @@ -162,6 +172,23 @@ $(LIBS) -lboost_regex -lboost_system -lboost_filesystem -lpthread -fthreadsafe-statics checkdirs: $(BUILD_DIR) + @echo -e \ + " OPTIMIZE : $(OPTIMIZE)\n" \ + "USE_CCACHE : $(USE_CCACHE)\n" \ + "CCACHE : $(CCACHE)\n" \ + "SANITIZE_ADDRESS : $(SANITIZE_ADDRESS)\n" \ + "SANITIZE_UNDEFINED : $(SANITIZE_UNDEFINED)\n" \ + "USE_DB_CLIENT : $(USE_DB_CLIENT)\n" \ + "USE_BOX2D : $(USE_BOX2D)\n" \ + "USE_LIBVPX : $(USE_LIBVPX)\n" \ + "USE_LUA : $(USE_LUA)\n" \ + "USE_SDL2 : $(USE_SDL2)\n" \ + "CXX : $(CXX)\n" \ + "BASE_CXXFLAGS : $(BASE_CXXFLAGS)\n" \ + "CXXFLAGS : $(CXXFLAGS)\n" \ + "LDFLAGS : $(LDFLAGS)\n" \ + "LIBS : $(LIBS)" + $(BUILD_DIR): @mkdir -p $@