Merge from emacs-23
[bpt/emacs.git] / src / s / template.h
CommitLineData
20c428fd
JB
1/* Template for system description header files.
2 This file describes the parameters that system description files
3 should define or not.
7490175b
GM
4
5Copyright (C) 1985, 1986, 1992, 1999, 2001, 2002, 2003, 2004, 2005,
5df4f04c 6 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
20c428fd
JB
7
8This file is part of GNU Emacs.
9
4b158629 10GNU Emacs is free software: you can redistribute it and/or modify
20c428fd 11it under the terms of the GNU General Public License as published by
4b158629
GM
12the Free Software Foundation, either version 3 of the License, or
13(at your option) any later version.
20c428fd
JB
14
15GNU Emacs is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License for more details.
19
20You should have received a copy of the GNU General Public License
4b158629 21along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
20c428fd
JB
22
23
e05aebe9
GM
24/* Define symbols to identify the version of Unix this is.
25 Define all the symbols that apply correctly. */
20c428fd 26
20c428fd
JB
27/* #define USG5 */
28/* #define USG */
29/* #define HPUX */
20c428fd
JB
30/* #define BSD4_2 */
31/* #define BSD4_3 */
8e4c450d 32/* #define BSD_SYSTEM */
20c428fd
JB
33
34/* SYSTEM_TYPE should indicate the kind of system you are using.
e05aebe9 35 It sets the Lisp variable system-type. */
20c428fd
JB
36
37#define SYSTEM_TYPE "berkeley-unix"
38
20c428fd
JB
39/* Emacs can read input using SIGIO and buffering characters itself,
40 or using CBREAK mode and making C-g cause SIGINT.
41 The choice is controlled by the variable interrupt_input.
32de6484 42
20c428fd
JB
43 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
44
bb7b4368
PE
45 Emacs uses the presence or absence of the SIGIO and BROKEN_SIGIO macros
46 to indicate whether or not signal-driven I/O is possible. It uses
32de6484
JB
47 INTERRUPT_INPUT to decide whether to use it by default.
48
20c428fd 49 SIGIO can be used only on systems that implement it (4.2 and 4.3).
eb8c3be9 50 CBREAK mode has two disadvantages
20c428fd
JB
51 1) At least in 4.2, it is impossible to handle the Meta key properly.
52 I hear that in system V this problem does not exist.
53 2) Control-G causes output to be discarded.
54 I do not know whether this can be fixed in system V.
55
56 Another method of doing input is planned but not implemented.
57 It would have Emacs fork off a separate process
58 to read the input and send it to the true Emacs process
e05aebe9 59 through a pipe. */
20c428fd
JB
60#define INTERRUPT_INPUT
61
62/* Letter to use in finding device name of first pty,
e05aebe9 63 if system supports pty's. 'a' means it is /dev/ptya0. */
20c428fd
JB
64#define FIRST_PTY_LETTER 'a'
65
e05aebe9 66/* Define HAVE_PTYS if the system supports pty devices. */
20c428fd
JB
67#define HAVE_PTYS
68
77ccee09 69/* subprocesses should be undefined if you do NOT want to
20c428fd
JB
70 have code for asynchronous subprocesses
71 (as used in M-x compile and M-x shell).
e05aebe9 72 Currently only MSDOS does not support this. */
20c428fd 73
77ccee09 74/* #undef subprocesses */
20c428fd 75
20c428fd
JB
76/* Define CLASH_DETECTION if you want lock files to be written
77 so that Emacs can tell instantly when you try to modify
78 a file that someone else has modified in his Emacs. */
20c428fd
JB
79#define CLASH_DETECTION
80
14e76af9
JB
81/* Define this if your operating system declares signal handlers to
82 have a type other than the usual. `The usual' is `void' for ANSI C
83 systems (i.e. when the __STDC__ macro is defined), and `int' for
84 pre-ANSI systems. If you're using GCC on an older system, __STDC__
85 will be defined, but the system's include files will still say that
86 signal returns int or whatever; in situations like that, define
87 this to be what the system's include files want. */
88/* #define SIGTYPE int */
89
d4198db9
JB
90/* If the character used to separate elements of the executable path
91 is not ':', #define this to be the appropriate character constant. */
92/* #define SEPCHAR ':' */
93
f5070950
JB
94/* ============================================================ */
95
e05aebe9
GM
96/* Here, add any special hacks needed to make Emacs work on this
97 system. For example, you might define certain system call names
98 that don't exist on your system, or that do different things on
99 your system and must be used only through an encapsulation (which
100 you should place, by convention, in sysdep.c). */
f5070950 101
2327e4a0
GM
102/* If the system's imake configuration file defines `NeedWidePrototypes'
103 as `NO', we must define NARROWPROTO manually. Such a define is
177c0ea7 104 generated in the Makefile generated by `xmkmf'. If we don't
2327e4a0
GM
105 define NARROWPROTO, we will see the wrong function prototypes
106 for X functions taking float or double parameters. */
107
108/* #define NARROWPROTO 1 */
109
f5070950 110/* ============================================================ */
00b1a5fb
JB
111
112/* After adding support for a new system, modify the large case
7b570c76 113 statement in configure.in to recognize reasonable
00b1a5fb
JB
114 configuration names, and add a description of the system to
115 `etc/MACHINES'.
116
7b570c76
GM
117 Check for any tests of $opsys in configure.in, and add an entry
118 for the new system if needed.
119
00b1a5fb
JB
120 If you've just fixed a problem in an existing configuration file,
121 you should also check `etc/MACHINES' to make sure its descriptions
122 of known problems in that configuration should be updated. */
ab5796a9
MB
123
124/* arch-tag: 4b426b11-cb2e-4c0e-a488-e663f76a0515
125 (do not change this comment) */