forked from chetant/LibClang
-
Notifications
You must be signed in to change notification settings - Fork 0
/
configure.ac
100 lines (94 loc) · 3.26 KB
/
configure.ac
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
AC_INIT([LibClang], [0.0.1])
AC_CONFIG_SRCDIR([src/Clang.hs])
AC_ARG_WITH([llvm-config], [AS_HELP_STRING([--with-llvm-config],[configure LLVM libraries with llvm-config @<:@default: yes@:>@])], [llvm_config=${withval}], [llvm_config=yes])
AC_CHECK_PROG([llvm_config_found], [llvm-config], [yes], [no])
if test "$llvm_config" = yes
then
if test "$llvm_config_found" = no
then
AC_MSG_ERROR([
-------------------------------------------------
llvm-config not found.
if llvm-config is present, ensure it is available
on path (export PATH=...).
NOTE: if file is present and configured,
try running running "cabal build -vv" or
"runhaskell Setup.hs build -vv"
to get the exact commands run
-------------------------------------------------])
else
# get relevant libs from llvm-config
CFLAGS="$CFLAGS `llvm-config --cflags`"
LDFLAGS="$LDFLAGS `llvm-config --ldflags`"
fi
fi
AC_CHECK_HEADERS([clang-c/Index.h], [], [no_clang_include=yes])
if test "$no_clang_include" = yes
then
AC_MSG_ERROR([
-------------------------------------------------
Cannot find <clang-c/Index.h>
Please ensure libClang is installed and
is in CFLAGS (-I...) or passed through configure
NOTE: if file is present and configured,
try running running "cabal build -vv" or
"runhaskell Setup.hs build -vv"
to get the exact commands run
-------------------------------------------------])
fi
AC_ARG_ENABLE([llvm-shared],[AS_HELP_STRING([--enable-llvm-shared=LIBSUFFIX],[build against LLVM shared libraries with libsuffix])],[llvm_shared=$enableval])
if test "$llvm_shared" != ""
then
AC_CHECK_LIB([${llvm_shared}], [LLVMContextCreate], [llvm_shared_lib_found=yes], [llvm_shared_lib_found=no])
if test "$llvm_shared_lib_found" = no
then
AC_MSG_ERROR([
-------------------------------------------------
llvm shared library ${llvm_shared} not found.
if the library is present, ensure it is available
on the lib search path (export LDFLAGS=...)
-------------------------------------------------])
else
LDFLAGS="$LDFLAGS -l${llvm_shared}"
AC_TRY_RUN([int main(int argc, int argv[]){LLVMContextCreate();return 0;}], [llvm_shared_lib_present=yes], [llvm_shared_lib_present=no])
if test "$llvm_shared_lib_present" = no
then
AC_MSG_ERROR([
-------------------------------------------------------
specified llvm shared library ${llvm_shared} not found.
if the library is present, ensure it is available
on the lib search path (export LID_LIBRARY_PATH=...)
-------------------------------------------------------])
fi
fi
else
if test "$llvm_config_found" = yes
then
LDFLAGS="$LDFLAGS `llvm-config --libs`"
fi
fi
AC_CHECK_LIB([clang], [clang_getClangVersion], [clang_lib_found=yes], [clang_lib_found=no])
if test "$clang_lib_found" = no
then
AC_MSG_ERROR([
-------------------------------------------------
clang library not found.
if the library is present, ensure it is available
on the lib search path (export LDFLAGS=...)
-------------------------------------------------])
else
LDFLAGS="$LDFLAGS -lclang"
fi
# Check for stdlib.h and inttypes
if test "$ac_cv_header_stdlib_h" != yes
then
AC_MSG_ERROR([Cannot find stdlib.h])
fi
if test "$ac_cv_header_inttypes_h" != yes
then
AC_MSG_ERROR([Cannot find inttypes.h])
fi
AC_CONFIG_FILES([LibClang.buildinfo
test/Makefile
])
AC_OUTPUT