From 1a6208bfbd2eeba3da5e570c33506515b115c42e Mon Sep 17 00:00:00 2001
From: Carl Worth <cworth@cworth.org>
Date: Tue, 10 Nov 2009 08:27:48 -0800
Subject: [PATCH] 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.
---
 Makefile       | 25 +++++++++++++++----------
 Makefile.local |  2 +-
 2 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/Makefile b/Makefile
index 7743ef52..31c8de75 100644
--- 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
+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
-	$(CXX) -c $(CFLAGS) $(CXXFLAGS) $(NOTMUCH_CXXFLAGS) $< -o $@
+	$(CXX) -c $(CFLAGS) $(CXXFLAGS) $< -o $@
 
 %.o: %.c
-	$(CC) -c $(CFLAGS) $(NOTMUCH_CFLAGS) $< -o $@
+	$(CC) -c $(CFLAGS) $< -o $@
 
 .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 $@) ; \
-	$(CXX) -M $(CPPFLAGS) $(NOTMUCH_CXX_DEPENDS_FLAGS) $< > $@.$$$$; \
+	$(CXX) -M $(CPPFLAGS) $(CXXFLAGS) $< > $@.$$$$; \
 	sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
 	rm -f $@.$$$$
 
diff --git a/Makefile.local b/Makefile.local
index 5474efc6..067fe51a 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -1,7 +1,7 @@
 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
-- 
2.45.2