]> git.notmuchmail.org Git - notmuch/blob - configure
build: Save configure options and re-use them for automatic runs of configure
[notmuch] / configure
1 #! /bin/sh
2
3 srcdir=$(dirname "$0")
4
5 # For a non-srcdir configure invocation (such as ../configure), create
6 # the directory structure and copy Makefiles.
7 if [ "$srcdir" != "." ]; then
8
9     for dir in . $(grep "^subdirs *=" "$srcdir"/Makefile | sed -e "s/subdirs *= *//"); do
10         mkdir -p "$dir"
11         cp "$srcdir"/"$dir"/Makefile.local "$dir"
12         cp "$srcdir"/"$dir"/Makefile "$dir"
13     done
14
15     # Easiest way to get the test suite to work is to just copy the
16     # whole thing into the build directory.
17     cp -a "$srcdir"/test/* test
18
19     # Emacs only likes to generate compiled files next to the .el files
20     # by default so copy these as well (which is not ideal0.
21     cp -a "$srcdir"/emacs/*.el emacs
22 fi
23
24 # Set several defaults (optionally specified by the user in
25 # environemnt variables)
26 CC=${CC:-gcc}
27 CXX=${CXX:-g++}
28 CFLAGS=${CFLAGS:--O2}
29 CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)}
30 LDFLAGS=${LDFLAGS:-}
31 XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config}
32
33 # We don't allow the EMACS or GZIP Makefile variables inherit values
34 # from the environment as we do with CC and CXX above. The reason is
35 # that these names as environment variables have existing uses other
36 # than the program name that we want. (EMACS is set to 't' when a
37 # shell is running within emacs and GZIP specifies arguments to pass
38 # on the gzip command line).
39
40 # Set the defaults for values the user can specify with command-line
41 # options.
42 PREFIX=/usr/local
43 LIBDIR=
44 WITH_EMACS=1
45 WITH_BASH=1
46 WITH_ZSH=1
47
48 usage ()
49 {
50     cat <<EOF
51 Usage: ./configure [options]...
52
53 This script configures notmuch to build on your system.
54
55 It verifies that dependencies are available, determines flags needed
56 to compile and link against various required libraries, and identifies
57 whether various system functions can be used or if locally-provided
58 replacements will be built instead.
59
60 Finally, it allows you to control various aspects of the build and
61 installation process.
62
63 First, some common variables can specified via environment variables:
64
65         CC              The C compiler to use
66         CFLAGS          Flags to pass to the C compiler
67         CXX             The C++ compiler to use
68         CXXFLAGS        Flags to pass to the C compiler
69         LDFLAGS         Flags to pass when linking
70
71 Each of these values can further be controlled by specifying them
72 later on the "make" command line.
73
74 Other environment variables can be used to control configure itself,
75 (and for which there is no equivalent build-time control):
76
77         XAPIAN_CONFIG   The program to use to determine flags for
78                         compiling and linking against the Xapian
79                         library. [$XAPIAN_CONFIG]
80
81 Additionally, various options can be specified on the configure
82 command line.
83
84         --prefix=PREFIX Install files in PREFIX [$PREFIX]
85
86 By default, "make install" will install the resulting program to
87 $PREFIX/bin, documentation to $PREFIX/man, etc. You can
88 specify an installation prefix other than $PREFIX using
89 --prefix, for instance:
90
91         ./configure --prefix=\$HOME
92
93 Fine tuning of some installation directories is available:
94
95         --libdir=DIR            Install libraries to DIR [PREFIX/lib]
96         --includedir=DIR        Install header files to DIR [PREFIX/include]
97         --mandir=DIR            Install man pages to DIR [PREFIX/share/man]
98         --sysconfdir=DIR        Read-only single-machine data [PREFIX/etc]
99         --emacslispdir=DIR      Emacs code [PREFIX/share/emacs/site-lisp]
100         --bashcompletiondir=DIR Bash completions files [SYSCONFDIR/bash_completion.d]
101         --zshcompletiondir=DIR  Zsh completions files [PREFIX/share/zsh/functions/Completion/Unix]
102
103 Some features can be disabled (--with-feature=no is equivalent to
104 --without-feature) :
105
106         --without-emacs                 Do not install lisp file
107         --without-bash-completion       Do not install bash completions files
108         --without-zsh-completion        Do not install zsh completions files
109
110 Additional options are accepted for compatibility with other
111 configure-script calling conventions, but don't do anything yet:
112
113         --build=<cpu>-<vendor>-<os>     Currently ignored
114         --host=<cpu>-<vendor>-<os>      Currently ignored
115         --infodir=DIR                   Currently ignored
116         --datadir=DIR                   Currently ignored
117         --localstatedir=DIR             Currently ignored
118         --libexecdir=DIR                Currently ignored
119         --disable-maintainer-mode       Currently ignored
120         --disable-dependency-tracking   Currently ignored
121
122 EOF
123 }
124
125 # Parse command-line options
126 for option; do
127     if [ "${option}" = '--help' ] ; then
128         usage
129         exit 0
130     elif [ "${option%%=*}" = '--prefix' ] ; then
131         PREFIX="${option#*=}"
132     elif [ "${option%%=*}" = '--libdir' ] ; then
133         LIBDIR="${option#*=}"
134     elif [ "${option%%=*}" = '--includedir' ] ; then
135         INCLUDEDIR="${option#*=}"
136     elif [ "${option%%=*}" = '--mandir' ] ; then
137         MANDIR="${option#*=}"
138     elif [ "${option%%=*}" = '--sysconfdir' ] ; then
139         SYSCONFDIR="${option#*=}"
140     elif [ "${option%%=*}" = '--emacslispdir' ] ; then
141         EMACSLISPDIR="${option#*=}"
142     elif [ "${option%%=*}" = '--bashcompletiondir' ] ; then
143         BASHCOMPLETIONDIR="${option#*=}"
144     elif [ "${option%%=*}" = '--zshcompletiondir' ] ; then
145         ZSHCOMLETIONDIR="${option#*=}"
146     elif [ "${option%%=*}" = '--with-emacs' ]; then
147         if [ "${option#*=}" = 'no' ]; then
148             WITH_EMACS=0
149         else
150             WITH_EMACS=1
151         fi
152     elif [ "${option}" = '--without-emacs' ] ; then
153         WITH_EMACS=0
154     elif [ "${option%%=*}" = '--with-bash-completion' ]; then
155         if [ "${option#*=}" = 'no' ]; then
156             WITH_BASH=0
157         else
158             WITH_BASH=1
159         fi
160     elif [ "${option}" = '--without-bash-completion' ] ; then
161         WITH_BASH=0
162     elif [ "${option%%=*}" = '--with-zsh-completion' ]; then
163         if [ "${option#*=}" = 'no' ]; then
164             WITH_ZSH=0
165         else
166             WITH_ZSH=1
167         fi
168     elif [ "${option}" = '--without-zsh-completion' ] ; then
169         WITH_ZSH=0
170     elif [ "${option%%=*}" = '--build' ] ; then
171         build_option="${option#*=}"
172         case ${build_option} in
173             *-*-*) ;;
174             *)
175                 echo "Unrecognized value for --build option: ${build_option}"
176                 echo "Should be: <cpu>-<vendor>-<os>"
177                 echo "See:"
178                 echo "  $0 --help"
179                 echo ""
180                 exit 1
181         esac
182         build_cpu=${build_option%%-*}
183         build_option=${build_option#*-}
184         build_vendor=${build_option%%-*}
185         build_os=${build_option#*-}
186     elif [ "${option%%=*}" = '--host' ] ; then
187         host_option="${option#*=}"
188         case ${host_option} in
189             *-*-*) ;;
190             *)
191                 echo "Unrecognized value for --host option: ${host_option}"
192                 echo "Should be: <cpu>-<vendor>-<os>"
193                 echo "See:"
194                 echo "  $0 --help"
195                 echo ""
196                 exit 1
197         esac
198         host_cpu=${host_option%%-*}
199         host_option=${host_option#*-}
200         host_vendor=${host_option%%-*}
201         host_os=${host_option#*-}
202     elif [ "${option%%=*}" = '--infodir' ] ; then
203         true
204     elif [ "${option%%=*}" = '--datadir' ] ; then
205         true
206     elif [ "${option%%=*}" = '--localstatedir' ] ; then
207         true
208     elif [ "${option%%=*}" = '--libexecdir' ] ; then
209         true
210     elif [ "${option}" = '--disable-maintainer-mode' ] ; then
211         true
212     elif [ "${option}" = '--disable-dependency-tracking' ] ; then
213         true
214     else
215         echo "Unrecognized option: ${option}"
216         echo "See:"
217         echo "  $0 --help"
218         echo ""
219         exit 1
220     fi
221 done
222
223 # We set this value early, (rather than just while printing the
224 # Makefile.config file later like most values), because we need to
225 # actually investigate this value compared to the ldconfig_paths value
226 # below.
227 libdir_expanded=${LIBDIR:-${PREFIX}/lib}
228
229 cat <<EOF
230 Welcome to Notmuch, a system for indexing, searching and tagging your email.
231
232 We hope that the process of building and installing notmuch is quick
233 and smooth so that you can soon be reading and processing your email
234 more efficiently than ever.
235
236 If anything goes wrong in the configure process, you can override any
237 decisions it makes by manually editing the Makefile.config file that
238 it creates. Also please do as much as you can to figure out what could
239 be different on your machine compared to those of the notmuch
240 developers. Then, please email those details to the Notmuch list
241 (notmuch@notmuchmail.org) so that we can hopefully make future
242 versions of notmuch easier for you to use.
243
244 We'll now investigate your system to verify that all required
245 dependencies are available:
246
247 EOF
248
249 errors=0
250
251 if pkg-config --version > /dev/null 2>&1; then
252     have_pkg_config=1
253 else
254     have_pkg_config=0
255 fi
256
257 printf "Checking for Xapian development files... "
258 have_xapian=0
259 for xapian_config in ${XAPIAN_CONFIG}; do
260     if ${xapian_config} --version > /dev/null 2>&1; then
261         printf "Yes (%s).\n" $(${xapian_config} --version | sed -e 's/.* //')
262         have_xapian=1
263         xapian_cxxflags=$(${xapian_config} --cxxflags)
264         xapian_ldflags=$(${xapian_config} --libs)
265         break
266     fi
267 done
268 if [ ${have_xapian} = "0" ]; then
269     printf "No.\n"
270     errors=$((errors + 1))
271 fi
272
273 printf "Checking for GMime development files... "
274 have_gmime=0
275 for gmimepc in gmime-2.6 gmime-2.4; do
276     if pkg-config --exists $gmimepc; then
277         printf "Yes ($gmimepc).\n"
278         have_gmime=1
279         gmime_cflags=$(pkg-config --cflags $gmimepc)
280         gmime_ldflags=$(pkg-config --libs $gmimepc)
281     fi
282 done
283 if [ "$have_gmime" = "0" ]; then
284     printf "No.\n"
285     errors=$((errors + 1))
286 fi
287
288 # GMime already depends on Glib >= 2.12, but we use at least one Glib
289 # function that only exists as of 2.14, (g_hash_table_get_keys)
290 printf "Checking for Glib development files (>= 2.14)... "
291 have_glib=0
292 if pkg-config --exists 'glib-2.0 >= 2.14'; then
293     printf "Yes.\n"
294     have_glib=1
295     glib_cflags=$(pkg-config --cflags glib-2.0)
296     glib_ldflags=$(pkg-config --libs glib-2.0)
297 else
298     printf "No.\n"
299     errors=$((errors + 1))
300 fi
301
302 printf "Checking for talloc development files... "
303 if pkg-config --exists talloc; then
304     printf "Yes.\n"
305     have_talloc=1
306     talloc_cflags=$(pkg-config --cflags talloc)
307     talloc_ldflags=$(pkg-config --libs talloc)
308 else
309     printf "No.\n"
310     have_talloc=0
311     talloc_cflags=
312     errors=$((errors + 1))
313 fi
314
315 printf "Checking for valgrind development files... "
316 if pkg-config --exists valgrind; then
317     printf "Yes.\n"
318     have_valgrind=1
319     valgrind_cflags=$(pkg-config --cflags valgrind)
320 else
321     printf "No (but that's fine).\n"
322     have_valgrind=0
323 fi
324
325 if [ -z "${EMACSLISPDIR}" ]; then
326     if pkg-config --exists emacs; then
327         EMACSLISPDIR=$(pkg-config emacs --variable sitepkglispdir)
328     else
329         EMACSLISPDIR='$(prefix)/share/emacs/site-lisp'
330     fi
331 fi
332
333 printf "Checking if emacs is available... "
334 if emacs --quick --batch > /dev/null 2>&1; then
335     printf "Yes.\n"
336     have_emacs=1
337 else
338     printf "No (so will not byte-compile emacs code)\n"
339     have_emacs=0
340 fi
341
342 libdir_in_ldconfig=0
343
344 printf "Checking which platform we are on... "
345 uname=`uname`
346 if [ $uname = "Darwin" ] ; then
347     printf "Mac OS X.\n"
348     platform=MACOSX
349     linker_resolves_library_dependencies=0
350 elif [ $uname = "SunOS" ] ; then
351     printf "Solaris.\n"
352     platform=SOLARIS
353     linker_resolves_library_dependencies=0
354 elif [ $uname = "Linux" ] ; then
355     printf "Linux\n"
356     platform=LINUX
357     linker_resolves_library_dependencies=1
358     ldconfig_paths=$(/sbin/ldconfig -N -X -v 2>/dev/null | sed -n -e 's,^\(/.*\):\( (.*)\)\?$,\1,p')
359     # Separate ldconfig_paths only on newline (not on any potential
360     # embedded space characters in any filenames).
361     OLD_IFS=$IFS
362     IFS="$(printf '\n')"
363     for path in $ldconfig_paths; do
364         if [ "$path" = "$libdir_expanded" ]; then
365             libdir_in_ldconfig=1
366         fi
367     done
368     IFS=$OLD_IFS
369 else
370     printf "Unknown.\n"
371     cat <<EOF
372
373 *** Warning: Unknown platform. Notmuch might or might not build correctly.
374
375 EOF
376 fi
377
378 if [ $errors -gt 0 ]; then
379     cat <<EOF
380
381 *** Error: The dependencies of notmuch could not be satisfied. You will
382 need to install the following packages before being able to compile
383 notmuch:
384
385 EOF
386     if [ $have_xapian -eq 0 ]; then
387         echo "  Xapian library (including development files such as headers)"
388         echo "  http://xapian.org/"
389     fi
390     if [ $have_gmime -eq 0 ]; then
391         echo "  GMime 2.4 library (including development files such as headers)"
392         echo "  http://spruce.sourceforge.net/gmime/"
393     fi
394     if [ $have_glib -eq 0 ]; then
395         echo "  Glib library >= 2.14 (including development files such as headers)"
396         echo "  http://ftp.gnome.org/pub/gnome/sources/glib/"
397     fi
398     if [ $have_talloc -eq 0 ]; then
399         echo "  The talloc library (including development files such as headers)"
400         echo "  http://talloc.samba.org/"
401     fi
402     cat <<EOF
403
404 With any luck, you're using a modern, package-based operating system
405 that has all of these packages available in the distribution. In that
406 case a simple command will install everything you need. For example:
407
408 On Debian and similar systems:
409
410         sudo apt-get install libxapian-dev libgmime-2.4-dev libtalloc-dev
411
412 Or on Fedora and similar systems:
413
414         sudo yum install xapian-core-devel gmime-devel libtalloc-devel
415
416 On other systems, similar commands can be used, but the details of the
417 package names may be different.
418
419 EOF
420     if [ $have_pkg_config -eq 0 ]; then
421 cat <<EOF
422 Note: the pkg-config program is not available. This configure script
423 uses pkg-config to find the compilation flags required to link against
424 the various libraries needed by notmuch. It's possible you simply need
425 to install pkg-config with a command such as:
426
427         sudo apt-get install pkg-config
428 Or:
429         sudo yum install pkgconfig
430
431 But if pkg-config is not available for your system, then you will need
432 to modify the configure script to manually set the cflags and ldflags
433 variables to the correct values to link against each library in each
434 case that pkg-config could not be used to determine those values.
435
436 EOF
437     fi
438 cat <<EOF
439 When you have installed the necessary dependencies, you can run
440 configure again to ensure the packages can be found, or simply run
441 "make" to compile notmuch.
442
443 EOF
444     exit 1
445 fi
446
447 printf "Checking for getline... "
448 if ${CC} -o compat/have_getline "$srcdir"/compat/have_getline.c > /dev/null 2>&1
449 then
450     printf "Yes.\n"
451     have_getline=1
452 else
453     printf "No (will use our own instead).\n"
454     have_getline=0
455 fi
456 rm -f compat/have_getline
457
458 printf "Checking for strcasestr... "
459 if ${CC} -o compat/have_strcasestr "$srcdir"/compat/have_strcasestr.c > /dev/null 2>&1
460 then
461     printf "Yes.\n"
462     have_strcasestr=1
463 else
464     printf "No (will use our own instead).\n"
465     have_strcasestr=0
466 fi
467 rm -f compat/have_strcasestr
468
469 printf "int main(void){return 0;}\n" > minimal.c
470
471 printf "Checking for rpath support... "
472 if ${CC} -Wl,--enable-new-dtags -Wl,-rpath,/tmp/ -o minimal minimal.c >/dev/null 2>&1
473 then
474     printf "Yes.\n"
475     rpath_ldflags="-Wl,--enable-new-dtags -Wl,-rpath,\$(libdir)"
476 else
477     printf "No (nothing to worry about).\n"
478     rpath_ldflags=""
479 fi
480
481 printf "Checking for -Wl,--as-needed... "
482 if ${CC} -Wl,--as-needed -o minimal minimal.c >/dev/null 2>&1
483 then
484     printf "Yes.\n"
485     as_needed_ldflags="-Wl,--as-needed"
486 else
487     printf "No (nothing to worry about).\n"
488     as_needed_ldflags=""
489 fi
490
491 WARN_CXXFLAGS=""
492 printf "Checking for available C++ compiler warning flags... "
493 for flag in -Wall -Wextra -Wwrite-strings -Wswitch-enum; do
494     if ${CC} $flag -o minimal minimal.c > /dev/null 2>&1
495     then
496         WARN_CXXFLAGS="${WARN_CXXFLAGS}${WARN_CXXFLAGS:+ }${flag}"
497     fi
498 done
499 printf "\n\t${WARN_CXXFLAGS}\n"
500
501 WARN_CFLAGS="${WARN_CXXFLAGS}"
502 printf "Checking for available C compiler warning flags... "
503 for flag in -Wmissing-declarations; do
504     if ${CC} $flag -o minimal minimal.c > /dev/null 2>&1
505     then
506         WARN_CFLAGS="${WARN_CFLAGS}${WARN_CFLAGS:+ }${flag}"
507     fi
508 done
509 printf "\n\t${WARN_CFLAGS}\n"
510
511 rm -f minimal minimal.c
512         
513 cat <<EOF
514
515 All required packages were found. You may now run the following
516 commands to compile and install notmuch:
517
518         make
519         sudo make install
520
521 EOF
522
523 # construct the Makefile.config
524 cat > Makefile.config <<EOF
525 # This Makefile.config was automatically generated by the ./configure
526 # script of notmuch. If the configure script identified anything
527 # incorrectly, then you can edit this file to try to correct things,
528 # but be warned that if configure is run again it will destroy your
529 # changes, (and this could happen by simply calling "make" if the
530 # configure script is updated).
531
532 # The top-level directory for the source, (the directory containing
533 # the configure script). This may be different than the build
534 # directory (the current directory at the time configure was run).
535 srcdir = ${srcdir}
536
537 configure_options = $@
538
539 # We use vpath directives (rather than the VPATH variable) since the
540 # VPATH variable matches targets as well as prerequisites, (which is
541 # not useful since then a target left-over from a srcdir build would
542 # cause a target to not be built in the non-srcdir build).
543 #
544 # Also, we don't use a single "vpath % \$(srcdir)" here because we
545 # don't want the vpath to trigger for our emacs lisp compilation,
546 # (unless we first find a way to convince emacs to build the .elc
547 # target in a directory other than the directory of the .el
548 # prerequisite). In the meantime, we're actually copying in the .el
549 # files, (which is quite ugly).
550 vpath %.c \$(srcdir)
551 vpath %.cc \$(srcdir)
552 vpath %.1 \$(srcdir)
553 vpath Makefile.% \$(srcdir)
554
555 # The C compiler to use
556 CC = ${CC}
557
558 # The C++ compiler to use
559 CXX = ${CXX}
560
561 # Command to execute emacs from Makefiles
562 EMACS = emacs --quick
563
564 # Default FLAGS for C compiler (can be overridden by user such as "make CFLAGS=-g")
565 CFLAGS = ${CFLAGS}
566
567 # Default FLAGS for C++ compiler (can be overridden by user such as "make CXXFLAGS=-g")
568 CXXFLAGS = ${CXXFLAGS}
569
570 # Default FLAGS for the linker (can be overridden by user such as "make LDFLAGS=-znow")
571 LDFLAGS = ${LDFLAGS}
572
573 # Flags to enable warnings when using the C++ compiler
574 WARN_CXXFLAGS=${WARN_CXXFLAGS}
575
576 # Flags to enable warnings when using the C compiler
577 WARN_CFLAGS=${WARN_CFLAGS}
578
579 # The prefix to which notmuch should be installed
580 # Note: If you change this value here, be sure to ensure that the
581 # LIBDIR_IN_LDCONFIG value below is still set correctly.
582 prefix = ${PREFIX}
583
584 # The directory to which libraries should be installed
585 # Note: If you change this value here, be sure to ensure that the
586 # LIBDIR_IN_LDCONFIG value below is still set correctly.
587 libdir = ${LIBDIR:=\$(prefix)/lib}
588
589 # Whether libdir is in a path configured into ldconfig
590 LIBDIR_IN_LDCONFIG = ${libdir_in_ldconfig}
591
592 # The directory to which header files should be installed
593 includedir = ${INCLUDEDIR:=\$(prefix)/include}
594
595 # The directory to which man pages should be installed
596 mandir = ${MANDIR:=\$(prefix)/share/man}
597
598 # The directory to which read-only (configuration) filesshould be installed
599 sysconfdir = ${SYSCONFDIR:=\$(prefix)/etc}
600
601 # The directory to which emacs lisp files should be installed
602 emacslispdir=${EMACSLISPDIR}
603
604 # Whether there's an emacs binary available for byte-compiling
605 HAVE_EMACS = ${have_emacs}
606
607 # The directory to which desktop files should be installed
608 desktop_dir = \$(prefix)/share/applications
609
610 # The directory to which bash completions files should be installed
611 bash_completion_dir = ${BASHCOMPLETIONDIR:=\$(sysconfdir)/bash_completion.d}
612
613 # The directory to which zsh completions files should be installed
614 zsh_completion_dir = ${ZSHCOMLETIONDIR:=\$(prefix)/share/zsh/functions/Completion/Unix}
615
616 # Whether the getline function is available (if not, then notmuch will
617 # build its own version)
618 HAVE_GETLINE = ${have_getline}
619
620 # Whether the strcasestr function is available (if not, then notmuch will
621 # build its own version)
622 HAVE_STRCASESTR = ${have_strcasestr}
623
624 # Supported platforms (so far) are: LINUX, MACOSX, SOLARIS
625 PLATFORM = ${platform}
626
627 # Whether the linker will automatically resolve the dependency of one
628 # library on another (if not, then linking a binary requires linking
629 # directly against both)
630 LINKER_RESOLVES_LIBRARY_DEPENDENCIES = ${linker_resolves_library_dependencies}
631
632 # Flags needed to compile and link against Xapian
633 XAPIAN_CXXFLAGS = ${xapian_cxxflags}
634 XAPIAN_LDFLAGS = ${xapian_ldflags}
635
636 # Flags needed to compile and link against GMime-2.4
637 GMIME_CFLAGS = ${gmime_cflags}
638 GMIME_LDFLAGS = ${gmime_ldflags}
639
640 # Flags needed to compile and link against talloc
641 TALLOC_CFLAGS = ${talloc_cflags}
642 TALLOC_LDFLAGS = ${talloc_ldflags}
643
644 # Flags needed to have linker set rpath attribute
645 RPATH_LDFLAGS = ${rpath_ldflags}
646
647 # Flags needed to have linker link only to necessary libraries
648 AS_NEEDED_LDFLAGS = ${as_needed_ldflags}
649
650 # Whether valgrind header files are available
651 HAVE_VALGRIND = ${have_valgrind}
652
653 # And if so, flags needed at compile time for valgrind macros
654 VALGRIND_CFLAGS = ${valgrind_cflags}
655
656 # Support for emacs
657 WITH_EMACS = ${WITH_EMACS}
658
659 # Support for bash completion
660 WITH_BASH = ${WITH_BASH}
661
662 # Support for zsh completion
663 WITH_ZSH = ${WITH_ZSH}
664
665 # Combined flags for compiling and linking against all of the above
666 CONFIGURE_CFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS)      \\
667                    \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND)   \\
668                    \$(VALGRIND_CFLAGS) -DHAVE_STRCASESTR=\$(HAVE_STRCASESTR)
669 CONFIGURE_CXXFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS)    \\
670                      \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \\
671                      \$(VALGRIND_CFLAGS) \$(XAPIAN_CXXFLAGS)             \\
672                      -DHAVE_STRCASESTR=\$(HAVE_STRCASESTR)
673 CONFIGURE_LDFLAGS =  \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS)
674 EOF