help-with-tutorial buffer-read-only fix
[emacs.git] / admin / CPP-DEFINES
blobc5f8c7ab31fa5417c7be8278bfff5de05379496e
1 Here are some of the cpp macros used, together with some short explanation
2 of their use.  Feel free to add more macros and more categories.
4 ** Distinguishing OSes **
6 CYGWIN          Compiling the Cygwin port.
7 __CYGWIN__      Ditto
8 MSDOS           Compiling the MS-DOS port.
9 __MSDOS__       Ditto.
10 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
11 DOS_NT          Compiling for either the MS-DOS or native MS-Windows port.
12 WINDOWSNT       Compiling the native MS-Windows (W32) port.
13 __MINGW32__     Compiling the W32 port with the MinGW port of GCC.
14 _MSC_VER        Compiling the W32 port with the Microsoft C compiler.
15 DARWIN_OS       Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
17 ** Distinguishing GUIs **
19 HAVE_NTGUI      Use the native W32 GUI for windows, frames, menus&scrollbars.
20 HAVE_NS         Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
21 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
22 NS_IMPL_COCOA   Compile support for Cocoa (Apple) implementation of NS GUI API.
23 HAVE_X11        Compile support for the X11 GUI.
24 HAVE_X_WINDOWS  Compile support for X Window system
25   (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
26    be, and vice versa.  At least, this is true for configure, and
27    msdos; not sure about nt.)
28 USE_LUCID       Use the Lucid toolkit for menus&scrollbars.  Requires HAVE_X11.
29 USE_MOTIF       Use the Motif toolkit for menus&scrollbars.  Requires HAVE_X11.
30 USE_GTK         Use the Gtk   toolkit for menus&scrollbars.  Requires HAVE_X11.
32 ** Frame types **
34 FRAME_TERMCAP_P A tty (character terminal) frame.
35 FRAME_X_P       A frame on X Window system.
36 FRAME_MSDOS_P   An MS-DOS frame (used only by the DOS port).
37 FRAME_W32_P     A frame using native MS-Windows GUI.
38 FRAME_WINDOW_P  A GUI frame (like X, w32, etc.)
40 ** Support for accessing other processes on the system **
42 HAVE_PROCFS     The /proc filesystem is supported.
44 ** Compile-time options **
46 REL_ALLOC       Compile in the relocatable memory allocator ralloc.c.
47 SYSTEM_MALLOC   Use the system library's malloc.
48 subprocesses    System can use subprocesses (for M-x shell for example).  Defined by default, only MSDOS undefines it.
49 USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
51 ** System specific macros, described in detail in src/s/template.h
52 CLASH_DETECTION
53 COFF
54 FIRST_PTY_LETTER
55 HAVE_PTYS
56 INTERRUPT_INPUT
57 NARROWPROTO
58 SEPCHAR
59 SYSTEM_TYPE
61 ** Misc macros
62 USER_FULL_NAME   If defined, overrides the default pw->pw_gecos for getting at the full user name.  Only MSDOS overrides the default.
64 ** Replace, the definition is trivial: SWITCH_ENUM_CAST
66 ** Defines from src/m/*.h and src/s/*.h.  Some of these might not be used in the code anymore, so they can be removed.  The HAVE_* definitions are probably handled by autoconf, so it might be possible to just remove them from src/[sm]/*.h.
69 AIX
70 AMPERSAND_FULL_NAME
71 BITS_PER_EMACS_INT
72 BITS_PER_LONG
73 BITS_PER_CHAR
74 BITS_PER_SHORT
75 BITS_PER_INT
76 BROKEN_DATAGRAM_SOCKETS
77 BROKEN_FIONREAD
78 BROKEN_GET_CURRENT_DIR_NAME
79 BROKEN_NON_BLOCKING_CONNECT
80 BROKEN_PTY_READ_AFTER_EAGAIN
81 BROKEN_SA_RESTART
82 BROKEN_SIGAIO
83 BROKEN_SIGIO
84 BROKEN_SIGPOLL
85 BROKEN_SIGPTY
86 BSD4_2
87 BSD4_3
88 BSD_SYSTEM
89 CLASH_DETECTION
90 DATA_SEG_BITS
91 DATA_START
92 DBL_MIN_REPLACEMENT
93 DEFAULT_SOUND_DEVICE
94 DEVICE_SEP
95 DIRECTORY_SEP
96 DONT_REOPEN_PTY
97 DOUG_LEA_MALLOC
98 DebPrint
99 EMACSDEBUG
100 EMACS_CONFIGURATION
101 EMACS_CONFIG_OPTIONS
102 EMACS_INT
103 EMACS_UINT
104 FILE_SYSTEM_CASE
105 FLOAT_CHECK_DOMAIN
106 GC_LISP_OBJECT_ALIGNMENT
107 GC_MARK_SECONDARY_STACK
108 GC_MARK_STACK
109 GC_SETJMP_WORKS
110 GMALLOC_INHIBIT_VALLOC
111 GNU_LIBRARY_PENDING_OUTPUT_COUNT
112 GNU_LINUX
113 GNU_MALLOC
114 HAVE_AIX_SMT_EXP
115 HAVE_CBRT
116 HAVE_CLOSEDIR
117 HAVE_DUP2
118 HAVE_EUIDACCESS
119 HAVE_FMOD
120 HAVE_FPATHCONF
121 HAVE_FREXP
122 HAVE_FSYNC
123 HAVE_FTIME
124 HAVE_GETCWD
125 HAVE_GETDOMAINNAME
126 HAVE_GETHOSTNAME
127 HAVE_GETLOADAVG
128 HAVE_GETPAGESIZE
129 HAVE_GETPT
130 HAVE_GETTIMEOFDAY
131 HAVE_GETWD
132 HAVE_H_ERRNO
133 HAVE_INET_SOCKETS
134 HAVE_INVERSE_HYPERBOLIC
135 HAVE_LIBKSTAT
136 HAVE_LIMITS_H
137 HAVE_LINUX_VERSION_H
138 HAVE_LOGB
139 HAVE_LONG_FILE_NAMES
140 HAVE_LRAND48
141 HAVE_MENUS
142 HAVE_MKDIR
143 HAVE_MKTIME
144 HAVE_MOUSE
145 HAVE_PERROR
146 HAVE_PSTAT_GETDYNAMIC
147 HAVE_PWD_H
148 HAVE_RANDOM
149 HAVE_RENAME
150 HAVE_RES_INIT
151 HAVE_RINT
152 HAVE_RMDIR
153 HAVE_SELECT
154 HAVE_SETLOCALE
155 HAVE_SETPGID
156 HAVE_SETRLIMIT
157 HAVE_SETSID
158 HAVE_SHUTDOWN
159 HAVE_SOCKETS
160 HAVE_SOUND
161 HAVE_STDLIB_H
162 HAVE_STRERROR
163 HAVE_STRFTIME
164 HAVE_STRING_H
165 HAVE_STRUCT_UTIMBUF
166 HAVE_SYSINFO
167 HAVE_SYSV_SIGPAUSE
168 HAVE_SYS_SELECT_H
169 HAVE_SYS_SYSTEMINFO_H
170 HAVE_SYS_TIMEB_H
171 HAVE_SYS_TIME_H
172 HAVE_TCATTR
173 HAVE_TIMEVAL
174 HAVE_TM_ZONE
175 HAVE_TZSET
176 HAVE_UNISTD_H
177 HAVE_UTIMES
178 HAVE_UTIME_H
179 HAVE_WINDOW_SYSTEM
180 HAVE_WORKING_VFORK
181 HAVE_XRMSETDATABASE
182 HPUX
183 INTERNAL_TERMINAL
184 IS_ANY_SEP
185 IS_DIRECTORY_SEP
186 LINKER
187 LINUX_VERSION_CODE
188 LISP_FLOAT_TYPE
189 LNOFLSH
190 LOCALTIME_CACHE
191 MAIL_USE_FLOCK
192 MAIL_USE_LOCKF
193 MAIL_USE_POP
194 MAIL_USE_SYSTEM_LOCK
195 MAXPATHLEN
196 MIN_PTY_KERNEL_VERSION -- only used on Mac
197 MODE_LINE_BINARY_TEXT
198 MUST_UNDEF__STDC__
199 NLIST_STRUCT
200 NO_ABORT
201 NO_EDITRES
202 NO_MATHERR
203 NO_TERMIO
204 NSIG
205 NSIG_MINIMUM
206 NULL
207 NULL_DEVICE
208 ORDINARY_LINK
209 O_APPEND
210 O_RDONLY
211 O_RDWR
212 PAGESIZE
213 PENDING_OUTPUT_COUNT
214 POSIX
215 PREFER_VSUSP
216 PTY_ITERATION
217 PTY_NAME_SPRINTF
218 PTY_OPEN
219 PTY_TTY_NAME_SPRINTF
220 PURESIZE
221 RUN_TIME_REMAP
222 SA_RESTART
223 SEGMENT_MASK
224 SETPGRP_RELEASES_CTTY
225 SETUP_SLAVE_PTY
226 SIGALRM
227 SIGCHLD
228 SIGHUP
229 SIGKILL
230 SIGNALS_VIA_CHARACTERS
231 SIGPIPE
232 SIGQUIT
233 SIGTRAP
234 SOLARIS2
235 STDC_HEADERS
236 SYSTEM_PURESIZE_EXTRA
237 SYSTEM_MALLOC
238 SYSV_SYSTEM_DIR
239 TAB3
240 TABDLY
241 TERM
242 TIME_WITH_SYS_TIME
243 TIOCSIGSEND
244 TM_IN_SYS_TIME
245 ULIMIT_BREAK_VALUE
246 UNIX98_PTYS
247 USE_CRT_DLL
248 USE_TOOLKIT_SCROLL_BARS
250 USG5
251 USG5_4
252 USG_SUBTTY_WORKS
253 VALBITS
254 WRETCODE
255 XOS_NEEDS_TIME_H
256 _AIX
257 _ARCH_PPC64
258 _FILE_OFFSET_BITS
259 _LP64
260 _MALLOC_INTERNAL
261 _NAIVE_DOS_REGS
262 _VARARGS_
263 _WINSOCKAPI_
264 _WINSOCK_H
265 _longjmp
266 _setjmp
267 _start
268 abort
269 access
270 alloca
272 calloc
273 chdir
274 chmod
275 chown
276 close
277 const
278 creat
279 ctime
281 dup2
282 edata
283 emacs
284 etext
285 execlp
286 execvp
287 fdopen
288 fileno
289 fopen
290 free
291 fsync
292 ftruncate
293 fwrite
294 getdefdir
295 getdisk
296 getenv
297 getpid
298 getuid
299 gmtime
300 index
301 isatty
302 kill
303 link
304 linux
305 localtime
306 logb
307 lseek
308 malloc
309 mkdir
310 mktemp
311 open
312 pclose
313 pipe
314 popen
315 random
316 read
317 realloc
318 rename
319 rindex
320 rmdir
321 sbrk
322 select
323 sigmask
324 signal
325 sigsetmask
326 sleep
327 spawnve
328 srandom
329 strdup
330 strerror
331 stricmp
332 strnicmp
333 strupr
334 sys_nerr
335 system
336 temacs
337 tzname
338 tzset
339 umask
340 unix
341 unlink
342 utimbuf
343 utime
344 vfork
345 wait
346 write
347 xfree