Adds --with-system-llvm=/path/to/llvm-config
Török Edvin authored on 2010/08/04 19:55:30... | ... |
@@ -18,25 +18,28 @@ LLVM_INCLUDES=-I$(top_srcdir)/llvm/include -I$(top_builddir)/llvm/include |
18 | 18 |
# keep it like this while I'm testing LLVM |
19 | 19 |
# TODO: HP-UX should have -D_REENTRANT -D_HPUX_SOURCE |
20 | 20 |
LLVM_DEFS=-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D_DEBUG -D_GNU_SOURCE |
21 |
-AM_CPPFLAGS = -I$(top_srcdir)/../.. -I$(top_srcdir)/.. -I$(top_builddir)/../../ $(LLVM_INCLUDES) $(LLVM_DEFS) |
|
21 |
+AM_CPPFLAGS = -I$(top_srcdir)/../.. -I$(top_srcdir)/.. -I$(top_builddir)/../../ |
|
22 |
+ |
|
22 | 23 |
AM_CXXFLAGS = $(LLVM_CXXFLAGS) -fno-exceptions |
23 | 24 |
ACLOCAL_AMFLAGS=-I m4 |
24 |
-if DEBUG_BUILD |
|
25 |
-LLVM_CONFIG=llvm/Debug/bin/llvm-config |
|
26 |
-else |
|
27 |
-LLVM_CONFIG=llvm/Release/bin/llvm-config |
|
28 |
-endif |
|
29 | 25 |
|
26 |
+libclamavcxx_la_SOURCES = bytecode2llvm.cpp\ |
|
27 |
+ ClamBCRTChecks.cpp\ |
|
28 |
+ ClamBCModule.h\ |
|
29 |
+ ClamBCDiagnostics.h\ |
|
30 |
+ detect.cpp |
|
31 |
+if BUILD_EXTERNAL_LLVM |
|
30 | 32 |
#$(LLVM_CONFIG): build-llvm |
31 | 33 |
# we know this will be built with GNU make, so its safe to use GNU make specific |
32 | 34 |
# $(shell ...) |
33 | 35 |
#LLVM_DEPS=$(shell $(LLVM_CONFIG) --libfiles jit nativecodegen) |
34 |
-#libclamavcxx_la_CPPFLAGS = $(AM_CPPFLAGS) `$(LLVM_CONFIG) --cppflags` |
|
35 |
-#libclamavcxx_la_DEPENDENCIES = $(LLVM_DEPS) |
|
36 |
-#libclamavcxx_la_LDFLAGS = `$(LLVM_CONFIG) --ldflags --libs jit nativecodegen` |
|
37 |
-#libclamavcxx_la_CPPFLAGS = $(AM_CPPFLAGS) $(LLVM_INCLUDES) $(LLVM_DEFS) |
|
38 |
-#libclamavcxx_la_DEPENDENCIES = $(LLVM_DEPS) |
|
36 |
+libclamavcxx_la_CXXFLAGS = $(AM_CPPFLAGS) @LLVMCONFIG_CXXFLAGS@ -fexceptions -DLLVM28 |
|
37 |
+libclamavcxx_la_LDFLAGS = @LLVMCONFIG_LDFLAGS@ @LLVMCONFIG_LIBS@ |
|
38 |
+libclamavcxx_la_DEPENDENCIES = @LLVMCONFIG_LIBFILES@ |
|
39 |
+noinst_LTLIBRARIES = libclamavcxx.la |
|
39 | 40 |
|
41 |
+else |
|
42 |
+AM_CPPFLAGS += $(LLVM_INCLUDES) $(LLVM_DEFS) |
|
40 | 43 |
noinst_LTLIBRARIES = libclamavcxx.la libllvmsystem.la\ |
41 | 44 |
libllvmcodegen.la libllvmjit.la |
42 | 45 |
lli_LDADD=libllvmbitreader.la libllvmfullcodegen.la libllvmjit.la |
... | ... |
@@ -44,11 +47,8 @@ libclamavcxx_la_LIBADD=libllvmjit.la |
44 | 44 |
libclamavcxx_la_DEPENDENCIES=libllvmjit.la libllvmcodegen.la libllvmsystem.la |
45 | 45 |
libclamavcxx_la_LDFLAGS=-no-undefined |
46 | 46 |
libclamavcxx_la_CXXFLAGS = $(LLVM_CXXFLAGS) |
47 |
-libclamavcxx_la_SOURCES = bytecode2llvm.cpp\ |
|
48 |
- ClamBCRTChecks.cpp\ |
|
49 |
- ClamBCModule.h\ |
|
50 |
- ClamBCDiagnostics.h\ |
|
51 |
- detect.cpp |
|
47 |
+ |
|
48 |
+ |
|
52 | 49 |
if BUILD_X86 |
53 | 50 |
libclamavcxx_la_LIBADD+=libllvmx86codegen.la |
54 | 51 |
libclamavcxx_la_DEPENDENCIES+=libllvmx86codegen.la |
... | ... |
@@ -916,6 +916,7 @@ libllvmsystem_la_SOURCES += llvm/config.status |
916 | 916 |
$(top_builddir)/llvm/config.status: llvm/configure |
917 | 917 |
(cd llvm; ./config.status --recheck; ./config.status) |
918 | 918 |
|
919 |
+endif |
|
919 | 920 |
# rm configure generated files |
920 | 921 |
dist-hook: |
921 | 922 |
make -C llvm dist-hook |
... | ... |
@@ -46,7 +46,33 @@ fi |
46 | 46 |
AC_CHECK_GNU_MAKE |
47 | 47 |
GMAKE="$llvm_cv_gnu_make_command" |
48 | 48 |
AC_SUBST([GMAKE]) |
49 |
-AC_CONFIG_SUBDIRS([llvm]) |
|
49 |
+ |
|
50 |
+llvmconfig= |
|
51 |
+AC_ARG_WITH([system-llvm], AC_HELP_STRING([-with-system-llvm], |
|
52 |
+[Use system llvm instead of built-in, requires full path to llvm-config]), |
|
53 |
+[case "$withval" in |
|
54 |
+ yes) |
|
55 |
+ AC_MSG_ERROR([--with-system-llvm needs full path to llvm-config]) |
|
56 |
+ ;; |
|
57 |
+ no) ;; |
|
58 |
+ *) |
|
59 |
+ llvmconfig="$withval" |
|
60 |
+ llvmver=`$llvmconfig --version` |
|
61 |
+ if test "$llvmver" != "2.8" -a "$llvmver" != "2.8svn"; then |
|
62 |
+ AC_MSG_ERROR([LLVM 2.8 or 2.8svn required, but "$llvmver" found]) |
|
63 |
+ fi |
|
64 |
+ AC_SUBST(LLVMCONFIG_CXXFLAGS, [`$llvmconfig --cxxflags`]) |
|
65 |
+ AC_SUBST(LLVMCONFIG_LDFLAGS, [`$llvmconfig --ldflags`]) |
|
66 |
+ AC_SUBST(LLVMCONFIG_LIBS, [`$llvmconfig --libs jit nativecodegen`]) |
|
67 |
+ AC_SUBST(LLVMCONFIG_LIBFILES, [`$llvmconfig --libfiles jit nativecodegen`]) |
|
68 |
+ ;; |
|
69 |
+ esac |
|
70 |
+]) |
|
71 |
+ |
|
72 |
+if test "x$llvmconfig" = "x"; then |
|
73 |
+ AC_CONFIG_SUBDIRS([llvm]) |
|
74 |
+fi |
|
75 |
+ |
|
50 | 76 |
AC_ARG_ENABLE([llvm],AC_HELP_STRING([-enable-llvm], |
51 | 77 |
[Enable 'llvm' JIT/verifier support @<:@default=auto@:>@]), |
52 | 78 |
[enable_llvm=$enableval], [enable_llvm="auto"]) |
... | ... |
@@ -191,6 +217,8 @@ CXX_FLAG_CHECK(NO_VARIADIC_MACROS, [-Wno-variadic-macros]) |
191 | 191 |
CXX_FLAG_CHECK(NO_MISSING_FIELD_INITIALIZERS, [-Wno-missing-field-initializers]) |
192 | 192 |
AC_MSG_RESULT([$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS]) |
193 | 193 |
|
194 |
+AM_CONDITIONAL(BUILD_EXTERNAL_LLVM, [test -n "$llvmconfig"]) |
|
195 |
+ |
|
194 | 196 |
AC_OUTPUT([ |
195 | 197 |
Makefile |
196 | 198 |
]) |