#ifndef _FOLLY_CONFIG_H
#define _FOLLY_CONFIG_H 1

/* config.h.in.  Generated from configure.ac by autoheader.  */

/* Define to "final" if the compiler supports C++11 "final" */
#define FOLLY_FINAL final

/* Define to gflags namespace (usually "google" or "gflags") */
#define FOLLY_GFLAGS_NAMESPACE google

/* Define to 1 if you have the <bits/c++config.h> header file. */
/* #undef FOLLY_HAVE_BITS_C__CONFIG_H */

/* Define to 1 if you have the <bits/functexcept.h> header file. */
/* #undef FOLLY_HAVE_BITS_FUNCTEXCEPT_H */

/* define if the Boost library is available */
#define FOLLY_HAVE_BOOST 1

/* define if the Boost::Context library is available */
/* #undef FOLLY_HAVE_BOOST_CONTEXT */

/* define if the Boost::Filesystem library is available */
/* #undef FOLLY_HAVE_BOOST_FILESYSTEM */

/* define if the Boost::PROGRAM_OPTIONS library is available */
/* #undef FOLLY_HAVE_BOOST_PROGRAM_OPTIONS */

/* define if the Boost::Regex library is available */
#define FOLLY_HAVE_BOOST_REGEX 1

/* define if the Boost::System library is available */
#define FOLLY_HAVE_BOOST_SYSTEM 1

/* define if the Boost::Thread library is available */
#define FOLLY_HAVE_BOOST_THREAD 1

/* Define to 1 if you have the <byteswap.h> header file. */
#define FOLLY_HAVE_BYTESWAP_H 1

/* Define to 1 if we support clock_gettime(2). */
#define FOLLY_HAVE_CLOCK_GETTIME 1

/* Define to 1 if strlen(3) is constexpr. */
/* #undef FOLLY_HAVE_CONSTEXPR_STRLEN */

/* Define to 1 if we have cplus_demangle_v3_callback. */
/* #undef FOLLY_HAVE_CPLUS_DEMANGLE_V3_CALLBACK */

/* Define if you want to support deprecated associative containers */
/* #undef FOLLY_HAVE_DEPRECATED_ASSOC */

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

/* Define to 1 if you have the <emmintrin.h> header file. */
#if defined(__i386__) || defined(__x86_64__)
#define FOLLY_HAVE_EMMINTRIN_H 1
#else
/* #undef FOLLY_HAVE_EMMINTRIN_H */
#endif

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

/* Define to 1 if you have the <features.h> header file. */
#define FOLLY_HAVE_FEATURES_H 1

/* Define to 1 if you have the `getdelim' function. */
#define FOLLY_HAVE_GETDELIM 1

/* Define to 1 if you have the `gettimeofday' function. */
#define FOLLY_HAVE_GETTIMEOFDAY 1

/* Define to 1 if the compiler supports ifunc */
#define FOLLY_HAVE_IFUNC 1

/* Define if we have __int128 */
/* #undef FOLLY_HAVE_INT128_T */

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

/* Define to 1 if you have the `double-conversion' library
   (-ldouble-conversion). */
#define FOLLY_HAVE_LIBDOUBLE_CONVERSION 1

/* Define to 1 if you have the `event' library (-levent). */
#define FOLLY_HAVE_LIBEVENT 1

/* Define to 1 if you have the `gflags' library (-lgflags). */
#define FOLLY_HAVE_LIBGFLAGS 1

/* Define to 1 if you have the `glog' library (-lglog). */
#define FOLLY_HAVE_LIBGLOG 1

/* Define to 1 if you have the `jemalloc' library (-ljemalloc). */
#define FOLLY_HAVE_LIBJEMALLOC 1

/* Define to 1 if you have the `lz4' library (-llz4). */
#define FOLLY_HAVE_LIBLZ4 1

/* Define to 1 if you have the `lzma' library (-llzma). */
#define FOLLY_HAVE_LIBLZMA 1

/* Define to 1 if you have the `snappy' library (-lsnappy). */
#define FOLLY_HAVE_LIBSNAPPY 1

/* Define to 1 if you have the `ssl' library (-lssl). */
#define FOLLY_HAVE_LIBSSL 1

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

/* Define to 1 if you have the <limits.h> header file. */
#define FOLLY_HAVE_LIMITS_H 1

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

/* Define to 1 if you have the `malloc_size' function. */
/* #undef FOLLY_HAVE_MALLOC_SIZE */

