-
Notifications
You must be signed in to change notification settings - Fork 0
/
configure.in
105 lines (77 loc) · 2.64 KB
/
configure.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
AC_INIT(src/Rllvm.h)
if test -z "${LLVM_CONFIG}" ; then
AC_PATH_PROG(LLVM_CONFIG, llvm-config)
if test -z "${LLVM_CONFIG}" ; then
echo "cannot find llvm-config in your path. Make certain it is installed and in your path"
exit 1;
fi
fi
${LLVM_CONFIG} --system-libs &> /dev/null
#LLVM_HAS_SYS_LIBS=$?
if test "$?" = "0" ; then
LLVM_SYS_LIBS="--system-libs"
else
LLVM_SYS_LIBS=""
fi
AC_SUBST(LLVM_SYS_LIBS)
echo "LLVM_HAS_SYS_LIBS = ${LLVM_SYS_LIBS}"
LLVM_VERSION_NUMBER=`${LLVM_CONFIG} --version | sed -e 's/svn//'`
dnl LLVM_VERSION=`${LLVM_CONFIG} --version | sed -e 's/\.[[0-9].]*//' | sed -e 's/svn//'`
dnl LLVM_MINOR_VERSION=`${LLVM_CONFIG} --version | sed -e 's/[[0-9]]\.//' | sed -e 's/svn//'`
LLVM_VERSION=`${LLVM_CONFIG} --version | sed -Ee 's/\.[[0-9]]*(\.[[0-9]]*)?//' | sed -e 's/svn//'`
LLVM_MINOR_VERSION=`${LLVM_CONFIG} --version | sed -Ee 's/[[0-9]]\.//' | sed -Ee 's/\.[[0-9]]*//' | sed -e 's/svn//'`
echo "LLVM_VERSION_NUMBER = ${LLVM_VERSION_NUMBER}, VERSION = ${LLVM_VERSION}, MINOR = ${LLVM_MINOR_VERSION}"
CXXFLAGS=`${LLVM_CONFIG} --cxxflags`
AC_LANG(C++)
AC_COMPILE_IFELSE([
AC_LANG_SOURCE(
#include <llvm/LLVMContext.h>
void foo() {
}
)], [echo "Successfully include LLVMContext.h"],
[CHECK_IR_DIR=1])
if test -z $CHECK_IR_DIR ; then
AC_COMPILE_IFELSE([
AC_LANG_SOURCE(
#include <llvm/LLVMContext.h>
void foo() {
}
)], [echo "Successfully include LLVMContext.h"],
AC_MSG_FAILURE("cannot include llvm/LLVMContext.h. Check that you have a suitable version of llvm installed."))
fi
AC_COMPILE_IFELSE([
AC_LANG_SOURCE(
#include <llvm/IR/Attributes.h>
void foo() {
int i = (int) llvm::Attribute::NoUnwind;
}
)], [echo "New Attribute setup (> 3.2)"; NEW_LLVM_ATTRIBUTES_SETUP="-DNEW_LLVM_ATTRIBUTES_SETUP=1"],
[echo "Using old Attributes (<= 3.2)"; NEW_LLVM_ATTRIBUTES_SETUP=""];)
AC_COMPILE_IFELSE([
AC_LANG_SOURCE(
#include <llvm/IR/Attributes.h>
void foo() {
int i = (int) llvm::Attribute::NoUnwind;
}
)], [echo "DataLayout.h in IR/"; LLVM_DATALAYOUT_H_IN_IR="-DLLVM_DATALAYOUT_H_IN_IR=1"],
[echo "Using old Attributes (<= 3.2)"; LLVM_DATALAYOUT_H_IN_IR=""];)
LLVM_TARGETS="`${LLVM_CONFIG} --targets-built`"
echo "version: $LLVM_VERSION, minor = $LLVM_MINOR_VERSION"
AC_SUBST(LLVM_CONFIG)
AC_SUBST(LLVM_VERSION_NUMBER)
AC_SUBST(LLVM_VERSION)
AC_SUBST(LLVM_MINOR_VERSION)
AC_SUBST(LLVM_TARGETS)
AC_SUBST(NEW_LLVM_ATTRIBUTES_SETUP)
AC_SUBST(LLVM_DATALAYOUT_H_IN_IR)
echo ""
echo "*** llvm-config ${LLVM_CONFIG}"
echo ""
if test -r R/targets.R ; then
chmod +w R/targets.R
fi
AC_OUTPUT(src/Makevars)
AC_OUTPUT(R/targets.R)
AC_OUTPUT(R/llvmVersion.R)
chmod -w R/targets.R
echo "`${LLVM_CONFIG} --cxxflags --ldflags`"