about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure32
1 files changed, 24 insertions, 8 deletions
diff --git a/configure b/configure
index 667aaeeacae..b98ad815737 100755
--- a/configure
+++ b/configure
@@ -103,11 +103,11 @@ putvar CFG_CPUTYPE
 msg "looking for build programs"
 probe_need CFG_GCC          gcc
 probe_need CFG_GIT          git
-probe_need CFG_LLVM_CONFIG  llvm-config
 probe_need CFG_OCAMLC       ocamlc
 probe_need CFG_PERL         perl
 probe_need CFG_PYTHON       python
 
+probe CFG_LLVM_CONFIG      llvm-config
 probe CFG_VALGRIND         valgrind
 probe CFG_OCAMLOPT         ocamlopt
 probe CFG_OCAMLC_OPT       ocamlc.opt
@@ -116,7 +116,29 @@ probe CFG_FLEXLINK         flexlink
 probe CFG_MAKEINFO         makeinfo
 probe CFG_TEXI2PDF         texi2pdf
 
-CFG_LLVM_VERSION=$(llvm-config --version)
+if [ ! -z "$CFG_LLVM_ROOT" ]
+then
+    CFG_LLVM_INCDIR="$CFG_LLVM_ROOT/include"
+    CFG_LLVM_BINDIR="$CFG_LLVM_ROOT/bin"
+    CFG_LLVM_LIBDIR="$CFG_LLVM_ROOT/lib"
+    CFG_LLVM_CXXFLAGS="-I$CFG_LLVM_INCDIR"
+    CFG_LLVM_LDFLAGS=""
+    CFG_LLVM_LIBS=$(find "$CFG_LLVM_LIBDIR" -name '*.lib' -exec echo '\"{}\"' ';' | xargs echo)
+    CFG_LLVM_VERSION=$("$CFG_LLVM_BINDIR/llc" --version | grep version | cut -d ' ' -f 5-)
+elif [ ! -z "$CFG_LLVM_VERSION" ]
+then
+    CFG_LLVM_VERSION=$(llvm-config --version)
+    CFG_LLVM_INCDIR=$(llvm-config --includedir)
+    CFG_LLVM_BINDIR=$(llvm-config --bindir)
+    CFG_LLVM_LIBDIR=$(llvm-config --libdir)
+    CFG_LLVM_CXXFLAGS=$(llvm-config --cxxflags)
+    CFG_LLVM_LDFLAGS=$(llvm-config --ldflags)
+    CFG_LLVM_LIBS=$(llvm-config --libs)
+else
+    err "either the \"CFG_LLVM_ROOT\" environment variable must be set, or a \
+\"llvm-version\" script must be present"
+fi
+
 case $CFG_LLVM_VERSION in
     (3.0svn | 3.0)
     msg "found ok version of LLVM: $CFG_LLVM_VERSION"
@@ -125,12 +147,6 @@ case $CFG_LLVM_VERSION in
     err "bad LLVM version: $CFG_LLVM_VERSION, need >=3.0svn"
     ;;
 esac
-CFG_LLVM_INCDIR=$(llvm-config --includedir)
-CFG_LLVM_BINDIR=$(llvm-config --bindir)
-CFG_LLVM_LIBDIR=$(llvm-config --libdir)
-CFG_LLVM_CXXFLAGS=$(llvm-config --cxxflags)
-CFG_LLVM_LDFLAGS=$(llvm-config --ldflags)
-CFG_LLVM_LIBS=$(llvm-config --libs)
 
 putvar CFG_LLVM_INCDIR
 putvar CFG_LLVM_BINDIR