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 LIB_INSTALL := $(INSTALL_PREFIX)/lib
|
||||||
override HEADER_INSTALL_CMD := scripts/header_install.sh
|
override HEADER_INSTALL_CMD := scripts/header_install.sh
|
||||||
|
|
||||||
|
ifeq ($(origin BUILD_FLAGS), undefined)
|
||||||
ifeq ($(BUILD_TYPE),Debug)
|
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)
|
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)
|
else ifeq ($(BUILD_TYPE),Release)
|
||||||
override CFLAGS += -O3
|
BUILD_FLAGS += -O3
|
||||||
else
|
else
|
||||||
$(error Invalid BUILD type '$(BUILD_TYPE)'. Use 'Debug', 'RelWithDebInfo' or 'Release')
|
$(error Invalid BUILD type '$(BUILD_TYPE)'. Use 'Debug', 'RelWithDebInfo' or 'Release')
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CC),gcc)
|
ifeq ($(CC),gcc)
|
||||||
# Used to disable the "ASan runtime does not come first in initial library list" error when compiling with 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)
|
@mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
build-c-test:
|
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
|
run-c-test: build-c-test
|
||||||
@echo -e "\n\033[34;1mRUNNING C TESTS\033[0m"
|
@echo -e "\n\033[34;1mRUNNING C TESTS\033[0m"
|
||||||
@@ -107,7 +109,7 @@ run-c-test: build-c-test
|
|||||||
@rm $(TEST_C_OUT)
|
@rm $(TEST_C_OUT)
|
||||||
|
|
||||||
build-cc-test:
|
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
|
run-cc-test: build-cc-test
|
||||||
@echo -e "\n\033[34;1mRUNNING C++ TESTS\033[0m"
|
@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)
|
@bash $(HEADER_INSTALL_CMD) $(LIB_SRC) $(INCLUDE_INSTALL) $(INCLUDES)
|
||||||
|
|
||||||
build-lib: builddir
|
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)
|
$(AR) r $(LIB_OUT) $(OBJ_OUT)
|
||||||
@rm $(OBJ_OUT)
|
@rm $(OBJ_OUT)
|
||||||
|
|
||||||
ccodegen:
|
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