/* src/include/pg_config.h.in.  Generated from configure.in by autoheader.  */

/* Define to the type of arg 1 of 'accept' */
#undef ACCEPT_TYPE_ARG1

/* Define to the type of arg 2 of 'accept' */
#undef ACCEPT_TYPE_ARG2

/* Define to the type of arg 3 of 'accept' */
#undef ACCEPT_TYPE_ARG3

/* Define to the return type of 'accept' */
#undef ACCEPT_TYPE_RETURN

/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD

/* The alignment requirement of a `double'. */
#undef ALIGNOF_DOUBLE

/* The alignment requirement of a `int'. */
#undef ALIGNOF_INT

/* The alignment requirement of a `long'. */
#undef ALIGNOF_LONG

/* The alignment requirement of a `long long int'. */
#undef ALIGNOF_LONG_LONG_INT

/* The alignment requirement of a `short'. */
#undef ALIGNOF_SHORT

/* Define to the default TCP port number on which the server listens and to
   which clients will try to connect. This can be overridden at run-time, but
   it's convenient if your clients have the right default compiled in.
   (--with-pgport=PORTNUM) */
#undef DEF_PGPORT

/* Define to the default TCP port number as a string constant. */
#undef DEF_PGPORT_STR

/* Define to 1 to enable DTrace support. (--enable-dtrace) */
#undef ENABLE_DTRACE

/* Define to build with GSSAPI support. (--with-gssapi) */
#undef ENABLE_GSS

/* Define to 1 if you want National Language Support. (--enable-nls) */
#undef ENABLE_NLS

/* Define to 1 to build client libraries as thread-safe code.
   (--enable-thread-safety) */
#undef ENABLE_THREAD_SAFETY

/* Define to 1 if getpwuid_r() takes a 5th argument. */
#undef GETPWUID_R_5ARG

/* Define to 1 if gettimeofday() takes only 1 argument. */
#undef GETTIMEOFDAY_1ARG

#ifdef GETTIMEOFDAY_1ARG
# define gettimeofday(a,b) gettimeofday(a)
#endif

/* Greenplum major version as a string */
#undef GP_MAJORVERSION

/* A string containing the Greenplum version number */
#undef GP_VERSION

/* Greenplum version as a number */
#undef GP_VERSION_NUM

/* Define to 1 if you have the `atexit' function. */
#undef HAVE_ATEXIT

/* Define to 1 if you have the <auth-client.h> header file. */
#undef HAVE_AUTH_CLIENT_H

/* Define to 1 if you have the <boost/chrono.hpp> header file. */
#undef HAVE_BOOST_CHRONO_HPP

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

/* Define to 1 if you have the `cbrt' function. */
#undef HAVE_CBRT

/* Define to 1 if you have the `class' function. */
#undef HAVE_CLASS

/* Define to 1 if you have the `crypt' function. */
#undef HAVE_CRYPT

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

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

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

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

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

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

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

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

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

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

/* Define to 1 if you have the `dlopen' function. */
#undef HAVE_DLOPEN

/* Define to 1 if you have the <editline/history.h> header file. */
#undef HAVE_EDITLINE_HISTORY_H

/* Define to 1 if you have the <editline/readline.h> header file. */
#undef HAVE_EDITLINE_READLINE_H

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

/* Define to 1 if you have the `ERR_set_mark' function. */
#undef HAVE_ERR_SET_MARK

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

/* Define to 1 if you have the `fcvt' function. */
#undef HAVE_FCVT

/* Define to 1 if you have the `fdatasync' function. */
#undef HAVE_FDATASYNC

/* Define to 1 if you have finite(). */
#undef HAVE_FINITE

/* Define to 1 if you have the `fpclass' function. */
#undef HAVE_FPCLASS

/* Define to 1 if you have the `fp_class' function. */
#undef HAVE_FP_CLASS

/* Define to 1 if you have the `fp_class_d' function. */
#undef HAVE_FP_CLASS_D

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

/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#undef HAVE_FSEEKO

/* Define to 1 if your compiler understands __func__. */
#undef HAVE_FUNCNAME__FUNC

/* Define to 1 if your compiler understands __FUNCTION__. */
#undef HAVE_FUNCNAME__FUNCTION

/* Define to 1 if you have the `getaddrinfo' function. */
#undef HAVE_GETADDRINFO

/* Define to 1 if you have the `gethostbyname_r' function. */
#undef HAVE_GETHOSTBYNAME_R

