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