/* include/llvm/Config/config.h.in.  Generated from autoconf/configure.ac by autoheader.  */

#ifndef CONFIG_H
#define CONFIG_H

/* Exported configuration */
#include "llvm/Config/llvm-config.h"

/* Bug report URL. */
#undef BUG_REPORT_URL

/* Default OpenMP runtime used by -fopenmp. */
#undef CLANG_DEFAULT_OPENMP_RUNTIME

/* Define if we have libxml2 */
#undef CLANG_HAVE_LIBXML

/* Multilib suffix for libdir. */
#undef CLANG_LIBDIR_SUFFIX

/* Relative directory for resource files */
#undef CLANG_RESOURCE_DIR

/* Directories clang will search for headers */
#undef C_INCLUDE_DIRS

/* Default <path> to all compiler invocations for --sysroot=<path>. */
#undef DEFAULT_SYSROOT

/* Define if you want backtraces on crash */
#undef ENABLE_BACKTRACES

/* Define to enable crash handling overrides */
#undef ENABLE_CRASH_OVERRIDES

/* Define if position independent code is enabled */
#undef ENABLE_PIC

/* Define if timestamp information (e.g., __DATE__) is allowed */
#undef ENABLE_TIMESTAMPS

/* Directory where gcc is installed. */
#undef GCC_INSTALL_PREFIX

/* Define to 1 if you have the `backtrace' function. */
#undef HAVE_BACKTRACE

/* Define to 1 if you have the <CrashReporterClient.h> header file. */
#undef HAVE_CRASHREPORTERCLIENT_H

/* can use __crashreporter_info__ */
#undef HAVE_CRASHREPORTER_INFO

/* Define to 1 if you have the <cxxabi.h> header file. */
#undef HAVE_CXXABI_H

/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
   don't. */
#undef HAVE_DECL_ARC4RANDOM

/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
   don't. */
#undef HAVE_DECL_FE_ALL_EXCEPT

/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you
   don't. */
#undef HAVE_DECL_FE_INEXACT

/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you
   don't. */
#undef HAVE_DECL_STRERROR_S

/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
   */
#undef HAVE_DIRENT_H

/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

/* Define if dlopen() is available on this platform. */
#undef HAVE_DLOPEN

/* Define if the dot program is available */
#undef HAVE_DOT

/* Define to 1 if you have the <errno.h> header file. */
#undef HAVE_ERRNO_H

/* Define to 1 if you have the <execinfo.h> header file. */
#undef HAVE_EXECINFO_H

/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H

/* Define to 1 if you have the <fenv.h> header file. */
#undef HAVE_FENV_H

/* Define if libffi is available on this platform. */
#undef HAVE_FFI_CALL

/* Define to 1 if you have the <ffi/ffi.h> header file. */
#undef HAVE_FFI_FFI_H

/* Define to 1 if you have the <ffi.h> header file. */
#undef HAVE_FFI_H

/* Define to 1 if you have the `futimens' function. */
#undef HAVE_FUTIMENS

/* Define to 1 if you have the `futimes' function. */
#undef HAVE_FUTIMES

/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD

/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE

/* Define to 1 if you have the `getrlimit' function. */
#undef HAVE_GETRLIMIT

/* Define to 1 if you have the `getrusage' function. */
#undef HAVE_GETRUSAGE

/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY

/* Define to 1 if the system has the type `int64_t'. */
#undef HAVE_INT64_T

/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* Define to 1 if you have the `isatty' function. */
#undef HAVE_ISATTY

/* Define if libedit is available on this platform. */
#undef HAVE_LIBEDIT

/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM

/* Define to 1 if you have the `ole32' library (-lole32). */
#undef HAVE_LIBOLE32

/* Define to 1 if you have the `psapi' library (-lpsapi). */
#undef HAVE_LIBPSAPI

/* Define to 1 if you have the `pthread' library (-lpthread). */
#undef HAVE_LIBPTHREAD

/* Define to 1 if you have the `shell32' library (-lshell32). */
#undef HAVE_LIBSHELL32

/* Define to 1 if you have the `uuid' library (-luuid). */
#undef HAVE_LIBUUID

/* Define to 1 if you have the `z' library (-lz). */
#undef HAVE_LIBZ

/* Define if you can use -rdynamic. */
#undef HAVE_LINK_EXPORT_DYNAMIC

