|
|
1.1 root 1: /* Copyright (c) 1989, 1990 AT&T --- All Rights Reserved. */
2: /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T. */
3: /* The copyright notice does not imply actual or intended publication. */
4: /* AUTHORS: */
5: /* H. S. Baird - ATT-BL MH - first versions */
6: /* T. Thompson - ATT-BL HO - portable versions */
7: /* C. Macey - ATT-DSG LZ - portable versions */
8:
9: /* Specify the environment: CPU, OS, graphics, etc.
10: This is an attempt to maintain a single master source tailorable at compile
11: time, while encapsulating as many as possible of the required #if's and
12: #ifdef's in this one file.
13: OS-dependent #includes are triggered by these prior statements:
14: #define LIBC_INCL 1 -- strcpy(), etc
15: #define VALUES_INCL 1 -- math constants (PI etc)
16: #define FILE_TREE_INCL 1 -- UNIX file-tree walking
17: */
18:
19: /* CPUs with some support: */
20: #define VAX 0
21: #define CRAY 1
22: #define SUN 2 /* including SPARC */
23: #define ATT3B 3
24: #define I386 4
25: #define MIPS 5 /* including SGI */
26:
27: /*** Select CPU here: */
28: #define CPU VAX
29:
30:
31: /* Operating systems with some support: */
32: #define V9_OS 1 /* ATT-BL research UNIX, 9th edition */
33: #define SV_OS 2 /* ATT UNIX System V */
34: #define SUN_OS 3 /* Sun OS 4.x */
35:
36: /*** Select OS here: */
37: #define OS V9_OS
38:
39:
40: /* Graphics display environments with some support: */
41: #define NO_GRAPHICS 0 /* defeat all graphics */
42: #define Y_GRAPHICS 1 /* the Y graphics interface (used in 1127 for Metheus) */
43: #define SUN_GRAPHICS 2 /* Tim Thompson's Sun interface */
44: #define X_GRAPHICS 3 /* Mark Tuomenoksa's X interface */
45:
46: /*** Select graphics environment here: */
47: #define GRAPHICS Y_GRAPHICS
48:
49:
50: /* OCR installation directory */
51: #ifndef OCRDIR
52: #define OCRDIR "/usr/ocr"
53: #endif
54:
55: /*** Miscellaneous arcane options: best left alone **/
56:
57: #define FILE_TREE (1) /* set to zero to defeat UNIX file tree code */
58:
59:
60: /*** END OF SELECTIONS ** The rest of this file merely implements their effects */
61:
62: /* define byte ordering in CPU */
63:
64: #if CPU == SUN || CPU == MIPS
65: #define BIG_ENDIAN 1
66: #endif
67:
68: /* deal with compilers that don't like (void *) */
69:
70: #if CPU == MIPS
71: #define VOID char
72: #else
73: #define VOID void
74: #endif
75:
76: /* include libc functions defs, if necessary */
77:
78: #if LIBC_INCL
79:
80: #if OS == V9_OS || CPU == CRAY
81: #include <libc.h>
82: #else
83: #if OS == SV_OS || OS == SUN_OS || CPU == MIPS
84: #include <string.h>
85: #endif
86: #endif
87:
88: #endif
89:
90: /* include values */
91:
92: #if VALUES_INCL
93: #include <values.h>
94: #endif
95:
96: /* UNIX file-tree-walk includes */
97:
98: #if FILE_TREE_INCL
99:
100: #if CPU==VAX || CPU==CRAY || CPU==MIPS
101: #include <sys/types.h>
102: #include <sys/stat.h>
103: #include <ftw.h>
104: #else
105: #if CPU==SUN || CPU==I386
106: #include <sys/types.h>
107: #include <sys/stat.h>
108: #include "myftw.h" /* T. Thompson's version */
109: #endif
110: #endif
111:
112: #endif
113:
114: #if CPU==SUN||CPU==ATT3B||CPU==MIPS||CPU==I386
115: #define sgn(V) (((V)>0)? 1: (((V)<0)? -1: 0))
116: #endif
117:
118: #if CPU==SUN||CPU==ATT3B||CPU==MIPS
119: /* These are all big-endian machines */
120: #define swapshortin(x) (((x)<<8)&0xff00)|(((x)>>8)&0xff)
121: #define swapintin(x) \
122: ((((x)<<24)&0xff000000)| \
123: (((x)<<8) &0x00ff0000)| \
124: (((x)>>8) &0x0000ff00)| \
125: (((x)>>24)&0x000000ff))
126: /* The order of bytes in an int */
127: #define INDEX0 3
128: #define INDEX1 2
129: #define INDEX2 1
130: #define INDEX3 0
131: /* disable fast trick for picking out a short from an int */
132: #define USESHIFT /* cf. skewlib.c */
133: #else
134: #define swapshortin(x) (x)
135: #define swapintin(x) (x)
136: #define INDEX0 0
137: #define INDEX1 1
138: #define INDEX2 2
139: #define INDEX3 3
140: #endif
141:
142: /* global max no. classes -- gradually being made dynamic everywhere */
143: #if CPU==SUN
144: #define MAX_CL 128
145: #else
146: #define MAX_CL 3200 /* adequate for JIS Level 1 */
147: #endif
148:
149: /* include char types (is this really necessary?) */
150:
151: #if CTYPE_INCL
152:
153: #if CPU == SUN
154: #include <string.h>
155: #else
156: #include <ctype.h>
157: #endif
158:
159: #endif
160:
161: /* includes for atan2 special configurations */
162:
163: #if ATAN_INCL
164:
165: #if CPU == CRAY
166: #define use_fast_atan2 F
167: #include "CRAY.h"
168: #else
169: #define use_fast_atan2 T
170: #endif
171:
172: #endif
173:
174: /* regular expression includes (fix to use standard regexp?) */
175:
176: #if REGEXP_INCL
177:
178: #if OS == V9_OS
179: #include <regexp.h>
180: #else
181: #include "regexp.h"
182: #endif
183:
184: #endif
185:
186: /* Use of the graphics display */
187:
188: #if CPU != CRAY
189: #define SHOW_GRAPHICS 1
190: #endif
191:
192: #ifndef PI
193: #define PI 3.14159265358979323846
194: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.