/* Define to 1 if you have the `getifaddrs' function. */
#undef HAVE_GETIFADDRS

/* Define to 1 if you have the `getopt' function. */
#undef HAVE_GETOPT

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

/* Define to 1 if you have the `getopt_long' function. */
#undef HAVE_GETOPT_LONG

/* Define to 1 if you have the `getpeereid' function. */
#undef HAVE_GETPEEREID

/* Define to 1 if you have the `getpeerucred' function. */
#undef HAVE_GETPEERUCRED

/* Define to 1 if you have the `getpwuid_r' function. */
#undef HAVE_GETPWUID_R

/* 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 you have the <gssapi/gssapi.h> header file. */
#undef HAVE_GSSAPI_GSSAPI_H

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

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

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

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

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

/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON

/* Define to 1 if the system has the type `int64'. */
#undef HAVE_INT64

/* Define to 1 if the system has the type `int8'. */
#undef HAVE_INT8

/* Define to 1 if the system has the type `intptr_t'. */
#undef HAVE_INTPTR_T

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

/* Define to 1 if you have the global variable 'int opterr'. */
#undef HAVE_INT_OPTERR

/* Define to 1 if you have the global variable 'int optreset'. */
#undef HAVE_INT_OPTRESET

/* Define to 1 if you have the global variable 'int timezone'. */
#undef HAVE_INT_TIMEZONE

/* Define to 1 if you have support for IPv6. */
#undef HAVE_IPV6

/* Define to 1 if you have isinf(). */
#undef HAVE_ISINF

/* Define to 1 if you have the <json-c/json.h> header file. */
#undef HAVE_JSON_JSON_H

/* Define to 1 if you have the <kernel/image.h> header file. */
#undef HAVE_KERNEL_IMAGE_H

/* Define to 1 if you have the <kernel/OS.h> header file. */
#undef HAVE_KERNEL_OS_H

/* Define to 1 if `e_data' is a member of `krb5_error'. */
#undef HAVE_KRB5_ERROR_E_DATA

/* Define to 1 if `text.data' is a member of `krb5_error'. */
#undef HAVE_KRB5_ERROR_TEXT_DATA

/* Define to 1 if you have krb5_free_unparsed_name */
#undef HAVE_KRB5_FREE_UNPARSED_NAME

/* Define to 1 if `client' is a member of `krb5_ticket'. */
#undef HAVE_KRB5_TICKET_CLIENT

/* Define to 1 if `enc_part2' is a member of `krb5_ticket'. */
#undef HAVE_KRB5_TICKET_ENC_PART2

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

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

/* Define to 1 if you have the `crypto' library (-lcrypto). */
#undef HAVE_LIBCRYPTO

/* Define to 1 if you have the `eay32' library (-leay32). */
#undef HAVE_LIBEAY32

/* Define to 1 if you have the `esmtp' library (-lesmtp). */
#undef HAVE_LIBESMTP

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

/* Define to 1 if you have the `ldap' library (-lldap). */
#undef HAVE_LIBLDAP

/* Define to 1 if you have the `ldap_r' library (-lldap_r). */
#undef HAVE_LIBLDAP_R

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

/* Define to 1 if you have the `netsnmp' library (-lnetsnmp). */
#undef HAVE_LIBNETSNMP

/* Define to 1 if you have the `numa' library (-lnuma). */
#undef HAVE_LIBNUMA

/* Define to 1 if you have the `pam' library (-lpam). */
#undef HAVE_LIBPAM

/* Define if you have a function readline library */
#undef HAVE_LIBREADLINE

/* Define to 1 if you have the `rt' library (-lrt). */
#undef HAVE_LIBRT

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

/* Define to 1 if you have the `ssleay32' library (-lssleay32). */
#undef HAVE_LIBSSLEAY32

/* Define to 1 if you have the `wldap32' library (-lwldap32). */
#undef HAVE_LIBWLDAP32

/* Define to 1 if you have the <libyarn/LibYarnClientC.h> header file. */
#undef HAVE_LIBYARN_LIBYARNCLIENTC_H

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

/* Define to 1 if constants of type 'long long int' should have the suffix LL.
   */
#undef HAVE_LL_CONSTANTS

/* Define to 1 if `long int' works and is 64 bits. */
#undef HAVE_LONG_INT_64