/* Define to 1 if you have the <link.h> header file. */
#undef HAVE_LINK_H

/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add
   the current directory to the dynamic linker search path. */
#undef HAVE_LINK_R

/* Define to 1 if you have the `longjmp' function. */
#undef HAVE_LONGJMP

/* Define to 1 if you have the <mach/mach.h> header file. */
#undef HAVE_MACH_MACH_H

/* Define if mallinfo() is available on this platform. */
#undef HAVE_MALLINFO

/* Define to 1 if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H

/* Define to 1 if you have the <malloc/malloc.h> header file. */
#undef HAVE_MALLOC_MALLOC_H

/* Define to 1 if you have the `malloc_zone_statistics' function. */
#undef HAVE_MALLOC_ZONE_STATISTICS

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define to 1 if you have the `mkdtemp' function. */
#undef HAVE_MKDTEMP

/* Define to 1 if you have the `mkstemp' function. */
#undef HAVE_MKSTEMP

/* Define to 1 if you have the `mktemp' function. */
#undef HAVE_MKTEMP

/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP

/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if
   it uses MAP_ANON */
#undef HAVE_MMAP_ANONYMOUS

/* Define if mmap() can map files into memory */
#undef HAVE_MMAP_FILE

/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H

/* Define to 1 if you have the `posix_spawn' function. */
#undef HAVE_POSIX_SPAWN

/* Define to 1 if you have the `pread' function. */
#undef HAVE_PREAD

/* Define to have the %a format string */
#undef HAVE_PRINTF_A

/* Have pthread_getspecific */
#undef HAVE_PTHREAD_GETSPECIFIC

/* Define to 1 if you have the <pthread.h> header file. */
#undef HAVE_PTHREAD_H

/* Have pthread_mutex_lock */
#undef HAVE_PTHREAD_MUTEX_LOCK

/* Have pthread_rwlock_init */
#undef HAVE_PTHREAD_RWLOCK_INIT

/* Define to 1 if you have the `realpath' function. */
#undef HAVE_REALPATH

/* Define to 1 if you have the `sbrk' function. */
#undef HAVE_SBRK

/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV

/* Define to 1 if you have the `setjmp' function. */
#undef HAVE_SETJMP

/* Define to 1 if you have the <setjmp.h> header file. */
#undef HAVE_SETJMP_H

/* Define to 1 if you have the `setrlimit' function. */
#undef HAVE_SETRLIMIT

/* Define to 1 if you have the <signal.h> header file. */
#undef HAVE_SIGNAL_H

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR

/* Define to 1 if you have the `strerror_r' function. */
#undef HAVE_STRERROR_R

/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the `strtoll' function. */
#undef HAVE_STRTOLL

/* Define to 1 if you have the `strtoq' function. */
#undef HAVE_STRTOQ

/* Define to 1 if you have the `sysconf' function. */
#undef HAVE_SYSCONF

/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
   */
#undef HAVE_SYS_DIR_H

/* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H

/* Define to 1 if you have the <sys/mman.h> header file. */
#undef HAVE_SYS_MMAN_H

/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
   */
#undef HAVE_SYS_NDIR_H

/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H

/* Define to 1 if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

/* Define to 1 if you have the <sys/uio.h> header file. */
#undef HAVE_SYS_UIO_H

/* Define if the setupterm() function is supported this platform. */
#undef HAVE_TERMINFO

/* Define to 1 if you have the <termios.h> header file. */
#undef HAVE_TERMIOS_H

/* Define to 1 if the system has the type `uint64_t'. */
#undef HAVE_UINT64_T

/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Define to 1 if the system has the type `u_int64_t'. */
#undef HAVE_U_INT64_T

/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
#undef HAVE_VALGRIND_VALGRIND_H

/* Define to 1 if you have the `writev' function. */
#undef HAVE_WRITEV

/* Define to 1 if you have the <zlib.h> header file. */
#undef HAVE_ZLIB_H

/* Have host's _alloca */
#undef HAVE__ALLOCA

/* Have host's __alloca */
#undef HAVE___ALLOCA

/* Have host's __ashldi3 */
#undef HAVE___ASHLDI3

/* Have host's __ashrdi3 */
#undef HAVE___ASHRDI3

/* Have host's __chkstk */
#undef HAVE___CHKSTK

/* Have host's __chkstk_ms */
#undef HAVE___CHKSTK_MS

