/**********************************************************************
* config.h. NOT Generated automatically by configure.
*
- * This is a manually maintained version used for the Watcom,
- * Borland and Microsoft Visual C++ compilers on the MS Windows
- * platform, and the IBM VisualAge C/C++ compiler on the OS/2
- * platform. It is a standard part of the Python distribution.
+ * This is a manually maintained version used for the IBM VisualAge
+ * C/C++ compiler on the OS/2 platform. It is a standard part of
+ * the Python distribution.
*
* FILESYSTEM DEFINES:
* The code specific to a particular way of naming files and
* DOSFILESYS PCDOS-Style (for PCDOS, Windows and OS/2)
* MACFILESYS Macintosh-Style
* UNIXFILESYS Unix-Style
- * AMIGAFILESYS AmigaDOS-Style (to-be-supported)
+ * AMIGAFILESYS AmigaDOS-Style
*
* Because of the different compilers and operating systems in
* use on the Intel platform, neither the compiler name nor
* the operating system name is sufficient.
*
- * WINDOWS DEFINES:
- * The code specific to Windows should be wrapped around one of
- * the following #defines
- *
- * MS_WIN32 - Code specific to the MS Win32 API
- * MS_WIN16 - Code specific to the old 16 bit Windows API.
- * MS_WINDOWS - Code specific to Windows, but all versions.
- * MS_COREDLL - Code if the Python core is built as a DLL.
- *
- * Note that the old defines "NT" and "WIN32" are still supported, but
- * will soon be dropped.
- *
- * Also note that neither "_M_IX86" or "_MSC_VER" should be used for
- * any purpose other than "Windows Intel x86 specific" and "Microsoft
- * compiler specific". Therefore, these should be very rare.
- *
* OS/2 DEFINES:
* The code specific to OS/2's Program API should be wrapped around
*
#include <io.h>
-#define HAVE_LIMITS_H
-#define HAVE_HYPOT
-#define DONT_HAVE_SIG_ALARM
-#define DONT_HAVE_SIG_PAUSE
-
-#define LONG_BIT 32
-
/* Configuration Options for Finding Modules */
#define PREFIX ""
#define EXEC_PREFIX ""
+/* Provide a default library so writers of extension modules
+ * won't have to explicitly specify it anymore
+ */
+#pragma library("Python15.lib")
+
/***************************************************/
/* 32-Bit IBM VisualAge C/C++ v3.0 for OS/2 */
/* (Convert Compiler Flags into Useful Switches) */
/***************************************************/
-#if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
-
- #define COMPILER "[VisualAge C/C++]"
- #define PYOS_OS2 /* Define Indicator of Operating System */
- #define PYCC_VACPP /* Define Indicator of C Compiler */
+#define PLATFORM "os2"
+#define COMPILER "[VisualAge C/C++]"
+#define PYOS_OS2 /* Define Indicator of Operating System */
+#define PYCC_VACPP /* Define Indicator of C Compiler */
/* Platform Filesystem */
- #define PYTHONPATH ".;.\\lib;.\\lib\\plat-win;.\\lib\\dos-8x3;.\\lib\\lib-tk"
- #define DOSFILESYS /* OS/2 Uses the DOS File Naming Conventions */
- /* #define IMPORT_8x3_NAMES */
+#define PYTHONPATH ".;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
+#define DOSFILESYS /* OS/2 Uses the DOS File Naming Conventions */
+/* #define IMPORT_8x3_NAMES (let's move up to long filenames) */
/* Platform CPU-Mode Dependencies */
- #define WORD_BIT 32 /* OS/2 is a 32-Bit Operating System */
+#define WORD_BIT 32 /* OS/2 is a 32-Bit Operating System */
+#define LONG_BIT 32
+#define SIZEOF_INT 4 /* Count of Bytes in an (int) */
+#define SIZEOF_LONG 4 /* Count of Bytes in a (long) */
+#define SIZEOF_VOID_P 4 /* Count of Bytes in a (void *) */
+/* #define HAVE_LONG_LONG 1 */ /* VAC++ does not support (long long) */
+/* #define SIZEOF_LONG_LONG 8 */ /* Count of Bytes in a (long long) */
+
+/* Define if type char is unsigned and you are not using gcc. */
+#ifndef __CHAR_UNSIGNED__
+/* #undef __CHAR_UNSIGNED__ */
+#endif
- typedef int mode_t;
- typedef int uid_t;
- typedef int gid_t;
- typedef int pid_t;
+typedef int mode_t;
+typedef int uid_t;
+typedef int gid_t;
+typedef int pid_t;
- #if defined(__MULTI__) /* If Compiler /Gt+ Multithread Option Enabled, */
- #define WITH_THREAD /* Then Enable Threading Throughout Python */
- #define OS2_THREADS /* And Use the OS/2 Flavor of Threads */
- #endif
+#if defined(__MULTI__) /* If Compiler /Gt+ Multithread Option Enabled, */
+ #define WITH_THREAD 1 /* Enable Threading Throughout Python */
+ #define OS2_THREADS 1 /* And Use the OS/2 Flavor of Threads */
+/* #define _REENTRANT 1 */ /* Use thread-safe errno, h_errno, and other fns */
+#endif
/* Compiler Runtime Library Capabilities */
#include <ctype.h>
#include <direct.h>
-
- /* #define VA_LIST_IS_ARRAY */
- #define HAVE_CLOCK /* We support all of the Unix clock() API */
- #define HAVE_STRFTIME /* We have a strftime() formatting function */
- #define HAVE_PUTENV /* We have a putenv() function */
- #define HAVE_SYS_SELECT_H /* We have sys/select.h (under TCP/IP dirs) */
- #define HAVE_PROTOTYPES /* Our Compiler Supports C Function Prototypes */
-
- #ifdef USE_DL_EXPORT
- #define DL_IMPORT(RTYPE) RTYPE _Export
- #endif
-
-#endif /* VAC++ for OS/2 */
-
-/***************************************************/
-/* 32-Bit Microsoft Visual C/C++ v2.0+ for Windows */
-/* (Convert Compiler Flags into Useful Switches) */
-/***************************************************/
-#if defined(_MSC_VER) && _MSC_VER > 850
- /* Start of defines for MS_WIN32 using VC++ 2.0 and up */
- #define NT /* NT is obsolete - please use MS_WIN32 instead */
- #define MS_WIN32
- #define MS_WINDOWS
-
- /* For NT the Python core is in a DLL by default. Test the
- * standard macro MS_COREDLL to find out. If you have an exception
- * you must define MS_NO_COREDLL (do not test this macro)
- */
- #ifndef MS_NO_COREDLL
- #define MS_COREDLL /* Python core is in a DLL */
- #ifndef USE_DL_EXPORT
- #define USE_DL_IMPORT
- #endif /* !USE_DL_EXPORT */
- #endif /* !MS_NO_COREDLL */
-
- #ifdef _M_IX86
- #define COMPILER "[MSC 32 bit (Intel)]"
- #else
- #define COMPILER "[MSC (Unknown)]"
- #endif
-
- /* Platform Filesystem */
- #define PYTHONPATH ".\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
- #define DOSFILESYS /* Windows Uses the DOS File Naming Conventions */
-
- /* Platform CPU-Mode Dependencies */
- #define WORD_BIT 32
-
- typedef int pid_t;
- #define hypot _hypot
-
- /* Compiler Runtime Library Capabilities */
- #pragma warning(disable:4113)
- #include <stdio.h>
-
- #define HAVE_CLOCK /* We support all of the Unix clock() API */
- #define HAVE_STRFTIME /* We have a strftime() formatting function */
- #define NT_THREADS
- #define WITH_THREAD
-
- #ifndef NETSCAPE_PI
- #define USE_SOCKET
- #endif
-
- #ifdef USE_DL_IMPORT
- #define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
- #endif
-
- #ifdef USE_DL_EXPORT
- #define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
- #endif
-#endif /* _MSC_VER && > 850 */
-
-/***************************************************/
-/* 16-Bit Microsoft Visual C/C++ v1.5+ for Windows */
-/* (Convert Compiler Flags into Useful Switches) */
-/***************************************************/
-#if defined(_MSC_VER) && _MSC_VER <= 850
- #define COMPILER "[MSC 16-bit]"
- #define MS_WIN16
- #define MS_WINDOWS
-
- /* Platform Filesystem */
- #define PYTHONPATH ".;.\\lib;.\\lib\\win;.\\lib\\dos_8x3"
- #define IMPORT_8x3_NAMES
- #define DOSFILESYS /* Windows Uses the DOS File Naming Conventions */
-
- /* Platform CPU-Mode Dependencies */
- #define WORD_BIT 16
-
- typedef int pid_t;
-
- /* Compiler Runtime Library Capabilities */
- #pragma warning(disable:4113)
- #define memcpy memmove /* memcpy dangerous pointer wrap in Win 3.1 */
- #define hypot _hypot
- #define SIGINT 2
-
-#include <stdio.h>
-
- /* Windows 3.1 will not tolerate any console io in a dll */
-
- #ifdef _USRDLL
- #include <time.h>
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #define stdin ((FILE *)0)
- #define stdout ((FILE *)1)
- #define stderr ((FILE *)2)
-
- #define fflush Py_fflush
- int Py_fflush(FILE *);
-
- #define fgets Py_fgets
- char *Py_fgets(char *, int, FILE *);
-
- #define fileno Py_fileno
- int Py_fileno(FILE *);
-
- #define fprintf Py_fprintf
- int Py_fprintf(FILE *, const char *, ...);
-
- #define printf Py_printf
- int Py_printf(const char *, ...);
-
- #define sscanf Py_sscanf
- int Py_sscanf(const char *, const char *, ...);
-
- clock_t clock();
- void _exit(int);
- void exit(int);
- int sscanf(const char *, const char *, ...);
-
- #ifdef __cplusplus
- }
- #endif
- #endif /* _USRDLL */
-
- #ifndef NETSCAPE_PI
- /* use sockets, but not in a Netscape dll */
- #define USE_SOCKET
- #endif
-#endif /* MS_WIN16 */
-
-/***************************************************/
-/* 32-Bit Watcom C/C++ v?.? for Windows */
-/* (Convert Compiler Flags into Useful Switches) */
-/***************************************************/
-#ifdef __WATCOMC__
- #define COMPILER "[Watcom]"
-
- /* Platform Filesystem */
- #define PYTHONPATH ".;.\\lib;.\\lib\\win;.\\lib\\dos_8x3"
- #define IMPORT_8x3_NAMES
- #define DOSFILESYS /* Watcom Uses the DOS File Naming Conventions */
-
- typedef int mode_t;
- typedef int uid_t;
- typedef int gid_t;
- typedef int pid_t;
-
- #if defined(__NT__)
- #define NT /* NT is obsolete - please use MS_WIN32 instead */
- #define MS_WIN32
- #define MS_WINDOWS
- #define NT_THREADS
- #define USE_SOCKET
- #define WITH_THREAD
- #elif defined(__WINDOWS__)
- #define MS_WIN16
- #define MS_WINDOWS
- #endif
-
- #ifdef M_I386
- #define WORD_BIT 32
- #else
- #define WORD_BIT 16
- #endif
-
- /* Compiler Runtime Library Capabilities */
- #include <ctype.h>
- #include <direct.h>
-
- #define VA_LIST_IS_ARRAY
- #define HAVE_CLOCK
- #define HAVE_STRFTIME
-
- #ifdef USE_DL_EXPORT
- #define DL_IMPORT(RTYPE) RTYPE __export
- #endif
-#endif /* __WATCOMC__ */
-
-/***************************************************/
-/* 32-Bit Borland C/C++ v?.? for Windows */
-/* (Convert Compiler Flags into Useful Switches) */
-/***************************************************/
-/* The Borland compiler defines __BORLANDC__ */
-/* XXX These defines are likely incomplete, but should be easy to fix. */
-#ifdef __BORLANDC__
- #define COMPILER "[Borland]"
-
- /* Platform Filesystem */
- #define PYTHONPATH ".;.\\lib;.\\lib\\win;.\\lib\\dos_8x3"
- #define IMPORT_8x3_NAMES
- #define DOSFILESYS /* Borland Uses the DOS File Naming Conventions */
-
- /* Compiler Runtime Library Capabilities */
- #define HAVE_CLOCK
- #define HAVE_STRFTIME
-
- #ifdef USE_DL_IMPORT
- #define DL_IMPORT(RTYPE) RTYPE __import
- #endif
-#endif /* BORLANDC */
-
-/********************************/
-/* End of compilers - finish up */
-/********************************/
-
-/****************************************
- * Adjustments for the Operating System
- ****************************************/
-#ifdef MS_WIN32
- #define PLATFORM "win32"
-#else
- #ifdef MS_WIN16
- #define PLATFORM "win16"
- #else
- #ifdef PYOS_OS2
- #define PLATFORM "os2"
- #else
- #define PLATFORM "dos"
- #endif
- #endif /* !MS_WIN16 */
-#endif /* !MS_WIN32 */
-
-/****************************************
- * Supported Features in Runtime API
- ****************************************/
-
-/* Define if on AIX 3.
- System headers sometimes define this.
- We just want to avoid a redefinition error message. */
-#ifndef _ALL_SOURCE
-/* #undef _ALL_SOURCE */
+/* #undef BAD_STATIC_FORWARD */ /* if compiler botches static fwd decls */
+
+#define STDC_HEADERS 1 /* VAC++ is an ANSI C Compiler */
+#define HAVE_LIMITS_H 1 /* #include <limits.h> */
+#define HAVE_STDLIB_H 1 /* #include <stdlib.h> */
+#define HAVE_HYPOT 1 /* hypot() */
+#define HAVE_PUTENV 1 /* putenv() */
+#define HAVE_STDDEF_H 1 /* #include <stddef.h> */
+/* #define VA_LIST_IS_ARRAY 1 */ /* if va_list is an array of some kind */
+
+ /* Variable-Arguments/Prototypes */
+#define HAVE_PROTOTYPES 1 /* VAC++ supports C Function Prototypes */
+#define HAVE_STDARG_H 1 /* #include <stdarg.h> */
+#define HAVE_STDARG_PROTOTYPES 1 /* Our <stdarg.h> has prototypes */
+
+ /* String/Memory/Locale Operations */
+#define HAVE_STRDUP 1 /* strdup() */
+#define HAVE_MEMMOVE 1 /* memmove() */
+#define HAVE_STRERROR 1 /* strerror() */
+#define HAVE_SETLOCALE 1 /* setlocale() */
+#define HAVE_LOCALE_H 1 /* #include <locale.h> */
+#define MALLOC_ZERO_RETURNS_NULL 1 /* Our malloc(0) returns a NULL ptr */
+
+ /* Signal Handling */
+#define RETSIGTYPE void /* Return type of handlers (int or void) */
+#define HAVE_SIGNAL_H 1 /* #include <signal.h> */
+/* #undef WANT_SIGFPE_HANDLER */ /* Handle SIGFPE (see Include/pyfpe.h) */
+/* #define HAVE_ALARM 1 */ /* alarm() */
+/* #define HAVE_SIGINTERRUPT 1 */ /* siginterrupt() */
+/* #define HAVE_SIGRELSE 1 */ /* sigrelse() */
+#define DONT_HAVE_SIG_ALARM 1
+#define DONT_HAVE_SIG_PAUSE 1
+
+ /* Clock/Time Support */
+#define HAVE_FTIME 1 /* We have ftime() in <sys/timeb.h> */
+#define HAVE_CLOCK 1 /* clock() */
+#define HAVE_STRFTIME 1 /* strftime() */
+#define HAVE_STRPTIME 1 /* strptime() */
+#define HAVE_MKTIME 1 /* mktime() */
+#define HAVE_TZNAME 1 /* No tm_zone but do have tzname[] */
+#define HAVE_TIMES 1 /* #include <sys/times.h> */
+#define HAVE_SYS_UTIME_H 1 /* #include <sys/utime.h> */
+/* #define HAVE_UTIME_H 1 */ /* #include <utime.h> */
+#define HAVE_SYS_TIME_H 1 /* #include <sys/time.h> */
+/* #define TM_IN_SYS_TIME 1 */ /* <sys/time.h> declares struct tm */
+#define HAVE_GETTIMEOFDAY 1 /* gettimeofday() */
+/* #define GETTIMEOFDAY_NO_TZ 1 */ /* gettimeofday() does not have 2nd arg */
+/* #define HAVE_TIMEGM 1 */ /* timegm() */
+#define TIME_WITH_SYS_TIME 1 /* Mix <sys/time.h> and <time.h> */
+#define SYS_SELECT_WITH_SYS_TIME 1 /* Mix <sys/select.h> and <sys/time.h> */
+/* #define HAVE_ALTZONE 1 */ /* if <time.h> defines altzone */
+
+ /* Network/Sockets Support */
+#define HAVE_SYS_SELECT_H 1 /* #include <sys/select.h> */
+#define BSD_SELECT 1 /* Use BSD versus OS/2 form of select() */
+#define HAVE_SELECT 1 /* select() */
+#define HAVE_GETPEERNAME 1 /* getpeername() */
+/* #undef HAVE_GETHOSTNAME_R 1 */ /* gethostname_r() */
+
+ /* File I/O */
+#define HAVE_DUP2 1 /* dup2() */
+#define HAVE_EXECV 1 /* execv() */
+#define HAVE_SETVBUF 1 /* setvbuf() */
+#define HAVE_GETCWD 1 /* getcwd() */
+#define HAVE_PIPE 1 /* pipe() [OS/2-specific code added] */
+#define HAVE_FCNTL_H 1 /* #include <fcntl.h> */
+/* #define HAVE_FLOCK 1 */ /* flock() */
+/* #define HAVE_TRUNCATE 1 */ /* truncate() */
+/* #define HAVE_FTRUNCATE 1 */ /* ftruncate() */
+/* #define HAVE_LSTAT 1 */ /* lstat() */
+/* #define HAVE_DIRENT_H 1 */ /* #include <dirent.h> */
+/* #define HAVE_OPENDIR 1 */ /* opendir() */
+
+ /* Process Operations */
+#define HAVE_GETPID 1 /* getpid() */
+#define HAVE_SYSTEM 1 /* system() */
+#define HAVE_WAIT 1 /* wait() */
+#define HAVE_KILL 1 /* kill() [OS/2-specific code added] */
+#define HAVE_POPEN 1 /* popen() [OS/2-specific code added] */
+/* #define HAVE_GETPPID 1 */ /* getppid() */
+/* #define HAVE_WAITPID 1 */ /* waitpid() */
+/* #define HAVE_FORK 1 */ /* fork() */
+
+ /* User/Group ID Queries */
+/* #define HAVE_GETEGID 1 */
+/* #define HAVE_GETEUID 1 */
+/* #define HAVE_GETGID 1 */
+/* #define HAVE_GETUID 1 */
+
+ /* Unix-Specific */
+#define HAVE_SYS_UN_H 1 /* #include <sys/un.h> */
+/* #define HAVE_SYS_UTSNAME_H 1 */ /* #include <sys/utsname.h> */
+/* #define HAVE_SYS_WAIT_H 1 */ /* #include <sys/wait.h> */
+/* #define HAVE_UNISTD_H 1 */ /* #include <unistd.h> */
+/* #define HAVE_UNAME 1 */ /* uname () */
+
+#ifdef USE_DL_EXPORT
+ #define DL_IMPORT(RTYPE) RTYPE _System
#endif
-/* Define to empty if the keyword does not work. */
-/* #define const */
-
-/* Define if you have dirent.h. */
-/* #define DIRENT 1 */
-
-/* Define to the type of elements in the array set by `getgroups'.
- Usually this is either `int' or `gid_t'. */
-/* #undef GETGROUPS_T */
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-/* #undef gid_t */
-
-/* Define if your struct tm has tm_zone. */
-/* #undef HAVE_TM_ZONE */
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#define HAVE_TZNAME
-
-/* Define if on MINIX. */
-/* #undef _MINIX */
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-/* #undef mode_t */
-
-/* Define if you don't have dirent.h, but have ndir.h. */
-/* #undef NDIR */
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-/* #undef off_t */
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-/* #undef pid_t */
-
-/* Define if the system does not provide POSIX.1 features except
- with this defined. */
-/* #undef _POSIX_1_SOURCE */
-
-/* Define if you need to in order for stat and other things to work. */
-/* #undef _POSIX_SOURCE */
-
-/* Define as the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you don't have dirent.h, but have sys/dir.h. */
-/* #undef SYSDIR */
-
-/* Define if you don't have dirent.h, but have sys/ndir.h. */
-/* #undef SYSNDIR */
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-/* #undef TIME_WITH_SYS_TIME */
-
-/* Define if your <sys/time.h> declares struct tm. */
-/* #define TM_IN_SYS_TIME 1 */
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-/* #undef uid_t */
-
-/* Define if the closedir function returns void instead of int. */
-/* #undef VOID_CLOSEDIR */
-
-/* Define if your <unistd.h> contains bad prototypes for exec*()
- (as it does on SGI IRIX 4.x) */
-/* #undef BAD_EXEC_PROTOTYPES */
-
-/* Define if your compiler botches static forward declarations
- (as it does on SCI ODT 3.0) */
-/* #define BAD_STATIC_FORWARD 1 */
-
-/* Define if getpgrp() must be called as getpgrp(0)
- and (consequently) setpgrp() as setpgrp(0, 0). */
-/* #undef GETPGRP_HAVE_ARGS */
-
-/* Define this if your time.h defines altzone */
-/* #define HAVE_ALTZONE */
-
-/* Define if you have the putenv function. */
-#ifdef MS_WIN32
-/* Does this exist on Win16? */
-#define HAVE_PUTENV
-#endif
-
-/* Define if your compiler supports function prototypes */
-#define HAVE_PROTOTYPES
-
-/* Define if you can safely include both <sys/select.h> and <sys/time.h>
- (which you can't on SCO ODT 3.0). */
-/* #undef SYS_SELECT_WITH_SYS_TIME */
-
-/* Define if you want to use SGI (IRIX 4) dynamic linking.
- This requires the "dl" library by Jack Jansen,
- ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
- Don't bother on IRIX 5, it already has dynamic linking using SunOS
- style shared libraries */
-/* #undef WITH_SGI_DL */
-
-/* Define if you want to emulate SGI (IRIX 4) dynamic linking.
- This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
- Sequent Symmetry (Dynix), and Atari ST.
- This requires the "dl-dld" library,
- ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
- as well as the "GNU dld" library,
- ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
- Don't bother on SunOS 4 or 5, they already have dynamic linking using
- shared libraries */
-/* #undef WITH_DL_DLD */
-
-/* Define if you want to compile in rudimentary thread support */
-/* #undef WITH_THREAD */
-
-/* Define if you want to use the GNU readline library */
-/* #define WITH_READLINE 1 */
-
-/* Define if you have clock. */
-#define HAVE_CLOCK
-
-/* Define if you have ftime. */
-#define HAVE_FTIME
-
-/* Define if you have getpeername. */
-#define HAVE_GETPEERNAME
-
-/* Define if you have getpgrp. */
-/* #undef HAVE_GETPGRP */
-
-/* Define if you have getpid. */
-#define HAVE_GETPID
-
-/* Define if you have gettimeofday. */
-/* #undef HAVE_GETTIMEOFDAY */
-
-/* Define if you have getwd. */
-/* #undef HAVE_GETWD */
-
-/* Define if you have lstat. */
-/* #undef HAVE_LSTAT */
-
-/* Define if you have nice. */
-/* #undef HAVE_NICE */
-
-/* Define if you have readlink. */
-/* #undef HAVE_READLINK */
-
-/* Define if you have select. */
-/* #undef HAVE_SELECT */
-
-/* Define if you have setpgid. */
-/* #undef HAVE_SETPGID */
-
-/* Define if you have setpgrp. */
-/* #undef HAVE_SETPGRP */
-
-/* Define if you have setsid. */
-/* #undef HAVE_SETSID */
-
-/* Define if you have setvbuf. */
-#define HAVE_SETVBUF
-
-/* Define if you have siginterrupt. */
-/* #undef HAVE_SIGINTERRUPT */
-
-/* Define if you have symlink. */
-/* #undef HAVE_SYMLINK */
-
-/* Define if you have tcgetpgrp. */
-/* #undef HAVE_TCGETPGRP */
-
-/* Define if you have tcsetpgrp. */
-/* #undef HAVE_TCSETPGRP */
-
-/* Define if you have times. */
-#define HAVE_TIMES
-
-/* Define if you have uname. */
-/* #undef HAVE_UNAME */
-
-/* Define if you have waitpid. */
-/* #undef HAVE_WAITPID */
-
-/* Define if you have the <dlfcn.h> header file. */
-/* #undef HAVE_DLFCN_H */
-
-/* Define if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the <signal.h> header file. */
-#define HAVE_SIGNAL_H 1
-
-/* Define if you have the <stdarg.h> header file. */
-#define HAVE_STDARG_H 1
-
-/* Define if you have the <stdarg.h> prototypes. */
-#define HAVE_STDARG_PROTOTYPES 1
-
-/* Define if malloc(0) returns a NULL pointer */
-#define MALLOC_ZERO_RETURNS_NULL 1
-
-/* Define if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define if you have the <sys/audioio.h> header file. */
-/* #undef HAVE_SYS_AUDIOIO_H */
-
-/* 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/utime.h> header file. */
-#define HAVE_SYS_UTIME_H 1
-
-/* Define if you have the <sys/utsname.h> header file. */
-/* #define HAVE_SYS_UTSNAME_H 1 */
-
-/* Define if you have the <thread.h> header file. */
-/* #undef HAVE_THREAD_H */
-
-/* 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 */
-
-/* Define if you have the dl library (-ldl). */
-/* #undef HAVE_LIBDL */
-
-/* Define if you have the mpc library (-lmpc). */
-/* #undef HAVE_LIBMPC */
-
-/* Define if you have the nsl library (-lnsl). */
-#define HAVE_LIBNSL 1
-
-/* Define if you have the seq library (-lseq). */
-/* #undef HAVE_LIBSEQ */
-
-/* Define if you have the socket library (-lsocket). */
-#define HAVE_LIBSOCKET 1
-
-/* Define if you have the sun library (-lsun). */
-/* #undef HAVE_LIBSUN */
-
-/* Define if you have the termcap library (-ltermcap). */
-/* #undef HAVE_LIBTERMCAP */
-
-/* Define if you have the termlib library (-ltermlib). */
-/* #undef HAVE_LIBTERMLIB */
-
-/* Define if you have the thread library (-lthread). */
-/* #undef HAVE_LIBTHREAD */
-
#endif /* !Py_CONFIG_H */
#
# History (Most Recent First)
#
+# 26-Sep-98 jrr Retested and adjusted for building w/Python 1.5.2a1
# 20-Nov-97 jrr Cleaned Up for Applying to Distribution
# 29-Oct-97 jrr Modified for Use with Python 1.5 Alpha 4
# 03-Aug-96 jrr Original for Use with Python 1.4 Release
# Where to Find the IBM TCP/IP Socket Includes and Libraries
OS2TCPIP = C:\MPTN
+# Where to Find the Tcl/Tk Base Directory for Libs/Includes
+TCLTK = D:\TclTk
+TCLBASE = D:\Tcl7.6\OS2
+TKBASE = D:\Tk4.2\OS2
+
# Where to Put the .OBJ Files, To Keep Them Out of the Way
PATHOBJ = obj
# Search Path for Include Files
-PROJINCLUDE = .;$(OS2TCPIP)\Include;$(PY_INCLUDES)
+PROJINCLUDE = .;$(TCLBASE);$(TKBASE);$(OS2TCPIP)\Include;$(PY_INCLUDES)
# Place to Search for Sources re OpusMAKE Dependency Generator (Commercial)
MKMF_SRCS = $(PY_MODULES)\*.c $(PY_OBJECTS)\*.c $(PY_PARSER)\*.c $(PY_PYTHON)\*.c
#.HDRPATH.c := $(PROJINCLUDE,;= ) $(.HDRPATH.c)
#.PATH.c = .;$(PY_MODULES);$(PY_OBJECTS);$(PY_PARSER);$(PY_PYTHON)
-OTHERLIBS = $(OS2TCPIP)\lib\so32dll.lib $(OS2TCPIP)\lib\tcp32dll.lib
+OTHERLIBS = $(OS2TCPIP)\lib\so32dll.lib $(OS2TCPIP)\lib\tcp32dll.lib \
+ $(TCLTK)\Lib\Tcl76.lib $(TCLTK)\Lib\Tk42.lib
#################
# Inference Rules
$(PATHOBJ)\PosixModule.obj \
$(PATHOBJ)\RegexModule.obj \
$(PATHOBJ)\RegExpr.obj \
- $(PATHOBJ)\ReopModule.obj \
$(PATHOBJ)\SelectModule.obj \
$(PATHOBJ)\SignalModule.obj \
$(PATHOBJ)\SocketModule.obj \
# /G4 = Generate Code for 486 (Use 386 for Debugger)
# /Gm = Use Multithread Runtime
# /Gd = Dynamically Load Runtime
+ # /Ms = Use _System Calling Convention (vs _Optlink)
+ # (to allow non-VAC++ code to call into Python15.dll)
_OPT = /O /Gl
# /O = Enable Speed-Optimizations
###################
# Primary Target(s)
###################
-All: obj noise PyCore.lib Python15.lib Python15.dll Python.exe PGen.exe
+All: obj noise PyCore.lib Python15.lib PGen.exe \
+ Python.exe PythonPM.exe Python15.dll _tkinter.dll
Modules: $(MODULES)
Objects: $(OBJECTS)
#
##############
+# Python Extension DLL: Tcl/Tk Interface
+_tkinter.dll: $(PATHOBJ)\_tkinter.obj Python15.lib _tkinter.def
+ @ Echo Linking $@ As DLL
+ @ $(CC) $(CFLAGS) /B"/NOE" $(_DLL) /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
+
+$(PATHOBJ)\_tkinter.obj: $(PY_MODULES)\_tkinter.c
+ @ Echo Compiling $**
+ @ $(CC) -c $(CFLAGS) $(_DLL) -Fo$@ $** >>$(ERRS)
+
# Object Library of All Essential Python Routines
PyCore.lib: $(MODULES) $(OBJECTS) $(PARSER) $(PYTHON) $(PATHOBJ)\Config.obj
@ Echo Adding Updated Object Files to Link Library $@
Python15.dll: $(PATHOBJ)\Compile.obj PyCore.lib Python.def
@ Echo Linking $@ As DLL
@ $(CC) $(CFLAGS) /B"/NOE" $(_DLL) /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
+ @ Echo Compressing $@ with LxLite
+ @ lxlite $@
# IBM Linker Requires One Explicit .OBJ To Build a .DLL from a .LIB
$(PATHOBJ)\Compile.obj: $(PY_PYTHON)\Compile.c
@ IMPLIB /NOLOGO /NOIGNORE $@ $** >>$(ERRS)
@ ILIB /NOLOGO /CONVFORMAT /NOEXTDICTIONARY /NOBROWSE /NOBACKUP $@; >>$(ERRS)
-# Small Program to Start Interpreter in Python15.dll
+# Small Command-Line Program to Start Interpreter in Python15.dll
Python.exe: $(PATHOBJ)\Python.obj Python15.lib
@ Echo Linking $@ As EXE
- @ $(CC) $(CFLAGS) $(_EXE) /B"/STACK:360000" /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
+ @ $(CC) $(CFLAGS) $(_EXE) /B"/PM:VIO /STACK:360000" /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
+
+# Small PM-GUI Program to Start Interpreter in Python15.dll
+PythonPM.exe: $(PATHOBJ)\Python.obj Python15.lib
+ @ Echo Linking $@ As EXE
+ @ $(CC) $(CFLAGS) $(_EXE) /B"/PM:PM /STACK:360000" /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
PGen.exe: $(PGEN) PyCore.lib
@ Echo Linking $@ As EXE
-- @Echo Y | copy /U Python.exe D:\EXEs
-- @Echo Y | copy /U Python15.dll D:\DLLs
-- @Echo Y | copy /U Python15.lib E:\Tau\Lib
+ -- @Echo Y | copy /U _tkinter.dll D:\Python
test:
python ..\..\lib\test\regrtest.py
$(PY_INCLUDE)\stringobject.h $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h \
$(PY_INCLUDE)\tupleobject.h
-reopmodule.obj: $(PY_INCLUDE)\abstract.h $(PY_INCLUDE)\ceval.h $(PY_INCLUDE)\classobject.h \
- $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h config.h \
- $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h $(PY_INCLUDE)\floatobject.h \
- $(PY_INCLUDE)\funcobject.h $(PY_INCLUDE)\import.h $(PY_INCLUDE)\intobject.h \
- $(PY_INCLUDE)\intrcheck.h $(PY_INCLUDE)\listobject.h $(PY_INCLUDE)\longobject.h \
- $(PY_INCLUDE)\methodobject.h $(PY_INCLUDE)\modsupport.h \
- $(PY_INCLUDE)\moduleobject.h $(PY_INCLUDE)\mymalloc.h $(PY_INCLUDE)\myproto.h \
- $(PY_INCLUDE)\object.h $(PY_INCLUDE)\objimpl.h $(PY_INCLUDE)\pydebug.h \
- $(PY_INCLUDE)\pyerrors.h $(PY_INCLUDE)\pyfpe.h $(PY_INCLUDE)\pystate.h \
- $(PY_INCLUDE)\python.h $(PY_INCLUDE)\pythonrun.h $(PY_INCLUDE)\rangeobject.h \
- $(PY_MODULES)\regexpr.h $(PY_INCLUDE)\sliceobject.h $(PY_INCLUDE)\stringobject.h \
- $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h $(PY_INCLUDE)\tupleobject.h
-
resource.obj: $(PY_INCLUDE)\abstract.h $(OS2TCPIP)\Include\sys\time.h $(PY_INCLUDE)\ceval.h \
$(PY_INCLUDE)\classobject.h $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h \
config.h $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h \
-IBM VisualAge C/C++ for OS/2\r
-============================\r
-\r
-To build Python for OS/2, change into ./os2vacpp and issue an 'NMAKE'\r
-command. This will build a PYTHON15.DLL containing the set of Python\r
-modules listed in config.c and a small PYTHON.EXE to start the\r
-interpreter.\r
-\r
-By changing the C compiler flag /Gd- in the makefile to /Gd+, you can\r
-reduce the size of these by causing Python to dynamically link to the\r
-C runtime DLLs instead of including their bulk in your binaries. \r
-However, this means that any system on which you run Python must have\r
-the VAC++ compiler installed in order to have those DLLs available.\r
-\r
-During the build process you may see a couple of harmless warnings:\r
-\r
- From the C Compiler, "No function prototype given for XXX", which\r
- comes from the use of K&R parameters within Python for portability.\r
-\r
- From the ILIB librarian, "Module Not Found (XXX)", which comes\r
- from its attempt to perform the (-+) operation, which removes and\r
- then adds a .OBJ to the library. The first time a build is done,\r
- it obviously cannot remove what is not yet built.\r
-\r
-This build includes support for most Python functionality as well as\r
-TCP/IP sockets. It omits the Posix ability to 'fork' a process but\r
-supports threads using OS/2 native capabilities. I have tried to\r
-support everything possible but here are a few usage notes.\r
-\r
-\r
--- os.popen() Usage Warnings\r
-\r
-With respect to my implementation of popen() under OS/2:\r
-\r
- import os\r
-\r
- fd = os.popen("pkzip.exe -@ junk.zip", 'wb')\r
- fd.write("file1.txt\n")\r
- fd.write("file2.txt\n")\r
- fd.write("file3.txt\n")\r
- fd.write("\x1a") # Should Not Be Necessary But Is\r
- fd.close()\r
-\r
-There is a bug, either in the VAC++ compiler or OS/2 itself, where the\r
-simple closure of the write-side of a pipe -to- a process does not\r
-send an EOF to that process. I find I must explicitly write a\r
-control-Z (EOF) before closing the pipe. This is not a problem when\r
-using popen() in read mode.\r
-\r
-One other slight difference with my popen() is that I return None\r
-from the close(), instead of the Unix convention of the return code\r
-of the spawned program. I could find no easy way to do this under\r
-OS/2.\r
-\r
-\r
--- BEGINLIBPATH/ENDLIBPATH\r
-\r
-With respect to environment variables, this OS/2 port supports the\r
-special-to-OS/2 magic names of 'BEGINLIBPATH' and 'ENDLIBPATH' to\r
-control where to load conventional DLLs from. Those names are\r
-intercepted and converted to calls on the OS/2 kernel APIs and\r
-are inherited by child processes, whether Python-based or not.\r
-\r
-A few new attributes have been added to the os module:\r
-\r
- os.meminstalled # Count of Bytes of RAM Installed on Machine\r
- os.memkernel # Count of Bytes of RAM Reserved (Non-Swappable)\r
- os.memvirtual # Count of Bytes of Virtual RAM Possible\r
- os.timeslice # Duration of Scheduler Timeslice, in Milliseconds\r
- os.maxpathlen # Maximum Length of a Path Specification, in chars\r
- os.maxnamelen # Maximum Length of a Single Dir/File Name, in chars\r
- os.version # Version of OS/2 Being Run e.g. "4.00"\r
- os.revision # Revision of OS/2 Being Run (usually zero)\r
- os.bootdrive # Drive that System Booted From e.g. "C:"\r
- # (useful to find the CONFIG.SYS used to boot with)\r
-\r
-\r
--- Using Python as the Default OS/2 Batch Language\r
-\r
-Note that OS/2 supports the Unix technique of putting the special\r
-comment line at the time of scripts e.g. "#!/usr/bin/python" in\r
-a different syntactic form. To do this, put your script into a file\r
-with a .CMD extension and added 'extproc' to the top as follows:\r
-\r
- extproc C:\Python\Python.exe -x\r
- import os\r
- print "Hello from Python"\r
-\r
-The '-x' option tells Python to skip the first line of the file\r
-while processing the rest as normal Python source.\r
-\r
-\r
--- Suggested Environment Variable Setup\r
-\r
-With respect to the environment variables for Python, I use the\r
-following setup:\r
-\r
- Set PYTHONHOME=E:\Tau\Projects\Python;D:\DLLs\r
- Set PYTHONPATH=.;E:\Tau\Projects\Python\Lib; \\r
- E:\Tau\Projects\Python\Lib\plat-win\r
-\r
-The EXEC_PREFIX (optional second pathspec on PYTHONHOME) is where\r
-you put any Python extension DLLs you may create/obtain. There\r
-are none provided with this release.\r
-\r
-\r
--- Contact Info\r
-\r
-If you have questions, suggestions or problems specifically with\r
-the OS/2 VAC++ port of Python, please contact me at:\r
-\r
- Jeff Rush <jrush@summit-research.com>.\r
-\r
-I support no other platform but OS/2 (and eventually AmigaDOS).\r
+IBM VisualAge C/C++ for OS/2
+============================
+
+To build Python for OS/2, change into ./os2vacpp and issue an 'NMAKE'
+command. This will build a PYTHON15.DLL containing the set of Python
+modules listed in config.c and a small PYTHON.EXE to start the
+interpreter.
+
+By changing the C compiler flag /Gd- in the makefile to /Gd+, you can
+reduce the size of these by causing Python to dynamically link to the
+C runtime DLLs instead of including their bulk in your binaries.
+However, this means that any system on which you run Python must have
+the VAC++ compiler installed in order to have those DLLs available.
+
+During the build process you may see a couple of harmless warnings:
+
+ From the C Compiler, "No function prototype given for XXX", which
+ comes from the use of K&R parameters within Python for portability.
+
+ From the ILIB librarian, "Module Not Found (XXX)", which comes
+ from its attempt to perform the (-+) operation, which removes and
+ then adds a .OBJ to the library. The first time a build is done,
+ it obviously cannot remove what is not yet built.
+
+This build includes support for most Python functionality as well as
+TCP/IP sockets. It omits the Posix ability to 'fork' a process but
+supports threads using OS/2 native capabilities. I have tried to
+support everything possible but here are a few usage notes.
+
+
+-- os.popen() Usage Warnings
+
+With respect to my implementation of popen() under OS/2:
+
+ import os
+
+ fd = os.popen("pkzip.exe -@ junk.zip", 'wb')
+ fd.write("file1.txt\n")
+ fd.write("file2.txt\n")
+ fd.write("file3.txt\n")
+ fd.write("\x1a") # Should Not Be Necessary But Is
+ fd.close()
+
+There is a bug, either in the VAC++ compiler or OS/2 itself, where the
+simple closure of the write-side of a pipe -to- a process does not
+send an EOF to that process. I find I must explicitly write a
+control-Z (EOF) before closing the pipe. This is not a problem when
+using popen() in read mode.
+
+One other slight difference with my popen() is that I return None
+from the close(), instead of the Unix convention of the return code
+of the spawned program. I could find no easy way to do this under
+OS/2.
+
+
+-- BEGINLIBPATH/ENDLIBPATH
+
+With respect to environment variables, this OS/2 port supports the
+special-to-OS/2 magic names of 'BEGINLIBPATH' and 'ENDLIBPATH' to
+control where to load conventional DLLs from. Those names are
+intercepted and converted to calls on the OS/2 kernel APIs and
+are inherited by child processes, whether Python-based or not.
+
+A few new attributes have been added to the os module:
+
+ os.meminstalled # Count of Bytes of RAM Installed on Machine
+ os.memkernel # Count of Bytes of RAM Reserved (Non-Swappable)
+ os.memvirtual # Count of Bytes of Virtual RAM Possible
+ os.timeslice # Duration of Scheduler Timeslice, in Milliseconds
+ os.maxpathlen # Maximum Length of a Path Specification, in chars
+ os.maxnamelen # Maximum Length of a Single Dir/File Name, in chars
+ os.version # Version of OS/2 Being Run e.g. "4.00"
+ os.revision # Revision of OS/2 Being Run (usually zero)
+ os.bootdrive # Drive that System Booted From e.g. "C:"
+ # (useful to find the CONFIG.SYS used to boot with)
+
+
+-- Using Python as the Default OS/2 Batch Language
+
+Note that OS/2 supports the Unix technique of putting the special
+comment line at the time of scripts e.g. "#!/usr/bin/python" in
+a different syntactic form. To do this, put your script into a file
+with a .CMD extension and added 'extproc' to the top as follows:
+
+ extproc C:\Python\Python.exe -x
+ import os
+ print "Hello from Python"
+
+The '-x' option tells Python to skip the first line of the file
+while processing the rest as normal Python source.
+
+
+-- Suggested Environment Variable Setup
+
+With respect to the environment variables for Python, I use the
+following setup:
+
+ Set PYTHONHOME=E:\Tau\Projects\Python;D:\DLLs
+ Set PYTHONPATH=.;E:\Tau\Projects\Python\Lib; \
+ E:\Tau\Projects\Python\Lib\plat-win
+
+The EXEC_PREFIX (optional second pathspec on PYTHONHOME) is where
+you put any Python extension DLLs you may create/obtain. There
+are none provided with this release.
+
+
+-- Contact Info
+
+If you have questions, suggestions or problems specifically with
+the OS/2 VAC++ port of Python, please contact me at:
+
+ Jeff Rush <jrush@summit-research.com>.
+
+I support no other platform but OS/2 (and eventually AmigaDOS).