; * etc/NEWS: Some more minor copyedits.
[emacs.git] / admin / CPP-DEFINES
blob10b558d1ada97dfe292eb65071246c50893e3922
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.
3 Most of these are from config.in, so it's probably better to put the
4 explanations in that file.  Ideally, everything would be defined and
5 documented in config.in, and this file would not be necessary.
8 ** Distinguishing OSes **
10 AIX
11 _AIX
12 CYGWIN          Compiling the Cygwin port.
13 __CYGWIN__      Ditto
14 GNU_LINUX
15 HPUX
16 MSDOS           Compiling the MS-DOS port.
17 __MSDOS__       Ditto.
18 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
19 DOS_NT          Compiling for either the MS-DOS or native MS-Windows port.
20 WINDOWSNT       Compiling the native MS-Windows (W32) port.
21 __MINGW32__     Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC.
22 _MSC_VER        Compiling the W32 port with the Microsoft C compiler.
23 MINGW_W64       Compiling the W32 port with the MinGW-w64 port of GCC.
24 DARWIN_OS       Compiling on macOS or pure Darwin (and using s/darwin.h).
25 SOLARIS2
26 USG
27 USG5_4
29 ** Distinguishing GUIs **
31 HAVE_NTGUI      Use the native W32 GUI for windows, frames, menus&scrollbars.
32 HAVE_NS         Use the NeXT/OpenStep/Cocoa UI under macOS or GNUstep.
33 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
34 NS_IMPL_COCOA   Compile support for Cocoa (Apple) implementation of NS GUI API.
35 HAVE_X11        Compile support for the X11 GUI.
36 HAVE_X_WINDOWS  Compile support for X Window system
37   (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
38    be, and vice versa.  At least, this is true for configure, and
39    msdos; not sure about nt.)
40 HAVE_X11R6
41 HAVE_X11R6_XIM
42 HAVE_X11XTR6
43 USE_LUCID       Use the Lucid toolkit for menus&scrollbars.  Requires HAVE_X11.
44 USE_MOTIF       Use the Motif toolkit for menus&scrollbars.  Requires HAVE_X11.
45 USE_GTK         Use the Gtk   toolkit for menus&scrollbars.  Requires HAVE_X11.
47 ** Frame types **
49 FRAME_TERMCAP_P A tty (character terminal) frame.
50 FRAME_X_P       A frame on X Window system.
51 FRAME_MSDOS_P   An MS-DOS frame (used only by the DOS port).
52 FRAME_W32_P     A frame using native MS-Windows GUI.
53 FRAME_WINDOW_P  A GUI frame (like X, w32, etc.)
55 ** Support for accessing other processes on the system **
57 HAVE_PROCFS     The /proc filesystem is supported.
59 ** Compile-time options **
61 REL_ALLOC       Compile in the relocatable memory allocator ralloc.c.
62 SYSTEM_MALLOC   Use the system library's malloc.
63 subprocesses    System can use subprocesses (for M-x shell for example).
64                 Defined by default, only MSDOS undefines it.
65 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
66                        on Lisp_Object use.
68 ** System specific macros
69 FIRST_PTY_LETTER
70 HAVE_PTYS
71 INTERRUPT_INPUT
72 NARROWPROTO
73 SEPCHAR
74 SYSTEM_TYPE
76 ** Misc macros
77 USER_FULL_NAME   If defined, overrides the default pw->pw_gecos for
78 getting at the full user name.  Only MSDOS overrides the default.
80 ** Miscellaneous defines.  Some of these might not be used in the code
81 anymore, so they can be removed.
83 AMPERSAND_FULL_NAME
84 BROKEN_DATAGRAM_SOCKETS
85 BROKEN_FIONREAD
86 BROKEN_GET_CURRENT_DIR_NAME
87 BROKEN_PTY_READ_AFTER_EAGAIN
88 DEFAULT_SOUND_DEVICE
89 DEVICE_SEP
90 DIRECTORY_SEP
91 DONT_REOPEN_PTY
92 DOUG_LEA_MALLOC
93 EMACS_CONFIGURATION
94 EMACS_CONFIG_OPTIONS
95 EMACS_INT
96 EMACS_UINT
97 GC_MARK_SECONDARY_STACK
98 GC_MARK_STACK
99 GC_SETJMP_WORKS
100 GNU_MALLOC
101 HAVE_AIX_SMT_EXP
102 HAVE_ALARM
103 HAVE_ALLOCA
104 HAVE_ALLOCA_H
105 HAVE_ALSA
106 HAVE_ATTRIBUTE_ALIGNED
107 HAVE_BDFFONT
108 HAVE_BOXES
109 HAVE_C99_STRTOLD
110 HAVE_CFMAKERAW
111 HAVE_CFSETSPEED
112 HAVE_CLOCK_GETTIME
113 HAVE_CLOCK_SETTIME
114 HAVE_COFF_H
115 HAVE_COM_ERR_H
116 HAVE_DBUS
117 HAVE_DBUS_TYPE_IS_VALID
118 HAVE_DBUS_VALIDATE_BUS_NAME
119 HAVE_DBUS_VALIDATE_INTERFACE
120 HAVE_DBUS_VALIDATE_MEMBER
121 HAVE_DBUS_VALIDATE_PATH
122 HAVE_DBUS_WATCH_GET_UNIX_FD
123 HAVE_DECL_GETENV
124 HAVE_DECL_LOCALTIME_R
125 HAVE_DECL_STRMODE
126 HAVE_DECL_STRTOIMAX
127 HAVE_DECL_STRTOLL
128 HAVE_DECL_STRTOULL
129 HAVE_DECL_STRTOUMAX
130 HAVE_DECL_SYS_SIGLIST
131 HAVE_DECL_TZNAME
132 HAVE_DECL___SYS_SIGLIST
133 HAVE_DIALOGS
134 HAVE_DIFFTIME
135 HAVE_DUP2
136 HAVE_ENDGRENT
137 HAVE_ENDPWENT
138 HAVE_ENVIRON_DECL
139 HAVE_EUIDACCESS
140 HAVE_FORK
141 HAVE_FREEIFADDRS
142 HAVE_FREETYPE
143 HAVE_FSEEKO
144 HAVE_FUTIMENS
145 HAVE_FUTIMES
146 HAVE_FUTIMESAT
147 HAVE_GAI_STRERROR
148 HAVE_GCONF
149 HAVE_GETDELIM
150 HAVE_GETGRENT
151 HAVE_GETHOSTNAME
152 HAVE_GETIFADDRS
153 HAVE_GETLINE
154 HAVE_GETLOADAVG
155 HAVE_GETOPT_H
156 HAVE_GETOPT_LONG_ONLY
157 HAVE_GETPAGESIZE
158 HAVE_GETPT
159 HAVE_GETPWENT
160 HAVE_GETRLIMIT
161 HAVE_GETRUSAGE
162 HAVE_GETSOCKNAME
163 HAVE_GETTIMEOFDAY
164 HAVE_GET_CURRENT_DIR_NAME
165 HAVE_GHOSTSCRIPT
166 HAVE_GIF
167 HAVE_GNUTLS
168 HAVE_GPM
169 HAVE_GRANTPT
170 HAVE_GSETTINGS
171 HAVE_GTK3
172 HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
173 HAVE_GTK_DIALOG_GET_ACTION_AREA
174 HAVE_GTK_FILE_SELECTION_NEW
175 HAVE_GTK_MAIN
176 HAVE_GTK_MULTIDISPLAY
177 HAVE_GTK_ORIENTABLE_SET_ORIENTATION
178 HAVE_GTK_WIDGET_GET_MAPPED
179 HAVE_GTK_WIDGET_GET_SENSITIVE
180 HAVE_GTK_WIDGET_GET_WINDOW
181 HAVE_GTK_WIDGET_SET_HAS_WINDOW
182 HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
183 HAVE_G_TYPE_INIT
184 HAVE_IFADDRS_H
185 HAVE_IMAGEMAGICK
186 HAVE_INET_SOCKETS
187 HAVE_INTTYPES_H
188 HAVE_JPEG
189 HAVE_KERBEROSIV_KRB_H
190 HAVE_KERBEROS_KRB_H
191 HAVE_KRB5_ERROR_E_TEXT
192 HAVE_KRB5_ERROR_TEXT
193 HAVE_KRB5_H
194 HAVE_KRB_H
195 HAVE_LANGINFO_CODESET
196 HAVE_LIBDGC
197 HAVE_LIBKSTAT
198 HAVE_LIBLOCKFILE
199 HAVE_LIBMAIL
200 HAVE_LIBOTF
201 HAVE_LIBPERFSTAT
202 HAVE_LIBPNG_PNG_H
203 HAVE_LIBSELINUX
204 HAVE_LIBXML2
205 HAVE_LIBXMU
206 HAVE_LOCALTIME_R
207 HAVE_LOCAL_SOCKETS
208 HAVE_LONG_LONG_INT
209 HAVE_LRAND48
210 HAVE_LSTAT
211 HAVE_LUTIMES
212 HAVE_M17N_FLT
213 HAVE_MACHINE_SOUNDCARD_H
214 HAVE_MACH_MACH_H
215 HAVE_MAGICKEXPORTIMAGEPIXELS
216 HAVE_MAGICKMERGEIMAGELAYERS
217 HAVE_MAILLOCK_H
218 HAVE_MALLOC_MALLOC_H
219 HAVE_MATHERR
220 HAVE_MBSTATE_T
221 HAVE_MEMCMP
222 HAVE_MEMMOVE
223 HAVE_MEMORY_H
224 HAVE_MEMSET
225 HAVE_MENUS
226 HAVE_MKSTEMP
227 HAVE_MMAP
228 HAVE_MULTILINGUAL_MENU
229 HAVE_NANOTIME
230 HAVE_NET_IF_DL_H
231 HAVE_NET_IF_H
232 HAVE_NLIST_H
233 HAVE_OTF_GET_VARIATION_GLYPHS
234 HAVE_PERSONALITY_ADDR_NO_RANDOMIZE
235 HAVE_PNG
236 HAVE_PNG_H
237 HAVE_POSIX_MEMALIGN
238 HAVE_PROCFS
239 HAVE_PSELECT
240 HAVE_PSTAT_GETDYNAMIC
241 HAVE_PTHREAD
242 HAVE_PTHREAD_H
243 HAVE_PTHREAD_SIGMASK
244 HAVE_PTYS
245 HAVE_PTY_H
246 HAVE_PWD_H
247 HAVE_RANDOM
248 HAVE_READLINK
249 HAVE_READLINKAT
250 HAVE_RECVFROM
251 HAVE_RINT
252 HAVE_RSVG
253 HAVE_SELECT
254 HAVE_SENDTO
255 HAVE_SEQPACKET
256 HAVE_SETITIMER
257 HAVE_SETLOCALE
258 HAVE_SETRLIMIT
259 HAVE_SHARED_GAME_DIR
260 HAVE_SHUTDOWN
261 HAVE_SIGNED_${GLTYPE}
262 HAVE_SIGNED_SIG_ATOMIC_T
263 HAVE_SIGNED_WCHAR_T
264 HAVE_SIGNED_WINT_T
265 HAVE_SIGSET_T
266 HAVE_SNPRINTF
267 HAVE_SOCKETS
268 HAVE_SOUND
269 HAVE_SOUNDCARD_H
270 HAVE_STDINT_H
271 HAVE_STDIO_EXT_H
272 HAVE_STDLIB_H
273 HAVE_STLIB_H_1
274 HAVE_STRINGS_H
275 HAVE_STRING_H
276 HAVE_STRNCASECMP
277 HAVE_STRSIGNAL
278 HAVE_STRTOIMAX
279 HAVE_STRTOLL
280 HAVE_STRTOULL
281 HAVE_STRTOUMAX
282 HAVE_STRUCT_ERA_ENTRY
283 HAVE_STRUCT_IFREQ_IFR_ADDR
284 HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
285 HAVE_STRUCT_IFREQ_IFR_BROADADDR
286 HAVE_STRUCT_IFREQ_IFR_FLAGS
287 HAVE_STRUCT_IFREQ_IFR_HWADDR
288 HAVE_STRUCT_IFREQ_IFR_NETMASK
289 HAVE_STRUCT_NLIST_N_UN_N_NAME
290 HAVE_STRUCT_STAT_ST_ATIMENSEC
291 HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
292 HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
293 HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
294 HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
295 HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
296 HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
297 HAVE_STRUCT_TIMEZONE
298 HAVE_STRUCT_TM_TM_ZONE
299 HAVE_STRUCT_UTIMBUF
300 HAVE_ST_DM_MODE
301 HAVE_SYMLINK
302 HAVE_SYNC
303 HAVE_SYS_BITYPES_H
304 HAVE_SYS_INTTYPES_H
305 HAVE_SYS_LOADAVG_H
306 HAVE_SYS_PARAM_H
307 HAVE_SYS_RESOURCE_H
308 HAVE_SYS_SELECT_H
309 HAVE_SYS_SOCKET_H
310 HAVE_SYS_SOUNDCARD_H
311 HAVE_SYS_STAT_H
312 HAVE_SYS_SYSTEMINFO_H
313 HAVE_SYS_TIMEB_H
314 HAVE_SYS_TIME_H
315 HAVE_SYS_TYPES_H
316 HAVE_SYS_UN_H
317 HAVE_SYS_UTSNAME_H
318 HAVE_SYS_VLIMIT_H
319 HAVE_SYS_WAIT_H
320 HAVE_TCATTR
321 HAVE_TERM_H
322 HAVE_TIFF
323 HAVE_TIMEVAL
324 HAVE_TM_GMTOFF
325 HAVE_TM_ZONE
326 HAVE_TOUCHLOCK
327 HAVE_TZNAME
328 HAVE_TZSET
329 HAVE_UNSIGNED_LONG_LONG_INT
330 HAVE_UTIL_H
331 HAVE_UTIMENSAT
332 HAVE_UTIMES
333 HAVE_UTIME_H
334 HAVE_UTMP_H
335 HAVE_VFORK
336 HAVE_VFORK_H
337 HAVE_WCHAR_H
338 HAVE_WCHAR_T
339 HAVE_WINDOW_SYSTEM
340 HAVE_WINSOCK2_H
341 HAVE_WORKING_FORK
342 HAVE_WORKING_UTIMES
343 HAVE_WORKING_VFORK
344 HAVE_WS2TCPIP_H
345 HAVE_XAW3D
346 HAVE_XFT
347 HAVE_XIM
348 HAVE_XPM
349 HAVE_XRMSETDATABASE
350 HAVE_XSCREENNUMBEROFSCREEN
351 HAVE_XSCREENRESOURCESTRING
352 HAVE_X_I18N
353 HAVE_X_MENU
354 HAVE_X_SM
355 HAVE_X_WINDOWS
356 HAVE__BOOL
357 HAVE__FTIME
358 HAVE___BUILTIN_UNWIND_INIT
359 HAVE___EXECUTABLE_START
360 HAVE___FPENDING
361 INTERNAL_TERMINAL
362 IS_ANY_SEP
363 IS_DIRECTORY_SEP
364 MAIL_USE_FLOCK
365 MAIL_USE_LOCKF
366 MAIL_USE_POP
367 MAIL_USE_SYSTEM_LOCK
368 MAXPATHLEN
369 NLIST_STRUCT
370 NO_EDITRES
371 NSIG
372 NSIG_MINIMUM
373 NULL_DEVICE
374 PAGESIZE
375 PTY_ITERATION
376 PTY_NAME_SPRINTF
377 PTY_OPEN
378 PTY_TTY_NAME_SPRINTF
379 PURESIZE
380 RUN_TIME_REMAP
381 SETUP_SLAVE_PTY
382 SIGNALS_VIA_CHARACTERS
383 STDC_HEADERS
384 SYSTEM_PURESIZE_EXTRA
385 SYSTEM_MALLOC
386 TAB3
387 TABDLY
388 TERM
389 TIME_WITH_SYS_TIME
390 TIOCSIGSEND
391 TM_IN_SYS_TIME
392 UNIX98_PTYS
393 USE_TOOLKIT_SCROLL_BARS
394 USG_SUBTTY_WORKS
395 VALBITS
396 XOS_NEEDS_TIME_H
397 _FILE_OFFSET_BITS
398 _LP64
399 _longjmp
400 _setjmp
401 abort
402 alloca
403 close
404 emacs
405 free
406 gmtime
407 localtime
408 malloc
409 random
410 read
411 realloc
412 select
413 umask
414 vfork
417 src/sysdep.c:
418 write
420 src/syssignal.h:
421 signal
422 sigmask
423 sigsetmask
426 lib/dup2.c:
427 dup2
429 lib/signal.h:
430 signal
432 lib/stdio.h:
433 fdopen
434 fopen
435 fwrite
436 popen
437 rename
439 lib/stdlib.h:
440 calloc
441 srandom     (conf_post.h may undo)
443 lib/strftime.c:
444 tzname
445 tzset
447 lib/sys/stat.h:
448 mkdir
450 lib/unistd.h:
451 chown
453 dup2
454 ftruncate
455 isatty
456 link
457 lseek
458 pipe
459 rmdir
460 sleep
461 unlink
464 MS DOS stuff:
466 _NAIVE_DOS_REGS
469 MS stuff:
471 USE_CRT_DLL
473 ms-w32.h:
474 DebPrint
475 EMACSDEBUG
476 MUST_UNDEF__STDC__
478 _VARARGS_
479 _WINSOCKAPI_
480 _WINSOCK_H
482 access
483 calloc
484 chdir
485 chmod
486 chown
487 creat
488 ctime
490 dup2
491 execlp
492 execvp  (also emacsclient.c [WINDOWSNT])
493 fdopen
494 fileno
495 fopen
496 fsync
497 ftruncate
498 getdefdir
499 getdisk
500 getpid
501 isatty
502 kill
503 link
504 lseek
505 mkdir
506 mktemp
507 open
508 pclose
509 pipe
510 popen
511 rename
512 rmdir
513 signal
514 sleep
515 spawnve
516 strdup
517 stricmp
518 strnicmp
519 strupr
520 sys_nerr
521 tzname
522 tzset
523 umask
524 unlink
525 utimbuf
526 utime
527 wait  (also movemail.c [WINDOWSNT])
528 write
530 lib-src/ntlib:
531 access
532 chdir
533 chmod
534 creat
536 dup2
537 execlp
538 execvp
539 fdopen
540 fileno
541 fopen
542 getpid
543 index
544 isatty
545 lseek
546 mkdir
547 mktemp
548 open
549 pclose
550 pipe
551 popen
552 rmdir
553 rindex
554 sleep
555 umask
556 unlink
557 utime