home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / e20313sr.zip / emacs / 20.3.1 / src / s / ptx.h < prev    next >
C/C++ Source or Header  |  1999-06-27  |  6KB  |  172 lines

  1. /* Definitions file for GNU Emacs running on Sequent DYNIX/ptx 1.x/2.x
  2.    Copyright (C) 1987, 1990 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. GNU Emacs is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU Emacs; see the file COPYING.  If not, write to
  18. the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  19. Boston, MA 02111-1307, USA.  */
  20.  
  21. /* This file was written by Bill Burton <billb@progress.com>.  Parts were
  22.    adapted from m-ptx1-2.h and process.c as distributed with the Emacs 18.57
  23.    on the Sequent Public software tape. Other parts were adapted from
  24.    usg5-4.h. */
  25.  
  26. /* Use the SysVr3 file for base configuration even though much is changed.  */
  27. #include "usg5-3.h"
  28.  
  29. /* Undo these defines because they are incorrect or need to be changed.  */
  30. #undef LIB_X11_LIB
  31. #undef LIBX10_SYSTEM
  32. #undef LIBX11_SYSTEM
  33. #undef USG_SHARED_LIBRARIES
  34.  
  35. /* <sys/stat.h> *defines* stat as a static function.  If "static"
  36.    is blank, then many files will have a public definition for stat.  */
  37. #undef static
  38.  
  39. /* PTX supports job control.  */
  40. #undef NOMULTIPLEJOBS
  41.  
  42. /* PTX has System V streams.  */
  43. #define SYSV_STREAMS
  44.  
  45. /* Leave out -lPW since it conflicts with term.o and because we're not sure 
  46.    if the alloca found there by autoconf should be trusted on PTX.  */
  47. #define LIB_STANDARD -lc
  48.  
  49. /* Local define.  If TCP/IP is not installed, comment this out.  */
  50. #define TCPIP_INSTALLED
  51.  
  52. #ifdef TCPIP_INSTALLED
  53. #define HAVE_SOCKETS
  54. #else
  55. #undef subprocesses
  56. #endif
  57.  
  58. #ifdef HAVE_X_WINDOWS
  59.  
  60. #define LIBX11_SYSTEM -lsocket -linet -lnsl
  61. /* This is also defined so that lib-src/profile can link.  */
  62. #define LIBS_SYSTEM -lseq
  63.  
  64. #else /* ! HAVE_X_WINDOWS */
  65.  
  66. #ifdef HAVE_SOCKETS
  67. #define LIBS_SYSTEM -lsocket -linet -lnsl -lseq
  68. #else
  69. #define LIBS_SYSTEM -lseq
  70. #endif
  71.  
  72. #endif /* ! HAVE_X_WINDOWS */
  73.  
  74. /* No <sioctl.h> */
  75. #define NO_SIOCTL_H
  76.  
  77. /* If we have X windows, configure should find gettimeofday in -lX11.
  78.    Since we emulate gettimeofday below, we really have it anyway.  */
  79. #ifndef HAVE_GETTIMEOFDAY
  80. #define HAVE_GETTIMEOFDAY
  81. #endif
  82.  
  83. #ifdef emacs
  84. #include <sys/stropts.h>    /* Support for pty's */
  85. #include <sys/conf.h>
  86.  
  87. /*#undef SIGIO*/        /* SIGIO is already undef'd elsewhere. PTX
  88.                                    has SIGIO, but it's just an alias for
  89.                                    SIGPOLL.  */
  90.  
  91. /* Emulate gettimeofday() except for the time zone information which Emacs
  92.    doesn't use anyway.  Get_process_stats() is in -lseq.  */
  93. #include <sys/procstats.h>
  94. #define gettimeofday(tp, tzp) get_process_stats (tp, PS_SELF, 0, 0)
  95.  
  96. /* Define timezone since it's not in sys/time.h.  Unfortunately, this causes
  97.    trouble when building with X since this struct is defined in
  98.    <X11/Xos.h>.  */
  99. struct timezone
  100. {
  101.   int tz_minuteswest;
  102.   int tz_dsttime;
  103. };
  104.  
  105. /* Unfortunately, this define is not checked in all files including
  106.    <X11/Xos.h> so we can't use it.  */
  107. /* #define XOS_NEEDS_TIME_H */
  108.  
  109. /* In ptx/WINDOWS, this prevents problems with the timezone struct being
  110.    redefined in <X11/Xos.h>.  It seems the necessary include files are
  111.    included via systime.h so leaving them out here is not a problem.  This
  112.    may not work in X11R5 or X11R6.  */
  113. #define __TIMEVAL__
  114.  
  115. #endif  /* emacs */
  116.  
  117. /* PTX doesn't have FIONREAD at all. */
  118. #undef INTERRUPT_INPUT
  119. #define BROKEN_FIONREAD
  120.  
  121. /* We can support this */
  122. #define CLASH_DETECTION
  123.  
  124. /* PTX has termios */
  125. #define HAVE_TERMIOS
  126. #undef HAVE_TERMIO
  127. #undef BROKEN_TIOCGWINSZ
  128. #undef BROKEN_TIOCGETC
  129.  
  130. /* It is possible to receive SIGCHLD when there are no children
  131.    waiting, because a previous waitsys cleaned up the carcass of child
  132.    without clearing the SIGCHLD pending info.  So, use a non-blocking
  133.    wait3 instead, which maps to waitpid in SysVr4.  */
  134. /* Not sure if this is used but PTX does support waitpid.  */
  135. /*#define HAVE_WAIT_HEADER*/
  136. /*#define WAITTYPE int*/
  137. #define wait3(status, options, rusage) \
  138.   waitpid ((pid_t) -1, (status), (options))
  139. /*#define WRETCODE(w) (w >> 8)*/
  140.  
  141. /* PTX has pty's but not like System V */
  142. #define HAVE_PTYS
  143. #undef SYSV_PTYS
  144.  
  145. /* Provide pty support which is defined into process.c:allocate_pty.
  146.    Basic ideas for handling getpseudotty were lifted from process.c in
  147.    Emacs 18.57 included on the Sequent Public Software tape.  However, this
  148.    implementation bears almost no resemblance to the original and does not
  149.    require that process.c be patched.  */
  150. #define PTY_ITERATION                        \
  151.   char *mastername, *slavename;                    \
  152.   while (1)
  153.  
  154. #define PTY_OPEN                        \
  155.   if (failed_count++ >= 5) break;                \
  156.   if ((fd = getpseudotty (&slavename, &mastername)) < 0) {    \
  157.     error("Out of ptys.");                    \
  158.     continue;                            \
  159.   }                                \
  160.   strcpy (pty_name, slavename);
  161.  
  162. /* Define these to prevent the default logic in process.c:allocate_pty 
  163.    from being used.  */
  164. #define PTY_NAME_SPRINTF
  165. #define PTY_TTY_NAME_SPRINTF
  166.  
  167. /* PTX doesn't seem to have memmove.  */
  168. #define MEMMOVE_MISSING
  169.  
  170. /* Kenneth Stailey <kstailey@eagle.dol-esa.gov> says this is needed.  */
  171. #define POSIX_SIGNALS
  172.