configure: Resolve all pkg-config flags at configure time.

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).
This commit is contained in:
Carl Worth 2009-12-01 17:56:39 -08:00
parent e93520f109
commit 222ee87dfe
2 changed files with 21 additions and 18 deletions

View file

@ -10,30 +10,18 @@ EMACS ?= emacs
# arguments to gzip. # arguments to gzip.
gzip = 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 bash_completion_dir = /etc/bash_completion.d
all_deps = Makefile Makefile.local Makefile.config \ all_deps = Makefile Makefile.local Makefile.config \
lib/Makefile lib/Makefile.local lib/Makefile lib/Makefile.local
extra_cflags :=
extra_cxxflags :=
# Now smash together user's values with our extra values # Now smash together user's values with our extra values
override CFLAGS += $(WARN_CFLAGS) $(extra_cflags) override CFLAGS += $(WARN_CFLAGS) $(extra_cflags)
override CXXFLAGS += $(WARN_CXXFLAGS) $(extra_cflags) $(extra_cxxflags) 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 all: notmuch notmuch.1.gz
# Before including any other Makefile fragments, get settings from the # Before including any other Makefile fragments, get settings from the

21
configure vendored
View file

@ -32,6 +32,8 @@ printf "Checking for Xapian development files... "
if xapian-config --version > /dev/null 2>&1; then if xapian-config --version > /dev/null 2>&1; then
printf "Yes.\n" printf "Yes.\n"
have_xapian=1 have_xapian=1
cxxflags="${cxxflags} $(xapian-config --cxxflags)"
ldflags="${ldflags} $(xapian-config --libs)"
else else
printf "No.\n" printf "No.\n"
have_xapian=0 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 if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then
printf "Yes.\n" printf "Yes.\n"
have_gmime=1 have_gmime=1
cflags="${cflags} $(pkg-config --cflags gmime-2.4)"
ldflags="${ldflags} $(pkg-config --libs gmime-2.4)"
else else
printf "No.\n" printf "No.\n"
have_gmime=0 have_gmime=0
@ -52,9 +56,12 @@ printf "Checking for talloc development files... "
if pkg-config --modversion talloc > /dev/null 2>&1; then if pkg-config --modversion talloc > /dev/null 2>&1; then
printf "Yes.\n" printf "Yes.\n"
have_talloc=1 have_talloc=1
cflags="${cflags} $(pkg-config --cflags talloc)"
ldflags="${ldflags} $(pkg-config --libs talloc)"
else else
printf "No.\n" printf "No.\n"
have_talloc=0 have_talloc=0
talloc_cflags=
errors=$((errors + 1)) errors=$((errors + 1))
fi fi
@ -62,11 +69,16 @@ printf "Checking for valgrind development files... "
if pkg-config --modversion valgrind > /dev/null 2>&1; then if pkg-config --modversion valgrind > /dev/null 2>&1; then
printf "Yes.\n" printf "Yes.\n"
have_valgrind=1 have_valgrind=1
valgrind_flags=$(pkg-config --cflags valgrind) cflags="${cflags} $(pkg-config --cflags valgrind)"
else else
printf "No (but that's fine).\n" printf "No (but that's fine).\n"
have_valgrind=0 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 fi
if [ $errors -gt 0 ]; then if [ $errors -gt 0 ]; then
@ -150,6 +162,9 @@ EOF
# construct the Makefile.config # construct the Makefile.config
cat > Makefile.config <<EOF cat > Makefile.config <<EOF
prefix = /usr/local prefix = /usr/local
emacs_lispdir=${emacs_lispdir}
HAVE_GETLINE = ${have_getline} 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 EOF