home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3029 < prev    next >
Internet Message Format  |  1991-03-08  |  4KB

  1. From: brendan@cs.widener.edu (Brendan Kehoe)
  2. Newsgroups: alt.sources
  3. Subject: ReadMe for pd ksh .. Murphy's Law
  4. Message-ID: <1991Mar09.021619.3047@cs.widener.edu>
  5. Date: 9 Mar 91 02:16:19 GMT
  6.  
  7.  
  8.   The result of the patches I posted will come up with perfectly
  9.   compilable code .. but incorrect instructions. (I didn't
  10.   triple-check it.) What follows is the right ReadMe. (Basically you
  11.   have to do make link before you can do make in the stdc and posix
  12.   directories.)
  13.  
  14.    The full patched & compilable source is also available on
  15.    ftp.cs.widener.edu (192.55.239.132) in pub/unix/ksh.tar.Z.
  16.  
  17. -- cut --
  18.     Notes on the Standard C / POSIX P1003.1 package
  19.  
  20.   This package contains header files and library routines to provide a
  21. standard C (ANSI) and POSIX enviroment for portable programs.  This
  22. allows most OS dependcies to be removed from an application, making it
  23. much more readable, and isolating them in a small, standardized
  24. library. It has the disadvantage that it only works with fairly stock
  25. UNIX versions, but a different approach will be used for other
  26. systems.
  27.  
  28.   This package supplements the existing libraries and header files
  29. of a AT&T-derived Unix system (System V and BSD in particular). It
  30. also provides function prototypes when the compiler supports them,
  31. improving compile-time error checking and improving portability on
  32. machines where sizeof(int) == sizeof(size_t) == sizeof(void*) does not
  33. hold.
  34.  
  35.   A different approach will be used for the DOS, Atari St, Minix,
  36. and possibly V7: a complete replacement standard C library will be
  37. provided as a separate package. This would not be practical with BSD
  38. or NFS systems because of the conflicts with the host stdio and the
  39. replacement stdio in libc's getpwent().
  40.  
  41. Contents:
  42.     stdc/*:        The standard C header files and library.
  43.     posix/*:    The POSIX header files and library.
  44.     h/*, h/sys/*:    Links to the header files in stdc/ and posix/.
  45.     libstdc.a:    The standard C library.
  46.     libposix.a:    The POSIX emulation library.
  47.  
  48. Building PD Ksh
  49. ---------------
  50.  
  51.  First, create the header files and libraries:
  52.  
  53.     - define _BSD, _SYSV, or _V7 in stdc/Makefile and posix/Makefile
  54.     - rm stdc/stdio.h
  55.     - cd stdc; make link; make
  56.     - cd ../posix; make link; make
  57.  
  58.  Now, type:
  59.  
  60.     - cd ../src; make
  61.  
  62.  The executable will be in src/ksh.
  63.  
  64.            Notes on the standard C package
  65.  
  66.   - The files <locale.h>, <assert.h>, and <math.h> don't exist yet.
  67.   - Many standard C functions are not implemented yet, including
  68.     strtol    strtoul    atexit tempfile        et al.
  69.   - The string routines are by Henry Spencer.
  70.  
  71.               Known Portability Problems
  72.  
  73.   - size_t or ptrdiff_t in <stddef.h> may need to be long.
  74.   - some versions of Unix may scream when make stdc tries to create a
  75.     stdio.h from /usr/include/stdio.h and stdc/stdio.h_std .. if this
  76.     is the case (e.g. on Xenix and some BSD/SysV mixes), you can do it
  77.     by hand by simply doing: 
  78.     cd stdc
  79.     cp stdio.h_std stdio.h
  80.     edit the new stdio.h and insert /usr/include/stdio.h between the lines
  81.         /* system stdio.h goes here ... %%% */
  82.     and
  83.         /* ... end system stdio.h */
  84.  
  85.   - FILE must be in the host stdio.h for setvbuf() to work; also it
  86.     has to be stock System V or BSD, or it'll fail
  87.   - You can safely "#if 0" out the body of setvbuf for PD ksh, setvbuf
  88.     is used to decrease the size of buffers to speed up forks.
  89.   - If the offsetof macro makes your build fail, define BAD_OFFSET in
  90.     the CFLAGS variable in src/Makefile, as such:
  91.         CFLAGS= blahblahblah -DBAD_OFFSET
  92.   - Also previous versions would crash if you did a Ctrl-D (EOF) on
  93.     the line by itself (at least on Suns); this has been fixed (at
  94.     least on Suns :-)).
  95.  
  96.               Notes on the POSIX package
  97.  
  98.   - Only headers and function required by the PD KornShell are
  99.     implemented. I do not intend to develop this into a full POSIX
  100.     emulation package.
  101.   - You should install Doug Gwyn's <dirent> package if you do not have
  102.     <dirent.h> nor <sys/dir>. If you do have <dirent.h>, unlink
  103.     h/dirent.h (this should be configured automatically by the
  104.     makefile).
  105.  
  106.  
  107. -- cut --
  108.  
  109. --
  110.      Brendan Kehoe - Widener Sun Network Manager - brendan@cs.widener.edu
  111.   Widener University in Chester, PA                A Bloody Sun-Dec War Zone
  112. -- 
  113.      Brendan Kehoe - Widener Sun Network Manager - brendan@cs.widener.edu
  114.   Widener University in Chester, PA                A Bloody Sun-Dec War Zone
  115.