12770ece5Stholo /* config.h --- configuration file for OS/2 EMX 22770ece5Stholo Thomas Epting <tepting@swol.de> --- Feb 1997 */ 32770ece5Stholo 42770ece5Stholo /* This program is free software; you can redistribute it and/or modify 52770ece5Stholo it under the terms of the GNU General Public License as published by 62770ece5Stholo the Free Software Foundation; either version 2, or (at your option) 72770ece5Stholo any later version. 82770ece5Stholo 92770ece5Stholo This program is distributed in the hope that it will be useful, 102770ece5Stholo but WITHOUT ANY WARRANTY; without even the implied warranty of 112770ece5Stholo MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 122770ece5Stholo GNU General Public License for more details. */ 132770ece5Stholo 142770ece5Stholo /* This file lives in the emx/ subdirectory, which is only included 152770ece5Stholo * in your header search path if you use emx/Makefile (with GNU make 162770ece5Stholo * for OS/2). Thus, this is the right place to put configuration 172770ece5Stholo * information for OS/2. 182770ece5Stholo */ 192770ece5Stholo 202770ece5Stholo #include <io.h> 212770ece5Stholo #include <sys/types.h> 222770ece5Stholo #include <sys/stat.h> 232770ece5Stholo 242770ece5Stholo /* Define if on AIX 3. 252770ece5Stholo System headers sometimes define this. 262770ece5Stholo We just want to avoid a redefinition error message. */ 272770ece5Stholo #ifndef _ALL_SOURCE 282770ece5Stholo /* #undef _ALL_SOURCE */ 292770ece5Stholo #endif 302770ece5Stholo 312770ece5Stholo /* Define to empty if the keyword does not work. */ 322770ece5Stholo #undef const 332770ece5Stholo 342770ece5Stholo /* Define to `int' if <sys/types.h> doesn't define. */ 352770ece5Stholo /* #undef gid_t */ 362770ece5Stholo 372770ece5Stholo /* Define if you support file names longer than 14 characters. */ 382770ece5Stholo #define HAVE_LONG_FILE_NAMES 1 392770ece5Stholo 402770ece5Stholo /* Define if you have <sys/wait.h> that is POSIX.1 compatible. */ 412770ece5Stholo #define HAVE_SYS_WAIT_H 1 422770ece5Stholo 432770ece5Stholo /* Define if utime(file, NULL) sets file's timestamp to the present. */ 442770ece5Stholo #define HAVE_UTIME_NULL 1 452770ece5Stholo 462770ece5Stholo /* Define if on MINIX. */ 472770ece5Stholo /* #undef _MINIX */ 482770ece5Stholo 492770ece5Stholo /* Define to `int' if <sys/types.h> doesn't define. */ 502770ece5Stholo /* #undef mode_t */ 512770ece5Stholo 522770ece5Stholo /* Define to `int' if <sys/types.h> doesn't define. */ 532770ece5Stholo /* #undef pid_t */ 542770ece5Stholo 552770ece5Stholo /* Define if the system does not provide POSIX.1 features except 562770ece5Stholo with this defined. */ 572770ece5Stholo /* #undef _POSIX_1_SOURCE */ 582770ece5Stholo 592770ece5Stholo /* Define if you need to in order for stat and other things to work. */ 602770ece5Stholo /* #undef _POSIX_SOURCE */ 612770ece5Stholo 622770ece5Stholo /* Define as the return type of signal handlers (int or void). */ 632770ece5Stholo #define RETSIGTYPE void 642770ece5Stholo 652770ece5Stholo /* Define to `unsigned' if <sys/types.h> doesn't define. */ 662770ece5Stholo /* #undef size_t */ 672770ece5Stholo 682770ece5Stholo /* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */ 692770ece5Stholo /* #undef STAT_MACROS_BROKEN */ 702770ece5Stholo 712770ece5Stholo /* Define if you have the ANSI C header files. */ 722770ece5Stholo #define STDC_HEADERS 1 732770ece5Stholo 742770ece5Stholo /* Define if you can safely include both <sys/time.h> and <time.h>. */ 752770ece5Stholo #define TIME_WITH_SYS_TIME 1 762770ece5Stholo 772770ece5Stholo /* Define to `int' if <sys/types.h> doesn't define. */ 782770ece5Stholo /* #undef uid_t */ 792770ece5Stholo 802770ece5Stholo /* Define if you have MIT Kerberos version 4 available. */ 812770ece5Stholo #undef HAVE_KERBEROS 822770ece5Stholo 832770ece5Stholo /* Define if you want CVS to be able to be a remote repository client. */ 842770ece5Stholo #define CLIENT_SUPPORT 1 852770ece5Stholo 862770ece5Stholo #if 0 872770ece5Stholo /* This doesn't work yet, and I'm sure I don't want the hassles of seeing 882770ece5Stholo whether it will compile. */ 892770ece5Stholo /* Define if you want CVS to be able to serve repositories to remote 902770ece5Stholo clients. */ 912770ece5Stholo #define SERVER_SUPPORT 1 922770ece5Stholo 932770ece5Stholo /* Define if you want to use the password authenticated server. */ 942770ece5Stholo #define AUTH_SERVER_SUPPORT 952770ece5Stholo #endif /* 0 */ 962770ece5Stholo 972770ece5Stholo /* Define if you want encryption support. */ 982770ece5Stholo /* #undef ENCRYPTION */ 992770ece5Stholo 1002770ece5Stholo /* Define if you have the connect function. */ 1012770ece5Stholo #define HAVE_CONNECT 1 1022770ece5Stholo 1032770ece5Stholo /* Define if you have the crypt function. */ 1042770ece5Stholo #define HAVE_CRYPT 1 1052770ece5Stholo 1062770ece5Stholo /* Define if you have the fchdir function. */ 1072770ece5Stholo /* #define HAVE_FCHDIR */ 1082770ece5Stholo 1092770ece5Stholo /* Define if you have the fchmod function. */ 1102770ece5Stholo /* #define HAVE_FCHMOD */ 1112770ece5Stholo 1122770ece5Stholo /* Define if you have the fsync function. */ 1132770ece5Stholo #define HAVE_FSYNC 1 1142770ece5Stholo 1152770ece5Stholo /* Define if you have the ftime function. */ 1162770ece5Stholo #define HAVE_FTIME 1 1172770ece5Stholo 1182770ece5Stholo /* Define if you have the ftruncate function. */ 1192770ece5Stholo #define HAVE_FTRUNCATE 1 1202770ece5Stholo 1212770ece5Stholo /* Define if you have the getpagesize function. */ 1222770ece5Stholo #define HAVE_GETPAGESIZE 1 1232770ece5Stholo 1242770ece5Stholo /* Define if you have the getspnam function. */ 1252770ece5Stholo /* #define HAVE_GETSPNAM */ 1262770ece5Stholo 1272770ece5Stholo /* Define if you have the initgroups function. */ 1282770ece5Stholo /* #define HAVE_INITGROUPS */ 1292770ece5Stholo 1302770ece5Stholo /* Define if you have the krb_get_err_text function. */ 1312770ece5Stholo /* #undef HAVE_KRB_GET_ERR_TEXT */ 1322770ece5Stholo 1332770ece5Stholo /* Define if you have the putenv function. */ 1342770ece5Stholo #define HAVE_PUTENV 1 1352770ece5Stholo 1362770ece5Stholo /* Define if you have the readlink function. */ 1372770ece5Stholo /* #define HAVE_READLINK */ 1382770ece5Stholo 1392770ece5Stholo /* Define if you have the sigaction function. */ 1402770ece5Stholo #define HAVE_SIGACTION 1 1412770ece5Stholo 1422770ece5Stholo /* Define if you have the sigblock function. */ 1432770ece5Stholo /* #undef HAVE_SIGBLOCK */ 1442770ece5Stholo 1452770ece5Stholo /* Define if you have the sigprocmask function. */ 1462770ece5Stholo #define HAVE_SIGPROCMASK 1 1472770ece5Stholo 1482770ece5Stholo /* Define if you have the sigsetmask function. */ 1492770ece5Stholo /* #undef HAVE_SIGSETMASK */ 1502770ece5Stholo 1512770ece5Stholo /* Define if you have the sigvec function. */ 1522770ece5Stholo /* #undef HAVE_SIGVEC */ 1532770ece5Stholo 1542770ece5Stholo /* Define if you have the timezone function. */ 1552770ece5Stholo #define HAVE_TIMEZONE 1 1562770ece5Stholo 1572770ece5Stholo /* Define if you have the tzset function. */ 1582770ece5Stholo #define HAVE_TZSET 1 1592770ece5Stholo 1602770ece5Stholo /* Define if you have the vfork function. */ 1612770ece5Stholo /* #undef HAVE_VFORK */ 1622770ece5Stholo 1632770ece5Stholo /* Define if you have the vprintf function. */ 1642770ece5Stholo #define HAVE_VPRINTF 1 1652770ece5Stholo 1662770ece5Stholo /* Define if you have the <direct.h> header file. */ 1672770ece5Stholo /* #undef HAVE_DIRECT_H */ 1682770ece5Stholo 1692770ece5Stholo /* Define if you have the <dirent.h> header file. */ 1702770ece5Stholo #define HAVE_DIRENT_H 1 1712770ece5Stholo 1722770ece5Stholo /* Define if you have the <errno.h> header file. */ 1732770ece5Stholo #define HAVE_ERRNO_H 1 1742770ece5Stholo 1752770ece5Stholo /* Define if you have the <fcntl.h> header file. */ 1762770ece5Stholo #define HAVE_FCNTL_H 1 1772770ece5Stholo 1782770ece5Stholo /* Define if you have the <io.h> header file. */ 1792770ece5Stholo #define HAVE_IO_H 1 1802770ece5Stholo 1812770ece5Stholo /* Define if you have the <memory.h> header file. */ 1822770ece5Stholo #define HAVE_MEMORY_H 1 1832770ece5Stholo 1842770ece5Stholo /* Define if you have the <ndbm.h> header file. */ 1852770ece5Stholo /* #undef HAVE_NDBM_H 1 */ 1862770ece5Stholo 1872770ece5Stholo /* Define if you have the <ndir.h> header file. */ 1882770ece5Stholo /* #undef HAVE_NDIR_H */ 1892770ece5Stholo 1902770ece5Stholo /* Define if you have the <string.h> header file. */ 1912770ece5Stholo #define HAVE_STRING_H 1 1922770ece5Stholo 1932770ece5Stholo /* Define if you have the <sys/bsdtypes.h> header file. */ 1942770ece5Stholo /* #undef HAVE_SYS_BSDTYPES_H */ 1952770ece5Stholo 1962770ece5Stholo /* Define if you have the <sys/dir.h> header file. */ 1972770ece5Stholo #define HAVE_SYS_DIR_H 1 1982770ece5Stholo 1992770ece5Stholo /* Define if you have the <sys/ndir.h> header file. */ 2002770ece5Stholo /* #undef HAVE_SYS_NDIR_H */ 2012770ece5Stholo 2022770ece5Stholo /* Define if you have the <sys/param.h> header file. */ 2032770ece5Stholo #define HAVE_SYS_PARAM_H 1 2042770ece5Stholo 2052770ece5Stholo /* Define if you have the <sys/resource.h> header file. */ 2062770ece5Stholo #define HAVE_SYS_RESOURCE_H 1 2072770ece5Stholo 2082770ece5Stholo /* Define if you have the <sys/select.h> header file. */ 2092770ece5Stholo #define HAVE_SYS_SELECT_H 1 2102770ece5Stholo 2112770ece5Stholo /* Define if you have the <sys/time.h> header file. */ 2122770ece5Stholo #define HAVE_SYS_TIME_H 1 2132770ece5Stholo 2142770ece5Stholo /* Define if you have the <unistd.h> header file. */ 2152770ece5Stholo #define HAVE_UNISTD_H 1 2162770ece5Stholo 2172770ece5Stholo /* Define if you have the <utime.h> header file. */ 2182770ece5Stholo #define HAVE_UTIME_H 1 2192770ece5Stholo 2202770ece5Stholo /* Define if you have the crypt library (-lcrypt). */ 2212770ece5Stholo #define HAVE_LIBCRYPT 1 2222770ece5Stholo 2232770ece5Stholo /* Define if you have the inet library (-linet). */ 2242770ece5Stholo /* #undef HAVE_LIBINET */ 2252770ece5Stholo 2262770ece5Stholo /* Define if you have the nsl library (-lnsl). */ 2272770ece5Stholo #define HAVE_LIBNSL 1 2282770ece5Stholo 2292770ece5Stholo /* Define if you have the nsl_s library (-lnsl_s). */ 2302770ece5Stholo /* #undef HAVE_LIBNSL_S */ 2312770ece5Stholo 2322770ece5Stholo /* Define if you have the sec library (-lsec). */ 2332770ece5Stholo /* #undef HAVE_LIBSEC 1 */ 2342770ece5Stholo 2352770ece5Stholo /* Define if you have the socket library (-lsocket). */ 2362770ece5Stholo #define HAVE_LIBSOCKET 1 2372770ece5Stholo 2382770ece5Stholo /* Under OS/2, filenames are case-insensitive, and both / and \ 2392770ece5Stholo are path component separators. */ 2402770ece5Stholo #define FOLD_FN_CHAR(c) (OS2_filename_classes[(unsigned char) (c)]) 2412770ece5Stholo extern unsigned char OS2_filename_classes[]; 2422770ece5Stholo 2432770ece5Stholo /* Is the character C a path name separator? Under OS/2, you can use 2442770ece5Stholo either / or \. */ 2452770ece5Stholo #define ISDIRSEP(c) (FOLD_FN_CHAR(c) == '/') 2462770ece5Stholo 2472770ece5Stholo /* Like strcmp, but with the appropriate tweaks for file names. 2482770ece5Stholo Under OS/2, filenames are case-insensitive but case-preserving, 2492770ece5Stholo and both \ and / are path element separators. */ 2502770ece5Stholo extern int fncmp (const char *n1, const char *n2); 2512770ece5Stholo 2522770ece5Stholo /* Fold characters in FILENAME to their canonical forms. 2532770ece5Stholo If FOLD_FN_CHAR is not #defined, the system provides a default 2542770ece5Stholo definition for this. */ 2552770ece5Stholo extern void fnfold (char *FILENAME); 2562770ece5Stholo 2572770ece5Stholo /* This is where old bits go to die under OS/2 as well as WinNT. */ 2582770ece5Stholo #define DEVNULL "nul" 2592770ece5Stholo 2602770ece5Stholo /* We actually do have a transparent rsh, whew. */ 2612770ece5Stholo #undef RSH_NOT_TRANSPARENT 2622770ece5Stholo /* But it won't be transparent unless we ask it nicely! */ 2632770ece5Stholo #define RSH_NEEDS_BINARY_FLAG 1 2642770ece5Stholo 2652770ece5Stholo #define START_SERVER os2_start_server 2662770ece5Stholo #define SHUTDOWN_SERVER os2_shutdown_server 2672770ece5Stholo 2682770ece5Stholo extern void START_SERVER (int *tofd, int *fromfd, 2692770ece5Stholo char *client_user, 2702770ece5Stholo char *server_user, 2712770ece5Stholo char *server_host, 2722770ece5Stholo char *server_cvsroot); 2732770ece5Stholo extern void SHUTDOWN_SERVER (int fd); 2742770ece5Stholo 2752770ece5Stholo /* Call our own os2_initialize function */ 2762770ece5Stholo #define SYSTEM_INITIALIZE(pargc,pargv) os2_initialize (pargc, pargv) 2772770ece5Stholo extern void os2_initialize (int *pargc, char ***pargv); 2782770ece5Stholo 2792770ece5Stholo /* Under EMX, we already have popen() and pclose()... */ 2802770ece5Stholo /* #undef USE_OWN_POPEN */ 2812770ece5Stholo /* ... and we too have no need for popenRW to start the rsh server. */ 2822770ece5Stholo /* #define START_RSH_WITH_POPEN_RW */ 2832770ece5Stholo 2842770ece5Stholo /* Socket handles and file handles share a command handle space under EMX. */ 2852770ece5Stholo /* #undef NO_SOCKET_TO_FD */ 2862770ece5Stholo 2872770ece5Stholo 2882770ece5Stholo 2892770ece5Stholo #define CVS_STAT os2_stat 2902770ece5Stholo #define CVS_CHDIR os2_chdir 2912770ece5Stholo #define CVS_FNMATCH os2_fnmatch 2922770ece5Stholo 2932770ece5Stholo extern int os2_stat(const char *name, struct stat *buffer); 2942770ece5Stholo extern int os2_chdir(const char *name); 2952770ece5Stholo extern int os2_fnmatch(const char *pattern, const char *name, int flags); 2962770ece5Stholo 2972770ece5Stholo /* Pipes need to be put into binary mode using setmode (). */ 2982770ece5Stholo #define USE_SETMODE_BINARY 1 2992770ece5Stholo 3002770ece5Stholo /* The reason for this is that we don't know whether to pass -b to 3012770ece5Stholo rsh. The system-supplied rsh on OS/2 wants it. Some other rsh 3022770ece5Stholo replacement might not accept it. Historically, the NT port of CVS 3032770ece5Stholo has not passed -b, and the OS/2 port has. What a mess. If we can 3042770ece5Stholo get away with just not accepting :ext: until we can figure out how 3052770ece5Stholo we should deal with this, then it will avoid having people rely on 3062770ece5Stholo behaviors which will need to change. */ 3072770ece5Stholo #define NO_EXT_METHOD 1 3082770ece5Stholo 3092770ece5Stholo /* See above; we can't use rsh without -b. */ 3102770ece5Stholo #define RSH_NOT_TRANSPARENT 1 311*2286d8edStholo 312*2286d8edStholo /* See discussion at xchmod in filesubr.c. */ 313*2286d8edStholo #define CHMOD_BROKEN 1 314