| 1 | /* Definitions file for GNU Emacs running on HPUX release 7.0. |
| 2 | Based on AT&T System V.2. |
| 3 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. |
| 4 | |
| 5 | This file is part of GNU Emacs. |
| 6 | |
| 7 | GNU Emacs is free software; you can redistribute it and/or modify |
| 8 | it under the terms of the GNU General Public License as published by |
| 9 | the Free Software Foundation; either version 1, or (at your option) |
| 10 | any later version. |
| 11 | |
| 12 | GNU Emacs is distributed in the hope that it will be useful, |
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 15 | GNU General Public License for more details. |
| 16 | |
| 17 | You should have received a copy of the GNU General Public License |
| 18 | along with GNU Emacs; see the file COPYING. If not, write to |
| 19 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ |
| 20 | |
| 21 | |
| 22 | /* |
| 23 | * Define symbols to identify the version of Unix this is. |
| 24 | * Define all the symbols that apply correctly. |
| 25 | */ |
| 26 | |
| 27 | #define USG /* System III, System V, etc */ |
| 28 | |
| 29 | #define USG5 |
| 30 | |
| 31 | #define HPUX |
| 32 | |
| 33 | /* SYSTEM_TYPE should indicate the kind of system you are using. |
| 34 | It sets the Lisp variable system-type. */ |
| 35 | |
| 36 | #define SYSTEM_TYPE "hpux" |
| 37 | |
| 38 | /* `nomultiplejobs' should be defined if your system's shell |
| 39 | does not have "job control" (the ability to stop a program, |
| 40 | run some other program, then continue the first one). |
| 41 | |
| 42 | On hpux this depends on the precise kind of machine in use, |
| 43 | so the m- file defines this symbol if appropriate. */ |
| 44 | |
| 45 | /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ |
| 46 | |
| 47 | /* #define INTERRUPT_INPUT */ |
| 48 | |
| 49 | /* Letter to use in finding device name of first pty, |
| 50 | if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */ |
| 51 | |
| 52 | #define FIRST_PTY_LETTER 'p' |
| 53 | |
| 54 | /* |
| 55 | * Define HAVE_TERMIO if the system provides sysV-style ioctls |
| 56 | * for terminal control. |
| 57 | */ |
| 58 | |
| 59 | #define HAVE_TERMIO |
| 60 | |
| 61 | /* Says to include time.h, and not include sys/time.h. */ |
| 62 | |
| 63 | #define NEED_TIME_H |
| 64 | |
| 65 | /* |
| 66 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. |
| 67 | * Look in <sys/time.h> for a timeval structure. |
| 68 | */ |
| 69 | |
| 70 | #define HAVE_TIMEVAL |
| 71 | |
| 72 | /* With HAVE_TIMEVAL define, Emacs expects to use `utimes'. |
| 73 | But HPUX does not have one. */ |
| 74 | |
| 75 | #define MISSING_UTIMES |
| 76 | |
| 77 | /* |
| 78 | * Define HAVE_SELECT if the system supports the `select' system call. |
| 79 | */ |
| 80 | |
| 81 | #define HAVE_SELECT |
| 82 | |
| 83 | /* |
| 84 | * Define HAVE_PTYS if the system supports pty devices. |
| 85 | */ |
| 86 | |
| 87 | #define HAVE_PTYS |
| 88 | |
| 89 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ |
| 90 | |
| 91 | #define HAVE_SOCKETS |
| 92 | |
| 93 | /* |
| 94 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate |
| 95 | * The 4.2 opendir, etc., library functions. |
| 96 | */ |
| 97 | |
| 98 | /* #define NONSYSTEM_DIR_LIBRARY */ |
| 99 | |
| 100 | /* Define this symbol if your system has the functions bcopy, etc. |
| 101 | * s800 and later versions of s300 (s200) kernels have equivilents |
| 102 | * of the BSTRING functions of BSD. If your s200 kernel doesn't have |
| 103 | * em comment out this section. |
| 104 | */ |
| 105 | |
| 106 | #define BSTRING |
| 107 | |
| 108 | /* subprocesses should be defined if you want to |
| 109 | have code for asynchronous subprocesses |
| 110 | (as used in M-x compile and M-x shell). |
| 111 | This is generally OS dependent, and not supported |
| 112 | under most USG systems. */ |
| 113 | |
| 114 | #define subprocesses |
| 115 | |
| 116 | /* If your system uses COFF (Common Object File Format) then define the |
| 117 | preprocessor symbol "COFF". */ |
| 118 | |
| 119 | /* #define COFF */ |
| 120 | |
| 121 | /* define MAIL_USE_FLOCK if the mailer uses flock |
| 122 | to interlock access to /usr/spool/mail/$USER. |
| 123 | The alternative is that a lock file named |
| 124 | /usr/spool/mail/$USER.lock. */ |
| 125 | |
| 126 | /* #define MAIL_USE_FLOCK */ |
| 127 | |
| 128 | /* Say we have the SYSV style of interprocess communication. */ |
| 129 | |
| 130 | #define HAVE_SYSVIPC |
| 131 | |
| 132 | /* Define CLASH_DETECTION if you want lock files to be written |
| 133 | so that Emacs can tell instantly when you try to modify |
| 134 | a file that someone else has modified in his Emacs. */ |
| 135 | |
| 136 | #define CLASH_DETECTION |
| 137 | |
| 138 | /* Define SHORTNAMES if the C compiler can distinguish only |
| 139 | short names. It means that the stuff in ../shortnames |
| 140 | must be run to convert the long names to short ones. |
| 141 | |
| 142 | Some USG systems support long names. |
| 143 | If yours is one, DO NOT change this file! |
| 144 | Do #undef SHORTNAMES in the m- file or in config.h. */ |
| 145 | |
| 146 | /* #define SHORTNAMES */ |
| 147 | |
| 148 | /* We use the Berkeley (and usg5.2.2) interface to nlist. */ |
| 149 | |
| 150 | #define NLIST_STRUCT |
| 151 | |
| 152 | /* The file containing the kernel's symbol table is called /hp-ux. */ |
| 153 | |
| 154 | #define KERNEL_FILE "/hp-ux" |
| 155 | |
| 156 | /* The symbol in the kernel where the load average is found |
| 157 | depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */ |
| 158 | |
| 159 | /* Special hacks needed to make Emacs run on this system. */ |
| 160 | |
| 161 | /* |
| 162 | * Make the sigsetmask function go away. Don't know what the |
| 163 | * ramifications of this are, but doesn't seem possible to |
| 164 | * emulate it properly anyway at this point. |
| 165 | */ |
| 166 | |
| 167 | /* HPUX has sigsetmask */ |
| 168 | /* #define sigsetmask(mask) / * Null expansion * / */ |
| 169 | |
| 170 | /* setjmp and longjmp can safely replace _setjmp and _longjmp, |
| 171 | but they will run slower. */ |
| 172 | |
| 173 | /* HP-UX has _setjmp and _longjmp */ |
| 174 | /* |
| 175 | #define _setjmp setjmp |
| 176 | #define _longjmp longjmp |
| 177 | */ |
| 178 | |
| 179 | /* On USG systems the system calls are interruptable by signals |
| 180 | that the user program has elected to catch. Thus the system call |
| 181 | must be retried in these cases. To handle this without massive |
| 182 | changes in the source code, we remap the standard system call names |
| 183 | to names for our own functions in sysdep.c that do the system call |
| 184 | with retries. */ |
| 185 | |
| 186 | #define read sys_read |
| 187 | #define open sys_open |
| 188 | #define write sys_write |
| 189 | |
| 190 | #define INTERRUPTIBLE_OPEN |
| 191 | #define INTERRUPTIBLE_IO |
| 192 | |
| 193 | /* Use the system provided termcap(3) library */ |
| 194 | #define TERMINFO |
| 195 | |
| 196 | /* The 48-bit versions are more winning for Emacs. */ |
| 197 | |
| 198 | #define rand lrand48 |
| 199 | #define srand srand48 |
| 200 | |
| 201 | /* In hpux, the symbol SIGIO is defined, but the feature |
| 202 | doesn't work in the way Emacs needs it to. |
| 203 | |
| 204 | Here we assume that signal.h is included before config.h |
| 205 | so that we can override it here. */ |
| 206 | |
| 207 | #undef SIGIO |
| 208 | |
| 209 | /* USG systems tend to put everything declared static |
| 210 | into the initialized data area, which becomes pure after dumping Emacs. |
| 211 | Foil this. Emacs carefully avoids static vars inside functions. */ |
| 212 | |
| 213 | #define static |
| 214 | |
| 215 | /* Define extra libraries to load. |
| 216 | This should have -lBSD, but that library is said to make |
| 217 | `signal' fail to work. */ |
| 218 | |
| 219 | #ifdef HPUX_NET |
| 220 | #define LIBS_SYSTEM -ln |
| 221 | #else |
| 222 | #define LIBS_SYSTEM |
| 223 | #endif |
| 224 | |
| 225 | /* Some additional system facilities exist. */ |
| 226 | |
| 227 | #define HAVE_GETTIMEOFDAY |
| 228 | |
| 229 | #define HAVE_VFORK |
| 230 | #define HAVE_PERROR /* Delete this line for version 6. */ |
| 231 | |
| 232 | /* The following maps shared exec file to demand loaded exec. |
| 233 | Don't do this as demand loaded exec is broken in hpux. */ |
| 234 | |
| 235 | #if 0 |
| 236 | |
| 237 | /* Adjust a header field for the executable file about to be dumped. */ |
| 238 | |
| 239 | #define ADJUST_EXEC_HEADER \ |
| 240 | hdr.a_magic = ((ohdr.a_magic.file_type == OLDMAGIC.file_type) ? \ |
| 241 | NEWMAGIC : ohdr.a_magic); |
| 242 | |
| 243 | #endif |
| 244 | |
| 245 | /* Baud-rate values in tty status have nonstandard meanings. */ |
| 246 | |
| 247 | #define BAUD_CONVERT \ |
| 248 | { 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \ |
| 249 | 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 } |
| 250 | |
| 251 | /* This is needed for HPUX version 6.2; it may not be needed for 6.2.1. */ |
| 252 | #define SHORT_CAST_BUG |
| 253 | |
| 254 | /* This is how to get the device name of the tty end of a pty. */ |
| 255 | #define PTY_TTY_NAME_SPRINTF \ |
| 256 | sprintf (pty_name, "/dev/pty/tty%c%x", c, i); |
| 257 | |
| 258 | /* This is how to get the device name of the control end of a pty. */ |
| 259 | #define PTY_NAME_SPRINTF \ |
| 260 | sprintf (pty_name, "/dev/ptym/pty%c%x", c, i); |