Home | History | Annotate | Download | only in os2vacpp
      1 #ifndef Py_CONFIG_H
      2 #define Py_CONFIG_H
      3 
      4 /**********************************************************************
      5  * pyconfig.h.  NOT Generated automatically by configure.
      6  *
      7  * This is a manually maintained version used for the IBM VisualAge
      8  * C/C++ compiler on the OS/2 platform.  It is a standard part of
      9  * the Python distribution.
     10  *
     11  * FILESYSTEM DEFINES:
     12  * The code specific to a particular way of naming files and
     13  * directory paths should be wrapped around one of the following
     14  * #defines:
     15  *
     16  *     DOSFILESYS   PCDOS-Style (for PCDOS, Windows and OS/2)
     17  *     MACFILESYS   Macintosh-Style
     18  *     UNIXFILESYS  Unix-Style
     19  *     AMIGAFILESYS AmigaDOS-Style
     20  *
     21  * Because of the different compilers and operating systems in
     22  * use on the Intel platform, neither the compiler name nor
     23  * the operating system name is sufficient.
     24  *
     25  * OS/2 DEFINES:
     26  * The code specific to OS/2's Program API should be wrapped around
     27  *
     28  * __TOS_OS2__   Target Operating System, OS/2
     29  *
     30  * Any code specific to the compiler itself should be wrapped with
     31  *
     32  * __IBMC__      IBM C Compiler
     33  * __IBMCPP__    IBM C++ Compiler
     34  *
     35  * Note that since the VisualAge C/C++ compiler is also available
     36  * for the Windows platform, it may be necessary to use both a
     37  * __TOS_OS2__ and a __IBMC__ to select a very specific environment.
     38  *
     39  **********************************************************************/
     40 
     41 /*
     42  * Some systems require special declarations for data items imported
     43  * or exported from dynamic link libraries.  Note that the definition
     44  * of DL_IMPORT covers both cases.  Define USE_DL_IMPORT for the client
     45  * of a DLL.  Define USE_DL_EXPORT when making a DLL.
     46  */
     47 
     48 #include <io.h>
     49 
     50 /* Configuration Options for Finding Modules */
     51 #define PREFIX                 ""
     52 #define EXEC_PREFIX            ""
     53 
     54 /* Provide a default library so writers of extension modules
     55  * won't have to explicitly specify it anymore
     56  */
     57 #pragma library("Python24.lib")
     58 
     59 /***************************************************/
     60 /*    32-Bit IBM VisualAge C/C++ v3.0 for OS/2     */
     61 /*  (Convert Compiler Flags into Useful Switches)  */
     62 /***************************************************/
     63 #define PLATFORM    "os2"
     64 #define COMPILER    "[VisualAge C/C++]"
     65 #define PYOS_OS2    /* Define Indicator of Operating System */
     66 #define PYCC_VACPP  /* Define Indicator of C Compiler */
     67 
     68   /* Platform Filesystem */
     69 #define PYTHONPATH  ".;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
     70 #define DOSFILESYS  /* OS/2 Uses the DOS File Naming Conventions */
     71 /* #define IMPORT_8x3_NAMES (let's move up to long filenames) */
     72 
     73   /* Platform CPU-Mode Dependencies */
     74 #define WORD_BIT                32 /* OS/2 is a 32-Bit Operating System */
     75 #define LONG_BIT                32
     76 #define SIZEOF_INT               4 /* Count of Bytes in an (int)            */
     77 #define SIZEOF_LONG              4 /* Count of Bytes in a (long)            */
     78 #define SIZEOF_VOID_P            4 /* Count of Bytes in a (void *)          */
     79 /* #define HAVE_LONG_LONG     1 */ /* VAC++ does not support (long long)    */
     80 /* #define SIZEOF_LONG_LONG   8 */ /* Count of Bytes in a (long long)       */
     81 
     82 /* unicode definines */
     83 #define Py_USING_UNICODE
     84 #define PY_UNICODE_TYPE    wchar_t
     85 #define Py_UNICODE_SIZE SIZEOF_SHORT
     86 
     87 /* dynamic loading */
     88 #define HAVE_DYNAMIC_LOADING 1
     89 
     90 /* Define if type char is unsigned and you are not using gcc.  */
     91 #ifndef __CHAR_UNSIGNED__
     92 /* #undef __CHAR_UNSIGNED__ */
     93 #endif
     94 
     95 typedef int mode_t;
     96 typedef int uid_t;
     97 typedef int gid_t;
     98 typedef int pid_t;
     99 
    100 #if defined(__MULTI__)     /* If Compiler /Gt+ Multithread Option Enabled,  */
    101   #define WITH_THREAD            1 /* Enable Threading Throughout Python    */
    102   #define OS2_THREADS            1 /* And Use the OS/2 Flavor of Threads    */
    103 /* #define _REENTRANT 1 */ /* Use thread-safe errno, h_errno, and other fns */
    104 #endif
    105 
    106   /* Compiler Runtime Library Capabilities */
    107 #include <ctype.h>
    108 #include <direct.h>
    109 /* #undef BAD_STATIC_FORWARD */ /* if compiler botches static fwd decls */
    110 
    111 #define STDC_HEADERS             1 /* VAC++ is an ANSI C Compiler           */
    112 #define HAVE_HYPOT               1 /* hypot()                               */
    113 #define HAVE_PUTENV              1 /* putenv()                              */
    114 /* #define VA_LIST_IS_ARRAY   1 */ /* if va_list is an array of some kind   */
    115 /* #define HAVE_CONIO_H       1 */ /* #include <conio.h>                    */
    116 #define HAVE_ERRNO_H             1 /* #include <errno.h>                    */
    117 #define HAVE_SYS_STAT_H          1 /* #include <sys/stat.h>                 */
    118 #define HAVE_SYS_TYPES_H         1 /* #include <sys/types.h>                */
    119 
    120   /* Variable-Arguments/Prototypes */
    121 #define HAVE_PROTOTYPES          1 /* VAC++ supports C Function Prototypes  */
    122 #define HAVE_STDARG_PROTOTYPES   1 /* Our <stdarg.h> has prototypes         */
    123 
    124   /* String/Memory/Locale Operations */
    125 #define HAVE_MEMMOVE             1 /* memmove()                             */
    126 #define HAVE_STRERROR            1 /* strerror()                            */
    127 #define HAVE_SETLOCALE           1 /* setlocale()                           */
    128 #define MALLOC_ZERO_RETURNS_NULL 1 /* Our malloc(0) returns a NULL ptr      */
    129 
    130   /* Signal Handling */
    131 #define HAVE_SIGNAL_H            1 /* signal.h                              */
    132 #define RETSIGTYPE            void /* Return type of handlers (int or void) */
    133 /* #undef WANT_SIGFPE_HANDLER   */ /* Handle SIGFPE (see Include/pyfpe.h)   */
    134 /* #define HAVE_ALARM         1 */ /* alarm()                               */
    135 /* #define HAVE_SIGINTERRUPT  1 */ /* siginterrupt()                        */
    136 /* #define HAVE_SIGRELSE      1 */ /* sigrelse()                            */
    137 #define DONT_HAVE_SIG_ALARM      1
    138 #define DONT_HAVE_SIG_PAUSE      1
    139 
    140   /* Clock/Time Support */
    141 #define HAVE_FTIME               1 /* We have ftime() in <sys/timeb.h>      */
    142 #define HAVE_CLOCK               1 /* clock()                               */
    143 #define HAVE_STRFTIME            1 /* strftime()                            */
    144 #define HAVE_MKTIME              1 /* mktime()                              */
    145 #define HAVE_TZNAME              1 /* No tm_zone but do have tzname[]       */
    146 #define HAVE_TIMES               1 /* #include <sys/times.h>                */
    147 #define HAVE_SYS_UTIME_H         1 /* #include <sys/utime.h>                */
    148 /* #define HAVE_UTIME_H       1 */ /* #include <utime.h>                    */
    149 #define HAVE_SYS_TIME_H          1 /* #include <sys/time.h>                 */
    150 /* #define TM_IN_SYS_TIME     1 */ /* <sys/time.h> declares struct tm       */
    151 #define HAVE_GETTIMEOFDAY        1 /* gettimeofday()                        */
    152 /* #define GETTIMEOFDAY_NO_TZ 1 */ /* gettimeofday() does not have 2nd arg  */
    153 /* #define HAVE_TIMEGM        1 */ /* timegm()                              */
    154 #define TIME_WITH_SYS_TIME       1 /* Mix <sys/time.h> and <time.h>         */
    155 #define SYS_SELECT_WITH_SYS_TIME 1 /* Mix <sys/select.h> and <sys/time.h>   */
    156 /* #define HAVE_ALTZONE       1 */ /* if <time.h> defines altzone           */
    157 
    158   /* Network/Sockets Support */
    159 #define HAVE_SYS_SELECT_H       1 /* #include <sys/select.h>                */
    160 #define BSD_SELECT              1 /* Use BSD versus OS/2 form of select()   */
    161 #define HAVE_SELECT             1 /* select()                               */
    162 #define HAVE_GETPEERNAME        1 /* getpeername()                          */
    163 /* #undef HAVE_GETHOSTNAME_R 1 */ /* gethostname_r()                        */
    164 
    165   /* File I/O */
    166 #define HAVE_DUP2                1 /* dup2()                                */
    167 #define HAVE_EXECV               1 /* execv()                               */
    168 #define HAVE_SETVBUF             1 /* setvbuf()                             */
    169 #define HAVE_GETCWD              1 /* getcwd()                              */
    170 #define HAVE_PIPE                1 /* pipe()     [OS/2-specific code added] */
    171 #define HAVE_IO_H                1 /* #include <io.h>                       */
    172 #define HAVE_FCNTL_H             1 /* #include <fcntl.h>                    */
    173 #define HAVE_DIRECT_H            1 /* #include <direct.h>                   */
    174 /* #define HAVE_FLOCK         1 */ /* flock()                               */
    175 /* #define HAVE_TRUNCATE      1 */ /* truncate()                            */
    176 /* #define HAVE_FTRUNCATE     1 */ /* ftruncate()                           */
    177 /* #define HAVE_LSTAT         1 */ /* lstat()                               */
    178 /* #define HAVE_DIRENT_H      1 */ /* #include <dirent.h>                   */
    179 /* #define HAVE_OPENDIR       1 */ /* opendir()                             */
    180 
    181   /* Process Operations */
    182 #define HAVE_PROCESS_H           1 /* #include <process.h>                  */
    183 #define HAVE_GETPID              1 /* getpid()                              */
    184 #define HAVE_SYSTEM              1 /* system()                              */
    185 #define HAVE_WAIT                1 /* wait()                                */
    186 #define HAVE_KILL                1 /* kill()     [OS/2-specific code added] */
    187 #define HAVE_POPEN               1 /* popen()    [OS/2-specific code added] */
    188 /* #define HAVE_GETPPID       1 */ /* getppid()                             */
    189 /* #define HAVE_WAITPID       1 */ /* waitpid()                             */
    190 /* #define HAVE_FORK          1 */ /* fork()                                */
    191 
    192   /* User/Group ID Queries */
    193 /* #define HAVE_GETEGID       1 */
    194 /* #define HAVE_GETEUID       1 */
    195 /* #define HAVE_GETGID        1 */
    196 /* #define HAVE_GETUID        1 */
    197 
    198   /* Unix-Specific */
    199 /* #define HAVE_SYS_UN_H            1 /* #include <sys/un.h>                   */
    200 /* #define HAVE_SYS_UTSNAME_H 1 */ /* #include <sys/utsname.h>              */
    201 /* #define HAVE_SYS_WAIT_H    1 */ /* #include <sys/wait.h>                 */
    202 /* #define HAVE_UNISTD_H      1 */ /* #include <unistd.h>                   */
    203 /* #define HAVE_UNAME         1 */ /* uname ()                              */
    204 
    205 /* Define if you want documentation strings in extension modules */
    206 #define WITH_DOC_STRINGS 1
    207 
    208 #ifdef USE_DL_EXPORT
    209   #define DL_IMPORT(RTYPE) RTYPE _System
    210 #endif
    211 
    212 #endif /* !Py_CONFIG_H */
    213 
    214