* unexnext.c:
[bpt/emacs.git] / src / s / hpux10-20.h
1 /* System description file for hpux version 10.20.
2 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 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 3 of the License, or
10 (at your option) 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21 #define RUN_TIME_REMAP
22
23 /*
24 * Define symbols to identify the version of Unix this is.
25 * Define all the symbols that apply correctly.
26 */
27
28 #define USG /* System III, System V, etc */
29
30 #define USG5
31
32 #define HPUX
33
34 /* SYSTEM_TYPE should indicate the kind of system you are using.
35 It sets the Lisp variable system-type. */
36
37 #define SYSTEM_TYPE "hpux"
38
39 /* `nomultiplejobs' should be defined if your system's shell
40 does not have "job control" (the ability to stop a program,
41 run some other program, then continue the first one).
42
43 On hpux this depends on the precise kind of machine in use,
44 so the m- file defines this symbol if appropriate. */
45
46 /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
47
48 /* #define INTERRUPT_INPUT */
49
50 /* Letter to use in finding device name of first pty,
51 if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */
52
53 #define FIRST_PTY_LETTER 'p'
54
55 /*
56 * Define HAVE_TERMIO if the system provides sysV-style ioctls
57 * for terminal control.
58 */
59
60 #define HAVE_TERMIO
61
62 /*
63 * Define HAVE_PTYS if the system supports pty devices.
64 */
65
66 #define HAVE_PTYS
67
68 /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
69
70 #define HAVE_SOCKETS
71
72 /* Define this symbol if your system has the functions bcopy, etc.
73 * s800 and later versions of s300 (s200) kernels have equivalents
74 * of the BSTRING functions of BSD. If your s200 kernel doesn't have
75 * em comment out this section.
76 */
77
78 #define BSTRING
79
80 /* subprocesses should be defined if you want to
81 have code for asynchronous subprocesses
82 (as used in M-x compile and M-x shell).
83 This is generally OS dependent, and not supported
84 under most USG systems. */
85
86 #define subprocesses
87
88 /* If your system uses COFF (Common Object File Format) then define the
89 preprocessor symbol "COFF". */
90
91 /* #define COFF */
92
93 /* define MAIL_USE_FLOCK if the mailer uses flock
94 to interlock access to /usr/spool/mail/$USER.
95 The alternative is that a lock file named
96 /usr/spool/mail/$USER.lock. */
97
98 /* #define MAIL_USE_FLOCK */
99
100 /* Say we have the SYSV style of interprocess communication. */
101
102 #define HAVE_SYSVIPC
103
104 /* Define CLASH_DETECTION if you want lock files to be written
105 so that Emacs can tell instantly when you try to modify
106 a file that someone else has modified in his Emacs. */
107
108 #define CLASH_DETECTION
109
110 /* The symbol in the kernel where the load average is found
111 depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */
112
113 /* Special hacks needed to make Emacs run on this system. */
114
115 /*
116 * Make the sigsetmask function go away. Don't know what the
117 * ramifications of this are, but doesn't seem possible to
118 * emulate it properly anyway at this point.
119 */
120
121 /* HPUX has sigsetmask */
122 /* #define sigsetmask(mask) / * Null expansion * / */
123
124 /* setjmp and longjmp can safely replace _setjmp and _longjmp,
125 but they will run slower. */
126
127 /* HP-UX has _setjmp and _longjmp */
128 /*
129 #define _setjmp setjmp
130 #define _longjmp longjmp
131 */
132
133 /* Use the system provided termcap(3) library */
134 #define TERMINFO
135
136 /* In hpux, the symbol SIGIO is defined, but the feature
137 doesn't work in the way Emacs needs it to. */
138
139 #define BROKEN_SIGIO
140
141 /* USG systems tend to put everything declared static
142 into the initialized data area, which becomes pure after dumping Emacs.
143 Foil this. Emacs carefully avoids static vars inside functions.
144 http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00368.html
145 As of at least HPUX 11.11 (2000), it seems this workaround is no
146 longer needed. Try uncommenting the following if you have problems
147 on older versions. */
148
149 /* This is unnecessary in HPUX versions 10.20, 11.0, 11.11, 11.23. */
150
151 /* #define static */
152
153 /* Some additional system facilities exist. */
154
155 #define HAVE_PERROR /* Delete this line for version 6. */
156
157 /* The following maps shared exec file to demand loaded exec.
158 Don't do this as demand loaded exec is broken in hpux. */
159
160 /* Baud-rate values in tty status have nonstandard meanings. */
161
162 #define BAUD_CONVERT \
163 { 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \
164 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 }
165
166 /* This is how to get the device name of the tty end of a pty. */
167 #define PTY_TTY_NAME_SPRINTF \
168 sprintf (pty_name, "/dev/pty/tty%c%x", c, i);
169
170 /* This is how to get the device name of the control end of a pty. */
171 #define PTY_NAME_SPRINTF \
172 sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);
173
174 /* This triggers a conditional in xfaces.c. */
175 #define XOS_NEEDS_TIME_H
176
177 /* Don't use shared libraries. unexec doesn't handle them.
178 Note GCC automatically passes -a archive to ld, and it has its own
179 conflicting -a. */
180 #ifdef __GNUC__
181
182 #define LD_SWITCH_SYSTEM_TEMACS
183
184 #else /* not __GNUC__ */
185 /* Note, -a only works for hpux ld, not cc. And "cc LD_SWITCH_SYSTEM"
186 is used in configure's $ac_link to do various autoconf checks.
187 Since we only need -a when unexec'ing, only pass in -a to
188 "ld temacs" (ghazi@caip.rutgers.edu 7/10/97). */
189 #if (defined(hp9000s700) || defined(__hp9000s700))
190 #define LD_SWITCH_SYSTEM_TEMACS -L/lib/pa1.1
191 #else /* not (defined(hp9000s700) || defined(__hp9000s700)) */
192 #define LD_SWITCH_SYSTEM_TEMACS
193 #endif /* not (defined(hp9000s700) || defined(__hp9000s700)) */
194 #endif /* not __GNUC__ */
195
196 /* Some hpux 8 machines seem to have TIOCGWINSZ,
197 and none have sioctl.h, so might as well define this. */
198 #define NO_SIOCTL_H
199
200 #ifndef HAVE_LIBXMU
201 /* HP-UX doesn't supply Xmu. */
202 #define LIBXMU
203
204 #endif
205
206 /* Assar Westerlund <assar@sics.se> says this is necessary for
207 HP-UX 10.20, and that it works for HP-UX 0 as well. */
208 #define NO_EDITRES
209
210 /* Tested in getloadavg.c. */
211 #define HAVE_PSTAT_GETDYNAMIC
212
213 /* Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
214 has a broken `rint' in some library versions including math library
215 version number A.09.05.
216
217 You can fix the math library by installing patch number PHSS_4630.
218 But we can fix it more reliably for Emacs like this. */
219 #undef HAVE_RINT
220
221 /* We have to go this route, rather than hpux9's approach of renaming the
222 functions via macros. The system's stdlib.h has fully prototyped
223 declarations, which yields a conflicting definition of srand48; it
224 tries to redeclare what was once srandom to be srand48. So we go
225 with HAVE_LRAND48 being defined. */
226 #undef srandom
227 #undef random
228 #undef HAVE_RANDOM
229
230 #define FORCE_ALLOCA_H
231
232 /* AlainF 20-Jul-1996 says this is right. */
233 #define KERNEL_FILE "/stand/vmunix"
234
235 #ifdef HPUX_NET
236 #define LIBS_SYSTEM -ln -l:libdld.sl
237 #else
238 #define LIBS_SYSTEM -l:libdld.sl
239 #endif
240
241 /* Rainer Malzbender <rainer@displaytech.com> says definining
242 HAVE_XRMSETDATABASE allows Emacs to compile on HP-UX 10.20
243 using GCC. */
244
245 #ifndef HAVE_XRMSETDATABASE
246 #define HAVE_XRMSETDATABASE
247 #endif
248
249 /* Make sure we get select from libc rather than from libcurses
250 because libcurses on HPUX 10.10 has a broken version of select.
251 We used to use -lc -lcurses, but this may be cleaner. */
252 #define LIBS_TERMCAP -ltermcap
253
254 /* However, HPUX 10 puts Xaw and Xmu in a strange place
255 (if you install them at all). So search that place. */
256 #define C_SWITCH_X_SYSTEM -I/usr/include/X11R6 -I/usr/include/X11R5 -I/usr/include/Motif1.2 -I/usr/contrib/X11R6/include -I/usr/contrib/X11R5/include
257 #define LD_SWITCH_X_DEFAULT -L/usr/lib/X11R6 -L/usr/lib/X11R5 -L/usr/lib/Motif1.2 -L/usr/contrib/X11R5/lib
258
259 /* 2000-11-21: Temporarily disable Unix 98 large file support found by
260 configure. It fails on HPUX 11, at least, because it enables
261 header sections which lose when `static' is defined away, as it is
262 on HP-UX. (You get duplicate symbol errors on linking). */
263
264 #undef _FILE_OFFSET_BITS
265
266 /* otherwise sigunblock wont be defined */
267 #define POSIX_SIGNALS
268
269 /* arch-tag: 8d8dcbf1-ca9b-48a1-94be-b750de18a5c6
270 (do not change this comment) */