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