Makefile: Simplify setting of CFLAGS, etc.
authorCarl Worth <cworth@cworth.org>
Tue, 10 Nov 2009 16:27:48 +0000 (08:27 -0800)
committerCarl Worth <cworth@cworth.org>
Tue, 10 Nov 2009 16:27:48 +0000 (08:27 -0800)
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.

Makefile
Makefile.local

index 7743ef52cf98f0b3babd0cd99d9c8c47f6de49bb..31c8de75570439fda17098e7b066c5a9e92e379d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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`
-NOTMUCH_CXX_DEPENDS_FLAGS=$(NOTMUCH_DEPENDS_FLAGS) `xapian-config --cxxflags`
+# Additional flags that we will append to whatever the user set.
+# 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)
-NOTMUCH_CXXFLAGS=$(WARN_FLAGS) -O0 -g $(NOTMUCH_CXX_DEPENDS_FLAGS)
+# Now smash together user's values with our extra values
+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` \
-               `xapian-config --libs`
+override LDFLAGS := $(LDFLAGS) `pkg-config --libs glib-2.0 gmime-2.4 talloc` \
+                              `xapian-config --libs`
 
 # Include our local Makfile.local first so that its first target is default
 include Makefile.local
 include lib/Makefile.local
 
 %.o: %.cc
 
 # Include our local Makfile.local first so that its first target is default
 include Makefile.local
 include lib/Makefile.local
 
 %.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
        @set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
 
 .deps/%.d: %.c
        @set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
-       $(CC) -M $(CPPFLAGS) $(NOTMUCH_DEPENDS_FLAGS) $< > $@.$$$$; \
+       $(CC) -M $(CPPFLAGS) $(CFLAGS) $< > $@.$$$$; \
        sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
        rm -f $@.$$$$
 
 .deps/%.d: %.cc
        @set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
        sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
        rm -f $@.$$$$
 
 .deps/%.d: %.cc
        @set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
-       $(CXX) -M $(CPPFLAGS) $(NOTMUCH_CXX_DEPENDS_FLAGS) $< > $@.$$$$; \
+       $(CXX) -M $(CPPFLAGS) $(CXXFLAGS) $< > $@.$$$$; \
        sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
        rm -f $@.$$$$
 
        sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
        rm -f $@.$$$$
 
index 5474efc66d30226380d0992b530b4effc14fec30..067fe51ad61b19e27c496f8b40ba063e94f368ab 100644 (file)
@@ -1,7 +1,7 @@
 all: notmuch
 
 notmuch: notmuch.o lib/notmuch.a
 all: notmuch
 
 notmuch: notmuch.o lib/notmuch.a
-       $(CC) $(NOTMUCH_LDFLAGS) $^ -o $@
+       $(CC) $(LDFLAGS) $^ -o $@
 
 notmuch.1.gz:
        gzip --stdout notmuch.1 > notmuch.1.gz
 
 notmuch.1.gz:
        gzip --stdout notmuch.1 > notmuch.1.gz