source: trunk/third/tcsh/README @ 9006

Revision 9006, 7.9 KB checked in by ghudson, 28 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r9005, which included commits to RCS files with non-trunk default branches.
Line 
1This is tcsh version 6.03.  Tcsh is a version of the Berkeley
2C-Shell, with the addition of: a command line editor, command and file
3name completion, listing, etc. and a bunch of small additions to the
4shell itself.
5
6Tcsh runs on BSD 4.2 and 4.3 Unix, Mach, Sun Unix (tested on 3.0, 3.2,
73.4, 4.0, 4.1.x), Pyramid OS/X (in the bsd universe), Encore UMAX 4.2,
8Apple A/UX 2.0, AT&T 3b machines under SysV.2 and V.3, HP/UX 6.2 on
9series 300 and 800 machines and all HP machines under HP/UX 6.5, 7.0
10and 8.0 and will probably work with a bit of tinkering on anything else
11either BSD or SysV-ish. It also runs under VMS/POSIX and OS/2+emx.
12Note that the above list is incomplete, and the place to look is the
13config directory to find a configuration file
14appropriate for your machine.
15
16Feel free to use it.  These changes to csh may only be included in a
17commercial product if the inclusion or exclusion does not change the
18purchase price, level of support, etc.  Please respect the individual
19authors by giving credit where credit is due (in other words, don't
20claim that you wrote portions that you haven't, and don't delete the
21names of the authors from the source code or documentation). 
22
23To install tcsh:
24
251)  Look at the Makefile and make sure that you are using the right
26    compilation flags.
27
282)  Copy the appropriate for your machine and OS config file from the
29    config subdirectory into config.h. If you are trying to compile
30    tcsh on a machine for which there is no config file yet, you will
31    need to create a config file using as a template one of the
32    supplied ones.  If you get tcsh working on a new machine, I'd
33    appreciate a copy of the config file plus additional information
34    about the architecture/OS.  If you are creating a new config file,
35    look very hard at BSDJOBS, BSDSIGS, and BSDTIMES if you are running
36    a non-BSD machine.  For vanila SysV, these would all be #undef-ed,
37    but others may vary (such as A/UX or HPUX).  On a pyramid, compile
38    in the UCB universe even if you are running under the ATT universe
39    usually; it will work anyway, and you get job control for free.
40
41
423)  Look at config_f.h, and enable or disable any features you want.
43    It is configured the way I like it, but you may disagree.
44    If you do not have NLS, then locale.h will not be found. Undefine it
45    and things should work ok. On the other hand, if you have NLS you
46    might as well use it...
47
484)  Look at tc.vers.c to make sure that you have the right #ifdefs to set
49    the environment variable "HOSTTYPE" correctly.  If you need to make
50    changes, PLEASE SEND THEM BACK TO ME.
51
525)  You may want to adjust the DESTDIR and DESTMAN entries in the
53    Makefile.  These are the directories that tcsh, and the tcsh.1 man
54    entry will be placed in when you do a "make install".  If you decide
55    to install tcsh somewhere other than in /usr/local/bin/tcsh, you should
56    #define _PATH_TCSHELL "/your/installation/directory/tcsh" in pathnames.h.
57
586)  make
59
607)  Read the documentation while you are waiting.  The file tcsh.man
61    is in standard [nt]roff -man format.
62
638)  Test tcsh to see that it has compiled correctly.  The history
64    command should give a time stamp on every entry.  Typing normal
65    characters should echo each exactly once.  Control-A should put the
66    cursor at the beginning of the input line, but after the prompt.
67    Typing characters after that should insert them into the line.
68    If you have job control make sure that stopping and restarting
69    jobs works. Make sure you can ^C in the middle of the input line.
70    Also make sure that pipelines work correctly and there
71    are no races. Try 'echo | cat | cat | cat | cat | more' a couple
72    of times. If you have job control, try this command in the background
73    and bring it in the foreground when it stops for tty output.
74    Also make sure that the ioctl() modes are preserved.
75    Get into vi, enter and exit input mode and suspend it, background
76    it and foreground it again. After all that, lastly make sure that
77    the tty process group manipulation is happening correctly. Try
78    ftp to some host. If your passwd appears on the screen, you have
79    lost /dev/tty. Otherwise everything is fine.
80
819)  Enjoy.
82
8310) PLEASE send any bug reports (and fixes), code for new features,
84    comments, questions, etc. (even flames) to:
85
86             -- Christos Zoulas
87                christos@ee.cornell.edu
88
89Various:
90
91***************************************************************************
92
93On sysv versions < 3.0 (not hpux) Doug Gwyn's public domain directory
94manipulation library has to be installed. This library is available
95for anonymous ftp from prep.ai.mit.edu:/pub/gnu/dirent.tar.Z
96If the network is not installed, then there is a gethostname()
97routine is tc.os.c, enabled by defining NEEDgethostname
98
99***************************************************************************
100
101On BSDreno, in ttyname() closedir() is called twice and so the same
102pointer gets free'd twice. tcsh's malloc is picky and it prints an
103error message to that effect. If you don't like the message:
104
1051. Apply the following patch:
106
107*** /usr/src/lib/libc/gen/ttyname.c.orig        Fri Jun  1 17:17:15 1990
108--- /usr/src/lib/libc/gen/ttyname.c     Tue Oct 29 16:33:12 1991
109***************
110*** 51,57 ****
111                if (stat(buf, &sb2) < 0 || sb1.st_dev != sb2.st_dev ||
112                    sb1.st_ino != sb2.st_ino)
113                        continue;
114-               closedir(dp);
115                rval = buf;
116                break;
117        }
118--- 51,56 ----
119
120Or: Comment the error printing out in tc.alloc.c
121Or: Compile -DSYSMALLOC
122
123
124***************************************************************************
125
126Tcsh has been ported to minix by  Scott Krotz (krotz@honey.rtsg.mot.com).
127Unfortunately the minix sed is broken, so you'll have to find a way to
128make tc.const.h, sh.err.h, ed.defns.h which are automatically generated.
129The easiest way to create them is to make a copy from unix, copying
130config.minix to config.h, and then 'make sh.err.h tc.const.h ed.defns.h'
131
132The OS/dependent files are in mi.termios.h, mi.wait.h, mi.varargs.h
133
134You will get some warnings, but dont worry about them, just ignore
135them.  After tcsh has compiled and the gcc binary is converted to a
136minix binary, remember to chmem it to give it more memory - it will
137need it!  How much you need depends on how many aliases you have, etc..
138Add at least 50000 to it.
139
140One last thing.  You might have to make some links for include files so
141that they are in the directories that tcsh is expecting while compiling.
142I forget if I had to do this or not, but it should be fairly easy to sort
143out.  If it cant find any include files this is probably the reason.
144
145If you have any problems, please tell me.  I can be contacted through
146e-mail at:
147
148krotz@honey.rtsg.mot.com
149
150I also read comp.os.minix on a regular basis, so a note there will get
151my attention also.
152
153Have fun!
154
155Scott Krotz
156
157ps.  The termios functions are provided by Magnus Doell and Bruce Evans.
158     Thanks, guys!
159
160
161This is for minix 1.5 (straight out of the box from P-H) plus the i386
162patches from Bruce Evans.
163
164I cross-compiled on a Sun using gcc 2.1 with a target of i386-bsd
165(using the minix include files instead of the bsd versions), and then
166linked the resulting object files with similarly compiled crtso.o and
167libc.a on vax (little endian) using a hacked version of ld which I put
168together to generate minix executables instead of bsd a.out format.
169What a kludge ...
170
171I compiled with -O2 -Wall ...  So far I haven't noticed any problems
172with the optimizer.
173
174In case anyone is contemplating compiling tcsh with bcc (Bruce Evan's
175i386 compiler that comes with the minix386 upgrade package), don't bother.
176It is some serious bugs that kill tcsh when compiled for 16-bit characters.
177I can provide more details of bugs that I noticed for brave souls who want
178to try, but it would be hard (and why bother if you can get gcc?).
179
180I can make the binary available to anyone who wants it (for example people
181who can't get access to a cross-compiling environment, and who don't yet
182have gcc running under minix).
183
184Bob Byrnes (byrnes@ee.cornell.edu)
Note: See TracBrowser for help on using the repository browser.