linux-sparse.vger.kernel.org archive mirror
 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>,
	"Josh Triplett" <josh@joshtriplett.org>,
	"Jeff Layton" <jlayton@redhat.com>,
	"Luc Van Oostenryck" <luc.vanoostenryck@gmail.com>
Subject: [PATCH v3 17/37] build: move tests near their use
Date: Thu,  9 Nov 2017 07:46:28 +0100	[thread overview]
Message-ID: <20171109064648.15379-18-luc.vanoostenryck@gmail.com> (raw)
In-Reply-To: <20171109064648.15379-1-luc.vanoostenryck@gmail.com>

No functional changes here, just moving things around.

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

diff --git a/Makefile b/Makefile
index c77a166f8..460a261f1 100644
--- a/Makefile
+++ b/Makefile
@@ -20,20 +20,33 @@ PKG_CONFIG = pkg-config
 CHECKER = ./cgcc -no-compile
 CHECKER_FLAGS = -Wno-vla
 
-HAVE_LIBXML:=$(shell $(PKG_CONFIG) --exists libxml-2.0 2>/dev/null && echo 'yes')
-HAVE_GCC_DEP:=$(shell touch .gcc-test.c && 				\
-		$(CC) -c -Wp,-MD,.gcc-test.d .gcc-test.c 2>/dev/null && \
-		echo 'yes'; rm -f .gcc-test.d .gcc-test.o .gcc-test.c)
+DESTDIR=
+PREFIX ?= $(HOME)
+BINDIR=$(PREFIX)/bin
+MANDIR=$(PREFIX)/share/man
+MAN1DIR=$(MANDIR)/man1
 
-GTK_VERSION:=3.0
-HAVE_GTK:=$(shell $(PKG_CONFIG) --exists gtk+-$(GTK_VERSION) 2>/dev/null && echo 'yes')
-ifneq ($(HAVE_GTK),yes)
-	GTK_VERSION:=2.0
-	HAVE_GTK:=$(shell $(PKG_CONFIG) --exists gtk+-$(GTK_VERSION) 2>/dev/null && echo 'yes')
-endif
+# Allow users to override build settings without dirtying their trees
+# For debugging, put this in local.mk:
+#
+#     CFLAGS += -O0 -DDEBUG -g3 -gdwarf-2
+#
+-include local.mk
 
-LLVM_CONFIG:=llvm-config
-HAVE_LLVM:=$(shell $(LLVM_CONFIG) --version >/dev/null 2>&1 && echo 'yes')
+
+PROGRAMS=test-lexing test-parsing obfuscate compile graph sparse \
+	 test-linearize example test-unssa test-dissect ctags
+INST_PROGRAMS=sparse cgcc
+INST_MAN1=sparse.1 cgcc.1
+
+LIB_OBJS= target.o parse.o tokenize.o pre-process.o symbol.o lib.o scope.o \
+	  expression.o show-parse.o evaluate.o expand.o inline.o linearize.o \
+	  char.o sort.o allocate.o compat-$(OS).o ptrlist.o \
+	  builtin.o \
+	  stats.o \
+	  flow.o cse.o simplify.o memops.o liveness.o storage.o unssa.o dissect.o
+
+all:
 
 GCC_BASE := $(shell $(CC) --print-file-name=)
 cflags += -DGCC_BASE=\"$(GCC_BASE)\"
@@ -41,21 +54,16 @@ cflags += -DGCC_BASE=\"$(GCC_BASE)\"
 MULTIARCH_TRIPLET := $(shell $(CC) -print-multiarch 2>/dev/null)
 cflags += -DMULTIARCH_TRIPLET=\"$(MULTIARCH_TRIPLET)\"
 
