All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
To: linux-sparse@vger.kernel.org
Cc: "Uwe Kleine-König" <uwe@kleine-koenig.org>,
	"Luc Van Oostenryck" <luc.vanoostenryck@gmail.com>
Subject: [PATCH 10/36] build: allow target-specific CFLAGS, CPPFLAGS, LDFLAGS & LDLIBS
Date: Sun,  5 Nov 2017 17:25:18 +0100	[thread overview]
Message-ID: <20171105162544.72960-10-luc.vanoostenryck@gmail.com> (raw)
In-Reply-To: <20171105162448.72907-1-luc.vanoostenryck@gmail.com>

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
---
 Makefile | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/Makefile b/Makefile
index c9cd15aba..70a4156ed 100644
--- a/Makefile
+++ b/Makefile
@@ -59,8 +59,8 @@ INST_MAN1=sparse.1 cgcc.1
 ifeq ($(HAVE_LIBXML),yes)
 PROGRAMS+=c2xml
 INST_PROGRAMS+=c2xml
-c2xml_LDLIBS = `$(PKG_CONFIG) --libs libxml-2.0`
-LIBXML_CFLAGS := $(shell $(PKG_CONFIG) --cflags libxml-2.0)
+c2xml_LDLIBS := $(shell $(PKG_CONFIG) --libs libxml-2.0)
+c2xml_CFLAGS := $(shell $(PKG_CONFIG) --cflags libxml-2.0)
 else
 $(warning Your system does not have libxml, disabling c2xml)
 endif
@@ -90,8 +90,9 @@ LLVM_LIBS := $(shell $(LLVM_CONFIG) --libs)
 LLVM_LIBS += $(shell $(LLVM_CONFIG) --system-libs 2>/dev/null)
 PROGRAMS += $(LLVM_PROGS)
 INST_PROGRAMS += sparse-llvm sparsec
-sparse-llvm.o: CFLAGS += $(LLVM_CFLAGS)
-sparse-llvm_LDLIBS := $(LLVM_LIBS) $(LLVM_LDFLAGS)
+sparse-llvm_CFLAGS := $(LLVM_CFLAGS)
+sparse-llvm_LDFLAGS := $(LLVM_LDFLAGS)
+sparse-llvm_LDLIBS := $(LLVM_LIBS)
 else
 $(warning LLVM 3.0 or later required. Your system has version $(LLVM_VERSION) installed.)
 endif
@@ -167,9 +168,11 @@ install: all-installable
 
 compile_OBJS := compile-i386.o
 
+ldflags += $($(@)_LDFLAGS) $(LDFLAGS)
+ldlibs  += $($(@)_LDLIBS)  $(LDLIBS)
 $(foreach p,$(PROGRAMS),$(eval $(p): $($(p)_OBJS) $(LIBS)))
 $(PROGRAMS): % : %.o 
-	$(QUIET_LINK)$(LD) $(LDFLAGS) -o $@ $^ $($@_LDLIBS)
+	$(QUIET_LINK)$(LD) $(ldflags) -o $@ $^ $(ldlibs)
 
 $(LIB_FILE): $(LIB_OBJS)
 	$(QUIET_AR)$(AR) rcs $@ $(LIB_OBJS)
@@ -183,15 +186,15 @@ ifneq ($(DEP_FILES),)
 include $(DEP_FILES)
 endif
 
-c2xml.o c2xml.sc: CFLAGS += $(LIBXML_CFLAGS)
 
 pre-process.sc: CHECKER_FLAGS += -Wno-vla
 
+cflags   += $($(*)_CFLAGS) $(CPPFLAGS) $(CFLAGS)
 %.o: %.c
-	$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+	$(QUIET_CC)$(CC) $(cflags) -c -o $@ $<
 
 %.sc: %.c sparse
-	$(QUIET_CHECK) $(CHECKER) $(CHECKER_FLAGS) $(CFLAGS) $(CPPFLAGS) -c $<
+	$(QUIET_CHECK) $(CHECKER) $(CHECKER_FLAGS) $(cflags) -c $<
 
 ALL_OBJS :=  $(LIB_OBJS) $(foreach p,$(PROGRAMS),$(p).o $($(p)_OBJS))
 selfcheck: $(ALL_OBJS:.o=.sc)
-- 
2.14.0


  parent reply	other threads:[~2017-11-05 16:26 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-05 16:24 [PATCH 00/36] Makefile reorganization Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 01/36] build: make PREFIX overwritable from the environment Luc Van Oostenryck