/* Have host's __cmpdi2 */
#undef HAVE___CMPDI2

/* Have host's __divdi3 */
#undef HAVE___DIVDI3

/* Define to 1 if you have the `__dso_handle' function. */
#undef HAVE___DSO_HANDLE

/* Have host's __fixdfdi */
#undef HAVE___FIXDFDI

/* Have host's __fixsfdi */
#undef HAVE___FIXSFDI

/* Have host's __floatdidf */
#undef HAVE___FLOATDIDF

/* Have host's __lshrdi3 */
#undef HAVE___LSHRDI3

/* Have host's __main */
#undef HAVE___MAIN

/* Have host's __moddi3 */
#undef HAVE___MODDI3

/* Have host's __udivdi3 */
#undef HAVE___UDIVDI3

/* Have host's __umoddi3 */
#undef HAVE___UMODDI3

/* Have host's ___chkstk */
#undef HAVE____CHKSTK

/* Have host's ___chkstk_ms */
#undef HAVE____CHKSTK_MS

/* Linker version detected at compile time. */
#undef HOST_LINK_VERSION

/* Installation directory for binary executables */
#undef LLVM_BINDIR

/* Time at which LLVM was configured */
#undef LLVM_CONFIGTIME

/* Installation directory for data files */
#undef LLVM_DATADIR

/* Target triple LLVM will generate code for by default */
#undef LLVM_DEFAULT_TARGET_TRIPLE

/* Installation directory for documentation */
#undef LLVM_DOCSDIR

/* Define to enable checks that alter the LLVM C++ ABI */
#undef LLVM_ENABLE_ABI_BREAKING_CHECKS

/* Define if threads enabled */
#undef LLVM_ENABLE_THREADS

/* Define if zlib is enabled */
#undef LLVM_ENABLE_ZLIB

/* Installation directory for config files */
#undef LLVM_ETCDIR

/* Has gcc/MSVC atomic intrinsics */
#undef LLVM_HAS_ATOMICS

/* Host triple LLVM will be executed on */
#undef LLVM_HOST_TRIPLE

/* Installation directory for include files */
#undef LLVM_INCLUDEDIR

/* Installation directory for .info files */
#undef LLVM_INFODIR

/* Installation directory for man pages */
#undef LLVM_MANDIR

/* LLVM architecture name for the native architecture, if available */
#undef LLVM_NATIVE_ARCH

/* LLVM name for the native AsmParser init function, if available */
#undef LLVM_NATIVE_ASMPARSER

/* LLVM name for the native AsmPrinter init function, if available */
#undef LLVM_NATIVE_ASMPRINTER

/* LLVM name for the native Disassembler init function, if available */
#undef LLVM_NATIVE_DISASSEMBLER

/* LLVM name for the native Target init function, if available */
#undef LLVM_NATIVE_TARGET

/* LLVM name for the native TargetInfo init function, if available */
#undef LLVM_NATIVE_TARGETINFO

/* LLVM name for the native target MC init function, if available */
#undef LLVM_NATIVE_TARGETMC

/* Define if this is Unixish platform */
#undef LLVM_ON_UNIX

/* Define if this is Win32ish platform */
#undef LLVM_ON_WIN32

/* Define to path to dot program if found or 'echo dot' otherwise */
#undef LLVM_PATH_DOT

/* Installation prefix directory */
#undef LLVM_PREFIX

/* Define if we have the Intel JIT API runtime support library */
#undef LLVM_USE_INTEL_JITEVENTS

/* Define if we have the oprofile JIT-support library */
#undef LLVM_USE_OPROFILE

/* Major version of the LLVM API */
#undef LLVM_VERSION_MAJOR

/* Minor version of the LLVM API */
#undef LLVM_VERSION_MINOR

/* Patch version of the LLVM API */
#undef LLVM_VERSION_PATCH

/* LLVM version string */
#undef LLVM_VERSION_STRING

/* The shared library extension */
#undef LTDL_SHLIB_EXT

/* Define if /dev/zero should be used when mapping RWX memory, or undefine if
   its not necessary */
#undef NEED_DEV_ZERO_FOR_MMAP

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

/* Define to the version of this package. */
#undef PACKAGE_VERSION

/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE

/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
#undef STAT_MACROS_BROKEN

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME

/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME

/* Type of 1st arg on ELM Callback */
#undef WIN32_ELMCB_PCSTR

/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t

/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t

#endif
