X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=configure;h=bab25016a1162ecadf3e965a083d37594ac179d5;hp=fd189093749e72e0c372f9c6f2ff27f8bb0b303b;hb=fe8eeaf4a576b4cad2ec4faee8d5e373118771f8;hpb=80d5d162be5f52fd7ad08eab99dac6ff4a5ef28a diff --git a/configure b/configure index fd189093..bab25016 100755 --- a/configure +++ b/configure @@ -1,5 +1,13 @@ #! /bin/sh +# Removing space from IFS makes it much easier to support filenames +# with spaces. See http://www.dwheeler.com/essays/filenames-in-shell.html +# for gory details. +IFS="$(printf '\n\t')" + +# Since we don't have space in IFS we use tab to separate things in lists +tab="$(printf '\t')" + # Set several defaults (optionally specified by the user in # environemnt variables) CC=${CC:-gcc} @@ -7,7 +15,7 @@ CXX=${CXX:-g++} CFLAGS=${CFLAGS:--O2} CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)} LDFLAGS=${LDFLAGS:-} -XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config-1.1 xapian-config} +XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config} # We don't allow the EMACS or GZIP Makefile variables inherit values # from the environment as we do with CC and CXX above. The reason is @@ -159,6 +167,12 @@ for option; do fi done +# We set this value early, (rather than just while printing the +# Makefile.config file later like most values), because we need to +# actually investigate this value compared to the ldconfig_paths value +# below. +libdir_expanded=${LIBDIR:-${PREFIX}/lib} + cat </dev/null | sed -n -e 's,^\(/.*\):\( (.*)\)\?$,\1,p') + for path in $ldconfig_paths; do + if [ "$path" = "$libdir_expanded" ]; then + libdir_in_ldconfig=1 + fi + done +else + printf "Unknown.\n" + cat < 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 + printf "Yes.\n" + rpath_ldflags="-Wl,--enable-new-dtags -Wl,-rpath,\$(libdir)" +else + printf "No (nothing to worry about).\n" + rpath_ldflags="" +fi + +printf "Checking for -Wl,--as-needed... " +if ${CC} -Wl,--as-needed -o minimal minimal.c >/dev/null 2>&1 +then + printf "Yes.\n" + as_needed_ldflags="-Wl,--as-needed" +else + printf "No (nothing to worry about).\n" + as_needed_ldflags="" +fi + +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 <