source: trunk/third/tcsh/tc.vers.c @ 11053

Revision 11053, 13.5 KB checked in by ghudson, 27 years ago (diff)
Revert previous change; it is rendered unnecessary by imake.cnfig change.
Line 
1/* $Header: /afs/dev.mit.edu/source/repository/third/tcsh/tc.vers.c,v 1.3 1998-01-20 23:13:36 ghudson Exp $ */
2/*
3 * tc.vers.c: Version dependent stuff
4 */
5/*-
6 * Copyright (c) 1980, 1991 The Regents of the University of California.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 *    notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in the
16 *    documentation and/or other materials provided with the distribution.
17 * 3. All advertising materials mentioning features or use of this software
18 *    must display the following acknowledgement:
19 *      This product includes software developed by the University of
20 *      California, Berkeley and its contributors.
21 * 4. Neither the name of the University nor the names of its contributors
22 *    may be used to endorse or promote products derived from this software
23 *    without specific prior written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
26 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 */
37#include "sh.h"
38
39RCSID("$Id: tc.vers.c,v 1.3 1998-01-20 23:13:36 ghudson Exp $")
40
41#include "patchlevel.h"
42
43
44char *
45gethosttype()
46{
47    char *hosttype;
48   
49#ifdef HOSTTYPE /* Override any system determined hosttypes */
50    hosttype = HOSTTYPE;
51#else
52
53# ifdef AMIX /* Amiga UNIX */
54#  define _havehosttype_
55    hosttype = "amiga";
56# endif /* AMIX */
57
58# ifdef _VMS_POSIX
59#  define _havehosttype_
60   hosttype = "VMS-POSIX";
61# endif /* _VMS_POSIX */
62
63# if (defined(vax) || defined(__vax)) && !defined(_havehosttype_)
64#  define _havehosttype_
65    hosttype = "vax";
66# endif /* vax || __vax && !_havehosttype_ */
67
68# ifdef hp9000 /* hp9000 running MORE/bsd */
69#  ifdef hp300
70#   define _havehosttype_
71    hosttype = "hp300";
72#  endif
73#  ifdef hp800
74#   define _havehosttype_
75    hosttype = "hp800";
76#  endif
77#  ifndef _havehosttype_
78#   define _havehosttype_
79    hosttype = "hp9000";       
80#  endif
81# endif /* hp9000 */
82
83# if defined(sun) || defined(__sun__)
84#  if defined(mc68010) || defined(__mc68010__)
85#   define _havehosttype_
86    hosttype = "sun2";
87#  endif /* mc68010 */
88#  if defined(mc68020) || defined(__mc68010__)
89#   define _havehosttype_
90    hosttype = "sun3";
91#  endif /* mc68020 */
92#  if defined(sparc) || defined(__sparc__)
93#   define _havehosttype_
94    hosttype = "sun4";
95#  endif /* sparc */
96#  if defined(i386) || defined(__i386__)
97#   define _havehosttype_
98    hosttype = "sun386i";
99#  endif /* i386 */
100#  ifndef _havehosttype_
101#   define _havehosttype_
102    hosttype = "sun";   
103#  endif
104# endif /* sun */
105
106# ifdef pyr /* pyramid */
107#  define _havehosttype_
108    hosttype = "pyramid";
109# endif /* pyr */
110
111# ifdef tahoe /* tahoe */
112#  define _havehosttype_
113    hosttype = "tahoe";
114# endif /* tahoe */
115
116# ifdef ibm032 /* from Jak Kirman */
117#  define _havehosttype_
118    hosttype = "rt";
119# endif /* ibm032 */
120
121# ifdef aiws /* not to be confused with the above */
122#  define _havehosttype_
123    hosttype = "rtpc";
124# endif /* aiws */
125
126# ifdef _AIX370
127#  define _havehosttype_
128    hosttype = "aix370";
129# endif /* _AIX370 */
130
131# ifdef _IBMESA
132#  define _havehosttype_
133    hosttype = "aixESA";
134# endif /* _IBMESA */
135
136# ifdef _IBMR2
137#  define _havehosttype_
138    hosttype = "rs6000";
139# endif /* _IBMR2 */
140
141# ifdef _AIXPS2 /* AIX on a PS/2 */
142#  define _havehosttype_
143    hosttype = "ps2";
144# endif /* _AIXPS2 */
145
146# ifdef OREO
147#  define _havehosttype_
148    hosttype = "mac2";
149# endif /* OREO */
150
151# ifdef hpux
152#  if defined(__hp9000s700) && !defined(_havehosttype_)
153#   define _havehosttype_
154   hosttype = "hp9000s700";
155#  endif /* __hp9000s700 */
156#  if (defined(__hp9000s800) || defined(hp9000s800)) && !defined(_havehosttype_)
157#   define _havehosttype_
158   hosttype = "hp9000s800";     /* maybe "spectrum" */
159#  endif /* __hp9000s800 || hp9000s800 */
160#  if (defined(__hp9000s300) || defined(hp9000s300)) && !defined(_havehosttype_)
161#   define _havehosttype_
162   hosttype = "hp9000s300";
163#  endif /* __hp9000s800 || hp9000s300 */
164# if defined(hp9000s500) && !defined(_havehosttype_)
165#  define _havehosttype_
166   hosttype = "hp9000s500";
167# endif /* hp9000s500 */
168#  ifndef _havehosttype_
169#   define _havehosttype_
170   hosttype = "hp";
171#  endif /* _havehosttype_ */
172# endif /* hpux */
173
174# ifdef apollo
175#  define _havehosttype_
176    hosttype = "apollo";
177# endif
178
179# ifdef u3b20d
180#  define _havehosttype_
181    hosttype = "att3b20";
182# endif /* u3b20d */
183
184# ifdef u3b15
185#  define _havehosttype_
186    hosttype = "att3b15";
187# endif /* u3b15 */
188
189# ifdef u3b5
190#  define _havehosttype_
191    hosttype = "att3b5";
192# endif /* u3b5 */
193
194# ifdef u3b2
195#  define _havehosttype_
196    hosttype = "att3b2";
197# endif /* u3b2 */
198
199#ifdef _MINIX
200# define _havehosttype_
201# ifdef i386
202    hosttype = "minix386";
203# else /* minix ? amoeba or mac? */
204    hosttype = "minix";
205# endif /* i386 */
206#endif /* _MINIX */
207
208#if defined(i386) && defined(linux)
209# define _havehosttype_
210    hosttype = "i386-linux";
211#endif
212
213#if defined(i386) && defined(__EMX__)
214# define _havehosttype_
215    hosttype = "i386-emx";
216#endif /* i386 && __EMX__ */
217
218# ifdef __386BSD__
219# define _havehosttype_
220    hosttype = "386BSD";
221# endif /* __386BSD__ */
222
223# if defined(i386) && defined(bsdi)
224#  define _havehosttype_
225   hosttype = "bsd386"; /* BSD/386*/
226# endif /* i386 && bsdi */
227
228# ifdef COHERENT
229#  define _havehosttype_
230#  ifdef _I386
231    hosttype = "coh386";
232#  else
233    hosttype = "coherent";
234#  endif /* _I386 */
235# endif /* COHERENT */
236
237# if defined(i386) && SYSVREL > 0
238
239#  if !defined(_havehosttype_) && (defined(ISC) || defined(ISC202))
240#   define _havehosttype_
241    hosttype = "isc386";
242#  endif /* !_havehosttype_ && (ISC || ISC202) */
243
244#  if !defined(_havehosttype_) && defined(SCO)
245#   define _havehosttype_
246    hosttype = "sco386";
247#  endif /* !_havehosttype_ && SCO */
248
249#  if !defined(_havehosttype_) && defined(INTEL)
250#   define _havehosttype_
251    hosttype = "intel386";
252#  endif /* !_havehosttype_ && INTEL */
253
254#  ifndef _havehosttype_
255#   define _havehosttype_
256    hosttype = "i386";
257#  endif /* _havehosttype_ */
258
259# endif
260
261#ifdef UNIXPC
262# define _havehosttype_
263    hosttype = "unixpc";
264#endif /* UNIXPC/att3b1/att7300 */
265
266#ifdef alliant
267# ifdef mc68000
268#  define _havehosttype_
269    hosttype = "alliant-fx80";
270# endif /* mc68000 */
271# ifdef i860
272#  define _havehosttype_
273    hosttype = "alliant-fx2800";
274# endif /* i860 */
275# ifndef _havehosttype_
276#  define _havehosttype_
277    hosttype = "alliant";       /* for Alliant FX Series */
278# endif /* _havehosttype_ */
279#endif  /* alliant */
280
281# if defined(i386) && defined(MACH)
282#  define _havehosttype_
283    hosttype = "i386-mach";
284# endif
285
286# if defined(sequent) || defined(_SEQUENT_)
287#  define _havehosttype_
288#  ifdef i386
289#   ifdef sequent
290    hosttype = "symmetry";      /* Sequent Symmetry Dynix/3 */
291#    ifndef LOCALSTR
292#     define LOCALSTR   " (Dynix/3)"
293#    endif /* LOCALSTR */
294#   else
295    hosttype = "ptx";   /* Sequent Symmetry Dynix/ptx */
296#    ifndef LOCALSTR
297#     define LOCALSTR   " (Dynix/ptx)"
298#    endif /* LOCALSTR */
299#   endif
300#  else
301    hosttype = "balance";       /* for Sequent Balance Series */
302#   ifndef LOCALSTR
303#    define LOCALSTR    " (Dynix/3)"
304#   endif /* LOCALSTR */
305#  endif
306# else /* !sequent */
307#  ifdef ns32000
308#   define _havehosttype_
309#   ifdef CMUCS                 /* hack for Mach (in the true spirit of CMU) */
310    hosttype = "multimax";
311#   else /* CMUCS */
312    hosttype = !access("/Umax.image", F_OK) ? "multimax" : "ns32000";
313#   endif /* CMUCS */
314#  endif /* ns32000 */
315# endif /* sequent */
316
317# ifdef convex
318#  define _havehosttype_
319    /* From: Brian Allison <uiucdcs!convex!allison@RUTGERS.EDU> */
320    hosttype = "convex";
321# endif /* convex */
322
323# ifdef butterfly
324#  define _havehosttype_
325    /* this will work _until_ the bfly with 88000s comes out */
326    hosttype = "butterfly";     /* BBN Butterfly 1000 */
327# endif /* butterfly */
328
329# ifdef NeXT
330#  define _havehosttype_
331    hosttype = "next";
332# endif /* NeXT */
333
334/* From Kazuhiro Honda <honda@mt.cs.keio.ac.jp> */
335# ifdef sony_news
336#  define _havehosttype_
337#  ifdef mips /* Sony NEWS based on a r3000 */
338    hosttype = "news_mips";
339#  else
340    hosttype = "news";
341#  endif
342# endif /* sony_news */
343
344# if defined(mips) || defined(__mips)
345#  define _havehosttype_
346#  if defined(MIPSEL) || defined(__MIPSEL)
347#   if defined(ultrix) || defined(__ultrix)
348    hosttype = "decstation";
349#   else
350    hosttype = "mips";
351#   endif /* ultrix || __ultrix */
352#  endif /* MIPSEL || __MIPSEL */
353#  if defined(MIPSEB) || defined(__MIPSEB)
354#   if defined(ultrix) || defined(__ultrix)
355    hosttype = "decmips";
356#   else
357#    ifdef sgi /* sgi iris 4d */
358    hosttype = "iris4d";
359#    else
360#     ifdef sony_news
361    hosttype = "news_mips";
362#     else
363    hosttype = "mips";
364#     endif /* sony_news */
365#    endif /* sgi */
366#   endif /* ultrix || __ultrix */
367#  endif /* MIPSEB || __MIPSEB */
368# endif /* mips || __mips */
369
370#if defined(__alpha)
371#  define _havehosttype_
372    hosttype = "alpha";
373#endif
374
375# if defined(m88k) || defined(__m88k__)
376#  define _havehosttype_
377    hosttype = "m88k";  /* Motorola 88100 system */
378# endif
379
380# ifdef masscomp                        /* Added, DAS DEC-90. */
381#  define _havehosttype_
382    hosttype = "masscomp";/* masscomp == concurrent */
383# endif /* masscomp */
384
385# ifdef GOULD_NP1
386#  define _havehosttype_
387    hosttype = "gould_np1";
388# endif /* GOULD_NP1 */
389
390# ifdef SXA
391#  define _havehosttype_
392    hosttype = "pfa50";
393#  ifdef  _BSDX_
394#   ifndef LOCALSTR
395#    define LOCALSTR    " (SX/A E60+BSDX)"
396#   endif /* LOCALSTR */
397#  else
398#   ifndef LOCALSTR
399#    define LOCALSTR    " (SX/A E60)"
400#   endif /* LOCALSTR */
401#  endif
402# endif /* PFU/Fujitsu A-xx computer */
403
404# ifdef titan
405#  define _havehosttype_
406    /* Ken Laprade <laprade@trantor.harris-atd.com> */
407    hosttype = "titan";
408# endif /* titan */
409
410# ifdef stellar
411#  define _havehosttype_
412    hosttype = "stellar";
413# endif /* stellar */
414
415# ifdef sgi
416/* Iris 4D is in the mips section; these are the 68k machines. */
417#  ifdef m68000
418#   define _havehosttype_
419    /* Vince Del Vecchio <vd09@andrew.cmu.edu> */
420    hosttype = "iris3d";
421#  endif
422# endif /* sgi */
423
424# ifdef uts
425#  define _havehosttype_
426    hosttype = "amdahl";
427# endif /* uts */
428
429# ifdef UTek
430#  define _havehosttype_
431    hosttype = "tek4300";
432# endif /* UTek */
433
434# ifdef UTekV
435#  define _havehosttype_
436    hosttype = "tekXD88";
437# endif /* UTekV */
438
439# ifdef OPUS
440#  define _havehosttype_
441    hosttype = "opus";
442# endif /* OPUS */
443
444# ifdef eta10
445#  define _havehosttype_
446   /* Bruce Woodcock <woodcock@mentor.cc.purdue.edu> */
447   hosttype = "eta10";
448# endif /* eta10 */
449
450# ifdef cray
451#  define _havehosttype_
452   hosttype = "cray";
453# endif /* cray */
454
455# ifdef NDIX
456#  define _havehosttype_
457   /* B|rje Josefsson <bj@dc.luth.se> */
458   hosttype = "nd500";
459# endif /* NDIX */
460
461# if defined(sysV68)
462#  define _havehosttype_
463    hosttype = "sysV68";
464# endif /* sysV68 */
465
466# if defined(sysV88)
467#  define _havehosttype_
468    hosttype = "sysV88";
469# endif /* sysV88 */
470
471# if defined(i860) && !defined(_havehosttype_)
472#  define _havehosttype_
473   /* Tasos Kotsikonas <tasos@avs.com> */
474   hosttype = "vistra800"; /* Stardent Vistra */
475# endif /* i860  && !_havehosttype_ */
476
477# ifndef _havehosttype_
478#  if defined(mc68000) || defined(__mc68000__) || defined(mc68k32)
479#   define _havehosttype_
480     hosttype = "m68k"; /* Motorola 68000 system */
481#  endif
482# endif
483
484# ifndef _havehosttype_
485#  define _havehosttype_
486    /* Default to something reasonable */
487    hosttype = "unknown";
488# endif
489# undef _havehosttype_
490#endif /* HOSTTYPE */
491    return hosttype;
492} /* end gethosttype */
493
494
495/* fix_version():
496 *      Print a reasonable version string, printing all compile time
497 *      options that might affect the user.
498 */
499void
500fix_version()
501{
502    char    version[BUFSIZE];
503
504#ifdef SHORT_STRINGS
505# define SSSTR "8b"
506#else
507# define SSSTR "7b"
508#endif
509#ifdef NLS
510# define NLSSTR ",nls"
511#else
512# define NLSSTR ""
513#endif
514#ifdef LOGINFIRST
515# define LFSTR ",lf"
516#else
517# define LFSTR ""
518#endif
519#ifdef DOTLAST
520# define DLSTR ",dl"
521#else
522# define DLSTR ""
523#endif
524#ifdef VIDEFAULT
525# define VISTR ",vi"
526#else
527# define VISTR ""
528#endif
529#ifdef TESLA
530# define DTRSTR ",dtr"
531#else
532# define DTRSTR ""
533#endif
534#ifdef KAI
535# define BYESTR ",bye"
536#else
537# define BYESTR ""
538#endif
539#ifdef AUTOLOGOUT
540# define ALSTR ",al"
541#else
542# define ALSTR ""
543#endif
544#ifdef KANJI
545# define KANSTR ",kan"
546#else
547# define KANSTR ""
548#endif
549#ifdef SYSMALLOC
550# define SMSTR  ",sm"
551#else
552# define SMSTR  ""
553#endif
554#ifdef HASHBANG
555# define HBSTR  ",hb"
556#else
557# define HBSTR  ""
558#endif
559/* if you want your local version to say something */
560#ifndef LOCALSTR
561# define LOCALSTR ""
562#endif /* LOCALSTR */
563
564    xsprintf(version,
565             "tcsh %d.%.2d.%.2d (%s) %s (%s) options %s%s%s%s%s%s%s%s%s%s%s%s",
566             REV, VERS, PATCHLEVEL, ORIGIN, DATE, gethosttype(),
567             SSSTR, NLSSTR, LFSTR, DLSTR, VISTR, DTRSTR,
568             BYESTR, ALSTR, KANSTR, SMSTR, HBSTR, LOCALSTR);
569    set(STRversion, SAVE(version));
570    xsprintf(version, "%d.%.2d.%.2d", REV, VERS, PATCHLEVEL);
571    set(STRtcsh, SAVE(version));
572}
Note: See TracBrowser for help on using the repository browser.