mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
650f6ac573
We're now using printf to print what we're checking before we check. We're also making variables such as HAVE_GETLINE available to both make and to the C pre-processor. With this, the local getline implementation is now only compiled if not available on the system.
155 lines
4.1 KiB
Bash
Executable file
155 lines
4.1 KiB
Bash
Executable file
#! /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.
|
|
|
|
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.
|
|
|
|
We'll now investigate your system to verify that all required
|
|
dependencies are available:
|
|
|
|
EOF
|
|
|
|
errors=0
|
|
|
|
if pkg-config --version > /dev/null 2>&1; then
|
|
have_pkg_config=1
|
|
else
|
|
have_pkg_config=0
|
|
fi
|
|
|
|
printf "Checking for Xapian development files... "
|
|
if xapian-config --version > /dev/null 2>&1; then
|
|
printf "Yes.\n"
|
|
have_xapian=1
|
|
else
|
|
printf "No.\n"
|
|
have_xapian=0
|
|
errors=$((errors + 1))
|
|
fi
|
|
|
|
printf "Checking for GMime 2.4 development files... "
|
|
if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then
|
|
printf "Yes.\n"
|
|
have_gmime=1
|
|
else
|
|
printf "No.\n"
|
|
have_gmime=0
|
|
errors=$((errors + 1))
|
|
fi
|
|
|
|
printf "Checking for talloc development files... "
|
|
if pkg-config --modversion talloc > /dev/null 2>&1; then
|
|
printf "Yes.\n"
|
|
have_talloc=1
|
|
else
|
|
printf "No.\n"
|
|
have_talloc=0
|
|
errors=$((errors + 1))
|
|
fi
|
|
|
|
printf "Checking for valgrind development files... "
|
|
if pkg-config --modversion valgrind > /dev/null 2>&1; then
|
|
printf "Yes.\n"
|
|
have_valgrind=1
|
|
valgrind_flags=$(pkg-config --cflags valgrind)
|
|
else
|
|
printf "No (but that's fine).\n"
|
|
have_valgrind=0
|
|
valgrind_flags=
|
|
fi
|
|
|
|
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
|
|
to manually edit the notmuch Makefile to set the variables such as
|
|
CFLAGS and LDFLAGS to the correct values without calling pkg-config.
|
|
|
|
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
|
|
fi
|
|
|
|
printf "Checking for getline... "
|
|
if ! gcc -o getlinetest getlinetest.c > /dev/null 2>&1
|
|
then
|
|
printf "No.\n"
|
|
have_getline=0
|
|
else
|
|
printf "Yes.\n"
|
|
have_getline=1
|
|
fi
|
|
rm -f getlinetest
|
|
|
|
cat <<EOF
|
|
|
|
All required packages were found. You may now run the following
|
|
commands to compile and install notmuch:
|
|
|
|
make
|
|
sudo make install
|
|
|
|
EOF
|
|
|
|
# construct the Makefile.config
|
|
cat > Makefile.config <<EOF
|
|
prefix = /usr/local
|
|
HAVE_GETLINE = ${have_getline}
|
|
override CFLAGS += -DHAVE_VALGRIND=${have_valgrind} ${valgrind_flags} -DHAVE_GETLINE=\$(HAVE_GETLINE)
|
|
EOF
|