]> git.notmuchmail.org Git - notmuch/blobdiff - configure
Move some variable assignments from Makefile.local to Makefile.config
[notmuch] / configure
index fa8e142bb786e0450992abe823c6a9ee26bffb9e..64038f87aededde4c44448fe9e303dbba151d97f 100755 (executable)
--- a/configure
+++ b/configure
@@ -6,10 +6,19 @@ CC=${CC:-gcc}
 CXX=${CXX:-g++}
 CFLAGS=${CFLAGS:--O2}
 CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)}
 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
 
 # Set the defaults for values the user can specify with command-line
 # options.
 PREFIX=/usr/local
+LIBDIR=
 
 usage ()
 {
 
 usage ()
 {
@@ -37,18 +46,29 @@ First, some common variables can specified via environment variables:
 Each of these values can further be controlled by specifying them
 later on the "make" command line.
 
 Each of these values can further be controlled by specifying them
 later on the "make" command line.
 
+Other environment variables can be used to control configure itself,
+(and for which there is no equivalent build-time control):
+
+       XAPIAN_CONFIG   The program to use to determine flags for
+                       compiling and linking against the Xapian
+                       library. [$XAPIAN_CONFIG]
+
 Additionally, various options can be specified on the configure
 command line.
 
        --prefix=PREFIX Install files in PREFIX [$PREFIX]
 
 By default, "make install" will install the resulting program to
 Additionally, various options can be specified on the configure
 command line.
 
        --prefix=PREFIX Install files in PREFIX [$PREFIX]
 
 By default, "make install" will install the resulting program to
-$PREFIX/bin, documentation to $PREFIX/share, etc. You can
+$PREFIX/bin, documentation to $PREFIX/man, etc. You can
 specify an installation prefix other than $PREFIX using
 --prefix, for instance:
 
        ./configure --prefix=\$HOME
 
 specify an installation prefix other than $PREFIX using
 --prefix, for instance:
 
        ./configure --prefix=\$HOME
 
+Fine tuning of some installation directories is available:
+
+       --libdir=DIR    Install libraries in LIBDIR [PREFIX/lib]
+
 EOF
 }
 
 EOF
 }
 
@@ -59,6 +79,8 @@ for option; do
        exit 0
     elif [ "${option%%=*}" = '--prefix' ] ; then
        PREFIX="${option#*=}"
        exit 0
     elif [ "${option%%=*}" = '--prefix' ] ; then
        PREFIX="${option#*=}"
+    elif [ "${option%%=*}" = '--libdir' ] ; then
+       LIBDIR="${option#*=}"
     else
        echo "Unrecognized option: ${option}."
        echo "See:"
     else
        echo "Unrecognized option: ${option}."
        echo "See:"
@@ -97,14 +119,18 @@ else
 fi
 
 printf "Checking for Xapian development files... "
 fi
 
 printf "Checking for Xapian development files... "
-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)
-else
+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"
     printf "No.\n"
-    have_xapian=0
     errors=$((errors + 1))
 fi
 
     errors=$((errors + 1))
 fi
 
@@ -250,18 +276,42 @@ CC = ${CC}
 # The C++ compiler to use
 CXX = ${CXX}
 
 # The C++ compiler to use
 CXX = ${CXX}
 
+# Command to execute emacs from Makefiles
+EMACS = emacs --quick
+
+# Command to execute gzip from Makefiles
+gzip = gzip
+
 # Default FLAGS for C compiler (can be overridden by user such as "make CFLAGS=-g")
 CFLAGS = ${CFLAGS}
 
 # Default FLAGS for C++ compiler (can be overridden by user such as "make CXXFLAGS=-g")
 CXXFLAGS = ${CXXFLAGS}
 
 # Default FLAGS for C compiler (can be overridden by user such as "make CFLAGS=-g")
 CFLAGS = ${CFLAGS}
 
 # Default FLAGS for C++ compiler (can be overridden by user such as "make CXXFLAGS=-g")
 CXXFLAGS = ${CXXFLAGS}
 
+# Flags to enable warnings when using the C++ compiler
+WARN_CXXFLAGS=-Wall -Wextra -Wwrite-strings -Wswitch-enum
+
+# Flags to enable warnings when using the C compiler
+WARN_CFLAGS=\$(WARN_CXXFLAGS) -Wmissing-declarations
+
 # The prefix to which notmuch should be installed
 prefix = ${PREFIX}
 
 # The prefix to which notmuch should be installed
 prefix = ${PREFIX}
 
+# The directory to which notmuch libraries should be installed
+libdir = ${LIBDIR:=$PREFIX/lib}
+
 # The directory to which emacs lisp files should be installed
 emacs_lispdir=${emacs_lispdir}
 
 # The directory to which emacs lisp files should be installed
 emacs_lispdir=${emacs_lispdir}
 
+# The directory to which desktop files should be installed
+desktop_dir = \${prefix}/share/applications
+
+# The directory to which bash completions files should be installed
+bash_completion_dir = /etc/bash_completion.d
+
+# The directory to which zsh completions files should be installed
+zsh_completion_dir = ${PREFIX}/share/zsh/functions/Completion/Unix
+
 # Whether the getline function is available (if not, then notmuch will
 # build its own version)
 HAVE_GETLINE = ${have_getline}
 # Whether the getline function is available (if not, then notmuch will
 # build its own version)
 HAVE_GETLINE = ${have_getline}