[INCLUDED_FCNTL]: Don't include fcntl.h again.
[bpt/emacs.git] / src / m / delta.h
1 /* Machine description file for the Motorola Delta.
2 Tested on mvme147 board using R3V7 without X. Tested with gcc.
3 Tested on mvme167 board using R3V7 without X. Tested with cc, gnucc, gcc.
4 Copyright (C) 1986, 1993 Free Software Foundation, Inc.
5
6 This file is part of GNU Emacs.
7
8 GNU Emacs is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
11 any later version.
12
13 GNU Emacs is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GNU Emacs; see the file COPYING. If not, write to
20 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
21
22
23 /* The following line tells the configuration script what sort of
24 operating system this machine is likely to run.
25 USUAL-OPSYS="usg5-3" */
26
27 /* The following three symbols give information on
28 the size of various data types. */
29
30 #define SHORTBITS 16 /* Number of bits in a short */
31
32 #define INTBITS 32 /* Number of bits in an int */
33
34 #define LONGBITS 32 /* Number of bits in a long */
35
36 /* Define BIG_ENDIAN iff lowest-numbered byte in a word
37 is the most significant byte. */
38
39 #define BIG_ENDIAN
40
41 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
42 * group of arguments and treat it as an array of the arguments. */
43
44 /* #define NO_ARG_ARRAY */
45
46 /* Define WORD_MACHINE if addresses and such have
47 * to be corrected before they can be used as byte counts. */
48
49 /* #define WORD_MACHINE */
50
51 /* Now define a symbol for the cpu type, if your compiler
52 does not define it automatically:
53 Ones defined so far include vax, m68000, ns16000, pyramid,
54 orion, tahoe, APOLLO and many others */
55
56 #define m68000
57 #define MOTOROLA_DELTA
58
59 /* Use type int rather than a union, to represent Lisp_Object */
60 /* This is desirable for most machines. */
61
62 #define NO_UNION_TYPE
63
64 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
65 the 24-bit bit field into an int. In other words, if bit fields
66 are always unsigned.
67
68 If you use NO_UNION_TYPE, this flag does not matter. */
69
70 #define EXPLICIT_SIGN_EXTEND
71
72 /* Data type of load average, as read out of kmem. */
73
74 /* #define LOAD_AVE_TYPE long */
75
76 /* Convert that into an integer that is 100 for a load average of 1.0 */
77
78 /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
79
80 /* Define CANNOT_DUMP on machines where unexec does not work.
81 Then the function dump-emacs will not be defined
82 and temacs will do (load "loadup") automatically unless told otherwise. */
83
84 /* #define CANNOT_DUMP */
85
86 /* Define VIRT_ADDR_VARIES if the virtual addresses of
87 pure and impure space as loaded can vary, and even their
88 relative order cannot be relied on.
89
90 Otherwise Emacs assumes that data space precedes text space,
91 numerically. */
92
93 /* #define VIRT_ADDR_VARIES */
94
95 /* Define C_ALLOCA if this machine does not support a true alloca
96 and the one written in C should be used instead.
97 Define HAVE_ALLOCA to say that the system provides a properly
98 working alloca function and it should be used.
99 Define neither one if an assembler-language alloca
100 in the file alloca.s should be used. */
101
102 /* #define C_ALLOCA */
103 /* #define HAVE_ALLOCA */
104
105 /* Define NO_REMAP if memory segmentation makes it not work well
106 to change the boundary between the text section and data section
107 when Emacs is dumped. If you define this, the preloaded Lisp
108 code will not be sharable; but that's better than failing completely. */
109
110 #define NO_REMAP
111
112 /* Some really obscure 4.2-based systems (like Sequent DYNIX)
113 * do not support asynchronous I/O (using SIGIO) on sockets,
114 * even though it works fine on tty's. If you have one of
115 * these systems, define the following, and then use it in
116 * config.h (or elsewhere) to decide when (not) to use SIGIO.
117 *
118 * You'd think this would go in an operating-system description file,
119 * but since it only occurs on some, but not all, BSD systems, the
120 * reasonable place to select for it is in the machine description
121 * file.
122 */
123
124 /* #define NO_SOCK_SIGIO */
125
126 \f
127 /* Define these if you want to edit files up to 32Mbytes.
128 Leaving them undefined (files up to 8 Mbytes) should be more efficient. */
129
130 /* #define VALBITS 26
131 #define GCTYPEBITS 5 */
132
133 /* Undefine this if you don't want the machine slow down when a buffer
134 is modified. */
135
136 #define CLASH_DETECTION
137
138 /* Machine specific stuff */
139 #define HAVE_PTYS
140 #define SYSV_PTYS
141 #define HAVE_SELECT
142 #define HAVE_SOCKETS /***** only if NSE has been installed *****/
143 #define HAVE_TIMEVAL
144 #define SIGNALS_VIA_CHARACTERS
145 #define BROKEN_CLOSEDIR /* builtin closedir is interruptible */
146 #undef HAVE_BCOPY /* b* functions are just stubs to mem* ones */
147 #define bcopy(from,to,bytes) memcpy(to,from,bytes)
148 #define bzero(to,bytes) memset(to,0,bytes)
149 #define bcmp memcmp
150 #define memmove safe_bcopy /* for overlapping copies */
151 #undef KERNEL_FILE
152 #define KERNEL_FILE "/sysv68"
153 #undef LDAV_SYMBOL
154 #ifdef SIGIO
155 /* R3V7 has SIGIO, but interrupt input does not work yet.
156 Let's go on with cbreak code. */
157 /* # define INTERRUPT_INPUT */
158 #endif
159
160 /* The standard C library is -lc881, not -lc.
161 -lbsd brings sigblock and sigsetmask.
162 DO NOT USE -lPW. That version of alloca is broken in versions R3V5,
163 R3V6, R3V7. -riku@field.fi -pot@cnuce.cnr.it. */
164
165 #define LIB_STANDARD -lc881
166 #define LIB_MATH -lm881
167 #define LIBS_TERMCAP -lcurses
168 #define LIBS_SYSTEM -lbsd
169 #undef sigsetmask
170
171 #ifdef HAVE_X_WINDOWS
172 /* I have not tested X, but I think these are obsolete, so let's
173 commment them -pot@cnuce.cnr.it */
174 /* debug switches enabled because of some difficulties w/X11
175 # define C_DEBUG_SWITCH -g
176 # define OBJECTS_MACHINE -lg
177 # define C_OPTIMIZE_SWITCH
178 # define CANNOT_DUMP
179 # define XDEBUG */
180 /* X library is in 'nonstandard' location. */
181 /* This should be taken care of by configure -pot@cnuce.cnr.it
182 # define LD_SWITCH_MACHINE -L/usr/lib/X11/ */
183 # define HAVE_RANDOM
184 # define BROKEN_FIONREAD /* pearce@ll.mit.edu says this is needed. */
185 # define HAVE_XSCREENNUMBEROFSCREEN
186 # undef LIB_X11_LIB /* no shared libraries */
187 # define LIB_X11_LIB -lX11
188 # undef USG_SHARED_LIBRARIES /* once again, no shared libs */
189 # undef LIBX11_SYSTEM /* no -lpt as usg5-3.h expects */
190 # define LIBX11_SYSTEM -lnls -lnsl_s
191 #endif /* HAVE_X_WINDOWS */
192
193 #ifdef __GNUC__
194 /* Use builtin alloca. Also be sure that no other ones are tried out. */
195 # define alloca __builtin_alloca
196 # define HAVE_ALLOCA
197 /* Union lisp objects do not yet work as of 19.15. */
198 /* # undef NO_UNION_TYPE */
199
200 /* There are three ways to use the gnucc provided with R3V7. Either
201 link /bin/ccd/cc to /bin/cc and then configure (supposing that CC
202 is unset or set to cc). Or configure like this: `CC=/bin/ccd/cc
203 configure', or else configure like this: `CC=gnucc configure'. */
204
205 # ifdef __STDC__
206 /* Compiling with gnucc (not through ccd). This means -traditional is
207 not set. Let us set it, because (as of emacs 19.21) gmalloc.c
208 includes <stddef.h>, and we don't have that (as of SYSV68 R3V7).
209 Removing the -finline-functions option to gnucc causes an
210 executable emacs smaller by about 10%. */
211 # define C_SWITCH_MACHINE -mfp0ret -m68881 -traditional -Dconst= -fdelayed-branch -fstrength-reduce -finline-functions -fcaller-saves
212 # define LIB_GCC /lib/gnulib881
213 # endif /* __STDC__ */
214
215 #else
216 /* Not __GNUC__, use the alloca in alloca.s. */
217
218 /* Try to guess if we are using the Green Hills Compiler */
219 # if defined mc68000 && defined MC68000
220 /* Required only for use with Green Hills compiler:
221 -ga Because alloca relies on stack frames. This option forces
222 the Green Hills compiler to create stack frames even for
223 functions with few local variables. */
224 # define C_SWITCH_MACHINE -ga -O
225 # define GAP_USE_BCOPY /* *++to = *++from is inefficient */
226 # define BCOPY_DOWNWARD_SAFE /* bcopy does: mov.b (%a1)+,(%a0)+ */
227 # else
228 /* We are using the standard AT&T Portable C Compiler */
229 # define SWITCH_ENUM_BUG
230 # endif
231
232 #endif /* not __GNUC__ */