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