/* Define to 1 if the system has the type `long long int'. */
#undef HAVE_LONG_LONG_INT

/* Define to 1 if `long long int' works and is 64 bits. */
#undef HAVE_LONG_LONG_INT_64

/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE

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

/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H

/* Define to 1 if you have the <netinet/tcp.h> header file. */
#undef HAVE_NETINET_TCP_H

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

/* Define to 1 if you have the <net-snmp/net-snmp-config.h> header file. */
#undef HAVE_NET_SNMP_NET_SNMP_CONFIG_H

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

/* Define to 1 if you have the `on_exit' function. */
#undef HAVE_ON_EXIT

/* Define to 1 if you have the <pam/pam_appl.h> header file. */
#undef HAVE_PAM_PAM_APPL_H

/* Define to 1 if you have the `poll' function. */
#undef HAVE_POLL

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

/* Define to 1 if you have the `posix_fadvise' function. */
#undef HAVE_POSIX_FADVISE

/* Define to 1 if you have the POSIX signal interface. */
#undef HAVE_POSIX_SIGNALS

/* Define to 1 if you have the `pstat' function. */
#undef HAVE_PSTAT

/* Define to 1 if the PS_STRINGS thing exists. */
#undef HAVE_PS_STRINGS

/* Define if you have POSIX threads libraries and header files. */
#undef HAVE_PTHREAD

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

/* Define to 1 if you have the `random' function. */
#undef HAVE_RANDOM

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

/* Define to 1 if you have the <readline/history.h> header file. */
#undef HAVE_READLINE_HISTORY_H

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

/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK

/* Define to 1 if you have the `replace_history_entry' function. */
#undef HAVE_REPLACE_HISTORY_ENTRY

/* Define to 1 if you have the `rint' function. */
#undef HAVE_RINT

/* Define to 1 if you have the global variable
   'rl_completion_append_character'. */
#undef HAVE_RL_COMPLETION_APPEND_CHARACTER

/* Define to 1 if you have the `rl_completion_matches' function. */
#undef HAVE_RL_COMPLETION_MATCHES

/* Define to 1 if you have the `rl_filename_completion_function' function. */
#undef HAVE_RL_FILENAME_COMPLETION_FUNCTION

/* Define to 1 if you have the <security/pam_appl.h> header file. */
#undef HAVE_SECURITY_PAM_APPL_H

/* Define to 1 if you have the `setproctitle' function. */
#undef HAVE_SETPROCTITLE

/* Define to 1 if you have the `setsid' function. */
#undef HAVE_SETSID

/* Define to 1 if you have the `sigprocmask' function. */
#undef HAVE_SIGPROCMASK

/* Define to 1 if you have sigsetjmp(). */
#undef HAVE_SIGSETJMP

/* Define to 1 if the system has the type `sig_atomic_t'. */
#undef HAVE_SIG_ATOMIC_T

/* Define to 1 if you have the <snappy-c.h> header file. */
#undef HAVE_SNAPPY_C_H

/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF

/* Define to 1 if you have spinlocks. */
#undef HAVE_SPINLOCKS

/* Define to 1 if you have the `srandom' function. */
#undef HAVE_SRANDOM

/* 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 `strdup' function. */
#undef HAVE_STRDUP

/* 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 cpp supports the ANSI # stringizing operator. */
#undef HAVE_STRINGIZE

/* 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 `strlcat' function. */
#undef HAVE_STRLCAT

/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY

/* Define to 1 if you have the `strtol' function. */
#undef HAVE_STRTOL

/* 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 `strtoul' function. */
#undef HAVE_STRTOUL

/* Define to 1 if you have the `strtoull' function. */
#undef HAVE_STRTOULL

/* Define to 1 if you have the `strtouq' function. */
#undef HAVE_STRTOUQ

/* Define to 1 if the system has the type `struct addrinfo'. */
#undef HAVE_STRUCT_ADDRINFO

/* Define to 1 if the system has the type `struct cmsgcred'. */
#undef HAVE_STRUCT_CMSGCRED

/* Define to 1 if the system has the type `struct fcred'. */
#undef HAVE_STRUCT_FCRED

/* Define to 1 if the system has the type `struct option'. */
#undef HAVE_STRUCT_OPTION

/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */
#undef HAVE_STRUCT_SOCKADDR_SA_LEN

/* Define to 1 if the system has the type `struct sockaddr_storage'. */
#undef HAVE_STRUCT_SOCKADDR_STORAGE

