New set of files for the OS/2 port by Jeff Rush.

This commit is contained in:
Guido van Rossum 1998-09-28 22:02:40 +00:00
parent be70450f03
commit e8afe516ab
6 changed files with 746 additions and 1050 deletions

8
PC/os2vacpp/_tkinter.def Normal file
View File

@ -0,0 +1,8 @@
LIBRARY _TKINTER INITINSTANCE TERMINSTANCE
DESCRIPTION 'Python Extension DLL v1.0 for Access to Tcl/Tk Environment'
PROTMODE
DATA MULTIPLE NONSHARED
EXPORTS
init_tkinter

View File

@ -50,7 +50,6 @@ extern void initos2();
extern void initoperator();
extern void initposix();
extern void initregex();
extern void initreop();
extern void initrgbimg();
extern void initrotor();
extern void initsignal();
@ -97,7 +96,6 @@ struct _inittab _PyImport_Inittab[] = {
#endif
{"operator", initoperator},
{"regex", initregex},
{"reop", initreop},
// {"rgbimg", initrgbimg},
// {"rotor", initrotor},
{"signal", initsignal},

View File

@ -4,10 +4,9 @@
/**********************************************************************
* 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
@ -17,28 +16,12 @@
* 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
*
@ -64,565 +47,156 @@
#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) */
typedef int mode_t;
typedef int uid_t;
typedef int gid_t;
typedef int pid_t;
/* Define if type char is unsigned and you are not using gcc. */
#ifndef __CHAR_UNSIGNED__
/* #undef __CHAR_UNSIGNED__ */
#endif
#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
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 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>
/* #undef BAD_STATIC_FORWARD */ /* if compiler botches static fwd decls */
/* #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 */
#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 */
#ifdef USE_DL_EXPORT
#define DL_IMPORT(RTYPE) RTYPE _Export
#endif
/* 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 */
#endif /* VAC++ for OS/2 */
/* 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 */
/***************************************************/
/* 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
/* 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
/* 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 */
/* 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 */
#ifdef _M_IX86
#define COMPILER "[MSC 32 bit (Intel)]"
#else
#define COMPILER "[MSC (Unknown)]"
#endif
/* 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() */
/* Platform Filesystem */
#define PYTHONPATH ".\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
#define DOSFILESYS /* Windows Uses the DOS File Naming Conventions */
/* 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() */
/* Platform CPU-Mode Dependencies */
#define WORD_BIT 32
/* 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() */
typedef int pid_t;
#define hypot _hypot
/* User/Group ID Queries */
/* #define HAVE_GETEGID 1 */
/* #define HAVE_GETEUID 1 */
/* #define HAVE_GETGID 1 */
/* #define HAVE_GETUID 1 */
/* Compiler Runtime Library Capabilities */
#pragma warning(disable:4113)
#include <stdio.h>
/* 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 () */
#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 */
#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 */

View File

@ -26,6 +26,7 @@
#
# 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
@ -48,18 +49,24 @@ ERRS = make.out
# 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
@ -171,7 +178,6 @@ MODULES = \
$(PATHOBJ)\PosixModule.obj \
$(PATHOBJ)\RegexModule.obj \
$(PATHOBJ)\RegExpr.obj \
$(PATHOBJ)\ReopModule.obj \
$(PATHOBJ)\SelectModule.obj \
$(PATHOBJ)\SignalModule.obj \
$(PATHOBJ)\SocketModule.obj \
@ -204,6 +210,8 @@ _GEN = /G4 /Gm /Gd-
# /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
@ -238,7 +246,8 @@ CFLAGS = $(_BASE) $(_GEN) $(_OPT) $(_DBG) $(_OUT) $(_EXE) /Ss
###################
# 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)
@ -257,6 +266,15 @@ noise:
#
##############
# 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 $@
@ -265,6 +283,8 @@ PyCore.lib: $(MODULES) $(OBJECTS) $(PARSER) $(PYTHON) $(PATHOBJ)\Config.obj
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
@ -277,10 +297,15 @@ Python15.lib: Python.def
@ 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
@ -305,6 +330,7 @@ release: Python.exe Python15.dll Python15.lib
-- @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
@ -947,19 +973,6 @@ regexpr.obj: $(PY_INCLUDE)\abstract.h $(PY_PARSER)\assert.h $(PY_INCLUDE)\ceval.
$(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 \

View File

@ -4,369 +4,472 @@ PROTMODE
DATA MULTIPLE NONSHARED
EXPORTS
; Data
PyCFunction_Type
PyCObject_Type
PyClass_Type
PyCode_Type
PyComplex_Type
PyDict_Type
PyExc_ArithmeticError
PyExc_AttributeError
PyExc_EOFError
PyExc_Exception
PyExc_FloatingPointError
PyExc_IOError
PyExc_ImportError
PyExc_IndexError
PyExc_KeyError
PyExc_KeyboardInterrupt
PyExc_LookupError
PyExc_MemoryError
PyExc_NameError
PyExc_OverflowError
PyExc_RuntimeError
PyExc_StandardError
PyExc_SyntaxError
PyExc_SystemError
PyExc_SystemExit
PyExc_TypeError
PyExc_ValueError
PyExc_ZeroDivisionError
PyFile_Type
PyFloat_Type
PyFrame_Type
PyFunction_Type
PyInstance_Type
PyInt_Type
PyList_Type
PyLong_Type
PyMethod_Type
PyModule_Type
PyOS_InputHook
PyOS_ReadlineFunctionPointer
PyRange_Type
PySlice_Type
PyString_Type
PyTuple_Type
PyType_Type
Py_DebugFlag
Py_InteractiveFlag
Py_NoSiteFlag
Py_UseClassExceptionsFlag
Py_VerboseFlag
_PyParser_Grammar
_PyParser_TokenNames
_PyThread_Started
_Py_EllipsisObject
_Py_NoneStruct
_Py_TrueStruct
_Py_ZeroStruct
; Data
PyCFunction_Type
PyCObject_Type
PyClass_Type
PyCode_Type
PyComplex_Type
PyDict_Type
PyExc_ArithmeticError
PyExc_AssertionError
PyExc_AttributeError
PyExc_EOFError
PyExc_EnvironmentError
PyExc_Exception
PyExc_FloatingPointError
PyExc_IOError
PyExc_ImportError
PyExc_IndexError
PyExc_KeyError
PyExc_KeyboardInterrupt
PyExc_LookupError
PyExc_MemoryError
PyExc_MemoryErrorInst
PyExc_NameError
PyExc_OSError
PyExc_OverflowError
PyExc_RuntimeError
PyExc_StandardError
PyExc_SyntaxError
PyExc_SystemError
PyExc_SystemExit
PyExc_TypeError
PyExc_ValueError
PyExc_ZeroDivisionError
PyFile_Type
PyFloat_Type
PyFrame_Type
PyFunction_Type
PyImport_FrozenModules
PyImport_Inittab
PyInstance_Type
PyInt_Type
PyList_Type
PyLong_Type
PyMethod_Type
PyModule_Type
PyOS_InputHook
PyOS_ReadlineFunctionPointer
PyRange_Type
PySlice_Type
PyString_Type
PyTraceBack_Type
PyTuple_Type
PyType_Type
Py_DebugFlag
Py_FrozenFlag
Py_InteractiveFlag
Py_NoSiteFlag
Py_OptimizeFlag
Py_TabcheckFlag
Py_UseClassExceptionsFlag
Py_VerboseFlag
_PyImport_Filetab
_PyImport_Inittab
_PyParser_Grammar
_PyParser_TokenNames
_PyThread_Started
_Py_EllipsisObject
_Py_NoneStruct
_Py_PackageContext
_Py_TrueStruct
_Py_ZeroStruct
_Py_abstract_hack
_Py_cobject_hack
_Py_re_syntax
_Py_re_syntax_table
; Code
PyArg_Parse
PyArg_ParseTuple
PyArg_ParseTupleAndKeywords
PyArg_VaParse
PyCFunction_Fini
PyCFunction_GetFlags
PyCFunction_GetFunction
PyCFunction_GetSelf
PyCFunction_New
PyCObject_AsVoidPtr
PyCObject_FromVoidPtrAndDesc
PyCObject_FromVoidPtr
PyCObject_GetDesc
PyCObject_Import
PyCallable_Check
PyClass_IsSubclass
PyClass_New
PyCode_Addr2Line
PyCode_New
PyComplex_AsCComplex
PyComplex_FromCComplex
PyComplex_FromDoubles
PyComplex_ImagAsDouble
PyComplex_RealAsDouble
PyDict_Clear
PyDict_DelItem
PyDict_DelItemString
PyDict_GetItem
PyDict_GetItemString
PyDict_Items
PyDict_Keys
PyDict_New
PyDict_Next
PyDict_SetItem
PyDict_SetItemString
PyDict_Size
PyDict_Values
PyErr_BadArgument
PyErr_BadInternalCall
PyErr_CheckSignals
PyErr_Clear
PyErr_ExceptionMatches
PyErr_Fetch
PyErr_Format
PyErr_GivenExceptionMatches
PyErr_NewException
PyErr_NoMemory
PyErr_NormalizeException
PyErr_Occurred
PyErr_Print
PyErr_PrintEx
PyErr_Restore
PyErr_SetFromErrno
PyErr_SetFromErrnoWithFilename
PyErr_SetInterrupt
PyErr_SetNone
PyErr_SetObject
PyErr_SetString
PyEval_AcquireLock
PyEval_AcquireThread
PyEval_CallFunction
PyEval_CallMethod
PyEval_CallObject
PyEval_CallObjectWithKeywords
PyEval_EvalCode
PyEval_GetBuiltins
PyEval_GetFrame
PyEval_GetGlobals
PyEval_GetLocals
PyEval_GetRestricted
PyEval_InitThreads
PyEval_ReleaseLock
PyEval_ReleaseThread
PyEval_RestoreThread
PyEval_SaveThread
PyFile_AsFile
PyFile_FromFile
PyFile_FromString
PyFile_GetLine
PyFile_Name
PyFile_SetBufSize
PyFile_SoftSpace
PyFile_WriteObject
PyFile_WriteString
PyFloat_AsDouble
PyFloat_AsString
PyFloat_Fini
PyFloat_FromDouble
PyFrame_BlockPop
PyFrame_BlockSetup
PyFrame_FastToLocals
PyFrame_Fini
PyFrame_LocalsToFast
PyFrame_New
PyFunction_GetCode
PyFunction_GetDefaults
PyFunction_GetGlobals
PyFunction_New
PyFunction_SetDefaults
PyGrammar_AddAccelerators
PyGrammar_FindDFA
PyGrammar_LabelRepr
PyGrammar_RemoveAccelerators
PyImport_AddModule
PyImport_AppendInittab
PyImport_Cleanup
PyImport_ExecCodeModule
PyImport_ExecCodeModuleEx
PyImport_ExtendInittab
PyImport_GetMagicNumber
PyImport_GetModuleDict
PyImport_Import
PyImport_ImportFrozenModule
PyImport_ImportModule
PyImport_ImportModuleEx
PyImport_ReloadModule
PyInstance_DoBinOp
PyInstance_New
PyInt_AsLong
PyInt_Fini
PyInt_FromLong
PyInt_GetMax
PyInterpreterState_Clear
PyInterpreterState_Delete
PyInterpreterState_New
PyList_Append
PyList_AsTuple
PyList_GetItem
PyList_GetSlice
PyList_Insert
PyList_New
PyList_Reverse
PyList_SetItem
PyList_SetSlice
PyList_Size
PyList_Sort
PyLong_AsDouble
PyLong_AsLong
; PyLong_AsLongLong
PyLong_AsUnsignedLong
; PyLong_AsUnsignedLongLong
PyLong_AsVoidPtr
PyLong_FromDouble
PyLong_FromLong
; PyLong_FromLongLong
PyLong_FromString
PyLong_FromUnsignedLong
; PyLong_FromUnsignedLongLong
PyLong_FromVoidPtr
PyMapping_Check
PyMapping_GetItemString
PyMapping_HasKey
PyMapping_HasKeyString
PyMapping_Length
PyMapping_SetItemString
PyMarshal_Init
PyMarshal_ReadLongFromFile
PyMarshal_ReadObjectFromFile
PyMarshal_ReadObjectFromString
PyMarshal_WriteLongToFile
PyMarshal_WriteObjectToFile
PyMarshal_WriteObjectToString
PyMem_Free
PyMem_Malloc
PyMem_Realloc
PyMember_Get
PyMember_Set
PyMethod_Class
PyMethod_Fini
PyMethod_Function
PyMethod_New
PyMethod_Self
PyModule_GetDict
PyModule_GetName
PyModule_New
PyNode_AddChild
PyNode_Compile
PyNode_Free
; PyNode_ListTree
PyNode_New
PyNumber_Absolute
PyNumber_Add
PyNumber_And
PyNumber_Check
PyNumber_Coerce
PyNumber_CoerceEx
PyNumber_Divide
PyNumber_Divmod
PyNumber_Float
PyNumber_Int
PyNumber_Invert
PyNumber_Long
PyNumber_Lshift
PyNumber_Multiply
PyNumber_Negative
PyNumber_Or
PyNumber_Positive
PyNumber_Power
PyNumber_Remainder
PyNumber_Rshift
PyNumber_Subtract
PyNumber_Xor
PyOS_AfterFork
PyOS_FiniInterrupts
PyOS_GetLastModificationTime
PyOS_InitInterrupts
PyOS_InterruptOccurred
PyOS_Readline
PyOS_StdioReadline
PyOS_strtol
PyOS_strtoul
PyObject_CallFunction
PyObject_CallMethod
PyObject_CallObject
PyObject_Cmp
PyObject_Compare
PyObject_DelItem
PyObject_GetAttr
PyObject_GetAttrString
PyObject_GetItem
PyObject_HasAttr
PyObject_HasAttrString
PyObject_Hash
PyObject_IsTrue
PyObject_Length
PyObject_Not
PyObject_Print
PyObject_Repr
PyObject_SetAttr
PyObject_SetAttrString
PyObject_SetItem
PyObject_Str
PyObject_Type
PyParser_AddToken
PyParser_Delete
PyParser_New
PyParser_ParseFile
PyParser_ParseString
PyParser_SimpleParseFile
PyParser_SimpleParseString
PyRange_New
PyRun_AnyFile
PyRun_File
PyRun_InteractiveLoop
PyRun_InteractiveOne
PyRun_SimpleFile
PyRun_SimpleString
PyRun_String
PySequence_Check
PySequence_Concat
PySequence_Contains
PySequence_Count
PySequence_DelItem
PySequence_DelSlice
PySequence_GetItem
PySequence_GetSlice
PySequence_In
PySequence_Index
PySequence_Length
PySequence_List
PySequence_Repeat
PySequence_SetItem
PySequence_SetSlice
PySequence_Tuple
PySlice_GetIndices
PySlice_New
PyString_AsString
PyString_Concat
PyString_ConcatAndDel
PyString_Fini
PyString_Format
PyString_FromString
PyString_FromStringAndSize
PyString_InternFromString
PyString_InternInPlace
PyString_Size
PySys_GetFile
PySys_GetObject
PySys_SetArgv
PySys_SetObject
PySys_SetPath
PySys_WriteStderr
PySys_WriteStdout
PyThreadState_Clear
PyThreadState_Delete
PyThreadState_Get
PyThreadState_GetDict
PyThreadState_New
PyThreadState_Swap
PyThread__exit_thread
PyThread_acquire_lock
PyThread_allocate_lock
PyThread_allocate_sema
PyThread_down_sema
PyThread_exit_thread
PyThread_free_lock
PyThread_free_sema
PyThread_get_thread_ident
PyThread_init_thread
PyThread_release_lock
PyThread_start_new_thread
PyThread_up_sema
PyToken_OneChar
PyToken_TwoChars
PyTokenizer_Free
PyTokenizer_FromFile
PyTokenizer_FromString
PyTokenizer_Get
PyTraceBack_Here
PyTraceBack_Print
PyTuple_Fini
PyTuple_GetItem
PyTuple_GetSlice
PyTuple_New
PyTuple_SetItem
PyTuple_Size
Py_AddPendingCall
Py_AtExit
Py_BuildValue
Py_CompileString
Py_EndInterpreter
Py_Exit
Py_FatalError
Py_FdIsInteractive
Py_Finalize
Py_FindMethod
Py_FindMethodInChain
Py_FlushLine
Py_Free
Py_GetArgcArgv
Py_GetBuildInfo
Py_GetCompiler
Py_GetCopyright
Py_GetExecPrefix
Py_GetPath
Py_GetPlatform
Py_GetPrefix
Py_GetProgramFullPath
Py_GetProgramName
Py_GetPythonHome
Py_GetVersion
Py_InitModule4
Py_Initialize
Py_IsInitialized
Py_Main
Py_MakePendingCalls
Py_Malloc
Py_NewInterpreter
Py_Realloc
Py_ReprEnter
Py_ReprLeave
Py_SetProgramName
Py_SetPythonHome
Py_VaBuildValue
_PyBuiltin_Fini_1
_PyBuiltin_Fini_2
_PyBuiltin_Init_1
_PyBuiltin_Init_2
_PyImport_FindExtension
_PyImport_Fini
_PyImport_FixupExtension
_PyImport_Init
_PyImport_LoadDynamicModule
_PyLong_New
_PyModule_Clear
_PyObject_New
_PyObject_NewVar
_PyString_Resize
_PySys_Init
_PyTuple_Resize
_Py_MD5Final
_Py_MD5Init
_Py_MD5Update
; _Py_addbit
_Py_c_diff
_Py_c_neg
_Py_c_pow
_Py_c_prod
_Py_c_quot
_Py_c_sum
; _Py_delbitset
; _Py_mergebitset
; _Py_meta_grammar
; _Py_newbitset
_Py_re_compile_fastmap
_Py_re_compile_initialize
_Py_re_compile_pattern
_Py_re_match
_Py_re_search
_Py_re_set_syntax
; _Py_samebitset
; Code
PyArg_Parse
PyArg_ParseTuple
PyArg_ParseTupleAndKeywords
PyArg_VaParse
PyCFunction_GetFunction
PyCFunction_GetSelf
PyCFunction_New
PyCObject_AsVoidPtr
PyCObject_FromVoidPtr
PyCObject_Import
PyCallable_Check
PyClass_IsSubclass
PyClass_New
PyCode_New
PyComplex_AsCComplex
PyComplex_FromCComplex
PyComplex_FromDoubles
PyComplex_ImagAsDouble
PyComplex_RealAsDouble
PyDict_Clear
PyDict_DelItem
PyDict_DelItemString
PyDict_GetItem
PyDict_GetItemString
PyDict_Items
PyDict_Keys
PyDict_New
PyDict_Next
PyDict_SetItem
PyDict_SetItemString
PyDict_Size
PyDict_Values
PyErr_BadArgument
PyErr_BadInternalCall
PyErr_CheckSignals
PyErr_Clear
PyErr_Fetch
PyErr_Format
PyErr_NewException
PyErr_NoMemory
PyErr_Occurred
PyErr_Print
PyErr_Restore
PyErr_SetFromErrno
PyErr_SetInterrupt
PyErr_SetNone
PyErr_SetObject
PyErr_SetString
PyEval_AcquireLock
PyEval_AcquireThread
PyEval_CallObject
PyEval_CallObjectWithKeywords
PyEval_EvalCode
PyEval_GetBuiltins
PyEval_GetFrame
PyEval_GetGlobals
PyEval_GetLocals
PyEval_GetRestricted
PyEval_InitThreads
PyEval_ReleaseLock
PyEval_ReleaseThread
PyEval_RestoreThread
PyEval_SaveThread
PyFile_AsFile
PyFile_FromFile
PyFile_FromString
PyFile_GetLine
PyFile_Name
PyFile_SetBufSize
PyFile_SoftSpace
PyFile_WriteObject
PyFile_WriteString
PyFloat_AsDouble
PyFloat_AsString
PyFloat_FromDouble
PyFrame_BlockPop
PyFrame_BlockSetup
PyFrame_FastToLocals
PyFrame_LocalsToFast
PyFrame_New
PyFunction_GetCode
PyFunction_GetGlobals
PyFunction_New
PyGrammar_AddAccelerators
PyGrammar_FindDFA
PyGrammar_LabelRepr
PyImport_AddModule
PyImport_Cleanup
PyImport_FrozenModules
PyImport_GetMagicNumber
PyImport_GetModuleDict
PyImport_Import
PyImport_ImportFrozenModule
PyImport_ImportModule
PyImport_ImportModuleEx
PyImport_ReloadModule
PyInstance_DoBinOp
PyInstance_New
PyInt_AsLong
PyInt_FromLong
PyInt_GetMax
PyInterpreterState_Clear
PyInterpreterState_Delete
PyInterpreterState_New
PyList_Append
PyList_AsTuple
PyList_GetItem
PyList_GetSlice
PyList_Insert
PyList_New
PyList_Reverse
PyList_SetItem
PyList_SetSlice
PyList_Size
PyList_Sort
PyLong_AsDouble
PyLong_AsLong
PyLong_AsUnsignedLong
PyLong_FromDouble
PyLong_FromLong
PyLong_FromString
PyLong_FromUnsignedLong
PyMapping_Check
PyMapping_GetItemString
PyMapping_HasKey
PyMapping_HasKeyString
PyMapping_Length
PyMapping_SetItemString
PyMarshal_Init
PyMarshal_ReadLongFromFile
PyMarshal_ReadObjectFromFile
PyMarshal_ReadObjectFromString
PyMarshal_WriteLongToFile
PyMarshal_WriteObjectToFile
PyMem_Free
PyMem_Malloc
PyMem_Realloc
PyMember_Get
PyMember_Set
PyMethod_Class
PyMethod_Function
PyMethod_New
PyMethod_Self
PyModule_GetDict
PyModule_GetName
PyModule_New
PyNode_AddChild
PyNode_Compile
PyNode_Free
PyNode_New
PyNumber_Absolute
PyNumber_Add
PyNumber_And
PyNumber_Check
PyNumber_Coerce
PyNumber_Divide
PyNumber_Divmod
PyNumber_Float
PyNumber_Int
PyNumber_Invert
PyNumber_Long
PyNumber_Lshift
PyNumber_Multiply
PyNumber_Negative
PyNumber_Or
PyNumber_Positive
PyNumber_Power
PyNumber_Remainder
PyNumber_Rshift
PyNumber_Subtract
PyNumber_Xor
PyOS_GetLastModificationTime
PyOS_InitInterrupts
PyOS_InterruptOccurred
PyOS_Readline
PyOS_strtol
PyOS_strtoul
PyObject_CallFunction
PyObject_CallMethod
PyObject_CallObject
PyObject_Compare
PyObject_GetAttr
PyObject_GetAttrString
PyObject_GetItem
PyObject_HasAttrString
PyObject_Hash
PyObject_IsTrue
PyObject_Length
PyObject_Print
PyObject_Repr
PyObject_SetAttr
PyObject_SetAttrString
PyObject_SetItem
PyObject_Str
PyObject_Type
PyParser_AddToken
PyParser_Delete
PyParser_New
PyParser_ParseFile
PyParser_ParseString
PyParser_SimpleParseFile
PyParser_SimpleParseString
PyRange_New
PyRun_AnyFile
PyRun_File
PyRun_InteractiveLoop
PyRun_InteractiveOne
PyRun_SimpleFile
PyRun_SimpleString
PyRun_String
PySequence_Check
PySequence_Concat
PySequence_Count
PySequence_GetItem
PySequence_GetSlice
PySequence_In
PySequence_Index
PySequence_Length
PySequence_Repeat
PySequence_SetItem
PySequence_SetSlice
PySequence_Tuple
PySlice_GetIndices
PySlice_New
PyString_AsString
PyString_Concat
PyString_ConcatAndDel
PyString_Format
PyString_FromString
PyString_FromStringAndSize
PyString_Size
PySys_GetFile
PySys_GetObject
PySys_SetArgv
PySys_SetObject
PySys_SetPath
PyThreadState_Clear
PyThreadState_Delete
PyThreadState_Get
PyThreadState_New
PyThreadState_Swap
PyThread_acquire_lock
PyThread_allocate_lock
PyThread_allocate_sema
PyThread_down_sema
PyThread_exit_thread
PyThread_free_lock
PyThread_free_sema
PyThread_get_thread_ident
PyThread_init_thread
PyThread_release_lock
PyThread_start_new_thread
PyThread_up_sema
PyToken_OneChar
PyToken_TwoChars
PyTokenizer_Free
PyTokenizer_FromFile
PyTokenizer_FromString
PyTokenizer_Get
PyTraceBack_Here
PyTraceBack_Print
PyTuple_GetItem
PyTuple_GetSlice
PyTuple_New
PyTuple_SetItem
PyTuple_Size
Py_AtExit
Py_BuildValue
Py_CompileString
Py_EndInterpreter
Py_Exit
Py_FatalError
Py_FdIsInteractive
Py_Finalize
Py_FindMethod
Py_FindMethodInChain
Py_FlushLine
Py_Free
Py_FrozenMain
Py_GetBuildInfo
Py_GetCopyright
Py_GetExecPrefix
Py_GetPath
Py_GetPrefix
Py_GetProgramFullPath
Py_GetProgramName
Py_GetVersion
Py_InitModule4
Py_Initialize
Py_IsInitialized
Py_Main
Py_Malloc
Py_NewInterpreter
Py_Realloc
Py_SetProgramName
Py_VaBuildValue
_PyObject_New
_PyObject_NewVar
_PyString_Resize
_Py_c_diff
_Py_c_neg
_Py_c_pow
_Py_c_prod
_Py_c_quot
_Py_c_sum
initimp

View File

@ -1,114 +1,114 @@
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).
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).