1/*
2 * config.h -- configure various defines for tcsh
3 *
4 * All source files should #include this FIRST.
5 *
6 * Edit this to match your system type.
7 */
8#ifndef _h_config
9#define _h_config
10
11#ifdef PL8CC
12/* for an RT running the IBM Sys. V version of AIX. -- tells the compiler
13   reasonable things. MUST BE the fist thing the compiler sees */
14\option MAXD(20000,20000) MAXS(50000,50000) MAXL(20000,20000) MAXH(20000,20000);
15\option MAXA(20000,20000) MAXP(500) EL_SIZE(20000) ET_SIZE(30000);
16\option OPTIONS UNSAFE;
17#endif
18
19#if defined(_AIX) && defined(_I386) && defined(aiws)
20# undef aiws	/* not an rt */
21#endif /* _AIX && _386 && aiws */
22
23/****************** System dependant compilation flags ****************/
24/*
25 * POSIX	This system supports IEEE Std 1003.1-1988 (POSIX).
26 */
27#if defined(_IBMR2)
28#define POSIX
29#else
30#undef POSIX
31#endif
32
33/*
34 * POSIXJOBS	This system supports the optional IEEE Std 1003.1-1988 (POSIX)
35 *		job control facilities.
36 */
37#ifndef aiws
38#define POSIXJOBS
39#else
40#undef POSIXJOBS
41#endif
42
43/*
44 * VFORK	This machine has a vfork().
45 *		It used to be that for job control to work, this define
46 *		was mandatory. This is not the case any more.
47 *		If you think you still need it, but you don't have vfork,
48 *		define this anyway and then do #define vfork fork.
49 *		I do this anyway on a Sun because of yellow pages brain damage,
50 *		[should not be needed under 4.1]
51 *		and on the iris4d cause	SGI's fork is sufficiently "virtual"
52 *		that vfork isn't necessary.  (Besides, SGI's vfork is weird).
53 *		Note that some machines eg. rs6000 have a vfork, but not
54 *		with the berkeley semantics, so we cannot use it there either.
55 */
56#undef VFORK
57
58/*
59 * BSDJOBS	You have BSD-style job control (both process groups and
60 *		a tty that deals correctly
61 */
62#ifndef aiws
63# define BSDJOBS
64#else
65# undef BSDJOBS
66#endif
67
68/*
69 * BSDTIMES	You have BSD-style process time stuff (like rusage)
70 *		This may or may not be true.  For example, Apple Unix
71 *		(OREO) has BSDJOBS but not BSDTIMES.
72 */
73#ifndef aiws
74# define BSDTIMES
75#else
76# undef BSDTIMES
77#endif
78
79/*
80 * BSDLIMIT	You have BSD-style resource limit stuff (getrlimit/setrlimit)
81 */
82#ifndef aiws
83# define BSDLIMIT
84#else
85# undef BSDLIMIT
86#endif
87
88/*
89 * TERMIO	You have struct termio instead of struct sgttyb.
90 * 		This is usually the case for SYSV systems, where
91 *		BSD uses sgttyb. POSIX systems should define this
92 *		anyway, even though they use struct termios.
93 */
94#if defined(_IBMR2) || defined(aiws)
95# define TERMIO
96#else
97# undef TERMIO
98#endif /* _IBMR2 || aiws */
99
100/*
101 * SYSVRELYour machine is SYSV based (HPUX, A/UX)
102 *		NOTE: don't do this if you are on a Pyramid -- tcsh is
103 *		built in a BSD universe.
104 *		Set SYSVREL to 1, 2, 3, or 4, depending the version of System V
105 *		you are running. Or set it to 0 if you are not SYSV based
106 */
107#ifndef aiws
108# define SYSVREL	0
109#else
110# define SYSVREL	2
111#endif /* aiws */
112
113/*
114 * YPBUGS	Work around Sun YP bugs that cause expansion of ~username
115 *		to send command output to /dev/null
116 */
117#undef YPBUGS
118
119/****************** local defines *********************/
120/*
121 * IBMAIX	You are running aix on the ps2, rs6000, on ibm370
122 */
123#define IBMAIX
124
125/*
126 * TCF		You have the transparent computing facility.
127 */
128#if !defined(_IBMR2) && !defined(aiws)
129# define TCF	/* ps2 and 370 have TCF */
130#else
131# undef TCF	/* The rs6000 and the rt does not have TCF yet */
132#endif
133
134#if defined(_AIX) && defined(_I386)
135# define _AIXPS2	/* give a more sane name */
136#endif /* _AIX && _386 */
137
138#if defined(_AIXPS2)
139# define _NO_PROTO
140# define _BSD
141# define _BSD_INCLUDES
142#endif /* _AIXPS2 */
143
144#if defined(_IBMR2)
145# define _POSIX_SOURCE
146# define _ALL_SOURCE	/* for window size etc, extra tty chars etc. */
147#endif
148
149/*
150 * Function pointer comparisons are broken
151 */
152#ifdef aiws
153#define void int
154#endif /* aiws */
155
156/* > 2GB file support (stat64 etc.) */
157#define _LARGE_FILES
158
159#if defined(_AIXPS2) || defined(aiws)
160# undef NLS_CATALOGS
161#endif
162
163#endif /* _h_config */
164