diff --git a/Makefile.lang.in b/Makefile.lang.in index f5ec0a2..9e54297 100644 --- a/Makefile.lang.in +++ b/Makefile.lang.in @@ -26,6 +26,7 @@ endif # Make sure endian_host.h is reachable as if it was in the src/ dir CFLAGS_BUILD += -I $(LANG_OBJS_DIR) +CXXFLAGS_BUILD += -I $(LANG_OBJS_DIR) ENDIAN_TARGETS := endian_host.h endian_target.h $(ENDIAN_CHECK) @@ -44,15 +45,15 @@ all: table/strings.h $(LANGS) strgen.o: $(SRC_DIR)/strgen/strgen.cpp endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $< + $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $< string.o: $(SRC_DIR)/string.cpp endian_host.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $< + $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $< alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $< + $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $< lang/english.txt: $(LANG_DIR)/english.txt $(Q)mkdir -p lang @@ -79,7 +80,7 @@ endian_host.h: $(ENDIAN_CHECK) $(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp $(E) '$(STAGE) Compiling and Linking $@' - $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $< -o $@ + $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $< -o $@ depend: diff --git a/Makefile.src.in b/Makefile.src.in index 7dabfcc..d6694a5 100644 --- a/Makefile.src.in +++ b/Makefile.src.in @@ -58,6 +58,7 @@ RES := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS)))) # Make sure endian_target.h is reasable as if it was in the src/ dir CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) +CXXFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) CFLAGS_MAKEDEP += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) ifdef SCRIPT_SRC_DIR CFLAGS_MAKEDEP += -I $(SCRIPT_SRC_DIR) @@ -145,7 +146,7 @@ $(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP) $(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP) $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_HOST) $(CXXFLAGS) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@ + $(Q)$(CXX_HOST) $(CXXFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@ $(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP) $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)' @@ -169,7 +170,7 @@ ifeq ("$(SRC_OBJS_DIR)/$(DEPEND)","$(MAKEDEPEND)") DEP := $(MAKEDEPEND) $(SRC_OBJS_DIR)/$(DEPEND): $(SRC_DIR)/depend/depend.cpp $(E) '$(STAGE) Compiling and linking $(DEPEND)' - $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(CFLAGS_BUILD) $(LDFLAGS_BUILD) -o $@ $< + $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) -o $@ $< endif # Make sure that only 'make depend' ALWAYS triggers a recheck @@ -237,7 +238,7 @@ $(OBJS_C): %.o: $(SRC_DIR)/%.c $(DEP_MASK) $(FILE_DEP) $(OBJS_CPP): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP) $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_HOST) $(CXXFLAGS) $(CFLAGS) -c -o $@ $< + $(Q)$(CXX_HOST) $(CXXFLAGS) -c -o $@ $< $(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP) $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)' @@ -276,7 +277,7 @@ endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN) $(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp $(E) '$(STAGE) Compiling and Linking $@' - $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(CFLAGS_BUILD) $< -o $@ + $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $< -o $@ # Revision files diff --git a/config.lib b/config.lib index 17cbc41..483bedb 100644 --- a/config.lib +++ b/config.lib @@ -1126,10 +1126,12 @@ make_compiler_cflags() { cc_version=`$1 -dumpversion | cut -c 1-4 | sed s@\\\.@@g` flags="$flags -rdynamic" + cxxflags="$cxxflags -rdynamic" ldflags="$ldflags -rdynamic" if [ $cc_version -ge 101 ]; then flags="$flags -Wno-multichar" + cxxflags="$cxxflags -Wno-multichar" fi if [ $cc_version -ge 110 ]; then @@ -1144,6 +1146,7 @@ make_compiler_cflags() { if [ "$enable_lto" != "0" ] && [ -n "$has_ipo" ]; then # Use IPO (only if we see IPO exists and is requested) flags="$flags -ipo" + cxxflags="$cxxflags -ipo" ldflags="$ldflags -ipo $CFLAGS" fi else @@ -1160,9 +1163,15 @@ make_compiler_cflags() { flags="$flags -W -Wno-unused-parameter -Wformat=2" flags="$flags -Wredundant-decls" + cxxflags="$cxxflags -Wall -Wno-multichar -Wsign-compare -Wundef" + cxxflags="$cxxflags -Wwrite-strings -Wpointer-arith" + cxxflags="$cxxflags -W -Wno-unused-parameter -Wformat=2" + cxxflags="$cxxflags -Wredundant-decls" + if [ $enable_assert -eq 0 ]; then # Do not warn about unused variables when building without asserts flags="$flags -Wno-unused-variable" + cxxflags="$cxxflags -Wno-unused-variable" fi if [ $cc_version -ge 40 ]; then @@ -1171,10 +1180,12 @@ make_compiler_cflags() { # break anything. So disable strict-aliasing to make the # compiler all happy. flags="$flags -fno-strict-aliasing" + cxxflags="$cxxflags -fno-strict-aliasing" ldflags="$ldflags -fno-strict-aliasing" # Warn about casting-out 'const' with regular C-style cast. # The preferred way is const_cast<>() which doesn't warn. flags="$flags -Wcast-qual" + cxxflags="$cxxflags -Wcast-qual" fi if [ $cc_version -ge 42 ]; then @@ -1183,6 +1194,7 @@ make_compiler_cflags() { # sure that they will not happen. It furthermore complains # about it's own optimized code in some places. flags="$flags -fno-strict-overflow" + cxxflags="$cxxflags -fno-strict-overflow" ldflags="$ldflags -fno-strict-overflow" fi @@ -1198,6 +1210,7 @@ make_compiler_cflags() { if [ "$enable_lto" != "0" ] && [ -n "$has_lto" ]; then # Use LTO only if we see LTO exists and is requested flags="$flags -flto" + cxxflags="$cxxflags -flto" ldflags="$ldflags -flto $2" fi fi @@ -1206,6 +1219,7 @@ make_compiler_cflags() { if [ -n "$has_rdynamic" ]; then # rdynamic is used to get useful stack traces from crash reports. flags="$flags -rdynamic" + cxxflags="$cxxflags -rdynamic" ldflags="$ldflags -rdynamic" fi fi @@ -1235,6 +1249,7 @@ make_cflags_and_ldflags() { make_compiler_cflags "$cc_host" "$CFLAGS" "CFLAGS" "$CXXFLAGS" "CXXFLAGS" "$LDFLAGS" "LDFLAGS" CFLAGS="$CFLAGS -D$os" + CXXFLAGS="$CXXFLAGS -D$os" if [ $enable_debug = 0 ]; then # No debug, add default stuff @@ -1249,6 +1264,7 @@ make_cflags_and_ldflags() { fi CFLAGS="-O2 -fomit-frame-pointer $CFLAGS" + CXXFLAGS="-O2 -fomit-frame-pointer $CXXFLAGS" LDFLAGS="-O2 -fomit-frame-pointer $LDFLAGS" fi else @@ -1257,28 +1273,31 @@ make_cflags_and_ldflags() { # Each debug level reduces the optimization by a bit if [ $enable_debug -ge 1 ]; then CFLAGS="$CFLAGS -g -D_DEBUG -D_FORTIFY_SOURCE=2" + CXXFLAGS="$CXXFLAGS -g -D_DEBUG -D_FORTIFY_SOURCE=2" if [ "$os" = "PSP" ]; then CFLAGS="$CFLAGS -G0" fi fi if [ $enable_debug -ge 2 ]; then CFLAGS="$CFLAGS -fno-inline" + CXXFLAGS="$CXXFLAGS -fno-inline" LDFLAGS="$LDFLAGS -fno-inline" fi if [ $enable_debug -ge 3 ]; then CFLAGS="$CFLAGS -O0" - else - CFLAGS="$CFLAGS -O2" + CXXFLAGS="$CXXFLAGS -O0" fi fi if [ "$enable_profiling" != "0" ]; then CFLAGS="$CFLAGS -p" + CXXFLAGS="$CXXFLAGS -p" LDFLAGS="$LDFLAGS -pg" fi if [ "$with_threads" = "0" ]; then CFLAGS="$CFLAGS -DNO_THREADS" + CXXFLAGS="$CXXFLAGS -DNO_THREADS" fi if [ "`echo $1 | cut -c 1-3`" != "icc" ]; then @@ -1334,11 +1353,13 @@ make_cflags_and_ldflags() { LIBS="$LIBS -framework QuickTime" else CFLAGS="$CFLAGS -DNO_QUICKTIME" + CXXFLAGS="$CXXFLAGS -DNO_QUICKTIME" fi if [ "$enable_universal" = "0" ]; then # Universal builds set this elsewhere CFLAGS="$OSX_SYSROOT $CFLAGS" + CXXFLAGS="$OSX_SYSROOT $CXXFLAGS" LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS" fi @@ -1347,14 +1368,17 @@ make_cflags_and_ldflags() { # Universal builds set the version elsewhere. if [ "$cpu_type" = "64" ]; then CFLAGS="$CFLAGS -mmacosx-version-min=10.5" + CXXFLAGS="$CXXFLAGS -mmacosx-version-min=10.5" else gcc_cpu=`$cc_host -dumpmachine` if [ "`echo $gcc_cpu | cut -c 1-3`" = "ppc" -o "`echo $gcc_cpu | cut -c 1-7`" = "powerpc" ]; then # PowerPC build can run on 10.3 CFLAGS="$CFLAGS -mmacosx-version-min=10.3" + CXXFLAGS="$CXXFLAGS -mmacosx-version-min=10.3" else # Intel is only available starting from 10.4 CFLAGS="$CFLAGS -mmacosx-version-min=10.4" + CXXFLAGS="$CXXFLAGS -mmacosx-version-min=10.4" fi fi fi @@ -1367,6 +1391,7 @@ make_cflags_and_ldflags() { # Most targets act like UNIX, just with some additions if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ] || [ "$os" = "OSX" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then CFLAGS="$CFLAGS -DUNIX" + CXXFLAGS="$CXXFLAGS -DUNIX" fi # And others like Windows if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ]; then @@ -1387,8 +1412,10 @@ make_cflags_and_ldflags() { if [ -n "$sdl_config" ]; then CFLAGS="$CFLAGS -DWITH_SDL" + CXXFLAGS="$CXXFLAGS -DWITH_SDL" # SDL must not add _GNU_SOURCE as it breaks many platforms CFLAGS="$CFLAGS `$sdl_config --cflags | sed 's@-D_GNU_SOURCE[^ ]*@@'`" + CXXFLAGS="$CXXFLAGS `$sdl_config --cflags | sed 's@-D_GNU_SOURCE[^ ]*@@'`" if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ] && [ "$os" != "WINCE" ]; then if [ "$enable_static" != "0" ]; then LIBS="$LIBS `$sdl_config --static-libs`" @@ -1418,6 +1445,7 @@ make_cflags_and_ldflags() { LIBS="$LIBS -lz" fi CFLAGS="$CFLAGS -DWITH_ZLIB" + CXXFLAGS="$CXXFLAGS -DWITH_ZLIB" fi if [ "$with_lzo2" != "0" ]; then @@ -1427,19 +1455,24 @@ make_cflags_and_ldflags() { LIBS="$LIBS -llzo2" fi CFLAGS="$CFLAGS -DWITH_LZO" + CXXFLAGS="$CXXFLAGS -DWITH_LZO" fi # 64bit machines need -D_SQ64 if [ "$cpu_type" = "64" ] && [ "$enable_universal" = "0" ]; then CFLAGS="$CFLAGS -D_SQ64" + CFLAGS="$CFLAGS -D_SQ64" fi if [ "$enable_ai" != "0" ]; then CFLAGS="$CFLAGS -I$SCRIPT_SRC_DIR -DENABLE_AI" + CXXFLAGS="$CXXFLAGS -I$SCRIPT_SRC_DIR -DENABLE_AI" fi if [ -n "$png_config" ]; then CFLAGS="$CFLAGS -DWITH_PNG" + CXXFLAGS="$CXXFLAGS -DWITH_PNG" CFLAGS="$CFLAGS `$png_config --cppflags --I_opts | tr '\n\r' ' '`" + CXXFLAGS="$CXXFLAGS `$png_config --cppflags --I_opts | tr '\n\r' ' '`" # The extra flags are unneeded for latest libpng-config, but some versions are so broken... if [ "$enable_static" != "0" ]; then @@ -1455,7 +1488,9 @@ make_cflags_and_ldflags() { if [ -n "$fontconfig_config" ]; then CFLAGS="$CFLAGS -DWITH_FONTCONFIG" + CXXFLAGS="$CXXFLAGS -DWITH_FONTCONFIG" CFLAGS="$CFLAGS `$fontconfig_config --cflags | tr '\n\r' ' '`" + CXXFLAGS="$CXXFLAGS `$fontconfig_config --cflags | tr '\n\r' ' '`" if [ "$enable_static" != "0" ]; then if [ "$os" = "OSX" ]; then @@ -1472,7 +1507,9 @@ make_cflags_and_ldflags() { if [ -n "$freetype_config" ]; then CFLAGS="$CFLAGS -DWITH_FREETYPE" + CXXFLAGS="$CXXFLAGS -DWITH_FREETYPE" CFLAGS="$CFLAGS `$freetype_config --cflags | tr '\n\r' ' '`" + CXXFLAGS="$CXXFLAGS `$freetype_config --cflags | tr '\n\r' ' '`" if [ "$enable_static" != "0" ]; then if [ "$os" = "OSX" ]; then @@ -1488,7 +1525,9 @@ make_cflags_and_ldflags() { if [ -n "$icu_config" ]; then CFLAGS="$CFLAGS -DWITH_ICU" + CXXFLAGS="$CXXFLAGS -DWITH_ICU" CFLAGS="$CFLAGS `$icu_config --cppflags | tr '\n\r' ' '`" + CXXFLAGS="$CXXFLAGS `$icu_config --cppflags | tr '\n\r' ' '`" # Some icu-configs have the 'feature' of not adding a space where others do add the space if [ "$static_icu" != "0" ]; then @@ -1516,40 +1555,49 @@ make_cflags_and_ldflags() { LIBS="$LIBS -ltimidity" fi CFLAGS="$CFLAGS -DLIBTIMIDITY" + CXXFLAGS="$CXXFLAGS -DLIBTIMIDITY" fi if [ "$with_iconv" != "0" ]; then CFLAGS="$CFLAGS -DWITH_ICONV" + CXXFLAGS="$CXXFLAGS -DWITH_ICONV" if [ "$link_to_iconv" = "yes" ]; then LIBS="$LIBS -liconv" if [ "$with_iconv" != "2" ]; then CFLAGS="$CFLAGS -I$with_iconv/include" + CXXFLAGS="$CXXFLAGS -I$with_iconv/include" LIBS="$LIBS -L$with_iconv/lib" fi fi if [ "$have_broken_iconv" != "no" ]; then CFLAGS="$CFLAGS -DHAVE_BROKEN_ICONV" + CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_ICONV" fi fi if [ -n "$with_midi" ]; then CFLAGS="$CFLAGS -DEXTERNAL_PLAYER=\\\\\"$with_midi\\\\\"" + CXXFLAGS="$CXXFLAGS -DEXTERNAL_PLAYER=\\\\\"$with_midi\\\\\"" fi if [ -n "$with_midi_arg" ]; then CFLAGS="$CFLAGS -DMIDI_ARG=\\\\\"$with_midi_arg\\\\\"" + CXXFLAGS="$CXXFLAGS -DMIDI_ARG=\\\\\"$with_midi_arg\\\\\"" fi if [ "$enable_dedicated" != "0" ]; then CFLAGS="$CFLAGS -DDEDICATED" + CXXFLAGS="$CXXFLAGS -DDEDICATED" fi if [ "$enable_unicode" != "0" ]; then CFLAGS="$CFLAGS -DUNICODE -D_UNICODE" + CXXFLAGS="$CXXFLAGS -DUNICODE -D_UNICODE" fi if [ "$enable_network" != "0" ]; then CFLAGS="$CFLAGS -DENABLE_NETWORK" + CXXFLAGS="$CXXFLAGS -DENABLE_NETWORK" if [ "$os" = "BEOS" ]; then LDFLAGS="$LDFLAGS -lbind -lsocket" @@ -1573,25 +1621,31 @@ make_cflags_and_ldflags() { if [ "$enable_assert" = "0" ]; then CFLAGS="$CFLAGS -DNDEBUG" + CXXFLAGS="$CXXFLAGS -DNDEBUG" fi if [ "$enable_desync_debug" != "0" ]; then CFLAGS="$CFLAGS -DRANDOM_DEBUG" + CXXFLAGS="$CXXFLAGS -DRANDOM_DEBUG" fi if [ "$enable_osx_g5" != "0" ]; then CFLAGS="$CFLAGS -mcpu=G5 -mpowerpc64 -mtune=970 -mcpu=970 -mpowerpc-gpopt" + CXXFLAGS="$CXXFLAGS -mcpu=G5 -mpowerpc64 -mtune=970 -mcpu=970 -mpowerpc-gpopt" fi if [ -n "$personal_dir" ]; then CFLAGS="$CFLAGS -DWITH_PERSONAL_DIR -DPERSONAL_DIR=\\\\\"$personal_dir\\\\\"" + CXXFLAGS="$CXXFLAGS -DWITH_PERSONAL_DIR -DPERSONAL_DIR=\\\\\"$personal_dir\\\\\"" fi if [ -n "$shared_dir" ]; then CFLAGS="$CFLAGS -DWITH_SHARED_DIR -DSHARED_DIR=\\\\\"$shared_dir\\\\\"" + CXXFLAGS="$CXXFLAGS -DWITH_SHARED_DIR -DSHARED_DIR=\\\\\"$shared_dir\\\\\"" fi CFLAGS="$CFLAGS -DGLOBAL_DATA_DIR=\\\\\"$prefix_dir/$data_dir\\\\\"" + CXXFLAGS="$CXXFLAGS -DGLOBAL_DATA_DIR=\\\\\"$prefix_dir/$data_dir\\\\\"" log 1 "using CFLAGS... $CFLAGS" log 1 "using CXXFLAGS... $CXXFLAGS"