Update Makefile to enable users to define per build type flags
This commit is contained in:
16
Makefile
16
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
|
||||
|
||||
Reference in New Issue
Block a user