configure: Add sanity checking for environment variables

Passing in environment variables incompatible with the compiler may
cause other parts of the configure script to fail in hard to
understand ways, so we abort early.
This commit is contained in:
David Bremner 2015-05-19 22:48:24 +02:00
parent c5ef2dc448
commit ccd7c0b0e6

32
configure vendored
View file

@ -47,6 +47,7 @@ CC=${CC:-cc}
CXX=${CXX:-c++} CXX=${CXX:-c++}
CFLAGS=${CFLAGS:--g -O2} CFLAGS=${CFLAGS:--g -O2}
CPPFLAGS=${CPPFLAGS:-} CPPFLAGS=${CPPFLAGS:-}
CXXFLAGS_for_sh=${CXXFLAGS:-${CFLAGS}}
CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)} CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)}
LDFLAGS=${LDFLAGS:-} LDFLAGS=${LDFLAGS:-}
XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config} XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config}
@ -269,6 +270,35 @@ dependencies are available:
EOF EOF
errors=0 errors=0
printf "int main(void){return 0;}\n" > minimal.c
printf "Sanity checking C compilation environment... "
if ${CC} ${CFLAGS} ${CPPFLAGS} minimal.c ${LDFLAGS} -o minimal > /dev/null 2>&1
then
printf "OK.\n"
else
printf "Fail.\n"
errors=$((errors + 1))
fi
printf "Sanity checking C++ compilation environment... "
if ${CXX} ${CXXFLAGS_for_sh} ${CPPFLAGS} minimal.c ${LDFLAGS} -o minimal > /dev/null 2>&1
then
printf "OK.\n"
else
printf "Fail.\n"
errors=$((errors + 1))
fi
if [ $errors -gt 0 ]; then
cat <<EOF
*** Error: Initial sanity checking of environment failed. Please try
running configure in a clean environment, and if the problem persists,
report a bug.
EOF
rm -f minimal minimal.c
exit 1
fi
if pkg-config --version > /dev/null 2>&1; then if pkg-config --version > /dev/null 2>&1; then
have_pkg_config=1 have_pkg_config=1
@ -690,8 +720,6 @@ else
fi fi
rm -f compat/check_asctime rm -f compat/check_asctime
printf "int main(void){return 0;}\n" > minimal.c
printf "Checking for rpath support... " printf "Checking for rpath support... "
if ${CC} -Wl,--enable-new-dtags -Wl,-rpath,/tmp/ -o minimal minimal.c >/dev/null 2>&1 if ${CC} -Wl,--enable-new-dtags -Wl,-rpath,/tmp/ -o minimal minimal.c >/dev/null 2>&1
then then