#! /bin/sh
+CC=${CC:-gcc}
+CXX=${CXX:-g++}
+
cat <<EOF
Welcome to Notmuch, a system for indexing, searching and tagging your email.
if xapian-config --version > /dev/null 2>&1; then
printf "Yes.\n"
have_xapian=1
- cxxflags="${cxxflags} $(xapian-config --cxxflags)"
- ldflags="${ldflags} $(xapian-config --libs)"
+ xapian_cxxflags=$(xapian-config --cxxflags)
+ xapian_ldflags=$(xapian-config --libs)
else
printf "No.\n"
have_xapian=0
if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then
printf "Yes.\n"
have_gmime=1
- cflags="${cflags} $(pkg-config --cflags gmime-2.4)"
- ldflags="${ldflags} $(pkg-config --libs gmime-2.4)"
+ gmime_cflags=$(pkg-config --cflags gmime-2.4)
+ gmime_ldflags=$(pkg-config --libs gmime-2.4)
else
printf "No.\n"
have_gmime=0
if pkg-config --modversion talloc > /dev/null 2>&1; then
printf "Yes.\n"
have_talloc=1
- cflags="${cflags} $(pkg-config --cflags talloc)"
- ldflags="${ldflags} $(pkg-config --libs talloc)"
+ talloc_cflags=$(pkg-config --cflags talloc)
+ talloc_ldflags=$(pkg-config --libs talloc)
else
printf "No.\n"
have_talloc=0
if pkg-config --modversion valgrind > /dev/null 2>&1; then
printf "Yes.\n"
have_valgrind=1
- cflags="${cflags} $(pkg-config --cflags valgrind)"
+ valgrind_cflags=$(pkg-config --cflags valgrind)
else
printf "No (but that's fine).\n"
have_valgrind=0
sudo apt-get install libxapian-dev libgmime-2.4-dev libtalloc-dev
+Or on Fedora or other RPM-based systems:
+
+ sudo yum install xapian-core-devel gmime-devel libtalloc-devel
+
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").
sudo apt-get install pkg-config
+Or:
+ sudo yum install pkgconfig
+
But if pkg-config is not available for your system, then you will need
to modify the configure script to manually set the cflags and ldflags
variables to the correct values to link against each library in each
fi
printf "Checking for getline... "
-if gcc -o config/have_getline config/have_getline.c > /dev/null 2>&1
+if ${CC} -o config/have_getline config/have_getline.c > /dev/null 2>&1
then
printf "Yes.\n"
have_getline=1
# changes, (and this could happen by simply calling "make" if the
# configure script is updated).
+# The C compiler to use
+CC = ${CC}
+
+# The C++ compiler to use
+CXX = ${CXX}
+
# The prefix to which notmuch should be installed
prefix = /usr/local
# build its own version)
HAVE_GETLINE = ${have_getline}
-# Various flags needed to compile and link against the dependencies of
-# notmuch.
-override CFLAGS += ${cflags} -DHAVE_VALGRIND=${have_valgrind} -DHAVE_GETLINE=\$(HAVE_GETLINE)
-override CXXFLAGS += ${cflags} ${cxxflags}
-override LDFLAGS += ${ldflags}
+# Flags needed to compile and link against Xapian
+XAPIAN_CXXFLAGS = ${xapian_cxxflags}
+XAPIAN_LDFLAGS = ${xapian_ldflags}
+
+# Flags needed to compile and link against GMime-2.4
+GMIME_CFLAGS = ${gmime_cflags}
+GMIME_LDFLAGS = ${gmime_ldflags}
+
+# Flags needed to compile and linke against talloc
+TALLOC_CFLAGS = ${talloc_cflags}
+TALLOC_LDFLAGS = ${talloc_ldflags}
+
+# Whether valgrind header files are available
+HAVE_VALGRIND = ${have_valgrind}
+
+# And if so, flags needed at compile time for valgrind macros
+VALGRIND_CFLAGS = ${valgrind_cflags}
+
+# Combined flags for compiling and linking against all of the above
+override CFLAGS += -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\
+ \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \\
+ \$(VALGRIND_CFLAGS)
+override CXXFLAGS += -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\
+ \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \\
+ \$(VALGRIND_CFLAGS) \$(XAPIAN_CXXFLAGS)
+override LDFLAGS += \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS)
EOF