# See COLOR_CMD comment for details.
COLOR_OUT ?= 00;31
-# Flavor (variant), should be one of "dbg", "opt" or "cov"
-F ?= opt
+# Flavor (variant), can be defined by the user in Config.mak
+F ?= default
# Use C++ linker by default
LINKER := $(CXX)
# Overridden flags
##################
-# Warn about everything
-override CPPFLAGS += -Wall
-
# Use the includes directories to search for includes
override CPPFLAGS += -I$(INCLUDE_DIR)
# Let the program know where it will be installed
override CPPFLAGS += -DPREFIX=$(prefix)
-# Be standard compliant
-override CFLAGS += -std=c99 -pedantic
-override CXXFLAGS += -std=c++98 -pedantic
-
# Use the generated library directory to for libraries
-override LDFLAGS += -L$L -Wall
+override LDFLAGS += -L$L
# Make sure the generated libraries can be found
export LD_LIBRARY_PATH := $L:$(LD_LIBRARY_PATH)
-# Variant flags
-################
-
-ifeq ($F,dbg)
-override CPPFLAGS += -ggdb -DDEBUG
-endif
-
-ifeq ($F,opt)
-override CPPFLAGS += -O2 -DNDEBUG
-endif
-
-ifeq ($F,cov)
-override CPPFLAGS += -ggdb -pg --coverage
-override LDFLAGS += -pg --coverage
-endif
-
-
# Automatic dependency handling
################################
# Create $O, $B, $L, $D and $(INCLUDE_DIR) directories and replicate the
# directory structure of the project into $O. Create one symbolic link "last"
# to the current build directory.
-#
-# NOTE: the second mkdir can yield no arguments if the project don't have any
-# subdirectories, that's why the current directory "." is included, so it
-# won't show an error message in case of no subdirectories.
setup_build_dir__ := $(shell \
mkdir -p $O $B $L $D $(INCLUDE_DIR) $(addprefix $O,$(patsubst $T%,%,\
$(shell find $T -type d $(foreach d,$(BUILD_DIR_EXCLUDE), \
- -not -path '*/$d' -not -path '*/$d/*')))); \
+ -not -path '$T/$d' -not -path '$T/$d/*' \
+ -not -path '$T/*/$d' -not -path '$T/*/$d/*')))); \
rm -f $(VD)/last && ln -s $F $(VD)/last )