diff configure.ac @ 14899:f25d2224fa02

Initial JIT support build-aux/common.mk: Add llvm flags. configure.ac: Link with llvm. src/Makefile: Add pt-jit. src/link-deps.mk: Link with llvm. src/oct-conf.in.h: Add llvm flags. src/toplev.cc: Add llvm flags. src/pt-eval.cc: Try to jit statements. src/pt-jit.cc: New file. src/pt-jit.h: New file
author Max Brister <max@2bass.com>
date Sun, 06 May 2012 20:17:30 -0600
parents 4dc85c4f151b
children 82429f3c1005
line wrap: on
line diff
--- a/configure.ac	Sun May 06 21:14:55 2012 -0400
+++ b/configure.ac	Sun May 06 20:17:30 2012 -0600
@@ -711,6 +711,58 @@
   [ZLIB library not found.  Octave will not be able to save or load compressed data files or HDF5 files.],
   [zlib.h], [gzclearerr])
 
+### Check for the llvm library
+dnl
+dnl
+dnl llvm is odd and has its own pkg-config like script. We should probably check
+dnl for existance and 
+dnl
+
+LLVM_CONFIG=llvm-config
+LLVM_CPPFLAGS=
+LLVM_LDFLAGS=
+LLVM_LIBS=
+
+LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
+LLVM_LIBS=`$LLVM_CONFIG --libs`
+LLVM_CPPFLAGS=`$LLVM_CONFIG --cxxflags`
+
+warn_llvm="LLVM library fails tests. JIT compilation will be disabled."
+
+save_CPPFLAGS="$CPPFLAGS"
+save_LIBS="$LIBS"
+save_LDFLAGS="$LDFLAGS"
+CPPFLAGS="$LLVM_CPPFLAGS $CPPFLAGS"
+LIBS="$LLVM_LIBS $LIBS"
+LDFLAGS="$LLVM_LDFLAGS $LDFLAGS"
+AC_LANG_PUSH(C++)
+  AC_CHECK_HEADER([llvm/LLVMContext.h], [
+  AC_MSG_CHECKING([for llvm::getGlobalContext in llvm/LLVMContext.h])
+    AC_TRY_LINK([#include <llvm/LLVMContext.h>], [llvm::getGlobalContext ()], [
+      AC_MSG_RESULT(yes)
+      warn_llvm=
+    ], [
+      AC_MSG_RESULT(no)
+    ])
+  ])
+AC_LANG_POP(C++)
+CPPFLAGS="$save_CPPFLAGS"
+LIBS="$save_LIBS"
+LDFLAGS="$save_LDFLAGS"
+
+if test -z "$warn_llvm"; then
+  AC_DEFINE(HAVE_LLVM, 1, [Define if LLVM is available.])
+else
+  LLVM_CPPFLAGS=
+  LLVM_LDFLAGS=
+  LLVM_LIBS=
+fi
+AC_DEFINE(HAVE_LLVM, 1, [Define if LLVM is available.])
+
+AC_SUBST(LLVM_CPPFLAGS)
+AC_SUBST(LLVM_LDFLAGS)
+AC_SUBST(LLVM_LIBS)
+
 ### Check for HDF5 library.
 
 save_CPPFLAGS="$CPPFLAGS"
@@ -2222,6 +2274,9 @@
   Magick++ CPPFLAGS:           $MAGICK_CPPFLAGS
   Magick++ LDFLAGS:            $MAGICK_LDFLAGS
   Magick++ libraries:          $MAGICK_LIBS
+  LLVM CPPFLAGS:               $LLVM_CPPFLAGS
+  LLVM LDFLAGS:                $LLVM_LDFLAGS
+  LLVM Libraries:              $LLVM_LIBS
   HDF5 CPPFLAGS:               $HDF5_CPPFLAGS
   HDF5 LDFLAGS:                $HDF5_LDFLAGS
   HDF5 libraries:              $HDF5_LIBS
@@ -2392,6 +2447,11 @@
   warn_msg_printed=true
 fi
 
+if test -n "$warn_llvm"; then
+  AC_MSG_WARN([$warn_llvm])
+  warn_msg_printed=true
+fi
+
 if test -n "$warn_ghostscript"; then
   AC_MSG_WARN([$warn_ghostscript])
   warn_msg_printed=true