/* 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 build with coverage enabled. (--enable-coverage) */
#undef ENABLE_COVERAGE

/* 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 <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_C_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 `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 <uuid/uuid.h> header file. */
#undef HAVE_UUID_UUID_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 the <yaml.h> header file. */
#undef HAVE_YAML_H

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

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

/* 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 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