/* Define to 1 if you have the `malloc_usable_size' function. */
#define FOLLY_HAVE_MALLOC_USABLE_SIZE 1

/* Define to 1 if you have the `memmove' function. */
#define FOLLY_HAVE_MEMMOVE 1

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

/* Define to 1 if you have the `memrchr' function. */
#define FOLLY_HAVE_MEMRCHR 1

/* Define to 1 if you have the `memset' function. */
#define FOLLY_HAVE_MEMSET 1

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

/* Define to 1 if you have the `pipe2' function. */
#define FOLLY_HAVE_PIPE2 1

/* Define to 1 if you have the `pow' function. */
#define FOLLY_HAVE_POW 1

/* Define to 1 if the compiler supports pthread_atfork */
#define FOLLY_HAVE_PTHREAD_ATFORK 1

/* Define to 1 if the system has the type `pthread_spinlock_t'. */
/* #undef FOLLY_HAVE_PTHREAD_SPINLOCK_T */

/* Define to 1 if you have the `pthread_yield' function. */
/* #undef FOLLY_HAVE_PTHREAD_YIELD */

/* Define to 1 if the system has the type `ptrdiff_t'. */
/* #undef FOLLY_HAVE_PTRDIFF_T */

/* Define to 1 if you have the <sched.h> header file. */
#define FOLLY_HAVE_SCHED_H 1

/* Define to 1 if you have the `sched_yield' function. */
#define FOLLY_HAVE_SCHED_YIELD 1

/* Define to 1 if stdbool.h conforms to C99. */
/* #undef FOLLY_HAVE_STDBOOL_H */

/* Define if g++ supports C++0x features. */
#define FOLLY_HAVE_STDCXX_0X 1

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

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

/* Define to 1 if we have a usable std::is_trivially_copyable<T>
   implementation. */
#define FOLLY_HAVE_STD__IS_TRIVIALLY_COPYABLE 1

/* Define to 1 if std::this_thread::sleep_for() is defined. */
#define FOLLY_HAVE_STD__THIS_THREAD__SLEEP_FOR 1

/* Define to 1 if you have the `strerror' function. */
#define FOLLY_HAVE_STRERROR 1

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

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

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

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

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

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

/* Define to 1 if the vsnprintf supports returning errors on bad format
   strings. */
#define FOLLY_HAVE_VSNPRINTF_ERRORS 1

/* Define to 1 if the linker supports weak symbols. */
#define FOLLY_HAVE_WEAK_SYMBOLS 1

/* Define to 1 if the runtime supports XSI-style strerror_r */
/* #undef FOLLY_HAVE_XSI_STRERROR_R */

/* Define to 1 if the system has the type `_Bool'. */
#define FOLLY_HAVE__BOOL 1

/* Define to the sub-directory in which libtool stores uninstalled libraries.
   */
#define FOLLY_LT_OBJDIR ".lib/"

/* Define to "override" if the compiler supports C++11 "override" */
#define FOLLY_OVERRIDE override

/* Name of package */
#define FOLLY_PACKAGE "folly"

/* Define to the address where bug reports for this package should be sent. */
#define FOLLY_PACKAGE_BUGREPORT "folly@fb.com"

/* Define to the full name of this package. */
#define FOLLY_PACKAGE_NAME "folly"

/* Define to the full name and version of this package. */
#define FOLLY_PACKAGE_STRING "folly 52.0"

/* Define to the one symbol short name of this package. */
#define FOLLY_PACKAGE_TARNAME "folly"

/* Define to the home page for this package. */
#define FOLLY_PACKAGE_URL ""

/* Define to the version of this package. */
#define FOLLY_PACKAGE_VERSION "52.0"

/* Define to 1 if you have the ANSI C header files. */
#define FOLLY_STDC_HEADERS 1

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

/* Define to 1 if the gflags namespace is not "gflags" */
#define FOLLY_UNUSUAL_GFLAGS_NAMESPACE 1

/* Define to 1 if we're using libc++. */
#define FOLLY_USE_LIBCPP 1

/* Version number of package */
#define FOLLY_VERSION "52.0"

/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */

/* Define to `__inline__' or `__inline' if that's what the C compiler
   calls it, or to nothing if 'inline' is not supported under any name.  */
#ifndef __cplusplus
/* #undef inline */
#endif

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

/* Define to empty if the keyword `volatile' does not work. Warning: valid
   code using `volatile' can become incorrect without. Disable with care. */
/* #undef volatile */

#endif
