Switch license to GPLv3 or later.
[bpt/emacs.git] / src / s / aix3-1.h
1 /* Definitions file for GNU Emacs running on IBM AIX version 3.1
2 Copyright (C) 1985, 1986, 1990, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 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, 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, Inc., 51 Franklin Street, Fifth Floor,
20 Boston, MA 02110-1301, USA. */
21
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 #define USG5
30
31 /* Specify IBM AIX version of system */
32
33 #ifndef AIX
34 #define AIX
35 #endif
36
37 /* turn off c prototypes */
38 #ifndef _NO_PROTO
39 #define _NO_PROTO
40 #endif
41
42 /* This symbol should be defined on AIX Version 3 ??????? */
43 #ifndef _AIX
44 #define _AIX
45 #endif
46
47 /* Specify "_BSD" to invoke Berkeley compatibility in header files */
48 /*#ifndef _BSD
49 #define _BSD
50 #endif
51 */
52
53 /* SYSTEM_TYPE should indicate the kind of system you are using.
54 It sets the Lisp variable system-type. */
55
56 #define SYSTEM_TYPE "aix"
57
58
59 /* nomultiplejobs should be defined if your system's shell
60 does not have "job control" (the ability to stop a program,
61 run some other program, then continue the first one). */
62
63 /* #define NOMULTIPLEJOBS */
64
65 /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
66
67 /* #define INTERRUPT_INPUT */
68
69 /* In AIX, you allocate a pty by opening /dev/ptc to get the master side.
70 To get the name of the slave side, you just ttyname() the master side. */
71
72 #define PTY_ITERATION for (c = 0; !c ; c++)
73 #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptc");
74 #define PTY_TTY_NAME_SPRINTF strcpy (pty_name, ttyname (fd));
75
76 /*
77 * Define HAVE_TERMIO if the system provides sysV-style ioctls
78 * for terminal control.
79 */
80
81 #define HAVE_TERMIOS
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 /*
101 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
102 * library functions. Almost, but not quite the same as
103 * the 4.2 functions
104 */
105
106 #define SYSV_SYSTEM_DIR
107
108 /* Define this symbol if your system has the functions bcopy, etc. */
109
110 #define BSTRING
111
112 /* subprocesses should be defined if you want to
113 have code for asynchronous subprocesses
114 (as used in M-x compile and M-x shell).
115 This is supposed to work now on system V release 2. */
116
117 #define subprocesses
118
119 /* If your system uses COFF (Common Object File Format) then define the
120 preprocessor symbol "COFF". */
121
122 /* #define COFF */
123
124 /* define MAIL_USE_FLOCK if the mailer uses flock
125 to interlock access to /usr/spool/mail/$USER.
126 The alternative is that a lock file named
127 /usr/spool/mail/$USER.lock. */
128
129 /* #define MAIL_USE_FLOCK */
130
131 /* Define CLASH_DETECTION if you want lock files to be written
132 so that Emacs can tell instantly when you try to modify
133 a file that someone else has modified in his Emacs. */
134
135 /* #define CLASH_DETECTION */
136
137 /* Define SHORTNAMES if the C compiler can distinguish only
138 short names. It means that the stuff in ../shortnames
139 must be run to convert the long names to short ones. */
140
141 /* #define SHORTNAMES */
142
143 /* The file containing the kernel's symbol table is called /unix. */
144
145 #define KERNEL_FILE "/unix"
146
147 /* The symbol in the kernel where the load average is found
148 is named avenrun. */
149
150 #define LDAV_SYMBOL "avenrun"
151 \f
152 /* Special itemss needed to make Emacs run on this system. */
153
154 /*
155 * Make the sigsetmask function go away. Don't know what the
156 * ramifications of this are, but doesn't seem possible to
157 * emulate it properly anyway at this point.
158 */
159
160 #define sigsetmask(mask) /* Null expansion */
161
162 /* setjmp and longjmp can safely replace _setjmp and _longjmp,
163 but they will run slower. */
164
165 #define _setjmp setjmp
166 #define _longjmp longjmp
167
168 /* On USG systems these have different names */
169
170 #define index strchr
171 #define rindex strrchr
172
173 /* USG systems tend to put everything declared static
174 into the initialized data area, which becomes pure after dumping Emacs.
175 Foil this. Emacs carefully avoids static vars inside functions. */
176
177 #undef static
178
179 /* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
180
181 /* #define ADDR_CORRECT(x) (x) */
182
183 #ifndef __GNUC__
184 #define LINKER cc
185 #endif
186
187 /* Prevent -lg from being used for debugging. Not needed. */
188
189 #define LIBS_DEBUG
190
191 /* No need to specify -lc when linking. */
192
193 #define LIB_STANDARD
194
195 /* Use terminfo instead of termcap. */
196
197 #define TERMINFO
198
199 /* The following definition seems to be needed in AIX version 3.1.6.8.
200 It may not have been needed in certain earlier versions. */
201 #define HAVE_TCATTR
202
203 #define SYSTEM_MALLOC
204
205 /* Include unistd.h, even though we don't define POSIX. */
206 #define NEED_UNISTD_H
207
208 /* AIX doesn't define this. */
209 #define unix 1
210
211 /* AIX 3.1 has the HFT features. */
212 #define AIXHFT
213
214 /* For unexaix.c. */
215 #define ALIGN_DATA_RELOC
216
217 /* arch-tag: bfff798c-542d-4290-91f2-267394c85b7b
218 (do not change this comment) */