diff options
| author | David Bremner <david@tethera.net> | 2015-05-19 22:48:24 +0200 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2015-05-23 20:28:06 +0200 |
| commit | ccd7c0b0e6222ca41670eb9a29cc1f9346dad772 (patch) | |
| tree | a5b1157dac6519a7209f7a12ac137700168e16ef | |
| parent | c5ef2dc448659110adc8ab324ae166683d21988f (diff) | |
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.
| -rwxr-xr-x | configure | 32 |
1 files changed, 30 insertions, 2 deletions
@@ -47,6 +47,7 @@ CC=${CC:-cc} CXX=${CXX:-c++} CFLAGS=${CFLAGS:--g -O2} CPPFLAGS=${CPPFLAGS:-} +CXXFLAGS_for_sh=${CXXFLAGS:-${CFLAGS}} CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)} LDFLAGS=${LDFLAGS:-} XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config} @@ -269,6 +270,35 @@ dependencies are available: EOF 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 have_pkg_config=1 @@ -690,8 +720,6 @@ else fi rm -f compat/check_asctime -printf "int main(void){return 0;}\n" > minimal.c - printf "Checking for rpath support... " if ${CC} -Wl,--enable-new-dtags -Wl,-rpath,/tmp/ -o minimal minimal.c >/dev/null 2>&1 then |
