7 Welcome to Notmuch, a system for indexing, searching and tagging your email.
9 We hope that the process of building and installing notmuch is quick
10 and smooth so that you can soon be reading and processing your email
11 more efficiently than ever.
13 If anything goes wrong in the configure process, you can override any
14 decisions it makes by manually editing the Makefile.config file that
15 it creates. Also please do as much as you can to figure out what could
16 be different on your machine compared to those of the notmuch
17 developers. Then, please email those details to the Notmuch list
18 (notmuch@notmuchmail.org) so that we can hopefully make future
19 versions of notmuch easier for you to use.
21 We'll now investigate your system to verify that all required
22 dependencies are available:
28 if pkg-config --version > /dev/null 2>&1; then
34 printf "Checking for Xapian development files... "
35 if xapian-config --version > /dev/null 2>&1; then
38 xapian_cxxflags=$(xapian-config --cxxflags)
39 xapian_ldflags=$(xapian-config --libs)
43 errors=$((errors + 1))
46 printf "Checking for GMime 2.4 development files... "
47 if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then
50 gmime_cflags=$(pkg-config --cflags gmime-2.4)
51 gmime_ldflags=$(pkg-config --libs gmime-2.4)
55 errors=$((errors + 1))
58 printf "Checking for talloc development files... "
59 if pkg-config --modversion talloc > /dev/null 2>&1; then
62 talloc_cflags=$(pkg-config --cflags talloc)
63 talloc_ldflags=$(pkg-config --libs talloc)
68 errors=$((errors + 1))
71 printf "Checking for valgrind development files... "
72 if pkg-config --modversion valgrind > /dev/null 2>&1; then
75 valgrind_cflags=$(pkg-config --cflags valgrind)
77 printf "No (but that's fine).\n"
81 if pkg-config --modversion emacs > /dev/null 2>&1; then
82 emacs_lispdir=$(pkg-config emacs --variable sitepkglispdir)
84 emacs_lispdir='$(prefix)/share/emacs/site-lisp'
87 if [ $errors -gt 0 ]; then
90 *** Error: The dependencies of notmuch could not be satisfied. You will
91 need to install the following packages before being able to compile
95 if [ $have_xapian -eq 0 ]; then
96 echo " Xapian library (including development files such as headers)"
97 echo " http://xapian.org/"
99 if [ $have_gmime -eq 0 ]; then
100 echo " GMime 2.4 library (including development files such as headers)"
101 echo " http://spruce.sourceforge.net/gmime/"
103 if [ $have_talloc -eq 0 ]; then
104 echo " The talloc library (including development files such as headers)"
105 echo " http://talloc.samba.org/"
109 On a modern, package-based operating system such as Debian, you can
110 install all of the dependencies with the following simple command
113 sudo apt-get install libxapian-dev libgmime-2.4-dev libtalloc-dev
115 On other systems, a similar command can be used, but the details of the
116 package names may be different, (such as "devel" in place of "dev").
119 if [ $have_pkg_config -eq 0 ]; then
121 Note: the pkg-config program is not available. This configure script
122 uses pkg-config to find the compilation flags required to link against
123 the various libraries needed by notmuch. It's possible you simply need
124 to install pkg-config with a command such as:
126 sudo apt-get install pkg-config
128 But if pkg-config is not available for your system, then you will need
129 to modify the configure script to manually set the cflags and ldflags
130 variables to the correct values to link against each library in each
131 case that pkg-config could not be used to determine those values.
136 When you have installed the necessary dependencies, you can run
137 configure again to ensure the packages can be found, or simply run
138 "make" to compile notmuch.
144 printf "Checking for getline... "
145 if ${CC} -o config/have_getline config/have_getline.c > /dev/null 2>&1
150 printf "No (will use our own instead).\n"
153 rm -f config/have_getline
157 All required packages were found. You may now run the following
158 commands to compile and install notmuch:
165 # construct the Makefile.config
166 cat > Makefile.config <<EOF
167 # This Makefile.config was automatically generated by the ./configure
168 # script of notmuch. If the configure script identified anything
169 # incorrectly, then you can edit this file to try to correct things,
170 # but be warned that if configure is run again it will destroy your
171 # changes, (and this could happen by simply calling "make" if the
172 # configure script is updated).
174 # The C compiler to use
177 # The C++ compiler to use
180 # The prefix to which notmuch should be installed
183 # The directory to which emacs lisp files should be installed
184 emacs_lispdir=${emacs_lispdir}
186 # Whether the getline function is available (if not, then notmuch will
187 # build its own version)
188 HAVE_GETLINE = ${have_getline}
190 # Flags needed to compile and link against Xapian
191 XAPIAN_CXXFLAGS = ${xapian_cxxflags}
192 XAPIAN_LDFLAGS = ${xapian_ldflags}
194 # Flags needed to compile and link against GMime-2.4
195 GMIME_CFLAGS = ${gmime_cflags}
196 GMIME_LDFLAGS = ${gmime_ldflags}
198 # Flags needed to compile and linke against talloc
199 TALLOC_CFLAGS = ${talloc_cflags}
200 TALLOC_LDFLAGS = ${talloc_ldflags}
202 # Whether valgrind header files are available
203 HAVE_VALGRIND = ${have_valgrind}
205 # And if so, flags needed at compile time for valgrind macros
206 VALGRIND_CFLAGS = ${valgrind_cflags}
208 # Combined flags for compiling and linking against all of the above
209 override CFLAGS += -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\
210 \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \\
212 override CXXFLAGS += -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\
213 \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \\
214 \$(VALGRIND_CFLAGS) \$(XAPIAN_CXXFLAGS)
215 override LDFLAGS += \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS)