#ifndef incl_HPHP_UTIL_HPHP_CONFIG_H_
#define incl_HPHP_UTIL_HPHP_CONFIG_H_

#ifndef FACEBOOK
# define HPHP_OSS 1
#endif

/* Forced defines. These won't change. */
/* Define if built-in ELF support is used for ext_fileinfo */
#define BUILTIN_ELF 1
/* Define for ELF core file support in ext_fileinfo */
#define ELFCORE 1

/* HHVM requires zlib, and we use a bundled version if it isn't present
 * on the build system, so we definitely have this.
 */
#define HAVE_LIBZ 1

/**
 * These headers are known to be present because they are either required
 * for HHVM itself, or else are provided by a bundled component when not
 * present on the build system.
 */
#define HAVE_ZLIB_H 1

/**
 * These functions are known to be present because they are either required
 * for HHVM itself, or else are provided by a bundled component when not
 * present on the build system.
 */
// None for now.

/**
 * Everything below here should be separated into one section for CMake
 * and one for non-CMake builds done by FB.
 *)
 * If you add any defines here or in HHVMGenerateConfig.cmake, you must make
 * sure to update the non-CMake side. If you are not sure if a particular
 * define should be present, ask your FB reviewer.
 */

#ifdef USE_CMAKE
/* #undef ENABLE_AVX2 */
/* #undef ENABLE_AARCH64_CRC */
/* #undef EXECUTION_PROFILER */
#else
/* #undef ENABLE_AVX2 */
/* #undef ENABLE_AARCH64_CRC */
/* #undef EXECUTION_PROFILER */
#endif

/* Checked Headers */
#ifdef USE_CMAKE

#define HAVE_INTTYPES_H 1
#define HAVE_LIMITS_H 1
#define HAVE_UTIME_H 1
#define HAVE_WCHAR_H 1
#define HAVE_WCTYPE_H 1
#define HAVE_SYS_MMAN_H 1
/* #undef HAVE_SYS_UTIME_H */
#else
# define HAVE_INTTYPES_H 1
# define HAVE_LIMITS_H 1
# define HAVE_UTIME_H 1
# define HAVE_WCHAR_H 1
# define HAVE_WCTYPE_H 1
# define HAVE_SYS_MMAN_H 1
/* #undef HAVE_SYS_UTIME_H */
#endif

/* Checked Functions */
#ifdef USE_CMAKE

#define HAVE_GETLINE 1
#define HAVE_MBRTOWC 1
#define HAVE_MKSTEMP 1
#define HAVE_MMAP 1
#define HAVE_STRERROR 1
/* #undef HAVE_STRLCPY */
#define HAVE_STRTOF 1
#define HAVE_STRTOUL 1
#define HAVE_UTIME 1
#define HAVE_UTIMES 1
#else
# define HAVE_GETLINE 1
# define HAVE_MBRTOWC 1
# define HAVE_MKSTEMP 1
# define HAVE_MMAP 1
# define HAVE_STRERROR 1
/* #undef HAVE_STRLCPY */
# define HAVE_STRTOF 1
# define HAVE_STRTOUL 1
# define HAVE_UTIME 1
# define HAVE_UTIMES 1
#endif

#ifdef USE_CMAKE

#define HAVE_TM_ISDST 1
#define HAVE_STRUCT_TM_TM_GMTOFF 1
#define HAVE_STRUCT_TM_TM_ZONE 1
#define HAVE_DAYLIGHT 1
/* #undef MAJOR_IN_MKDEV */
/* #undef MAJOR_IN_SYSMACROS */
#define HAVE_VISIBILITY 1
#else
# define HAVE_TM_ISDST 1
# define HAVE_STRUCT_TM_TM_GMTOFF 1
# define HAVE_STRUCT_TM_TM_ZONE 1
# define HAVE_DAYLIGHT 1
/* #undef MAJOR_IN_MKDEV */
/* #undef MAJOR_IN_SYSMACROS */
# define HAVE_VISIBILITY 1
#endif

#ifdef USE_CMAKE
# if 90 != 90
#  error You need to update the config file for the new builtin extension, and add the define to the FB section
# endif
/* Extensions */
#define ENABLE_EXTENSION_CTYPE 1
#define ENABLE_EXTENSION_HSL_IO 1
#define ENABLE_EXTENSION_HSL_RANDOM 1
#define ENABLE_EXTENSION_HSL_TIME 1
#define ENABLE_EXTENSION_HSL_REGEX 1
#define ENABLE_EXTENSION_FILTER 1
#define ENABLE_EXTENSION_GMP 1
#define ENABLE_EXTENSION_MAIL 1
#define ENABLE_EXTENSION_READLINE 1
#define ENABLE_EXTENSION_GETTEXT 1
#define ENABLE_EXTENSION_XENON 1
#define ENABLE_EXTENSION_VSDEBUG 1
#define ENABLE_EXTENSION_REFLECTION 1
#define ENABLE_EXTENSION_ENUM 1
#define ENABLE_EXTENSION_PDO_MYSQL 1
#define ENABLE_EXTENSION_SHMOP 1
#define ENABLE_EXTENSION_IPC 1
#define ENABLE_EXTENSION_HASH 1
#define ENABLE_EXTENSION_LDAP 1
#define ENABLE_EXTENSION_HH 1
#define ENABLE_EXTENSION_SERVER 1
#define ENABLE_EXTENSION_XHPROF 1
#define ENABLE_EXTENSION_MBSTRING 1
#define ENABLE_EXTENSION_URL 1
#define ENABLE_EXTENSION_STD 1
#define ENABLE_EXTENSION_FACTPARSE 1
#define ENABLE_EXTENSION_INTERVALTIMER 1
#define ENABLE_EXTENSION_ARRAY 1
#define ENABLE_EXTENSION_THRIFT 1
#define ENABLE_EXTENSION_FB 1
#define ENABLE_EXTENSION_POSIX 1
#define ENABLE_EXTENSION_XMLREADER 1
#define ENABLE_EXTENSION_BCMATH 1
#define ENABLE_EXTENSION_SIMPLEXML 1
#define ENABLE_EXTENSION_LIBXML 1
#define ENABLE_EXTENSION_SODIUM 1
#define ENABLE_EXTENSION_MYSQL 1
#define ENABLE_EXTENSION_MYSQLI 1
/* #undef ENABLE_EXTENSION_IMAP */
#define ENABLE_EXTENSION_ICU 1
#define ENABLE_EXTENSION_SQLITE3 1
#define ENABLE_EXTENSION_ICONV 1
#define ENABLE_EXTENSION_RANDOM 1
#define ENABLE_EXTENSION_ZIP 1
#define ENABLE_EXTENSION_PCRE 1
#define ENABLE_EXTENSION_DEBUGGER 1
#define ENABLE_EXTENSION_OBJPROF 1
#define ENABLE_EXTENSION_XML 1
#define ENABLE_EXTENSION_DOMDOCUMENT 1
#define ENABLE_EXTENSION_LZ4 1
#define ENABLE_EXTENSION_JSON 1
#define ENABLE_EXTENSION_APC 1
#define ENABLE_EXTENSION_STREAM 1
#define ENABLE_EXTENSION_WEAKREF 1
#define ENABLE_EXTENSION_MAILPARSE 1
#define ENABLE_EXTENSION_IMAGICK 1
#define ENABLE_EXTENSION_HOTPROFILER 1
#define ENABLE_EXTENSION_MCRYPT 1
#define ENABLE_EXTENSION_GENERATOR 1
#define ENABLE_EXTENSION_XMLWRITER 1
#define ENABLE_EXTENSION_SOCKETS 1
#define ENABLE_EXTENSION_FILEINFO 1
#define ENABLE_EXTENSION_MCROUTER 1
#define ENABLE_EXTENSION_BZ2 1
#define ENABLE_EXTENSION_HH_CLIENT 1
#define ENABLE_EXTENSION_MEMCACHE 1
#define ENABLE_EXTENSION_CURL 1
/* #undef ENABLE_EXTENSION_WATCHMAN */
#define ENABLE_EXTENSION_PDO 1
#define ENABLE_EXTENSION_THREAD 1
#define ENABLE_EXTENSION_STRING 1
#define ENABLE_EXTENSION_ASYNC_MYSQL 1
#define ENABLE_EXTENSION_PROCESS 1
#define ENABLE_EXTENSION_GD 1
#define ENABLE_EXTENSION_FRIBIDI 1
#define ENABLE_EXTENSION_MEMCACHED 1
#define ENABLE_EXTENSION_PDO_SQLITE 1
#define ENABLE_EXTENSION_COLLECTIONS 1
#define ENABLE_EXTENSION_SOAP 1
#define ENABLE_EXTENSION_APACHE 1
#define ENABLE_EXTENSION_DATETIME 1
/* #undef ENABLE_EXTENSION_PGSQL */
#define ENABLE_EXTENSION_SPL 1
#define ENABLE_EXTENSION_XSL 1
#define ENABLE_EXTENSION_OPENSSL 1
#define ENABLE_EXTENSION_PASSWORD 1
#define ENABLE_EXTENSION_SCRYPT 1
/* #undef ENABLE_EXTENSION_SNAPPY */
#define ENABLE_EXTENSION_ASIO 1
#define ENABLE_EXTENSION_ZLIB 1
#else
# define ENABLE_EXTENSION_APACHE 1
# define ENABLE_EXTENSION_APC 1
# define ENABLE_EXTENSION_ASIO 1
# define ENABLE_EXTENSION_ARRAY 1
# define ENABLE_EXTENSION_ASYNC_MYSQL 1
# define ENABLE_EXTENSION_BCMATH 1
# define ENABLE_EXTENSION_BZ2 1
# define ENABLE_EXTENSION_COLLECTIONS 1
# define ENABLE_EXTENSION_CTYPE 1
# define ENABLE_EXTENSION_CURL 1
# define ENABLE_EXTENSION_DATETIME 1
# define ENABLE_EXTENSION_DEBUGGER 1
# define ENABLE_EXTENSION_DOMDOCUMENT 1
# define ENABLE_EXTENSION_ENUM 1
# define ENABLE_EXTENSION_FACTPARSE 1
# define ENABLE_EXTENSION_FB 1
# define ENABLE_EXTENSION_FILEINFO 1
# define ENABLE_EXTENSION_FILTER 1
/* #undef ENABLE_EXTENSION_FRIBIDI */
# define ENABLE_EXTENSION_GD 1
# define ENABLE_EXTENSION_GETTEXT 1
# define ENABLE_EXTENSION_GENERATOR 1
# define ENABLE_EXTENSION_HASH 1
# define ENABLE_EXTENSION_GMP 1
# define ENABLE_EXTENSION_HH 1
# define ENABLE_EXTENSION_HH_CLIENT 1
# define ENABLE_EXTENSION_HOTPROFILER 1
# define ENABLE_EXTENSION_HSL_IO 1
# define ENABLE_EXTENSION_HSL_RANDOM 1
# define ENABLE_EXTENSION_HSL_REGEX 1
# define ENABLE_EXTENSION_HSL_TIME 1
# define ENABLE_EXTENSION_ICU 1
# define ENABLE_EXTENSION_ICONV 1
# define ENABLE_EXTENSION_IMAGICK 1
# define ENABLE_EXTENSION_IMAP 1
# define ENABLE_EXTENSION_INTERVALTIMER 1
# define ENABLE_EXTENSION_IPC 1
# define ENABLE_EXTENSION_JSON 1
# define ENABLE_EXTENSION_LDAP 1
# define ENABLE_EXTENSION_LIBSODIUM 1
# define ENABLE_EXTENSION_LIBXML 1
# define ENABLE_EXTENSION_LZ4 1
# define ENABLE_EXTENSION_MAIL 1
# define ENABLE_EXTENSION_MAILPARSE 1
# define ENABLE_EXTENSION_MBSTRING 1
# define ENABLE_EXTENSION_MCROUTER 1
# define ENABLE_EXTENSION_MCRYPT 1
# define ENABLE_EXTENSION_MEMCACHED 1
# define ENABLE_EXTENSION_MYSQL 1
# define ENABLE_EXTENSION_MYSQLI 1
# define ENABLE_EXTENSION_MEMCACHE 1
# define ENABLE_EXTENSION_OBJPROF 1
# define ENABLE_EXTENSION_OPENSSL 1
# define ENABLE_EXTENSION_PASSWORD 1
# define ENABLE_EXTENSION_PCRE 1
# define ENABLE_EXTENSION_PDO 1
# define ENABLE_EXTENSION_PDO_MYSQL 1
# define ENABLE_EXTENSION_PDO_SQLITE 1
/* #undef ENABLE_EXTENSION_PGSQL */
# define ENABLE_EXTENSION_POSIX 1
# define ENABLE_EXTENSION_PROCESS 1
# define ENABLE_EXTENSION_RANDOM 1
# define ENABLE_EXTENSION_READLINE 1
# define ENABLE_EXTENSION_REFLECTION 1
# define ENABLE_EXTENSION_SCRYPT 1
# define ENABLE_EXTENSION_SERVER 1
# define ENABLE_EXTENSION_SHMOP 1
# define ENABLE_EXTENSION_SIMPLEXML 1
# define ENABLE_EXTENSION_SNAPPY 1
# define ENABLE_EXTENSION_SOAP 1
# define ENABLE_EXTENSION_SOCKETS 1
# define ENABLE_EXTENSION_SPL 1
# define ENABLE_EXTENSION_SQLITE3 1
# define ENABLE_EXTENSION_STD 1
# define ENABLE_EXTENSION_STREAM 1
# define ENABLE_EXTENSION_STRING 1
# define ENABLE_EXTENSION_THREAD 1
# define ENABLE_EXTENSION_THRIFT 1
# define ENABLE_EXTENSION_URL 1
# define ENABLE_EXTENSION_VSDEBUG 1
# define ENABLE_EXTENSION_WEAKREF 1
# define ENABLE_EXTENSION_XENON 1
# define ENABLE_EXTENSION_XHPROF 1
# define ENABLE_EXTENSION_XMLREADER 1
# define ENABLE_EXTENSION_XML 1
# define ENABLE_EXTENSION_XSL 1
# define ENABLE_EXTENSION_ZIP 1
# define ENABLE_EXTENSION_WATCHMAN 1
# define ENABLE_EXTENSION_XMLWRITER 1
# define ENABLE_EXTENSION_ZLIB 1
#endif

#ifdef USE_CMAKE
/* We try to use PHP_BINDIR/hh_single_compile - but allow this too so that we
 * can run out of a build tree without running 'make install'
 *
 * Allow opting out out of this behavior (e.g. release builds probably shouldn't
 * be configured to look for executables in /tmp/, /home, /Users etc).
 */
#ifndef NO_HACKC_FALLBACK_PATH
#define HACKC_FALLBACK_PATH "/tmp/slackrepo/SBo/slackrepo.EoLqCK/build_hhvm/hhvm-4.8.6/hphp/hack/bin/hh_single_compile"
#endif
#endif

#endif