/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */
#undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY

/* Define to 1 if `ss_len' is a member of `struct sockaddr_storage'. */
#undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN

/* Define to 1 if `__ss_family' is a member of `struct sockaddr_storage'. */
#undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY

/* Define to 1 if `__ss_len' is a member of `struct sockaddr_storage'. */
#undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_LEN

/* Define to 1 if the system has the type `struct sockaddr_un'. */
#undef HAVE_STRUCT_SOCKADDR_UN

/* Define to 1 if the system has the type `struct sockcred'. */
#undef HAVE_STRUCT_SOCKCRED

/* Define to 1 if `tm_zone' is a member of `struct tm'. */
#undef HAVE_STRUCT_TM_TM_ZONE

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

/* Define to 1 if you have the `symlink' function. */
#undef HAVE_SYMLINK

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

/* Define to 1 if you have the syslog interface. */
#undef HAVE_SYSLOG

/* 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/ipc.h> header file. */
#undef HAVE_SYS_IPC_H

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

/* Define to 1 if you have the <sys/pstat.h> header file. */
#undef HAVE_SYS_PSTAT_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/select.h> header file. */
#undef HAVE_SYS_SELECT_H

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

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

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

/* Define to 1 if you have the <sys/sockio.h> header file. */
#undef HAVE_SYS_SOCKIO_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/tas.h> header file. */
#undef HAVE_SYS_TAS_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/un.h> header file. */
#undef HAVE_SYS_UN_H

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

/* Define to 1 if you have the <thrift/protocol/TBinaryProtocol.h> header
   file. */
#undef HAVE_THRIFT_PROTOCOL_TBINARYPROTOCOL_H

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

/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
   `HAVE_STRUCT_TM_TM_ZONE' instead. */
#undef HAVE_TM_ZONE

/* Define to 1 if you have the `towlower' function. */
#undef HAVE_TOWLOWER

/* Define to 1 if you have the external array `tzname'. */
#undef HAVE_TZNAME

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

/* Define to 1 if the system has the type `uint64'. */
#undef HAVE_UINT64

/* Define to 1 if the system has the type `uint8'. */
#undef HAVE_UINT8

/* Define to 1 if the system has the type `uintptr_t'. */
#undef HAVE_UINTPTR_T

/* Define to 1 if the system has the type `union semun'. */
#undef HAVE_UNION_SEMUN

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

/* Define to 1 if you have unix sockets. */
#undef HAVE_UNIX_SOCKETS

/* Define to 1 if you have the `unsetenv' function. */
#undef HAVE_UNSETENV

/* Define to 1 if the system has the type `unsigned long long int'. */
#undef HAVE_UNSIGNED_LONG_LONG_INT

/* Define to 1 if you have the `utime' function. */
#undef HAVE_UTIME

/* Define to 1 if you have the `utimes' function. */
#undef HAVE_UTIMES

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

/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF

/* Define to 1 if you have the `waitpid' function. */
#undef HAVE_WAITPID

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

/* Define to 1 if you have the `wcstombs' function. */
#undef HAVE_WCSTOMBS

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

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

/* Define to 1 if you have __cpuid. */
#undef HAVE__CPUID

/* Define to 1 if you have __get_cpuid. */
#undef HAVE__GET_CPUID

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

/* HAWQ major version as a string */
#undef HQ_MAJORVERSION

/* A string containing the HAWQ version number */
#undef HQ_VERSION

/* HAWQ version as a number */
#undef HQ_VERSION_NUM

/* Define number of bytes required to represent an Int32 in Char format */
#undef INT32_CHAR_SIZE

/* Define to the appropriate snprintf format for 64-bit ints, if any. */
#undef INT64_FORMAT

/* Define to build with Kerberos 5 support. (--with-krb5) */
#undef KRB5

/* Define as the maximum alignment requirement of any C data type. */
#undef MAXIMUM_ALIGNOF

/* Define bytes to use libc memset(). */
#undef MEMSET_LOOP_LIMIT

/* 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 home page for this package. */
#undef PACKAGE_URL

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

/* Define to the name of the default PostgreSQL service principal in Kerberos.
   (--with-krb-srvnam=NAME) */
#undef PG_KRB_SRVNAM

/* PostgreSQL major version as a string */
#undef PG_MAJORVERSION

/* Postgres version HAWQ is based on */
#undef PG_VERSION

