]> git.notmuchmail.org Git - notmuch/blobdiff - configure
configure: Generate some documentation into Makefile.config.
[notmuch] / configure
index e55f067e4bf696fe8c35228771eebf24804ec9a6..92b6710fdef8ff020954e9e01709fca1efb23ee0 100755 (executable)
--- a/configure
+++ b/configure
@@ -7,14 +7,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.
 
 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
 
 
 EOF
 
@@ -26,39 +28,57 @@ else
     have_pkg_config=0
 fi
 
     have_pkg_config=0
 fi
 
+printf "Checking for Xapian development files... "
 if xapian-config --version > /dev/null 2>&1; then
 if xapian-config --version > /dev/null 2>&1; then
-    echo "Checking for Xapian development files... Yes."
+    printf "Yes.\n"
     have_xapian=1
     have_xapian=1
+    cxxflags="${cxxflags} $(xapian-config --cxxflags)"
+    ldflags="${ldflags} $(xapian-config --libs)"
 else
 else
-    echo "Checking for Xapian development files... No."
+    printf "No.\n"
     have_xapian=0
     errors=$((errors + 1))
 fi
 
     have_xapian=0
     errors=$((errors + 1))
 fi
 
+printf "Checking for GMime 2.4 development files... "
 if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then
 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
     have_gmime=1
+    cflags="${cflags} $(pkg-config --cflags gmime-2.4)"
+    ldflags="${ldflags} $(pkg-config --libs gmime-2.4)"
 else
 else
-    echo "Checking for GMime 2.4 development files... No."
+    printf "No.\n"
     have_gmime=0
     errors=$((errors + 1))
 fi
 
     have_gmime=0
     errors=$((errors + 1))
 fi
 
+printf "Checking for talloc development files... "
 if pkg-config --modversion talloc > /dev/null 2>&1; then
 if pkg-config --modversion talloc > /dev/null 2>&1; then
-    echo "Checking for talloc development files... Yes."
+    printf "Yes.\n"
     have_talloc=1
     have_talloc=1
+    cflags="${cflags} $(pkg-config --cflags talloc)"
+    ldflags="${ldflags} $(pkg-config --libs talloc)"
 else
 else
-    echo "Checking for talloc development files... No."
+    printf "No.\n"
     have_talloc=0
     have_talloc=0
+    talloc_cflags=
     errors=$((errors + 1))
 fi
 
     errors=$((errors + 1))
 fi
 
+printf "Checking for valgrind development files... "
 if pkg-config --modversion valgrind > /dev/null 2>&1; then
 if pkg-config --modversion valgrind > /dev/null 2>&1; then
-    echo "Checking for valgrind development files... Yes."
-    have_valgrind=-DHAVE_VALGRIND
+    printf "Yes.\n"
+    have_valgrind=1
+    cflags="${cflags} $(pkg-config --cflags valgrind)"
 else
 else
-    echo "Checking for valgrind development files... No."
-    have_valgrind=
+    printf "No (but that's fine).\n"
+    have_valgrind=0
+fi
+
+if pkg-config --modversion emacs > /dev/null 2>&1; then
+    emacs_lispdir=$(pkg-config emacs --variable sitepkglispdir)
+else
+    emacs_lispdir='$(prefix)/share/emacs/site-lisp'
 fi
 
 if [ $errors -gt 0 ]; then
 fi
 
 if [ $errors -gt 0 ]; then
@@ -104,8 +124,8 @@ with a command such as:
        sudo apt-get install pkg-config
 
 But if pkg-config is not available for your system, then you will need
        sudo apt-get install pkg-config
 
 But if pkg-config is not available for your system, then you will need
-to manually edit the notmuch Makefile to set NOTMUCH_CFLAGS and
-NOTMUCH_LDFLAGS to the correct values without calling pkg-config.
+to manually edit the notmuch Makefile to set the variables such as
+CFLAGS and LDFLAGS to the correct values without calling pkg-config.
 
 EOF
     fi
 
 EOF
     fi
@@ -118,6 +138,17 @@ EOF
     exit 1
 fi
 
     exit 1
 fi
 
+printf "Checking for getline... "
+if gcc -o config/have_getline config/have_getline.c > /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 config/have_getline
+
 cat <<EOF
 
 All required packages were found. You may now run the following
 cat <<EOF
 
 All required packages were found. You may now run the following
@@ -130,7 +161,26 @@ EOF
 
 # construct the Makefile.config
 cat > Makefile.config <<EOF
 
 # construct the Makefile.config
 cat > Makefile.config <<EOF
+# This Makefile.config was automatically generated by the ./configure
+# script of notmuch. If the configure script identified anything
+# incorrectly, then you can edit this file to try to correct things,
+# but be warned that if configure is run again it will destroy your
+# changes, (and this could happen by simply calling "make" if the
+# configure script is updated).
+
+# The prefix to which notmuch should be installed
 prefix = /usr/local
 prefix = /usr/local
-bash_completion_dir = /etc/bash_completion.d
-CFLAGS += ${have_valgrind}
+
+# The directory to which emacs lisp files should be installed
+emacs_lispdir=${emacs_lispdir}
+
+# Whether the getline function is available (if not, then notmuch will
+# build its own version)
+HAVE_GETLINE = ${have_getline}
+
+# Various flags needed to compile and link against the dependencies of
+# notmuch.
+override CFLAGS += ${cflags} -DHAVE_VALGRIND=${have_valgrind} -DHAVE_GETLINE=\$(HAVE_GETLINE)
+override CXXFLAGS += ${cflags} ${cxxflags}
+override LDFLAGS += ${ldflags}
 EOF
 EOF