libclamav/c++/m4/llvm-opts.m4
1d9f629f
 dnl Act as a single handler point for LLVM options
 dnl Assigns enable_llvm, system_llvm, llvm_linking, and llvmver variables
 dnl Assigns llvmoptserrmsg variable on error
 
 dnl Determine if LLVM is requested (or auto, reassigned if system-llvm specified)
 dnl Overrides "auto" with "yes" if a system-llvm is specified
 AC_ARG_ENABLE([llvm],AC_HELP_STRING([--enable-llvm],
 [enable 'llvm' JIT/verifier support @<:@default=auto@:>@]),
 [enable_llvm=$enableval], [enable_llvm="auto"])
 
 if test "$enable_llvm" != "no"; then
 
 dnl Determine whether to user built in LLVM or to use system-specified LLVM
 dnl locate the llvmconfig program
 AC_ARG_WITH([system-llvm], AC_HELP_STRING([--with-system-llvm],
 [Specify system llvm location or to use old package, uses full path to llvm-config or bin directory
      (default=search PATH environment variable)]),
 [system_llvm=$withval; if test "$enable_llvm" = "auto"; then enable_llvm="yes"; fi], [system_llvm="yes"])
 
 case "$system_llvm" in
   yes)
      AC_PATH_PROG([llvmconfig], [llvm-config])
      if test "x$llvmconfig" = "x"; then
          llvmoptserrmsg="llvm-config cannot be found within PATH"
      fi
      ;;
   no) ;;
   *)
      if test -d "$withval"; then
          AC_PATH_PROG([llvmconfig], [llvm-config], [], [$withval/bin])
      else
          llvmconfig=$withval
          if test ! -x "$llvmconfig"; then
              llvmconfig=""
          fi
      fi
 
      if test "x$llvmconfig" = "x"; then
          llvmoptserrmsg="llvm-config does not exist at $withval"
      fi
      ;;
 esac
 
 if test "x$llvmconfig" != "x"; then
 
 dnl Determine linking method to external LLVM, built-in only does static linking
 AC_ARG_WITH([llvm-linking], [AC_HELP_STRING([--with-llvm-linking],
 [specifies method to linking llvm @<:@static|dynamic@:>@, only valid with --with-system-llvm])],
 [if test "x$llvmconfig" = "x"; then
    AC_MSG_ERROR([Failed to configure LLVM, and LLVM linking was specified without valid llvm-config])
 else
    case "$withval" in
      static)
          llvm_linking="static"
          ;;
      dynamic)
          llvm_linking="dynamic"
          ;;
      *)
          AC_MSG_ERROR([Invalid argument to --with-llvm-linking])
    esac
 fi
 ], [llvm_linking=""])
 
 llvmver=`$llvmconfig --version`
 
 else dnl test "x$llvmconfig" != "x"
 
 llvmver="2.8"
 system_llvm="internal"
 
 fi dnl test "x$llvmconfig" != "x"
 
 fi dnl test "enable_llvm" != "no