+# Can we use GCC's generated dependencies?
+HAVE_GCC_DEP:=$(shell touch .gcc-test.c && 				\
+		$(CC) -c -Wp,-MD,.gcc-test.d .gcc-test.c 2>/dev/null && \
+		echo 'yes'; rm -f .gcc-test.d .gcc-test.o .gcc-test.c)
 ifeq ($(HAVE_GCC_DEP),yes)
 cflags += -Wp,-MD,$(@D)/.$(@F).d
 endif
 
-DESTDIR=
-PREFIX ?= $(HOME)
-BINDIR=$(PREFIX)/bin
-MANDIR=$(PREFIX)/share/man
-MAN1DIR=$(MANDIR)/man1
-
-PROGRAMS=test-lexing test-parsing obfuscate compile graph sparse \
-	 test-linearize example test-unssa test-dissect ctags
-INST_PROGRAMS=sparse cgcc
-INST_MAN1=sparse.1 cgcc.1
-
+# Can we use libxml (needed for c2xml)?
+HAVE_LIBXML:=$(shell $(PKG_CONFIG) --exists libxml-2.0 2>/dev/null && echo 'yes')
 ifeq ($(HAVE_LIBXML),yes)
 PROGRAMS+=c2xml
 INST_PROGRAMS+=c2xml
@@ -65,6 +73,13 @@ else
 $(warning Your system does not have libxml, disabling c2xml)
 endif
 
+# Can we use gtk (needed for test-inspect)
+GTK_VERSION:=3.0
+HAVE_GTK:=$(shell $(PKG_CONFIG) --exists gtk+-$(GTK_VERSION) 2>/dev/null && echo 'yes')
+ifneq ($(HAVE_GTK),yes)
+GTK_VERSION:=2.0
+HAVE_GTK:=$(shell $(PKG_CONFIG) --exists gtk+-$(GTK_VERSION) 2>/dev/null && echo 'yes')
+endif
 ifeq ($(HAVE_GTK),yes)
 GTK_CFLAGS := $(shell $(PKG_CONFIG) --cflags gtk+-$(GTK_VERSION))
 GTK_LIBS := $(shell $(PKG_CONFIG) --libs gtk+-$(GTK_VERSION))
@@ -78,6 +93,9 @@ else
 $(warning Your system does not have gtk3/gtk2, disabling test-inspect)
 endif
 
+# Can we use LLVM (needed for ... sparse-llvm)?
+LLVM_CONFIG:=llvm-config
+HAVE_LLVM:=$(shell $(LLVM_CONFIG) --version >/dev/null 2>&1 && echo 'yes')
 ifeq ($(HAVE_LLVM),yes)
 ifeq ($(shell uname -m | grep -q '\(i386\|x86\)' && echo ok),ok)
 LLVM_VERSION:=$(shell $(LLVM_CONFIG) --version)
@@ -103,14 +121,6 @@ else
 $(warning Your system does not have llvm, disabling sparse-llvm)
 endif
 
-
-LIB_OBJS= target.o parse.o tokenize.o pre-process.o symbol.o lib.o scope.o \
-	  expression.o show-parse.o evaluate.o expand.o inline.o linearize.o \
-	  char.o sort.o allocate.o compat-$(OS).o ptrlist.o \
-	  builtin.o \
-	  stats.o \
-	  flow.o cse.o simplify.o memops.o liveness.o storage.o unssa.o dissect.o
-
 LIB_FILE= libsparse.a
 SLIB_FILE= libsparse.so
 
@@ -147,13 +157,6 @@ define INSTALL_FILE
 endef
 
 
-# Allow users to override build settings without dirtying their trees
-# For debugging, put this in local.mk:
-#
-#     CFLAGS += -O0 -DDEBUG -g3 -gdwarf-2
-#
--include local.mk

  parent reply	other threads:[~2017-11-09  6:47 UTC|newest]

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

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=20171109064648.15379-18-luc.vanoostenryck@gmail.com \
    --to=luc.vanoostenryck@gmail.com \
    --cc=jlayton@redhat.com \
    --cc=josh@joshtriplett.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).