X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=configure;h=7f5ca7d1936243439e253d15029f4ffbc56ff3c5;hp=1010799dbe1fe385712933c826d7225494762f16;hb=18433e4affa0124b5081fc57f652c832df9e9bb2;hpb=80483a92bef8dab659f81c1ae0eda05656a82510 diff --git a/configure b/configure index 1010799d..7f5ca7d1 100755 --- a/configure +++ b/configure @@ -1,12 +1,140 @@ #! /bin/sh -# defaults +# Set several defaults (optionally specified by the user in +# environemnt variables) +CC=${CC:-gcc} +CXX=${CXX:-g++} +CFLAGS=${CFLAGS:--O2} +CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)} +XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config-1.1 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 +# that these names as environment variables have existing uses other +# than the program name that we want. (EMACS is set to 't' when a +# shell is running within emacs and GZIP specifies arguments to pass +# on the gzip command line). + +# Set the defaults for values the user can specify with command-line +# options. PREFIX=/usr/local +LIBDIR= + +usage () +{ + cat <-- Currently ignored + --infodir=DIR Currently ignored + --localstatedir=DIR Currently ignored + --libexecdir=DIR Currently ignored + --disable-maintainer-mode Currently ignored + --disable-dependency-tracking Currently ignored + +EOF +} + +# Parse command-line options for option; do - if [ "${option%=*}" = '--prefix' ] ; then + if [ "${option}" = '--help' ] ; then + usage + exit 0 + elif [ "${option%%=*}" = '--prefix' ] ; then PREFIX="${option#*=}" + elif [ "${option%%=*}" = '--libdir' ] ; then + LIBDIR="${option#*=}" + elif [ "${option%%=*}" = '--includedir' ] ; then + INCLUDEDIR="${option#*=}" + elif [ "${option%%=*}" = '--mandir' ] ; then + MANDIR="${option#*=}" + elif [ "${option%%=*}" = '--sysconfdir' ] ; then + SYSCONFDIR="${option#*=}" + elif [ "${option%%=*}" = '--emacslispdir' ] ; then + EMACSLISPDIR="${option#*=}" + elif [ "${option%%=*}" = '--build' ] ; then + build_option="${option#*=}" + case ${build_option} in + *-*-*) ;; + *) + echo "Unrecognized value for --build option: ${build_option}" + echo "Should be: --" + echo "See:" + echo " $0 --help" + echo "" + exit 1 + esac + build_cpu=${build_option%%-*} + build_option=${build_option#*-} + build_vendor=${build_option%%-*} + build_os=${build_option#*-} + elif [ "${option%%=*}" = '--infodir' ] ; then + true + elif [ "${option%%=*}" = '--localstatedir' ] ; then + true + elif [ "${option%%=*}" = '--libexecdir' ] ; then + true + elif [ "${option}" = '--disable-maintainer-mode' ] ; then + true + elif [ "${option}" = '--disable-dependency-tracking' ] ; then + true + else + echo "Unrecognized option: ${option}" + echo "See:" + echo " $0 --help" + echo "" + exit 1 fi done @@ -17,14 +145,16 @@ We hope that the process of building and installing notmuch is quick and smooth so that you can soon be reading and processing your email more efficiently than ever. -If anything goes wrong in this process, please do as much as you can -to figure out what could be different on your machine compared to -those of the notmuch developers. Then, please email those details to -the Notmuch list (notmuch@notmuchmail.org) so that we can hopefully make -future versions of notmuch easier for you to use. +If anything goes wrong in the configure process, you can override any +decisions it makes by manually editing the Makefile.config file that +it creates. Also please do as much as you can to figure out what could +be different on your machine compared to those of the notmuch +developers. Then, please email those details to the Notmuch list +(notmuch@notmuchmail.org) so that we can hopefully make future +versions of notmuch easier for you to use. -We'll now investigate your system to find verify that various software -components that notmuch relies on are available. +We'll now investigate your system to verify that all required +dependencies are available: EOF @@ -36,48 +166,83 @@ else have_pkg_config=0 fi -if xapian-config --version > /dev/null 2>&1; then - echo "Checking for Xapian development files... Yes." - have_xapian=1 -else - echo "Checking for Xapian development files... No." - have_xapian=0 +printf "Checking for Xapian development files... " +have_xapian=0 +for xapian_config in ${XAPIAN_CONFIG}; do + if ${xapian_config} --version > /dev/null 2>&1; then + printf "Yes.\n" + have_xapian=1 + xapian_cxxflags=$(${xapian_config} --cxxflags) + xapian_ldflags=$(${xapian_config} --libs) + break + fi +done +if [ ${have_xapian} = "0" ]; then + printf "No.\n" errors=$((errors + 1)) fi +printf "Checking for GMime 2.4 development files... " if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then - echo "Checking for GMime 2.4 development files... Yes." + printf "Yes.\n" have_gmime=1 + gmime_cflags=$(pkg-config --cflags gmime-2.4) + gmime_ldflags=$(pkg-config --libs gmime-2.4) else - echo "Checking for GMime 2.4 development files... No." + printf "No.\n" have_gmime=0 errors=$((errors + 1)) fi +printf "Checking for talloc development files... " if pkg-config --modversion talloc > /dev/null 2>&1; then - echo "Checking for talloc development files... Yes." + printf "Yes.\n" have_talloc=1 + talloc_cflags=$(pkg-config --cflags talloc) + talloc_ldflags=$(pkg-config --libs talloc) else - echo "Checking for talloc development files... No." + printf "No.\n" have_talloc=0 + talloc_cflags= errors=$((errors + 1)) fi -if printf 'int main(){return 0;}' | gcc -x c -lz -o /dev/null - > /dev/null 2>&1; then - echo "Checking for zlib development files... Yes." - have_zlib=1 +printf "Checking for valgrind development files... " +if pkg-config --modversion valgrind > /dev/null 2>&1; then + printf "Yes.\n" + have_valgrind=1 + valgrind_cflags=$(pkg-config --cflags valgrind) else - echo "Checking for zlib development files... No." - have_zlib=0 - errors=$((errors + 1)) + printf "No (but that's fine).\n" + have_valgrind=0 fi -if pkg-config --modversion valgrind > /dev/null 2>&1; then - echo "Checking for valgrind development files... Yes." - have_valgrind=-DHAVE_VALGRIND +if [ -z "${EMACSLISPDIR}" ]; then + if pkg-config --modversion emacs > /dev/null 2>&1; then + EMACSLISPDIR=$(pkg-config emacs --variable sitepkglispdir) + else + EMACSLISPDIR='$(prefix)/share/emacs/site-lisp' + fi +fi + +printf "Checking if emacs is available... " +if emacs --quick --batch > /dev/null 2>&1; then + printf "Yes.\n" + have_emacs=1 else - echo "Checking for valgrind development files... No." - have_valgrind= + printf "No (so will not byte-compile emacs code)\n" + have_emacs=0 +fi + +printf "Checking for Mac OS X (for shared library)... " +if [ `uname` = "Darwin" ] ; then + printf "Yes.\n" + mac_os_x=1 + linker_resolves_library_dependencies=0 +else + printf "No.\n" + mac_os_x=0 + linker_resolves_library_dependencies=1 fi if [ $errors -gt 0 ]; then @@ -100,34 +265,39 @@ EOF echo " The talloc library (including development files such as headers)" echo " http://talloc.samba.org/" fi - if [ $have_zlib -eq 0 ]; then - echo " The zlib library (including development files such as headers)" - fi cat < /dev/null 2>&1 +then + printf "Yes.\n" + have_getline=1 +else + printf "No (will use our own instead).\n" + have_getline=0 +fi +rm -f compat/have_getline + +printf "Checking for strcasestr... " +if ${CC} -o compat/have_strcasestr compat/have_strcasestr.c > /dev/null 2>&1 +then + printf "Yes.\n" + have_strcasestr=1 +else + printf "No (will use our own instead).\n" + have_strcasestr=0 +fi +rm -f compat/have_strcasestr + cat < Makefile.config <