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
next prev 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).