/* PostgreSQL version as a number */
#undef PG_VERSION_NUM

/* A string containing the version number, platform, and C compiler */
#undef PG_VERSION_STR

/* Define to 1 to allow profiling output to be saved separately for each
   process. */
#undef PROFILE_PID_DIR

/* Define to the necessary symbol if this constant uses a non-standard name on
   your system. */
#undef PTHREAD_CREATE_JOINABLE

/* The size of `off_t', as computed by sizeof. */
#undef SIZEOF_OFF_T

/* The size of `size_t', as computed by sizeof. */
#undef SIZEOF_SIZE_T

/* The size of `unsigned long', as computed by sizeof. */
#undef SIZEOF_UNSIGNED_LONG

/* The size of `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P

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

/* Define to 1 if strerror_r() returns a int. */
#undef STRERROR_R_INT

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

/* Define to the appropriate snprintf format for unsigned 64-bit ints, if any.
   */
#undef UINT64_FORMAT

/* Define to 1 to build with assertion checks. (--enable-cassert) */
#undef USE_ASSERT_CHECKING

/* Define to 1 to build with Bonjour support. (--with-bonjour) */
#undef USE_BONJOUR

/* Define to 1 to build with debug_break capabilities. (--enable-debugbreak)
   */
#undef USE_DEBUG_BREAK

/* Define to 1 to build with debug_ntuplestore. (--enable-ntuplestore) */
#undef USE_DEBUG_NTUPLESTORE

/* Define to 1 to build with email alert capabilities. (--enable-email) */
#undef USE_EMAIL

/* Define to 1 to build with plan forcing capabilities. (--enable-forceplan)
   */
#undef USE_FORCE_PLAN

/* Define to 1 to build with gphdfs capabilities. (--enable-gphdfs) */
#undef USE_GPHDFS

/* Define to 1 if you want 64-bit integer timestamp and interval support.
   (--enable-integer-datetimes) */
#undef USE_INTEGER_DATETIMES

/* Define to 1 to build with LDAP support. (--with-ldap) */
#undef USE_LDAP

/* Define to select named POSIX semaphores. */
#undef USE_NAMED_POSIX_SEMAPHORES

/* Define to 1 to build with Pivotal Query Optimizer. (--enable-orca) */
#undef USE_ORCA

/* Define to 1 to build with PAM support. (--with-pam) */
#undef USE_PAM

/* Define to 1 to build with hawq ranger plugin. (--enable-rps) */
#undef USE_RANGER

/* Use replacement snprintf() functions. */
#undef USE_REPL_SNPRINTF

/* Define to 1 to use Intel SSE 4.2 CRC instructions with a runtime check. */
#undef USE_SLICING_BY_8_CRC32C

/* Define to 1 to build with snmp capabilities. (--enable-snmp) */
#undef USE_SNMP

/* Define to 1 use Intel SSE 4.2 CRC instructions. */
#undef USE_SSE42_CRC32C

/* Define to 1 to use Intel SSSE 4.2 CRC instructions with a runtime check. */
#undef USE_SSE42_CRC32C_WITH_RUNTIME_CHECK

/* Define to build with (Open)SSL support. (--with-openssl) */
#undef USE_SSL

/* Define to select SysV-style semaphores. */
#undef USE_SYSV_SEMAPHORES

/* Define to select SysV-style shared memory. */
#undef USE_SYSV_SHARED_MEMORY

/* Define to 1 to build with testing utilities. (--enable-testutils) */
#undef USE_TEST_UTILS

/* Define to select unnamed POSIX semaphores. */
#undef USE_UNNAMED_POSIX_SEMAPHORES

/* Define to select Win32-style semaphores. */
#undef USE_WIN32_SEMAPHORES

/* Define to select Win32-style shared memory. */
#undef USE_WIN32_SHARED_MEMORY

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#  undef WORDS_BIGENDIAN
# endif
#endif

/* Enable large inode numbers on Mac OS X 10.5.  */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif

/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS

/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
#undef _LARGEFILE_SOURCE

/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES

/* 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 the type of a signed integer type wide enough to hold a pointer,
   if such a type exists, and if the system does not define it. */
#undef intptr_t

/* Define to empty if the C compiler does not understand signed types. */
#undef signed

/* Define to the type of an unsigned integer type wide enough to hold a
   pointer, if such a type exists, and if the system does not define it. */
#undef uintptr_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