2017-11-05 17:44   ` Josh Triplett
2017-11-05 18:54     ` Uwe Kleine-König
2017-11-05 20:30       ` Josh Triplett
2017-11-05 16:25 ` [PATCH 02/36] build: put comment about local.mk to the place where it is included Luc Van Oostenryck
2017-11-05 17:44   ` Josh Triplett
2017-11-05 16:25 ` [PATCH 03/36] build: drop BASIC_CFLAGS and ALL_CFLAGS Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 04/36] build: drop -g from LDFLAGS Luc Van Oostenryck
2017-11-05 17:45   ` Josh Triplett
2017-11-05 16:25 ` [PATCH 05/36] build: pass CPPFLAGS to compiler Luc Van Oostenryck
2017-11-05 17:46   ` Josh Triplett
2017-11-05 16:25 ` [PATCH 06/36] build: fix effectiveness of generated dependencies Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 07/36] build: remove unused support for pkgconfig Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 08/36] build: use '_OBJS' instead of '_EXTRA_DEPS' Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 09/36] build: use '_LDLIBS' instead of '_EXTRA_OBJS' Luc Van Oostenryck
2017-11-05 16:25 ` Luc Van Oostenryck [this message]
2017-11-05 16:25 ` [PATCH 11/36] build: allow CFLAGS & friends from command line Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 12/36] build: avoid rule-specific CFLAGS Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 13/36] build: use $LIBS directly in the dependency list Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 14/36] build: no need to use wildcards for generated dependencies Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 15/36] build: reuse rule for ALL_OBJS Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 16/36] build: CHECKER_FLAGS=-Wno-vla for all targets Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 17/36] build: move tests near their use Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 18/36] build: only generate version.h when needed Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 19/36] build: add note about overwritable vars Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 20/36] build: remove references to unexisting pre-process.h Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 21/36] build: no need to clean *.so and SLIB_FILE Luc Van Oostenryck
2017-11-05 17:48   ` Josh Triplett
2017-11-05 20:06     ` Luc Van Oostenryck
2017-11-05 20:30       ` Josh Triplett
2017-11-05 16:25 ` [PATCH 22/36] build: move clean & clean-check together Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 23/36] build: make clean targets quieter Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 24/36] build: remove rule for shared lib, it's unused Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 25/36] build: normalize rules Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 26/36] build: remove the dist rule since unused Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 27/36] build: use one line per item Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 28/36] build: use a dot file name instead of local.mk: .sparse.mk Luc Van Oostenryck
2017-11-06  8:57   ` Uwe Kleine-König
2017-11-06 15:43     ` Luc Van Oostenryck
2017-11-09 19:06       ` Uwe Kleine-König
2017-11-09 20:48         ` Luc Van Oostenryck
2017-11-09 19:29     ` Christopher Li
2017-11-05 16:25 ` [PATCH 29/36] build: use git-clean Luc Van Oostenryck
2017-11-05 17:41   ` Josh Triplett
2017-11-05 20:16     ` Luc Van Oostenryck
2017-11-05 20:38       ` Josh Triplett
2017-11-05 20:50         ` Uwe Kleine-König
2017-11-05 20:58           ` Luc Van Oostenryck
2017-11-05 20:56         ` Luc Van Oostenryck
2017-11-05 23:09     ` Christopher Li
2017-11-08 11:42   ` Jeff Layton
2017-11-08 12:01     ` Uwe Kleine-König
2017-11-08 19:55     ` Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 30/36] build: use standard rules for install Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 31/36] build: remove unused QUIET_INST_SH Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 32/36] build: let quiet commands use less indentation Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 33/36] build: simpler logic for quiet commands Luc Van Oostenryck
2017-11-06  8:15   ` Uwe Kleine-König
2017-11-06  8:28     ` Luc Van Oostenryck
2017-11-06  8:44       ` Uwe Kleine-König
2017-11-06  8:55         ` Luc Van Oostenryck
2017-11-06 19:40           ` Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 34/36] build: avoid foreach Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 35/36] build: reorg & add comment Luc Van Oostenryck
2017-11-05 16:25 ` [PATCH 36/36] build: use a single space before assignments Luc Van Oostenryck
2017-11-06  5:50 ` [PATCH 00/36] Makefile reorganization Luc Van Oostenryck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171105162544.72960-10-luc.vanoostenryck@gmail.com \
    --to=luc.vanoostenryck@gmail.com \
    --cc=linux-sparse@vger.kernel.org \
    --cc=uwe@kleine-koenig.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.