diff --git a/Makefile b/Makefile index c3c223b..ef93d3b 100644 --- a/Makefile +++ b/Makefile @@ -30,15 +30,17 @@ override INCLUDE_INSTALL := $(INSTALL_PREFIX)/include/$(LIB_NAME) override LIB_INSTALL := $(INSTALL_PREFIX)/lib override HEADER_INSTALL_CMD := scripts/header_install.sh +ifeq ($(origin BUILD_FLAGS), undefined) ifeq ($(BUILD_TYPE),Debug) - override CFLAGS += -g -fsanitize=address,undefined -DWAPP_DEBUG_ASSERT + BUILD_FLAGS += -g -fsanitize=address,undefined -DWAPP_DEBUG_ASSERT else ifeq ($(BUILD_TYPE),RelWithDebInfo) - override CFLAGS += -g -O2 -fsanitize=address,undefined -DWAPP_DEBUG_ASSERT + BUILD_FLAGS += -g -O2 -fsanitize=address,undefined -DWAPP_DEBUG_ASSERT else ifeq ($(BUILD_TYPE),Release) - override CFLAGS += -O3 + BUILD_FLAGS += -O3 else $(error Invalid BUILD type '$(BUILD_TYPE)'. Use 'Debug', 'RelWithDebInfo' or 'Release') endif +endif ifeq ($(CC),gcc) # Used to disable the "ASan runtime does not come first in initial library list" error when compiling with gcc @@ -99,7 +101,7 @@ builddir: @mkdir -p $(BUILD_DIR) build-c-test: - $(CC) $(CSTD) $(CFLAGS) $(TEST_INCLUDE) $(TEST_C_SRC) -o $(TEST_C_OUT) + $(CC) $(CSTD) $(CFLAGS) $(BUILD_FLAGS) $(TEST_INCLUDE) $(TEST_C_SRC) -o $(TEST_C_OUT) run-c-test: build-c-test @echo -e "\n\033[34;1mRUNNING C TESTS\033[0m" @@ -107,7 +109,7 @@ run-c-test: build-c-test @rm $(TEST_C_OUT) build-cc-test: - $(CXX) $(CXXSTD) $(CFLAGS) $(TEST_INCLUDE) $(TEST_CXX_SRC) $(LIB_OUT) -o $(TEST_CXX_OUT) + $(CXX) $(CXXSTD) $(CFLAGS) $(BUILD_FLAGS) $(TEST_INCLUDE) $(TEST_CXX_SRC) $(LIB_OUT) -o $(TEST_CXX_OUT) run-cc-test: build-cc-test @echo -e "\n\033[34;1mRUNNING C++ TESTS\033[0m" @@ -124,9 +126,9 @@ install: codegen build-lib @bash $(HEADER_INSTALL_CMD) $(LIB_SRC) $(INCLUDE_INSTALL) $(INCLUDES) build-lib: builddir - $(CC) -c $(CSTD) $(CFLAGS) $(LIBFLAGS) $(LIB_SRC) -o $(OBJ_OUT) + $(CC) -c $(CSTD) $(CFLAGS) $(BUILD_FLAGS) $(LIBFLAGS) $(LIB_SRC) -o $(OBJ_OUT) $(AR) r $(LIB_OUT) $(OBJ_OUT) @rm $(OBJ_OUT) ccodegen: - $(CC) $(CSTD) $(CFLAGS) $(LIBFLAGS) -Isrc/core src/core/wapp_core.c ccodegen/*.c -o ccgen + $(CC) $(CSTD) $(CFLAGS) $(BUILD_FLAGS) $(LIBFLAGS) -Isrc/core src/core/wapp_core.c ccodegen/*.c -o ccgen