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
9#ifndef _h_config
10#define _h_config
11/****************** System dependant compilation flags ****************/
12/*
13 * POSIX	This system supports IEEE Std 1003.1-1988 (POSIX).
14 */
15#ifdef mips
16# define POSIX
17#else
18# undef POSIX
19#endif
20
21/*
22 * POSIXJOBS	This system supports the optional IEEE Std 1003.1-1988 (POSIX)
23 *		job control facilities.
24 */
25#undef POSIXJOBS
26
27/*
28 * VFORK	This machine has a vfork().
29 *		It used to be that for job control to work, this define
30 *		was mandatory. This is not the case any more.
31 *		If you think you still need it, but you don't have vfork,
32 *		define this anyway and then do #define vfork fork.
33 *		I do this anyway on a Sun because of yellow pages brain damage,
34 *		[should not be needed under 4.1]
35 *		and on the iris4d cause	SGI's fork is sufficiently "virtual"
36 *		that vfork isn't necessary.  (Besides, SGI's vfork is weird).
37 *		Note that some machines eg. rs6000 have a vfork, but not
38 *		with the berkeley semantics, so we cannot use it there either.
39 */
40#undef VFORK
41
42/*
43 * BSDJOBS	You have BSD-style job control (both process groups and
44 *		a tty that deals correctly
45 */
46#ifdef mips
47# define BSDJOBS
48#else
49# undef BSDJOBS
50#endif
51
52/*
53 * BSDTIMES	You have BSD-style process time stuff (like rusage)
54 *		This may or may not be true.  For example, Apple Unix
55 *		(OREO) has BSDJOBS but not BSDTIMES.
56 */
57#ifdef mips
58# define BSDTIMES
59#else
60# undef BSDTIMES
61#endif
62
63/*
64 * BSDLIMIT	You have BSD-style resource limit stuff (getrlimit/setrlimit)
65 */
66#ifdef mips
67# define BSDLIMIT
68#else
69# undef BSDLIMIT
70#endif
71
72/*
73 * TERMIO	You have struct termio instead of struct sgttyb.
74 * 		This is usually the case for SYSV systems, where
75 *		BSD uses sgttyb. POSIX systems should define this
76 *		anyway, even though they use struct termios.
77 */
78#define TERMIO
79
80/*
81 * SYSVREL	Your machine is SYSV based (HPUX, A/UX)
82 *		NOTE: don't do this if you are on a Pyramid -- tcsh is
83 *		built in a BSD universe.
84 *		Set SYSVREL to 1, 2, 3, or 4, depending the version of System V
85 *		you are running. Or set it to 0 if you are not SYSV based
86 */
87#ifdef mips
88# if defined(SYSTYPE_SVR4) || defined(_SYSTYPE_SVR4)
89#  define SYSVREL	4
90# else
91#  define SYSVREL	3
92# endif /* SYSTYPE_SVR4 || _SYSTYPE_SVR4 */
93#else
94/*
95 * For the 3000:
96 * We may not technically be compliant, and I don't know whether we are
97 * SVR1 or SVR2.  We're pretty System V-ish, though, so we won't say 0.
98 * We'll guess 1.  There are no checks for SYSVREL <= 1 vs. SYSVREL >= 2 at
99 * current writing anyway.
100 */
101# define SYSVREL	1
102#endif
103
104/*
105 * YPBUGS	Work around Sun YP bugs that cause expansion of ~username
106 *		to send command output to /dev/null
107 */
108#define YPBUGS
109
110/*
111 * ECHO_STYLE	Optionally change the behavior of the builtin echo
112 *		BOTH_ECHO: Support both bsd options (-n) and sysv escapes (\nnn)
113 *		BSD_ECHO:  Support only -n
114 *		SYSV_ECHO: Support only sysv escapes (\nnn)
115 *		NONE_ECHO: Pure echo.
116 */
117#define ECHO_STYLE BOTH_ECHO	/* Both BSD and SYSV options */
118
119/****************** local defines *********************/
120#ifdef mips
121/*
122 * IRIS4D	You are running on an Iris 4D
123 */
124# define IRIS4D
125
126/*
127 * IRIX3_3	You are running IRIX 3.3 (or later)
128 */
129# define IRIX3_3
130#endif
131
132#ifdef m68000
133/*
134 * IRIS3D	You are running on an Iris 3000 series
135 */
136# define IRIS3D
137#endif
138
139/*
140 * lookupname/namei ignores tailing '/' on files
141 */
142#define NAMEI_BUG
143
144#ifdef notdef
145/* You can put these back if your os does not really support nls */
146#undef NLS_CATALOGS
147#endif
148#endif /* _h_config */
149