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