2009-11-02 18:11:37 +01:00
|
|
|
#! /bin/sh
|
|
|
|
|
|
|
|
cat <<EOF
|
|
|
|
Welcome to Notmuch, a system for indexing, searching and tagging your email.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
2009-12-01 17:40:45 +01:00
|
|
|
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.
|
2009-11-02 18:11:37 +01:00
|
|
|
|
2009-12-01 17:40:45 +01:00
|
|
|
We'll now investigate your system to verify that all required
|
|
|
|
dependencies are available:
|
2009-11-02 18:11:37 +01:00
|
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
errors=0
|
|
|
|
|
|
|
|
if pkg-config --version > /dev/null 2>&1; then
|
|
|
|
have_pkg_config=1
|
|
|
|
else
|
|
|
|
have_pkg_config=0
|
|
|
|
fi
|
|
|
|
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "Checking for Xapian development files... "
|
2009-11-02 18:11:37 +01:00
|
|
|
if xapian-config --version > /dev/null 2>&1; then
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "Yes.\n"
|
2009-11-02 18:11:37 +01:00
|
|
|
have_xapian=1
|
2009-12-02 02:56:39 +01:00
|
|
|
cxxflags="${cxxflags} $(xapian-config --cxxflags)"
|
|
|
|
ldflags="${ldflags} $(xapian-config --libs)"
|
2009-11-02 18:11:37 +01:00
|
|
|
else
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "No.\n"
|
2009-11-02 18:11:37 +01:00
|
|
|
have_xapian=0
|
|
|
|
errors=$((errors + 1))
|
|
|
|
fi
|
|
|
|
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "Checking for GMime 2.4 development files... "
|
2009-11-02 18:11:37 +01:00
|
|
|
if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "Yes.\n"
|
2009-11-02 18:11:37 +01:00
|
|
|
have_gmime=1
|
2009-12-02 02:56:39 +01:00
|
|
|
cflags="${cflags} $(pkg-config --cflags gmime-2.4)"
|
|
|
|
ldflags="${ldflags} $(pkg-config --libs gmime-2.4)"
|
2009-11-02 18:11:37 +01:00
|
|
|
else
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "No.\n"
|
2009-11-02 18:11:37 +01:00
|
|
|
have_gmime=0
|
|
|
|
errors=$((errors + 1))
|
|
|
|
fi
|
|
|
|
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "Checking for talloc development files... "
|
2009-11-02 18:11:37 +01:00
|
|
|
if pkg-config --modversion talloc > /dev/null 2>&1; then
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "Yes.\n"
|
2009-11-02 18:11:37 +01:00
|
|
|
have_talloc=1
|
2009-12-02 02:56:39 +01:00
|
|
|
cflags="${cflags} $(pkg-config --cflags talloc)"
|
|
|
|
ldflags="${ldflags} $(pkg-config --libs talloc)"
|
2009-11-02 18:11:37 +01:00
|
|
|
else
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "No.\n"
|
2009-11-02 18:11:37 +01:00
|
|
|
have_talloc=0
|
2009-12-02 02:56:39 +01:00
|
|
|
talloc_cflags=
|
2009-11-02 18:11:37 +01:00
|
|
|
errors=$((errors + 1))
|
|
|
|
fi
|
|
|
|
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "Checking for valgrind development files... "
|
2009-11-22 01:44:31 +01:00
|
|
|
if pkg-config --modversion valgrind > /dev/null 2>&1; then
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "Yes.\n"
|
2009-12-02 00:52:44 +01:00
|
|
|
have_valgrind=1
|
2009-12-02 02:56:39 +01:00
|
|
|
cflags="${cflags} $(pkg-config --cflags valgrind)"
|
2009-11-22 01:44:31 +01:00
|
|
|
else
|
2009-12-01 20:39:30 +01:00
|
|
|
printf "No (but that's fine).\n"
|
2009-12-02 00:52:44 +01:00
|
|
|
have_valgrind=0
|
2009-12-02 02:56:39 +01:00
|
|
|
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'
|
2009-11-22 01:44:31 +01:00
|
|
|
fi
|
|
|
|
|
2009-11-02 18:11:37 +01:00
|
|
|
if [ $errors -gt 0 ]; then
|
|
|
|
cat <<EOF
|
|
|
|
|
|
|
|
*** Error: The dependencies of notmuch could not be satisfied. You will
|
|
|
|
need to install the following packages before being able to compile
|
|
|
|
notmuch:
|
|
|
|
|
|
|
|
EOF
|
|
|
|
if [ $have_xapian -eq 0 ]; then
|
|
|
|
echo " Xapian library (including development files such as headers)"
|
|
|
|
echo " http://xapian.org/"
|
|
|
|
fi
|
|
|
|
if [ $have_gmime -eq 0 ]; then
|
|
|
|
echo " GMime 2.4 library (including development files such as headers)"
|
|
|
|
echo " http://spruce.sourceforge.net/gmime/"
|
|
|
|
fi
|
|
|
|
if [ $have_talloc -eq 0 ]; then
|
|
|
|
echo " The talloc library (including development files such as headers)"
|
|
|
|
echo " http://talloc.samba.org/"
|
|
|
|
fi
|
|
|
|
cat <<EOF
|
|
|
|
|
|
|
|
On a modern, package-based operating system such as Debian, you can
|
|
|
|
install all of the dependencies with the following simple command
|
|
|
|
line:
|
|
|
|
|
|
|
|
sudo apt-get install libxapian-dev libgmime-2.4-dev libtalloc-dev
|
|
|
|
|
|
|
|
On other systems, a similar command can be used, but the details of the
|
|
|
|
package names may be different, (such as "devel" in place of "dev").
|
|
|
|
|
|
|
|
EOF
|
|
|
|
if [ $have_pkg_config -eq 0 ]; then
|
|
|
|
cat <<EOF
|
|
|
|
Note: the pkg-config program is not available. Both this configure
|
|
|
|
script and the Makefile of notmuch use pkg-config to find the
|
|
|
|
compilation flags required to link against the various libraries
|
|
|
|
needed by notmuch. It's possible you simply need to install pkg-config
|
|
|
|
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
|
2009-12-01 19:07:14 +01:00
|
|
|
to manually edit the notmuch Makefile to set the variables such as
|
|
|
|
CFLAGS and LDFLAGS to the correct values without calling pkg-config.
|
2009-11-02 18:11:37 +01:00
|
|
|
|
|
|
|
EOF
|
|
|
|
fi
|
|
|
|
cat <<EOF
|
|
|
|
When you have installed the necessary dependencies, you can run
|
|
|
|
configure again to ensure the packages can be found, or simply run
|
|
|
|
"make" to compile notmuch.
|
|
|
|
|
|
|
|
EOF
|
|
|
|
exit 1
|
2009-11-22 01:44:31 +01:00
|
|
|
fi
|
|
|
|
|
2009-12-02 01:00:31 +01:00
|
|
|
printf "Checking for getline... "
|
2009-12-02 01:56:39 +01:00
|
|
|
if gcc -o config/have_getline config/have_getline.c > /dev/null 2>&1
|
2009-11-23 19:14:15 +01:00
|
|
|
then
|
2009-12-02 01:00:31 +01:00
|
|
|
printf "Yes.\n"
|
|
|
|
have_getline=1
|
2009-12-02 01:56:39 +01:00
|
|
|
else
|
|
|
|
printf "No (will use our own instead).\n"
|
|
|
|
have_getline=0
|
2009-11-23 19:14:15 +01:00
|
|
|
fi
|
2009-12-02 01:56:39 +01:00
|
|
|
rm -f config/have_getline
|
2009-11-23 19:14:15 +01:00
|
|
|
|
2009-11-02 18:11:37 +01:00
|
|
|
cat <<EOF
|
|
|
|
|
|
|
|
All required packages were found. You may now run the following
|
|
|
|
commands to compile and install notmuch:
|
|
|
|
|
|
|
|
make
|
|
|
|
sudo make install
|
|
|
|
|
|
|
|
EOF
|
2009-11-22 01:44:31 +01:00
|
|
|
|
|
|
|
# construct the Makefile.config
|
|
|
|
cat > Makefile.config <<EOF
|
|
|
|
prefix = /usr/local
|
2009-12-02 02:56:39 +01:00
|
|
|
emacs_lispdir=${emacs_lispdir}
|
2009-12-02 01:00:31 +01:00
|
|
|
HAVE_GETLINE = ${have_getline}
|
2009-12-02 02:56:39 +01:00
|
|
|
override CFLAGS += ${cflags} -DHAVE_VALGRIND=${have_valgrind} -DHAVE_GETLINE=\$(HAVE_GETLINE)
|
|
|
|
override CXXFLAGS += ${cflags} ${cxxflags}
|
|
|
|
override LDFLAGS += ${ldflags}
|
2009-11-22 01:44:31 +01:00
|
|
|
EOF
|