Merge remote-tracking branch 'origin/master' into for-steve
[sxemacs] / src / m / hp9000s300.h
1 /* machine description file for hp9000 series 200 or 300 on either HPUX or BSD.
2    Copyright (C) 1985, 1994 Free Software Foundation, Inc.
3
4 This file is part of SXEmacs
5
6 SXEmacs is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 SXEmacs is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program.  If not, see <http://www.gnu.org/licenses/>. */
18
19
20 /* Synched up with: FSF 19.31. */
21
22 /* The following line tells the configuration script what sort of
23    operating system this machine is likely to run.
24    USUAL-OPSYS="note"
25
26 NOTE-START
27 HP 9000 series 200 or 300 (-machine=hp9000s300)
28
29   These machines are 68000-series CPUs running HP-UX
30   (a derivative of sysV with some BSD features) or BSD 4.3 ported by Utah.
31
32   If you're running HP-UX, specify `-opsystem=hpux'.
33   If you're running BSD, specify `-opsystem=bsd4-3'.
34 NOTE-END */
35
36 /* Define this symbol if you are running a version of HP-UX
37    which predates version 6.01 */
38
39 /* #define HPUX_5 */
40
41 /* Now define a symbol for the cpu type, if your compiler
42    does not define it automatically.  */
43
44 #ifndef hp9000s300
45 #define hp9000s300
46 #endif
47
48 /* Define CANNOT_DUMP on machines where unexec does not work.
49    Then the function dump-emacs will not be defined
50    and temacs will do (load "loadup") automatically unless told otherwise.  */
51
52 /* #define CANNOT_DUMP */
53
54 /* Let the OS header file determine this if not HPUX. */
55
56 /*
57  * everything is pdump now --SY
58  * #ifdef HPUX
59  * # define UNEXEC "unexhp9k3.o"
60  * #endif
61  */
62 #undef UNEXEC
63
64 \f
65 /* For University of Utah 4.3bsd implementation on HP300s.
66    The #ifndef __GNUC__ definitions are required for the "standard" cc,
67    a very old, brain-dead version of PCC. */
68
69 #ifdef BSD4_3
70
71 /* Tell crt0.c that this is an ordinary 68020.  */
72 #undef hp9000s300
73 #define m68000
74
75 #define CRT0_DUMMIES            bogus_a6,
76
77 #ifndef HAVE_ALLOCA
78 #define HAVE_ALLOCA
79 #endif
80
81 #ifndef __GNUC__
82 #define LIBS_DEBUG              /* don't have -lg that works */
83 #define C_DEBUG_SWITCH          /* don't support -g */
84 #endif
85
86 #undef LOAD_AVE_TYPE
87 #undef LOAD_AVE_CVT
88 #define LOAD_AVE_TYPE long
89 #define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0))
90
91 #endif                          /* BSD4_3 */
92 \f
93 #ifndef BSD4_3
94 /* The following definitions are for HPUX only.  */
95
96 /* The symbol in the kernel where the load average is found
97    is named _avenrun on this machine.  */
98
99 #define LDAV_SYMBOL "_avenrun"
100
101 /* Data type of load average, as read out of kmem.  */
102
103 #define LOAD_AVE_TYPE double
104
105 /* Convert that into an integer that is 100 for a load average of 1.0  */
106
107 #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
108
109 #ifdef __GNUC__
110 #ifndef HAVE_ALLOCA
111 #define HAVE_ALLOCA
112 #endif
113 #endif
114
115 /* This library is needed with -g, on the 200/300 only.  */
116
117 #if !defined(__GNUC__) || defined(__HPUX_ASM__)
118 #define LIBS_DEBUG "/usr/lib/end.o"
119 #endif
120
121 /* Need a TEXT_START.  On the HP9000/s300 that is 0.  */
122 #ifdef __GNUC__
123 #define TEXT_START   0
124 #endif
125
126 /* In older versions of hpux, for unknown reasons, S_IFLNK is defined
127    even though symbolic links do not exist.
128    Make sure our conditionals based on S_IFLNK are not confused.
129
130    Here we assume that stat.h is included before config.h
131    so that we can override it here.
132
133    Version 6 of HP-UX has symbolic links.  */
134
135 #ifdef HPUX_5
136 #undef S_IFLNK
137 #endif
138
139 /* Define C_SWITCH_MACHINE to be +X if you want the s200/300
140  * Emacs to run on both 68010 and 68020 based hp-ux's.
141  *
142  * Define OLD_HP_ASSEMBLER if you have an ancient assembler
143  *
144  * Define HPUX_68010 if you are using the new assembler but
145  * compiling for a s200 (upgraded) or s310.  68010 based
146  * processor without 68881.
147  */
148
149 /* These switches increase the size of some internal C compiler tables.
150    They are required for compiling the X11 interface files. */
151
152 #ifndef HPUX_5
153 #ifndef __GNUC__
154 #define C_SWITCH_MACHINE "-Wc,-Nd4000,-Ns3000"
155 #endif
156 #endif
157
158 /* Define NEED_BSDTTY if you have such. */
159
160 #define NEED_BSDTTY
161
162 #endif                          /* not BSD4_3 */