#ifndef Py_CONFIG_H
#define Py_CONFIG_H

/* config.h.
 * At some time in the past, generated automatically by/from configure.
 * now maintained manually.
 */

/* build environment */
#define PLATFORM	"os2emx"
#define COMPILER	"[EMX GCC " __VERSION__ "]"
#define PYOS_OS2	1
#define PYCC_GCC	1

/* default location(s) */
#ifndef PREFIX
#define PREFIX		""
#endif
#ifndef PYTHONPATH
#define PYTHONPATH	"./Lib;./Lib/plat-" PLATFORM \
			";./Lib/lib-dynload;./Lib/site-packages"
#endif

/* Debugging */
#ifndef Py_DEBUG
/*#define Py_DEBUG 1*/
#endif

/* if building an extension or wrapper executable,
 * mark Python API symbols "extern" so that symbols
 * imported from the Python core DLL aren't duplicated.
 */
#ifdef Py_BUILD_CORE
#  define PyAPI_FUNC(RTYPE)	RTYPE
#else
#  define PyAPI_FUNC(RTYPE)	extern RTYPE
#endif
#define PyAPI_DATA(RTYPE)	extern RTYPE
#define PyMODINIT_FUNC	void

/* Use OS/2 flavour of threads */
#define WITH_THREAD	1
#define OS2_THREADS	1

/* We want sockets */
#define TCPIPV4		1
#define USE_SOCKET	1
#define socklen_t	int
#define FD_SETSIZE      512     /* lots of sockets */

/* enable the Python object allocator */
#define	WITH_PYMALLOC	1

/* enable the GC module */
#define WITH_CYCLE_GC	1

/* Define if you want documentation strings in extension modules */
#define WITH_DOC_STRINGS 1

/* Unicode related */
#define Py_USING_UNICODE 1
#define PY_UNICODE_TYPE	wchar_t
#define Py_UNICODE_SIZE SIZEOF_SHORT

/* system capabilities */
#define HAVE_TTYNAME	1
#define HAVE_WAIT	1
#define HAVE_GETEGID    1
#define HAVE_GETEUID    1
#define HAVE_GETGID     1
#define HAVE_GETPPID    1
#define HAVE_GETUID     1
#define HAVE_OPENDIR    1
#define HAVE_PIPE       1
#define HAVE_POPEN      1
#define HAVE_SYSTEM	1
#define HAVE_TTYNAME	1
#define HAVE_DYNAMIC_LOADING	1

/* if port of GDBM installed, it includes NDBM emulation */
#define HAVE_NDBM_H 1

/* need this for spawnv code in posixmodule (cloned from WIN32 def'n) */
typedef long intptr_t;

/* we don't have tm_zone but do have the external array tzname */
#define HAVE_TZNAME 1

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

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

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

/* Define this if you have the type long long. */
#define HAVE_LONG_LONG 1

/* Define if your compiler supports function prototypes. */
#define HAVE_PROTOTYPES 1

/* Define if your compiler supports variable length function prototypes
 * (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>.
 */
#define HAVE_STDARG_PROTOTYPES 1

/* Define if malloc(0) returns a NULL pointer. */
#define MALLOC_ZERO_RETURNS_NULL 1

/* Define to force use of thread-safe errno, h_errno, and other functions. */
#define _REENTRANT 1

/* Define if you can safely include both <sys/select.h> and <sys/time.h>
 * (which you can't on SCO ODT 3.0).
 */
#define SYS_SELECT_WITH_SYS_TIME 1

/* The number of bytes in an off_t. */
#define SIZEOF_OFF_T 4

/* The number of bytes in an time_t. */
#define SIZEOF_TIME_T 4

/* The number of bytes in a short. */
#define SIZEOF_SHORT 2

/* The number of bytes in a int. */
#define SIZEOF_INT 4

/* The number of bytes in a long. */
#define SIZEOF_LONG 4

/* The number of bytes in a long long. */
#define SIZEOF_LONG_LONG 8

