denyhosts/clamscan/libclamav/c++/m4/llvm-opts.m4
2022-10-22 18:41:00 +08:00

75 lines
2.3 KiB
Plaintext

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="dynamic"])
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