aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Makefile
diff options
authorPekka Enberg <penberg@kernel.org>2011-11-25 08:46:18 +0200
committerPekka Enberg <penberg@kernel.org>2011-11-25 09:06:03 +0200
commit3ae341501dd0f539f3a9a1add8295963a5dacd08 (patch)
treefc87f34b960aec1af3eef5af18f9bc478e700eed /Makefile
parent830ddf490134a9c94e2e52583c8177d52e838dae (diff)
downloadsparse-dev-3ae341501dd0f539f3a9a1add8295963a5dacd08.tar.gz
sparse, llvm: Don't fail the build if LLVM is too old
Disable sparse-llvm compilation if LLVM version is too old. Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Christopher Li <sparse@chrisli.org> Cc: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile13
1 files changed, 10 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index e508cae4..2b5976dd 100644
--- a/Makefile
+++ b/Makefile
@@ -23,6 +23,8 @@ HAVE_GCC_DEP:=$(shell touch .gcc-test.c && \
echo 'yes'; rm -f .gcc-test.d .gcc-test.o .gcc-test.c)
HAVE_GTK2:=$(shell pkg-config --exists gtk+-2.0 2>/dev/null && echo 'yes')
HAVE_LLVM:=$(shell llvm-config --version >/dev/null 2>&1 && echo 'yes')
+HAVE_LLVM_VERSION:=$(shell llvm-config --version | grep "^[3-9].*" >/dev/null 2>&1 && echo yes)
+LLVM_VERSION=$(shell llvm-config --version)
GCC_BASE = $(shell $(CC) --print-file-name=)
BASIC_CFLAGS = -DGCC_BASE=\"$(GCC_BASE)\"
@@ -65,7 +67,13 @@ else
$(warning Your system does not have libgtk2, disabling test-inspect)
endif
-ifeq ($(HAVE_LLVM),yes)
+ifneq ($(HAVE_LLVM),yes)
+$(warning Your system does not have llvm, disabling sparse-llvm)
+else
+ifneq ($(HAVE_LLVM_VERSION),yes)
+$(warning LLVM 3.0 or later required. Your system has version $(LLVM_VERSION) installed.)
+HAVE_LLVM=no
+else
LLVM_PROGS := sparse-llvm
$(LLVM_PROGS): LD := g++
LDFLAGS += $(shell llvm-config --ldflags)
@@ -76,8 +84,7 @@ INST_PROGRAMS += sparse-llvm sparsec
sparse-llvm_EXTRA_DEPS := sparse-llvm.o
sparse-llvm.o $(sparse-llvm_EXTRA_DEPS): BASIC_CFLAGS += $(LLVM_CFLAGS)
sparse-llvm_EXTRA_OBJS := $(LLVM_LIBS)
-else
-$(warning Your system does not have llvm, disabling sparse-llvm)
+endif
endif
LIB_H= token.h parse.h lib.h symbol.h scope.h expression.h target.h \