/* The number of bytes in a void *. */
#define SIZEOF_VOID_P 4

/* Define if you have the alarm function. */
#define HAVE_ALARM 1

/* Define if you have the clock function. */
#define HAVE_CLOCK 1

/* Define if you have the dup2 function. */
#define HAVE_DUP2 1

/* Define if you have the execv function. */
#define HAVE_EXECV 1

/* Define if you have the spawnv function. */
#define HAVE_SPAWNV 1

/* Define if you have the flock function. */
#define HAVE_FLOCK 1

/* Define if you have the fork function. */
#define HAVE_FORK 1

/* Define if you have the fsync function. */
#define HAVE_FSYNC 1

/* Define if you have the ftime function. */
#define HAVE_FTIME 1

/* Define if you have the ftruncate function. */
#define HAVE_FTRUNCATE 1

/* Define if you have the getcwd function. */
#define HAVE_GETCWD 1

/* Define if you have the getpeername function. */
#define HAVE_GETPEERNAME 1

/* Define if you have the getpgrp function. */
#define HAVE_GETPGRP 1

/* Define if you have the getpid function. */
#define HAVE_GETPID 1

/* Define if you have the getpwent function. */
#define HAVE_GETPWENT 1

/* Define if you have the gettimeofday function. */
#define HAVE_GETTIMEOFDAY 1

/* Define if you have the getwd function. */
#define HAVE_GETWD 1

/* Define if you have the hypot function. */
#define HAVE_HYPOT 1

/* Define if you have the kill function. */
#define HAVE_KILL 1

/* Define if you have the memmove function. */
#define HAVE_MEMMOVE 1

/* Define if you have the mktime function. */
#define HAVE_MKTIME 1

/* Define if you have the pause function. */
#define HAVE_PAUSE 1

/* Define if you have the putenv function. */
#define HAVE_PUTENV 1

/* Define if you have the select function. */
#define HAVE_SELECT 1

/* Define if you have the setgid function. */
#define HAVE_SETGID 1

/* Define if you have the setlocale function. */
#define HAVE_SETLOCALE 1

/* Define if you have the setpgid function. */
#define HAVE_SETPGID 1

/* Define if you have the setuid function. */
#define HAVE_SETUID 1

/* Define if you have the setvbuf function. */
#define HAVE_SETVBUF 1

/* Define if you have the sigaction function. */
#define HAVE_SIGACTION 1

/* Define if you have the strerror function. */
#define HAVE_STRERROR 1

/* Define if you have the strftime function. */
#define HAVE_STRFTIME 1

/* Define if you have the tcgetpgrp function. */
#define HAVE_TCGETPGRP 1

/* Define if you have the tcsetpgrp function. */
#define HAVE_TCSETPGRP 1

/* Define if you have the tmpfile function.  */
#define HAVE_TMPFILE 1

/* Define if you have the times function. */
#define HAVE_TIMES 1

/* Define if you have the truncate function. */
#define HAVE_TRUNCATE 1

/* Define if you have the uname function. */
#define HAVE_UNAME 1

/* Define if you have the waitpid function. */
#define HAVE_WAITPID 1

/* Define if you have the <dirent.h> header file. */
#define HAVE_DIRENT_H 1

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

/* Define if you have the <ncurses.h> header file. */
#define HAVE_NCURSES_H 1

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

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

/* Define if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1

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

/* Define if you have the <sys/times.h> header file. */
#define HAVE_SYS_TIMES_H 1

/* Define if you have the <sys/un.h> header file. */
#define HAVE_SYS_UN_H 1

/* Define if you have the <sys/utsname.h> header file. */
#define HAVE_SYS_UTSNAME_H 1

/* Define if you have the <sys/wait.h> header file. */
#define HAVE_SYS_WAIT_H 1

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

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

/* EMX has an snprintf(). */
#define HAVE_SNPRINTF 1

#endif /* !Py_CONFIG_H */

