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