configure: Resolve all pkg-config flags at configure time.
authorCarl Worth <cworth@cworth.org>
Wed, 2 Dec 2009 01:56:39 +0000 (17:56 -0800)
committerCarl Worth <cworth@cworth.org>
Wed, 2 Dec 2009 02:03:31 +0000 (18:03 -0800)
Previously, we were resolving these within the Makefile. This had
the problem that if pkg-config was not present, the Makefile would
still invoke it resulting in ugly errors before the configure script
was even run, (which would finally present a kind error message about
pkg-config not being present).

Makefile
configure

index 6a2ecea58a604b2549e8b5330280686a8f6fb82d..588f8538eb44d4ab1002390bad7457a47b1e0da1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,30 +10,18 @@ EMACS ?= emacs
 # arguments to gzip.
 gzip = gzip
 
-# Additional flags that we will append to whatever the user set.
-# These aren't intended for the user to manipulate.
-extra_cflags := $(shell pkg-config --cflags glib-2.0 gmime-2.4 talloc)
-extra_cxxflags := $(shell xapian-config --cxxflags)
-
-emacs_lispdir := $(shell pkg-config emacs --variable sitepkglispdir)
-# Hard-code if this system doesn't have an emacs.pc file
-ifeq ($(emacs_lispdir),)
-       emacs_lispdir = $(prefix)/share/emacs/site-lisp
-endif
-
 bash_completion_dir = /etc/bash_completion.d
 
 all_deps = Makefile Makefile.local Makefile.config \
                   lib/Makefile lib/Makefile.local
 
+extra_cflags :=
+extra_cxxflags :=
+
 # Now smash together user's values with our extra values
 override CFLAGS += $(WARN_CFLAGS) $(extra_cflags)
 override CXXFLAGS += $(WARN_CXXFLAGS) $(extra_cflags) $(extra_cxxflags)
 
-override LDFLAGS += \
-       $(shell pkg-config --libs glib-2.0 gmime-2.4 talloc) \
-       $(shell xapian-config --libs)
-
 all: notmuch notmuch.1.gz
 
 # Before including any other Makefile fragments, get settings from the
index ef90a8ba27c40822ed406ab8005bae19ca64c518..97ee606fd3cf51c818e18d97ec1f5e4c8f01e572 100755 (executable)
--- a/configure
+++ b/configure
@@ -32,6 +32,8 @@ printf "Checking for Xapian development files... "
 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)"
 else
     printf "No.\n"
     have_xapian=0
@@ -42,6 +44,8 @@ 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
+    cflags="${cflags} $(pkg-config --cflags gmime-2.4)"
+    ldflags="${ldflags} $(pkg-config --libs gmime-2.4)"
 else
     printf "No.\n"
     have_gmime=0
@@ -52,9 +56,12 @@ printf "Checking for talloc development files... "
 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)"
 else
     printf "No.\n"
     have_talloc=0
+    talloc_cflags=
     errors=$((errors + 1))
 fi
 
@@ -62,11 +69,16 @@ 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)
+    cflags="${cflags} $(pkg-config --cflags valgrind)"
 else
     printf "No (but that's fine).\n"
     have_valgrind=0
-    valgrind_flags=
+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'
 fi
 
 if [ $errors -gt 0 ]; then
@@ -150,6 +162,9 @@ EOF
 # construct the Makefile.config
 cat > Makefile.config <<EOF
 prefix = /usr/local
+emacs_lispdir=${emacs_lispdir}
 HAVE_GETLINE = ${have_getline}
-override CFLAGS += -DHAVE_VALGRIND=${have_valgrind} ${valgrind_flags} -DHAVE_GETLINE=\$(HAVE_GETLINE)
+override CFLAGS += ${cflags} -DHAVE_VALGRIND=${have_valgrind} -DHAVE_GETLINE=\$(HAVE_GETLINE)
+override CXXFLAGS += ${cflags} ${cxxflags}
+override LDFLAGS += ${ldflags}
 EOF