makefile-engine: split C and C++ flags.
Gets rid of the annoying: "cc1: warning: command-line option '-Wno-ctor-dtor-privacy' is valid for C++/ObjC++ but not for C". Change-Id: Ic72506277af56365cfe52513e1118584bf338ac9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10163 Tested-by: Commit checker robot <[email protected]> Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
committed by
waddlesplash
parent
41f7e3c29a
commit
3a9d48c77c
@@ -38,11 +38,13 @@ RESCOMP := rc
|
||||
CC := $(CC)
|
||||
C++ := $(CXX)
|
||||
|
||||
# Set up CFLAGS.
|
||||
# Set up CFLAGS/CXXFLAGS.
|
||||
ifeq ($(strip $(TYPE)), DRIVER)
|
||||
CFLAGS += -D_KERNEL_MODE=1
|
||||
CXXFLAGS += -D_KERNEL_MODE=1
|
||||
else
|
||||
CFLAGS +=
|
||||
CXXFLAGS +=
|
||||
endif
|
||||
|
||||
# Set up optimization flags.
|
||||
@@ -67,13 +69,16 @@ ifeq ($(strip $(DEBUGGER)), TRUE)
|
||||
OPTIMIZER = -O0
|
||||
endif
|
||||
CFLAGS += $(OPTIMIZER) $(DEBUG)
|
||||
CXXFLAGS += $(OPTIMIZER) $(DEBUG)
|
||||
|
||||
# Set up the warning flags.
|
||||
ifeq ($(strip $(WARNINGS)), ALL)
|
||||
CFLAGS += -Wall -Wno-multichar -Wno-ctor-dtor-privacy
|
||||
CFLAGS += -Wall -Wno-multichar
|
||||
CXXFLAGS += -Wall -Wno-multichar -Wno-ctor-dtor-privacy
|
||||
else
|
||||
ifeq ($(strip $(WARNINGS)), NONE)
|
||||
CFLAGS += -w
|
||||
CXXFLAGS += -w
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -176,9 +181,11 @@ LDFLAGS += $(LINK_PATHS) $(LINK_LIBS)
|
||||
|
||||
# Add the defines to CFLAGS.
|
||||
CFLAGS += $(foreach define, $(DEFINES), $(addprefix -D, $(define)))
|
||||
CXXFLAGS += $(foreach define, $(DEFINES), $(addprefix -D, $(define)))
|
||||
|
||||
# Add the additional compiler flags to CFLAGS.
|
||||
CFLAGS += $(COMPILER_FLAGS)
|
||||
CXXFLAGS += $(COMPILER_FLAGS)
|
||||
|
||||
# Add the additional linkflags to LDFLAGS
|
||||
LDFLAGS += $(LINKER_FLAGS)
|
||||
@@ -288,21 +295,21 @@ $(OBJ_DIR)/%.d : %.CXX
|
||||
$(OBJ_DIR)/%.o : %.c
|
||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(OBJ_DIR)/%.o : %.cpp
|
||||
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(C++) -c $< $(INCLUDES) $(CXXFLAGS) -o "$@"
|
||||
$(OBJ_DIR)/%.o : %.cp
|
||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(CC) -c $< $(INCLUDES) $(CXXFLAGS) -o "$@"
|
||||
$(OBJ_DIR)/%.o : %.cc
|
||||
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(C++) -c $< $(INCLUDES) $(CXXFLAGS) -o "$@"
|
||||
$(OBJ_DIR)/%.o : %.cxx
|
||||
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(C++) -c $< $(INCLUDES) $(CXXFLAGS) -o "$@"
|
||||
$(OBJ_DIR)/%.o : %.C
|
||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(OBJ_DIR)/%.o : %.CC
|
||||
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(C++) -c $< $(INCLUDES) $(CXXFLAGS) -o "$@"
|
||||
$(OBJ_DIR)/%.o : %.CPP
|
||||
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(C++) -c $< $(INCLUDES) $(CXXFLAGS) -o "$@"
|
||||
$(OBJ_DIR)/%.o : %.CXX
|
||||
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o "$@"
|
||||
$(C++) -c $< $(INCLUDES) $(CXXFLAGS) -o "$@"
|
||||
|
||||
# Rules to compile the resource definition files.
|
||||
$(OBJ_DIR)/%.rsrc : %.rdef
|
||||
|
||||
Reference in New Issue
Block a user