reenabled swaptest. quake should now load data and start on big endian architectures...
[AROS-Contrib.git] / gnu / abc-shell / old / README
blob98538482c80a12625e0ad8397e25f1a8bd303182
2 Last updated Jul '99 for pdksh-5.2.14.
3         (check ftp://ftp.cs.mun.ca:/pub/pdksh/ or
4          http://www.cs.mun.ca/~michael/pdksh/ for new versions/patches)
6 PD-ksh is a mostly complete AT&T ksh look-alike (see NOTES file for a list
7 of things not supported).  Work is mostly finished to make it fully
8 compatible with both POSIX and AT&T ksh (when the two don't conflict).
10 Since pdksh is free and compiles and runs on most common unix systems, it
11 is very useful in creating a consistent user interface across multiple
12 machines.  For example, in the CS dept. of MUN, pdksh is installed on a
13 variety of machines including Suns, HPs, DecStations, pcs running Linux,
14 etc., and is the login shell of ~5200 users.
16 PDksh is currently being maintained by Michael Rendell (michael@cs.mun.ca),
17 who took over from Simon J. Gerraty (sjg@zen.void.oz.au) at the later's
18 suggestion.  A short list of things that have been added since the last
19 public pdksh release (4.9) are auto-configuration, arrays, $(( .. )),
20 [[ .. ]], variable attributes, co-processes, extended file globbing,
21 many POSIXisms and many bug fixes.  See the NEWS and ChangeLog files for
22 other features added and bugs fixed.
24 Note that pdksh is provided AS IS, with NO WARRANTY, either expressed or
25 implied.  Also note that although the bulk of the code in pdksh is in the
26 public domain, some files are copyrighten (but freely distributable) and
27 subject to certain conditions (eg, don't remove copyright, document any
28 changes, etc.).  See the LEGAL file for details.
30 If you would like to be notified via email of new releases as they become
31 available, send mail to pdksh-request@cs.mun.ca with subject
32 "send release notifications" (or "don't send release notifications" to stop
33 them).
36 Files of interest:
37         NEWS            short list of noticeable changes in various versions.
38         CONTRIBUTORS    short history of pdksh, people who contributed, etc.
39         NOTES           lists of known bugs in pdksh, at&t ksh, and posix.
40         PROJECTS        list of things that need to be done in pdksh.
41         BUG-REPORTS     list of recently reported bugs that have been fixed
42                         and all reported bugs that haven't been fixed.
43         LEGAL           A file detailing legal issues concerning pdksh.
44         etc/*           system profile and kshrc files used by Simon J. Gerraty.
45         misc/README*    readme files from previous versions.
46         misc/Changes*   changelog files from previous versions.
47         os2/*           files and info needed to compile ksh on os/2.
48         tests/*         pdksh's regression testing system.
51 Compiling/Installing:
53   The quick way:
54         ./configure
55         make
56         make check      # optional
57         make install    # will install /usr/local/bin/ksh
58                         #  and /usr/local/man/man1/ksh.1
59         [add path-to-installed-pdksh to /etc/shells]
61   The more detailed description:
62     * run "configure --help | your-favorite-pager" and look at the
63       --enable-* and --disable-* options (they are at the end).
64       Select any you options you wish to enable/disable
65       (most people can skip this step).
66     * run configure: this is a GNU autoconf configure script that will generate
67       a Makefile and a config.h.  Some of the useful options to configure are:
68         --prefix=PATH       indicates the directory tree under which the binary
69                             and man page are installed (ie, PATH/bin/ksh and
70                             PATH/man/man1/ksh.1).
71                             The default prefix is /usr/local.
72         --exec-prefix=PATH  overrides --prefix for machine dependent files
73                             (ie, the ksh binary)
74         --program-prefix=pd install binary and man page as pdksh and pdksh.1
75         --verbose           show what is being defined as script runs
76       Note that you don't have to build in the source directory.  To build
77       in a separate directory, do something like:
78                 $ mkdir objs
79                 $ cd objs
80                 $ ../configure --verbose
81                 ....
82                 $ make
83       See the file INSTALL for a more complete description of configure and its
84       generic options (ksh specific options are documented in the --help output)
85     * miscellaneous configuration notes:
86         * If your make doesn't understand VPATH, you must compile in
87           the source directory.
88         * On DecStations, MIPS and SONY machines with older C compilers that
89           can't handle "int * volatile x", you should use gcc or turn off
90           optimization.  The problem is configure defines volatile to nothing
91           since the compiler can't handle it properly, but the compiler does
92           optimizations that the volatile is meant to prevent.   So.  Use gcc.
93         * On MIPS RISC/os 5.0 systems, sysv environment, <signal.h> is
94           messed up - it defines sigset_t, but not any of the rest of
95           the posix signals (the sigset_t typedef should be in the
96           ifdef KERNEL section) - also doesn't have waitpid() or wait3().
97           Things compile up ok in the svr4 environment, but it dumps core
98           in __start (perhaps our system doesn't have the full svr4
99           environ?).  Try compiling in the bsd43 environ instead (still not
100           perfect - see BUG-REPORTS file), using gcc - cc has problems with
101           macro expansions in the argument of a macro (in this case, the ARGS
102           macro).
103         * On TitanOS (Stardent/Titan), use `CC="cc -43" configure ...'.
104           When configure finishes, edit config.h, undef HAVE_DIRENT_H and
105           define HAVE_SYS_DIR_H (the dirent.h header file is broken).
106         * On Linux (red hat distribution), check that /dev/tty has mode 0666
107           (not mode 0644).  If it has the wrong permissions, ksh will print
108           warnings about not being able to do job control.
109         * on NeXT machines (3.2, probably other releases), the siglist.out file
110           won't be generated correctly if you try to use the system's compiler
111           (it has a broken cc -E and strange header files).  There are two
112           ways to make it work:
113             1) if you have gcc, use it (for everything).  Alternatively,
114                force configure to use it for CPP, i.e., use
115                   CPP="gcc -E" configure ...
116             2) Force configure to use some extra CPPFLAGS, using
117                   CPPFLAGS="XXX" configure ...
118                where XXX is obtained from running "cc -v YYY.c" on some
119                C file.  Look at the options passed to cpp (there are lots
120                of them...) and replace the XXX above with them.
121           Make sure you do a "make distclean" (or "rm config.cache") if
122           you re-run configure with a difference CPP or CPPFLAGS.
123           Also note that if you are building multiple arch binaries, you
124           will have to specify both CC and CPP.
125     * run make: everything should compile and link without problems.
126     * run make check: this fires up a perl script that checks for some known
127       and some fixed bugs.  The script prints pass/fail for tests it expected
128       to pass/fail, and PASS/FAIL for tests it expected to fail/pass.  If you
129       don't have perl, or if your perl doesn't work (most common problem is
130       the .ph header files are missing or broken), you can run
131           ENV= path-to-pdksh-executable misc/Bugs path-to-pdksh-executable
132       instead.
133     * run make install: this installs ksh (in /usr/local/bin/ksh by default,
134       or where ever you told configure to put things).
135     * add path-to-installed-pdksh to /etc/shells if it's not already there.
136       This is only needed if you intend to use pdksh as a login shell (things
137       like ftp won't allow users to connect in if their shell isn't in this
138       file).
140 The following is a list of machines that pdksh is reported to work on:
141     -/PC Linux 1.x,2.x
142     -/PC NetBSD 0.9a
143     -/PC BSDI 1.1
144     -/PC FreeBSD 2.x, 3.x
145     -/PC OpenBSD
146     -/PC Interactive/Sunsoft 3.0.1 and 4.1 (note that problems have been
147             reported with isc3.2 - see the BUG-REPORTS file)
148     -/PC OS/2
149     Commadore/Amiga NetBSD 1.0
150     Dec/alpha OSF/1 v2.x, v3.x
151     Dec/alpha NetBSD 1.1B
152     Dec/pmax Ultrix 4.2
153     Dec/vax Ultrix 2.2 (not tested recently :-))
154     Dec/vax 4.3BSD+NFS (MtXinu) (not tested recently :-))
155     HP/pa HP-UX 9.01
156     IBM/RS/6000 AIX 3.2.5
157     MIPS/m120 RISC/os 5.0 (bsd43 environ)
158     NeXT NeXTStep 3.2
159     SGI/IRIX 6.2
160     Sun/sun4 SunOS 4.1.3, 4.1.4
161     Sun/sun4 Solaris 2.x
162     Sun/sun386i SunOS 4.0.2
163     Sun/sun3 SunOS 4.0.3, 4.1.1_U1
164     Stardent/TitanOS 4.2
167 Newer versions of pdksh may be available from
168         ftp://ftp.cs.mun.ca:/pub/pdksh/
169 you may want to check for one if you run into any problems, as the problem may
170 already be fixed (you can get new release notifications automatically - see
171 above).  The file pdksh-unstable-XXX.tar.gz has the very latest version which
172 may not compile (it is generated automatically when changes are detected
173 in the main source repository) - it is for those who want to follow
174 changes as they are made.
176 You can send bug reports, fixes, and enhancements to pdksh@cs.mun.ca (please
177 don't assume I will see bug reports that are posted to some newsgroup or
178 mailing list - I probably won't).
179 If you are reporting a bug (with or without a fix), please include
180         * the version of pdksh you are using (see version.c, or, if you are
181           running pdksh, try echo $KSH_VERSION),
182         * the machine, operating system and compiler you are using,
183         * and a description of how to repeat the bug (a small shell
184           script that demonstrates the bug is best).
185 as well as the following, if relevant (if you aren't sure, include them)
186         * what options you are using (both configure options and set -o options)
187         * the output of configure, with the verbose flag
188           (eg, make distclean; ./configure --verbose)
189         * the contents of config.log (this is created by the configure script)
190         * if you are using gcc (the GNU C compiler), which version it is.
192 BTW, THE MOST FREQUENTLY REPORTED BUG IS
193         echo hi | read a; echo $a       # Does not print hi
194 I'm aware of this and there is no need to report it.
196 Michael Rendell, michael@cs.mun.ca