source: trunk/third/tcsh/README @ 12039

Revision 12039, 8.5 KB checked in by danw, 26 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r12038, which included commits to RCS files with non-trunk default branches.
RevLine 
[12038]1This is tcsh version 6.08.  Tcsh is a version of the Berkeley
[9005]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
[12038]6Tcsh has been ported to most unix variants, and can be tinkered to work
7in unix systems that it has not ported yet. See the Ported file for
8a more complete list of ported systems and in the config directory for
9a configuration file that matches your system.
10Tcsh also runs under VMS/POSIX and OS/2+emx; the OS/2 port is not
11complete yet.
[9005]12
13Feel free to use it.  These changes to csh may only be included in a
14commercial product if the inclusion or exclusion does not change the
15purchase price, level of support, etc.  Please respect the individual
16authors by giving credit where credit is due (in other words, don't
17claim that you wrote portions that you haven't, and don't delete the
18names of the authors from the source code or documentation). 
19
20To install tcsh:
21
[12038]220)  If you are using imake, try xmkmf and goto step 3.
23    If imake does not work, copy Makefile.std to Makefile.
24
[9005]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
[12038]29    config subdirectory into config.h.  Consult the file "Ported" for
30    settings known to work on various machines.  If you are trying to
31    compile tcsh on a machine for which there is no config file yet,
32    you will need to create a config file using as a template one of
33    the supplied ones.  If you get tcsh working on a new machine, I'd
[9005]34    appreciate a copy of the config file plus additional information
35    about the architecture/OS.  If you are creating a new config file,
36    look very hard at BSDJOBS, BSDSIGS, and BSDTIMES if you are running
37    a non-BSD machine.  For vanila SysV, these would all be #undef-ed,
38    but others may vary (such as A/UX or HPUX).  On a pyramid, compile
39    in the UCB universe even if you are running under the ATT universe
40    usually; it will work anyway, and you get job control for free.
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
[12038]484)  Look at host.defs to make sure that you have the right defines to set
49    the environment variables "HOSTTYPE", "MACHTYPE", "OSTYPE" and
50    "VENDOR" correctly.  If you need to make changes, PLEASE SEND THEM
51    BACK TO ME.
[9005]52
[12038]535)  You may want to adjust the TCSH_BINDIR and TCSH_MANDIR entries in
54    the Makefile.  These are the directories that tcsh, and the tcsh.1
55    man entry will be placed in when you do a "make install" and "make
56    install.man" respectively.  If you decide to install tcsh somewhere
57    other than in /usr/local/bin/tcsh, you should #define _PATH_TCSHELL
58    "/your/installation/directory/tcsh" in pathnames.h.
[9005]59
606)  make
61
627)  Read the documentation while you are waiting.  The file tcsh.man
[12038]63    is in standard [nt]roff -man format. If you like, you can run the
64    tcsh.man2html script (requires Perl) to generate an HTML version of
65    the manpage which you can read with Mosaic, lynx or other HTML browser.
[9005]66
[12038]678)  Test tcsh by typing ./tcsh to see that it has compiled correctly.
68    The history command should give a time stamp on every entry.
69    Typing normal characters should echo each exactly once.  Control-A
70    should put the cursor at the beginning of the input line, but after
71    the prompt.  Typing characters after that should insert them into
72    the line.  If you have job control make sure that stopping and
73    restarting jobs works. Make sure you can ^C in the middle of the
74    input line.  Also make sure that pipelines work correctly and there
75    are no races. Try 'echo | cat | cat | cat | cat | more' a couple of
76    times. If you have job control, try this command in the background
77    and bring it in the foreground when it stops for tty output.  Also
78    make sure that the ioctl() modes are preserved.  Get into vi, enter
79    and exit input mode and suspend it, background it and foreground it
80    again. After all that, lastly make sure that the tty process group
81    manipulation is happening correctly. Try ftp to some host. If your
82    passwd appears on the screen, you have lost /dev/tty. Otherwise
83    everything is fine.
[9005]84
[12038]859)  Once satisfied that tcsh is working correctly, complete the installation
86    by typing "make install" to install the binary, and "make install.man" to
87    install the documentation.
[9005]88
[12038]8910) Enjoy.
90
9111) PLEASE send any bug reports (and fixes), code for new features,
[9005]92    comments, questions, etc. (even flames) to:
93
94             -- Christos Zoulas
[12038]95                christos@gw.com
[9005]96
97Various:
98
99***************************************************************************
100
101On sysv versions < 3.0 (not hpux) Doug Gwyn's public domain directory
102manipulation library has to be installed. This library is available
103for anonymous ftp from prep.ai.mit.edu:/pub/gnu/dirent.tar.Z
104If the network is not installed, then there is a gethostname()
105routine is tc.os.c, enabled by defining NEEDgethostname
106
107***************************************************************************
108
109On BSDreno, in ttyname() closedir() is called twice and so the same
110pointer gets free'd twice. tcsh's malloc is picky and it prints an
111error message to that effect. If you don't like the message:
112
1131. Apply the following patch:
114
115*** /usr/src/lib/libc/gen/ttyname.c.orig        Fri Jun  1 17:17:15 1990
116--- /usr/src/lib/libc/gen/ttyname.c     Tue Oct 29 16:33:12 1991
117***************
118*** 51,57 ****
119                if (stat(buf, &sb2) < 0 || sb1.st_dev != sb2.st_dev ||
120                    sb1.st_ino != sb2.st_ino)
121                        continue;
122-               closedir(dp);
123                rval = buf;
124                break;
125        }
126--- 51,56 ----
127
128Or: Comment the error printing out in tc.alloc.c
129Or: Compile -DSYSMALLOC
130
131
132***************************************************************************
133
[12038]134From: Scott Krotz <krotz@honey.rtsg.mot.com>
135
[9005]136Tcsh has been ported to minix by  Scott Krotz (krotz@honey.rtsg.mot.com).
137Unfortunately the minix sed is broken, so you'll have to find a way to
138make tc.const.h, sh.err.h, ed.defns.h which are automatically generated.
139The easiest way to create them is to make a copy from unix, copying
[12038]140minix to config.h, and then 'make sh.err.h tc.const.h ed.defns.h'
[9005]141
142The OS/dependent files are in mi.termios.h, mi.wait.h, mi.varargs.h
143
144You will get some warnings, but dont worry about them, just ignore
145them.  After tcsh has compiled and the gcc binary is converted to a
146minix binary, remember to chmem it to give it more memory - it will
147need it!  How much you need depends on how many aliases you have, etc..
148Add at least 50000 to it.
149
150One last thing.  You might have to make some links for include files so
151that they are in the directories that tcsh is expecting while compiling.
152I forget if I had to do this or not, but it should be fairly easy to sort
153out.  If it cant find any include files this is probably the reason.
154
155If you have any problems, please tell me.  I can be contacted through
156e-mail at:
157
158krotz@honey.rtsg.mot.com
159
160I also read comp.os.minix on a regular basis, so a note there will get
161my attention also.
162
163Have fun!
164
165ps.  The termios functions are provided by Magnus Doell and Bruce Evans.
166     Thanks, guys!
167
168
[12038]169From: Bob Byrnes <byrnes@ee.cornell.edu>
170
[9005]171This is for minix 1.5 (straight out of the box from P-H) plus the i386
172patches from Bruce Evans.
173
174I cross-compiled on a Sun using gcc 2.1 with a target of i386-bsd
175(using the minix include files instead of the bsd versions), and then
176linked the resulting object files with similarly compiled crtso.o and
177libc.a on vax (little endian) using a hacked version of ld which I put
178together to generate minix executables instead of bsd a.out format.
179What a kludge ...
180
181I compiled with -O2 -Wall ...  So far I haven't noticed any problems
182with the optimizer.
183
184In case anyone is contemplating compiling tcsh with bcc (Bruce Evan's
185i386 compiler that comes with the minix386 upgrade package), don't bother.
186It is some serious bugs that kill tcsh when compiled for 16-bit characters.
187I can provide more details of bugs that I noticed for brave souls who want
188to try, but it would be hard (and why bother if you can get gcc?).
189
190I can make the binary available to anyone who wants it (for example people
191who can't get access to a cross-compiling environment, and who don't yet
192have gcc running under minix).
193
[12038]194
195***************************************************************************
196
197If your compiler cannot handle long symbol names, add
198
199#include "snames.h"
200
201to your config.h file
Note: See TracBrowser for help on using the repository browser.