configure: Test for each compiler warning before enabling it.

This should allow the build to be much more automatically portable
to compilers with different sets of warning options.
This commit is contained in:
Carl Worth 2010-10-30 12:36:06 -07:00
parent 3fe90a955e
commit b802c18d3b
2 changed files with 26 additions and 6 deletions

4
TODO
View file

@ -57,10 +57,6 @@ Add a binding to open all closed messages.
Change the 'a'rchive command in the thread view to only archive open
messages.
Portability
-----------
Fix configure script to test each compiler warning we want to use.
Completion
----------
Fix bash completion to complete multiple search options (both --first

28
configure vendored
View file

@ -391,6 +391,30 @@ else
fi
rm -f compat/have_strcasestr
printf "int main(void){return 0;}\n" > minimal.c
WARN_CXXFLAGS=""
printf "Checking for available C++ compiler warning flags... "
for flag in -Wall -Wextra -Wwrite-strings -Wswitch-enum; do
if ${CC} $flag -o minimal minimal.c > /dev/null 2>&1
then
WARN_CXXFLAGS="${WARN_CXXFLAGS}${WARN_CXXFLAGS:+ }${flag}"
fi
done
printf "\n\t${WARN_CXXFLAGS}\n"
WARN_CFLAGS="${WARN_CXXFLAGS}"
printf "Checking for available C compiler warning flags... "
for flag in -Wmissing-declarations; do
if ${CC} $flag -o minimal minimal.c > /dev/null 2>&1
then
WARN_CFLAGS="${WARN_CFLAGS}${WARN_CFLAGS:+ }${flag}"
fi
done
printf "\n\t${WARN_CFLAGS}\n"
rm -f minimal minimal.c
cat <<EOF
All required packages were found. You may now run the following
@ -429,10 +453,10 @@ CXXFLAGS = ${CXXFLAGS}
LDFLAGS = ${LDFLAGS}
# Flags to enable warnings when using the C++ compiler
WARN_CXXFLAGS=-Wall -Wextra -Wwrite-strings -Wswitch-enum
WARN_CXXFLAGS=${WARN_CXXFLAGS}
# Flags to enable warnings when using the C compiler
WARN_CFLAGS=\$(WARN_CXXFLAGS) -Wmissing-declarations
WARN_CFLAGS=${WARN_CFLAGS}
# The prefix to which notmuch should be installed
# Note: If you change this value here, be sure to ensure that the