LIBNAME:=heck_vulkan LIB_STATIC:=lib$(LIBNAME).a C_LANG_VERSION=c99 CXX_LANG_VERSION=c++17 # Build option defaults PREFIX?=$(HOME)/local SYS_PREFIX?=/opt/local DEBUG?=1 COMPILE_FLAGS:= -MMD CFLAGS:=-std=$(C_LANG_VERSION) CFLAGS+=\ -finput-charset=UTF-8 \ -Wpedantic \ -Wextra \ -Wwrite-strings \ -Wconversion \ -Wshadow \ # -Wstrict-prototypes \ # -Werror=implicit-function-declaration \ -Werror=implicit-int \ -Werror=incompatible-pointer-types \ -Werror=int-conversion \ -Wno-missing-field-initializers \ CXXFLAGS:=-std=$(CXX_LANG_VERSION) CXXFLAGS+=\ -fPIC \ -Wall \ -Wextra \ -pedantic \ -Wunused-function ifneq (,$(findstring g++,$(CXX))) COMPILE_FLAGS+=-fdiagnostics-color=always else ifneq (,$(findstring clang,$(CXX))) COMPILE_FLAGS+=-fcolor-diagnostics endif LIBS:=-lstdc++ LIBS+=-lpthread LIBS+=-lm LIBS+=-lglfw LIBS+=-lVulkan #LIBS+=-lglm_shared LIBS+=-lheck_log LDFLAGS+=$(LIBS) ######### Overrides from build.conf ######### HERE:=$(dir $(lastword $(MAKEFILE_LIST))) -include $(HERE)build.conf COMPILE_FLAGS+=-isystem$(MACOS_SYS_PREFIX)/include COMPILE_FLAGS+=-isystem$(PORTS_SYS_PREFIX)/include COMPILE_FLAGS+=-I$(USER_PREFIX)/include LDFLAGS+=-L$(MACOS_SYS_PREFIX)/lib LDFLAGS+=-L$(PORTS_SYS_PREFIX)/lib LDFLAGS+=-L$(USER_PREFIX)/lib ifeq ($(DEBUG),1) COMPILE_FLAGS+=-g -O0 -DDEBUG # -fsanitize=address \ # -fsanitize=undefined \ # -fsanitize=float-divide-by-zero \ # -fsanitize=implicit-conversion \ # -fsanitize=unsigned-integer-overflow else COMPILE_FLAGS+=-DNDEBUG -O2 -g0 endif CXXFLAGS+=$(COMPILE_FLAGS) CFLAGS+=$(COMPILE_FLAGS) $(info C-Compiler: $(shell $(CC) --version)) $(info C++-Compiler: $(shell $(CXX) --version))