home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / gnu / pdksh-4.9-src.lha / src / amiga / pdksh-4.9 / INSTALL < prev    next >
Text File  |  1994-05-04  |  5KB  |  153 lines

  1. BUILDING THE PD KSH
  2. ===================
  3.  
  4. The PD KSH can be built in two ways.  The default method uses
  5. the POSIX/ANSI compatability libraries in ./std.  The
  6. alternative method is to build the ksh in ./sh without the ./std
  7. tree.  The second method should be used only if a) you have a
  8. real POSIX environemnt or b) you have major difficulties with
  9. building the ./std tree.
  10.  
  11. I have modified the source slightly to make standalone building
  12. simpler.  Using -DNOSTDHDRS avoids attempts to include ANSI
  13. headers that may be lacking.  I have built the shell this way on
  14. all Sun platforms and on a Bull DPX/2 (which has good POSIX
  15. support).  The config file defines USE_SIGACT so that the shell
  16. will use the XPG3 signalaction() and friends.  You should leave
  17. USE_SIGACT defined, sh/sigact.c contains an implementation for
  18. systems that lack this facility. 
  19.  
  20. It is recommended that you try using the ./std tree first.  This
  21. avoids problems like BSD times() calls that do not return an
  22. indication of elapsed time and so on.
  23.  
  24. For current *BSD (386bsd,NetBSD,FreeBSD and I assume BSD/386) it is
  25. best to build without the ./std tree.
  26.  
  27. Using ./std:
  28. ------------
  29.  
  30. If you are on a Sun building it quite simple:
  31.  
  32.     make CONFIG=-D_BSD
  33.  
  34. will do it.  If you have a sun386 or sun3 and have gcc, it is
  35. worth using, just add CC="gcc -pipe" to the above command line.
  36. If you have SunOS 4.1 or later you probably need to add
  37. -DHAVE_SYS_STDTYPES
  38.  
  39. Building on other systems may well be more difficult.
  40. Apparently the creating of the ./std/h tree causes problems on
  41. some systems.  
  42.  
  43.  
  44. Notes on ./std:
  45. ---------------
  46.  
  47. I have updated the Makefiles in ./std/stdc and ./tsd/posix to
  48. maintain the objects within the libraries.  Ie.
  49. libstdc.a(strstr.o) If your make(1) doesn't know how to do this
  50. then you will need to modify the makefiles accordingly.
  51.  
  52. In ReadMe.jrm, John MacMillan recommends being cautious of
  53. std/libstdc.a and using only those routines which your system
  54. lacks.  Please note that I have tested virtually none of
  55. ./std/stdc.  The Makefile contains target lines for most modules
  56. but most are commented out.  I suggest you uncomment _only_
  57. those that you need.
  58.  
  59. On the other hand std/libposix.a seems quite safe, and
  60. indeed provides a better times() call for BSD systems.
  61.  
  62. Read ReadMe.jrm for more...
  63.  
  64.  
  65. Building without ./std:
  66. -----------------------
  67.  
  68. On some systems it might be worth forgetting about ./std/lib*
  69. either because they proved too difficult to build or they seem
  70. unnecessary.  As previously indicated I have done this on Sun's
  71. and on a Bull system.  On Sun's it is perhaps not a great idea
  72. as you then get the system's times() call which does not behave
  73. the way the shell wants.
  74.  
  75. In anycase to build without ./std, you simply cd to ./sh and
  76. either edit the Makefile accordingly, or use an appropriate
  77. command line.  For instance:
  78.  
  79. Sun with SunOS 4.0:
  80.  
  81.     cd ./sh
  82.     ln -s ../std/stdc/strstr.c .
  83.     ln -s ../std/stdc/memmove.c .
  84.     make CFLAGS="-D_BSD -DNOSTDHDRS" \
  85.         XOBJS="strstr.o memmove.o" LDLIBS="" LDFLAGS=""
  86.  
  87. Note that we still need a couple of functions from ./std/stdc
  88.  
  89. On the Bull system which is a POSIX compliant System V machine:
  90.  
  91.     cd ./sh
  92.     make CFLAGS="-D_SYSV" LDLIBS="-lc_s" LDFLAGS=""
  93.     make CC=gcc CFLAGS="-D_POSIX_SOURCE" LDLIBS="-lc_s" LDFLAGS=""
  94.  
  95. INSTALLING:
  96. ===========
  97.  
  98. This is quite simple.  
  99.  
  100.     # cp ./ksh /bin
  101.     # chmod 555 /bin/ksh
  102.  
  103. The above assumes of course that you don't already have a
  104. /bin/ksh :-)
  105. The manual page ksh.1 should be copied to an appropriate
  106. location.
  107. BSD:
  108.     # cp ksh.1 /usr/man/man1
  109. SYSV:
  110.     # nroff -man ksh.1 > /usr/catman/u_man/man1/ksh.1
  111.     # pack /usr/catman/u_man/man1/ksh.1
  112.  
  113. Or something similar.  For systems such as Sun's that really
  114. only ship with a C-shell environment, the ./etc directory
  115. contains a useful /etc/profile and /etc/ksh.kshrc file to
  116. provide a suitable environemnt for /bin/sh and /bin/ksh users,
  117. they should work, they are straight of my system and I use them
  118. on Sun,Bull and even an SCO system.
  119.  
  120.  
  121. PROBLEMS:
  122. =========
  123.  
  124. Clearly building will not be so simple on all systems.
  125. Apparently some of the enum manipulations border on ilegal and
  126. cause some compilers problems.  Curiously both gcc -ansi and the
  127. GreenHills compiler on the Bull system are quite picky and did
  128. not complain.  Note if you want to use gcc -ansi you may well
  129. need to add some definitions, for instance the following all
  130. work on the sun386:
  131.  
  132.     CC=cc
  133.     CC=gcc
  134.     CC=gcc -ansi -Dsun -Di386 -Dsun386
  135.  
  136. The last three items on the last line are normally all defined
  137. automatically, but this is disabled when -ansi is used.  The
  138. system headers do not work unless they know what architecture is
  139. in use.  
  140.  
  141. On the Bull DPX/2 I used gcc-2.1, my gcc port will be available
  142. as of release 2.2.  To save effort I found it necessary to copy
  143. stdio.h and stdlib.h to gcc's private include directory and edit
  144. them to remove unnecessary #ifdef's and unwanted #include's.
  145.  
  146. If you find and fix a problem please fill in a copy of
  147. ./bug-report and e-mail it to pdksh-bug@zen.void.oz.au
  148.  
  149. Enjoy!
  150.  
  151. Simon J. Gerraty <sjg@zen.void.oz.au>
  152.  
  153.