Makefile: Simplify setting of CFLAGS, etc.

We were previously using separate CFLAGS and NOTMUCH_CFLAGS variables
in an attempt to allow the user to specify CFLAGS on the command-line.

However, that's just a lot of extra noise in the Makefile when we can
instead let the user specify what is desired for CFLAGS and then use
an override to append the things we require. So our Makefile is much
neater now.
This commit is contained in:
Carl Worth 2009-11-10 08:27:48 -08:00
parent 97c7cffdc6
commit 1a6208bfbd
2 changed files with 16 additions and 11 deletions

View file

@ -1,33 +1,38 @@
# Default FLAGS, (can be overriden by user such as "make CFLAGS=-O2")
WARN_FLAGS=-Wall -Wextra -Wmissing-declarations -Wwrite-strings -Wswitch-enum WARN_FLAGS=-Wall -Wextra -Wmissing-declarations -Wwrite-strings -Wswitch-enum
CFLAGS=-g -O0
NOTMUCH_DEPENDS_FLAGS=-I./lib `pkg-config --cflags glib-2.0 gmime-2.4 talloc` # Additional flags that we will append to whatever the user set.
NOTMUCH_CXX_DEPENDS_FLAGS=$(NOTMUCH_DEPENDS_FLAGS) `xapian-config --cxxflags` # These aren't intended for the user to manipulate.
extra_cflags = -I./lib `pkg-config --cflags glib-2.0 gmime-2.4 talloc`
extra_cxxflags = `xapian-config --cxxflags`
NOTMUCH_CFLAGS=$(WARN_FLAGS) -O0 -g $(NOTMUCH_DEPENDS_FLAGS) # Now smash together user's values with our extra values
NOTMUCH_CXXFLAGS=$(WARN_FLAGS) -O0 -g $(NOTMUCH_CXX_DEPENDS_FLAGS) override CFLAGS := $(CFLAGS) $(WARN_FLAGS) $(extra_cflags)
override CXXFLAGS := $(CXXFLAGS) $(WARN_FLAGS) $(extra_cflags) $(extra_cxxflags)
NOTMUCH_LDFLAGS=`pkg-config --libs glib-2.0 gmime-2.4 talloc` \ override LDFLAGS := $(LDFLAGS) `pkg-config --libs glib-2.0 gmime-2.4 talloc` \
`xapian-config --libs` `xapian-config --libs`
# Include our local Makfile.local first so that its first target is default # Include our local Makfile.local first so that its first target is default
include Makefile.local include Makefile.local
include lib/Makefile.local include lib/Makefile.local
%.o: %.cc %.o: %.cc
$(CXX) -c $(CFLAGS) $(CXXFLAGS) $(NOTMUCH_CXXFLAGS) $< -o $@ $(CXX) -c $(CFLAGS) $(CXXFLAGS) $< -o $@
%.o: %.c %.o: %.c
$(CC) -c $(CFLAGS) $(NOTMUCH_CFLAGS) $< -o $@ $(CC) -c $(CFLAGS) $< -o $@
.deps/%.d: %.c .deps/%.d: %.c
@set -e; rm -f $@; mkdir -p $$(dirname $@) ; \ @set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
$(CC) -M $(CPPFLAGS) $(NOTMUCH_DEPENDS_FLAGS) $< > $@.$$$$; \ $(CC) -M $(CPPFLAGS) $(CFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$ rm -f $@.$$$$
.deps/%.d: %.cc .deps/%.d: %.cc
@set -e; rm -f $@; mkdir -p $$(dirname $@) ; \ @set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
$(CXX) -M $(CPPFLAGS) $(NOTMUCH_CXX_DEPENDS_FLAGS) $< > $@.$$$$; \ $(CXX) -M $(CPPFLAGS) $(CXXFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$ rm -f $@.$$$$

View file

@ -1,7 +1,7 @@
all: notmuch all: notmuch
notmuch: notmuch.o lib/notmuch.a notmuch: notmuch.o lib/notmuch.a
$(CC) $(NOTMUCH_LDFLAGS) $^ -o $@ $(CC) $(LDFLAGS) $^ -o $@
notmuch.1.gz: notmuch.1.gz:
gzip --stdout notmuch.1 > notmuch.1.gz gzip --stdout notmuch.1 > notmuch.1.gz