Fixed #3346 (cygwin detection for _GLIBCXX_DEBUG in Makefile)
This commit is contained in:
parent
5c90c69ccf
commit
baa97d53fc
35
Makefile
35
Makefile
|
@ -5,8 +5,37 @@ ifndef HAVE_RULES
|
||||||
HAVE_RULES=no
|
HAVE_RULES=no
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifndef COMSPEC
|
||||||
|
ifdef ComSpec
|
||||||
|
#### ComSpec is defined on some WIN32's.
|
||||||
|
COMSPEC=$(ComSpec)
|
||||||
|
endif # ComSpec
|
||||||
|
endif # COMSPEC
|
||||||
|
|
||||||
|
ifdef COMSPEC
|
||||||
|
#### Maybe Windows
|
||||||
|
ifndef CPPCHK_GLIBCXX_DEBUG
|
||||||
|
CPPCHK_GLIBCXX_DEBUG=
|
||||||
|
endif # !CPPCHK_GLIBCXX_DEBUG
|
||||||
|
else # !COMSPEC
|
||||||
|
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
|
||||||
|
|
||||||
|
ifeq ($(uname_S),Linux)
|
||||||
|
ifndef CPPCHK_GLIBCXX_DEBUG
|
||||||
|
CPPCHK_GLIBCXX_DEBUG=-D_GLIBCXX_DEBUG
|
||||||
|
endif # !CPPCHK_GLIBCXX_DEBUG
|
||||||
|
endif # Linux
|
||||||
|
|
||||||
|
ifeq ($(uname_S),GNU/kFreeBSD)
|
||||||
|
ifndef CPPCHK_GLIBCXX_DEBUG
|
||||||
|
CPPCHK_GLIBCXX_DEBUG=-D_GLIBCXX_DEBUG
|
||||||
|
endif # !CPPCHK_GLIBCXX_DEBUG
|
||||||
|
endif # GNU/kFreeBSD
|
||||||
|
|
||||||
|
endif # COMSPEC
|
||||||
|
|
||||||
ifndef CXXFLAGS
|
ifndef CXXFLAGS
|
||||||
CXXFLAGS=-pedantic -Wall -Wextra -Wabi -Wcast-qual -Wfloat-equal -Winline -Wmissing-declarations -Wmissing-format-attribute -Wno-long-long -Woverloaded-virtual -Wpacked -Wredundant-decls -Wshadow -Wsign-promo -D_GLIBCXX_DEBUG -g
|
CXXFLAGS=-pedantic -Wall -Wextra -Wabi -Wcast-qual -Wfloat-equal -Winline -Wmissing-declarations -Wmissing-format-attribute -Wno-long-long -Woverloaded-virtual -Wpacked -Wredundant-decls -Wshadow -Wsign-promo $(CPPCHK_GLIBCXX_DEBUG) -g
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(HAVE_RULES),yes)
|
ifeq ($(HAVE_RULES),yes)
|
||||||
|
@ -200,7 +229,7 @@ lib/checkexceptionsafety.o: lib/checkexceptionsafety.cpp lib/checkexceptionsafet
|
||||||
lib/checkinternal.o: lib/checkinternal.cpp lib/checkinternal.h lib/check.h lib/token.h lib/tokenize.h lib/settings.h lib/suppressions.h lib/standards.h lib/errorlogger.h lib/symboldatabase.h lib/mathlib.h
|
lib/checkinternal.o: lib/checkinternal.cpp lib/checkinternal.h lib/check.h lib/token.h lib/tokenize.h lib/settings.h lib/suppressions.h lib/standards.h lib/errorlogger.h lib/symboldatabase.h lib/mathlib.h
|
||||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) ${INCLUDE_FOR_LIB} -c -o lib/checkinternal.o lib/checkinternal.cpp
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) ${INCLUDE_FOR_LIB} -c -o lib/checkinternal.o lib/checkinternal.cpp
|
||||||
|
|
||||||
lib/checkmemoryleak.o: lib/checkmemoryleak.cpp lib/checkmemoryleak.h lib/check.h lib/token.h lib/tokenize.h lib/settings.h lib/suppressions.h lib/standards.h lib/errorlogger.h lib/symboldatabase.h lib/mathlib.h lib/executionpath.h lib/checkuninitvar.h
|
lib/checkmemoryleak.o: lib/checkmemoryleak.cpp lib/checkmemoryleak.h lib/check.h lib/token.h lib/tokenize.h lib/settings.h lib/suppressions.h lib/standards.h lib/errorlogger.h lib/symboldatabase.h lib/mathlib.h lib/checkuninitvar.h
|
||||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) ${INCLUDE_FOR_LIB} -c -o lib/checkmemoryleak.o lib/checkmemoryleak.cpp
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) ${INCLUDE_FOR_LIB} -c -o lib/checkmemoryleak.o lib/checkmemoryleak.cpp
|
||||||
|
|
||||||
lib/checknonreentrantfunctions.o: lib/checknonreentrantfunctions.cpp lib/checknonreentrantfunctions.h lib/check.h lib/token.h lib/tokenize.h lib/settings.h lib/suppressions.h lib/standards.h lib/errorlogger.h
|
lib/checknonreentrantfunctions.o: lib/checknonreentrantfunctions.cpp lib/checknonreentrantfunctions.h lib/check.h lib/token.h lib/tokenize.h lib/settings.h lib/suppressions.h lib/standards.h lib/errorlogger.h
|
||||||
|
@ -248,7 +277,7 @@ lib/path.o: lib/path.cpp lib/path.h
|
||||||
lib/preprocessor.o: lib/preprocessor.cpp lib/preprocessor.h lib/tokenize.h lib/token.h lib/path.h lib/errorlogger.h lib/settings.h lib/suppressions.h lib/standards.h
|
lib/preprocessor.o: lib/preprocessor.cpp lib/preprocessor.h lib/tokenize.h lib/token.h lib/path.h lib/errorlogger.h lib/settings.h lib/suppressions.h lib/standards.h
|
||||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) ${INCLUDE_FOR_LIB} -c -o lib/preprocessor.o lib/preprocessor.cpp
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) ${INCLUDE_FOR_LIB} -c -o lib/preprocessor.o lib/preprocessor.cpp
|
||||||
|
|
||||||
lib/settings.o: lib/settings.cpp lib/settings.h lib/suppressions.h lib/standards.h lib/path.h
|
lib/settings.o: lib/settings.cpp lib/settings.h lib/suppressions.h lib/standards.h lib/path.h lib/preprocessor.h
|
||||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) ${INCLUDE_FOR_LIB} -c -o lib/settings.o lib/settings.cpp
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) ${INCLUDE_FOR_LIB} -c -o lib/settings.o lib/settings.cpp
|
||||||
|
|
||||||
lib/suppressions.o: lib/suppressions.cpp lib/suppressions.h lib/settings.h lib/standards.h lib/path.h
|
lib/suppressions.o: lib/suppressions.cpp lib/suppressions.h lib/settings.h lib/standards.h lib/path.h
|
||||||
|
|
|
@ -209,13 +209,42 @@ int main(int argc, char **argv)
|
||||||
if (release) {
|
if (release) {
|
||||||
makeConditionalVariable(fout, "CXXFLAGS", "-O2 -DNDEBUG -Wall");
|
makeConditionalVariable(fout, "CXXFLAGS", "-O2 -DNDEBUG -Wall");
|
||||||
} else {
|
} else {
|
||||||
|
// The _GLIBCXX_DEBUG doesn't work in cygwin or other Win32 systems.
|
||||||
|
fout << "ifndef COMSPEC\n"
|
||||||
|
<< " ifdef ComSpec\n"
|
||||||
|
<< " #### ComSpec is defined on some WIN32's.\n"
|
||||||
|
<< " COMSPEC=$(ComSpec)\n"
|
||||||
|
<< " endif # ComSpec\n"
|
||||||
|
<< "endif # COMSPEC\n"
|
||||||
|
<< "\n"
|
||||||
|
<< "ifdef COMSPEC\n"
|
||||||
|
<< " #### Maybe Windows\n"
|
||||||
|
<< " ifndef CPPCHK_GLIBCXX_DEBUG\n"
|
||||||
|
<< " CPPCHK_GLIBCXX_DEBUG=\n"
|
||||||
|
<< " endif # !CPPCHK_GLIBCXX_DEBUG\n"
|
||||||
|
<< "else # !COMSPEC\n"
|
||||||
|
<< " uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')\n"
|
||||||
|
<< "\n"
|
||||||
|
<< " ifeq ($(uname_S),Linux)\n"
|
||||||
|
<< " ifndef CPPCHK_GLIBCXX_DEBUG\n"
|
||||||
|
<< " CPPCHK_GLIBCXX_DEBUG=-D_GLIBCXX_DEBUG\n"
|
||||||
|
<< " endif # !CPPCHK_GLIBCXX_DEBUG\n"
|
||||||
|
<< " endif # Linux\n"
|
||||||
|
<< "\n"
|
||||||
|
<< " ifeq ($(uname_S),GNU/kFreeBSD)\n"
|
||||||
|
<< " ifndef CPPCHK_GLIBCXX_DEBUG\n"
|
||||||
|
<< " CPPCHK_GLIBCXX_DEBUG=-D_GLIBCXX_DEBUG\n"
|
||||||
|
<< " endif # !CPPCHK_GLIBCXX_DEBUG\n"
|
||||||
|
<< " endif # GNU/kFreeBSD\n"
|
||||||
|
<< "\n"
|
||||||
|
<< "endif # COMSPEC\n"
|
||||||
|
<< "\n";
|
||||||
|
|
||||||
// TODO: add more compiler warnings.
|
// TODO: add more compiler warnings.
|
||||||
// -Wlogical-op : doesn't work on older GCC
|
// -Wlogical-op : doesn't work on older GCC
|
||||||
// -Wconversion : too many warnings
|
// -Wconversion : too many warnings
|
||||||
// -Wsign-conversion : too many warnings
|
// -Wsign-conversion : too many warnings
|
||||||
// -Wunreachable-code : some GCC versions report lots of warnings
|
// -Wunreachable-code : some GCC versions report lots of warnings
|
||||||
|
|
||||||
// The _GLIBCXX_DEBUG doesn't work in cygwin
|
|
||||||
makeConditionalVariable(fout, "CXXFLAGS",
|
makeConditionalVariable(fout, "CXXFLAGS",
|
||||||
"-pedantic "
|
"-pedantic "
|
||||||
"-Wall "
|
"-Wall "
|
||||||
|
@ -235,7 +264,7 @@ int main(int argc, char **argv)
|
||||||
// "-Wunreachable-code "
|
// "-Wunreachable-code "
|
||||||
// "-Wsign-conversion "
|
// "-Wsign-conversion "
|
||||||
// "-Wconversion "
|
// "-Wconversion "
|
||||||
"-D_GLIBCXX_DEBUG "
|
"$(CPPCHK_GLIBCXX_DEBUG) "
|
||||||
"-g");
|
"-g");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue