home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / dossh23.zip / Install < prev    next >
Text File  |  1994-08-26  |  8KB  |  194 lines

  1. Shell Version 2.3    INSTALL                December 1994
  2.  
  3.  MS-DOS SHELL - Copyright (c) 1990,4 Data Logic Limited and Charles Forsyth
  4.  
  5.  This code is based on (in part) the shell program written by Charles
  6.  Forsyth and is subject to the following copyright restrictions:
  7.  
  8.  1.  Redistribution and use in source and binary forms are permitted
  9.      provided that the above copyright notice is duplicated in the
  10.      source form and the copyright notice in file sh6.c is displayed
  11.      on entry to the program.
  12.  
  13.  2.  The sources (or parts thereof) or objects generated from the
  14.      sources (or parts of sources) cannot be sold under any circumstances.
  15.  
  16.     $Header: /usr/users/istewart/shell/sh2.3/Release/RCS/Install,v 2.3 1994/08/25 20:58:47 istewart Exp $
  17.  
  18.     $Log: Install,v $
  19.     Revision 2.3  1994/08/25  20:58:47  istewart
  20.     MS Shell 2.3 Release
  21.  
  22.     Revision 2.2  1993/12/03  13:32:52  istewart
  23.     Release 2.2
  24.  
  25.     Revision 2.1  1992/12/14  11:13:55  istewart
  26.     BETA 215 Fixes and 2.1 Release
  27.  
  28.     Revision 2.0  1992/04/13  17:40:33  Ian_Stewartson
  29.     MS-Shell 2.0 Baseline release
  30.  
  31.  
  32.     
  33. ________________________________________________________________________________
  34.  
  35. To rebuild and install the shell, you should follow the following the steps:
  36.  
  37. 1)  If you have the binary only version, skip steps 2 through 4.
  38.  
  39. 2)  Load the include files in the include directory into the standard location
  40.     (\msc\include or equivalent).  Read CHANGES file for the additional
  41.     definitions which are required in the standard Microsoft C5 & C6 include
  42.     files and edit them in to the appropriate files.
  43.  
  44.     We have standardised our MSDOS and Unix include files such that the same
  45.     include file exists our Unix system and MSDOS systems.  This makes porting
  46.     a lot easier.  If you don't want to edit the standard include files, you
  47.     will have to generate an new include file for the shell and include it as
  48.     the first include in all the C sources for the additional library functions
  49.     and the Shell itself
  50.  
  51. 3)  Modify the library function open so that the O_NOINHERIT flag is passed to
  52.     MSDOS by the library.  This is not strictly necessary.  I did it using
  53.     CodeView to see where the library function masks the bottom three bits,
  54.     noted the bytes around this location, extracted the open function from the
  55.     library, patched the mask to be 0x83 instead of 0x03, and then replaced
  56.     the function in the library (Also see the Patch.Lib file).
  57.  
  58. 4)  Build the shell, either using make or
  59.  
  60.     For MSDOS (using Microsoft C5.1 or 6).  Look at the makefile for the
  61.     flags to other compilers:
  62.  
  63.     cl -c -AL -Olt sh*.c
  64.     masm /Ml sh0.asm
  65.     link sh0+sh1+sh2+sh3+sh4+sh5+sh6+sh7+sh8+sh9+sh10+sh11+sh12+sh13/noi/noe/stack:0x8000, shdos16.exe;
  66.  
  67.     Note that the order is important.  SH0.OBJ must be the first object
  68.     file in the load line.
  69.     
  70.     For OS/2 (using Microsoft C6).  Look at the makefile for the flags to
  71.     other compilers:
  72.  
  73.     cl -o shos216 -AL -Olt -DOS2 sh*.c sh.def -F 8000
  74.  
  75. 5)  Install the shell executable in its correct location.  The executable is
  76.     either shdos16.exe or shdos32.exe (for MSDOS 3 to 6), shos216.exe (for
  77.     OS/2 1.x.), or shos216.exe or shos232.exe (for OS/2 2.x.), shemx.exe
  78.     (if you have the EMX run-time environment on OS/2 2.x), shnt.exe 
  79.     (Windows NT).  Copy this file to sh.exe in the correct directory.  If
  80.     you don't change the name, or change the name to something else, you
  81.     must also change the name of sh.ini to the same name.  For example:
  82.     shdos.exe is matched with shdos.ini and sh210.exe is matched with
  83.     sh210.ini.
  84.  
  85.     If you use shemx.exe, you will need the EMX run-time environment
  86.     (emxrt) installed.
  87.  
  88.     Read the Notes file to see if there are any know problems with a
  89.     particular environment.
  90.  
  91. 6)  Modify the initialisation file sh.ini for your edit key preferences.
  92.     The shell does the appropriate binding to VI and EMACS editing commands
  93.     for those command line edit modes (however, you can also change the
  94.     EMACS bindings using the bind command - see manual page) and install it
  95.     in the same directory as the executable, with the same name (different
  96.     extension).
  97.  
  98. 7)  Modify the scripts as appropriate for your installation and install
  99.     them in the correct directories.  Ok, the scripts in the archive are
  100.     sample scripts from my system.  It is highly unlikely that they will
  101.     work on your system - they are just there for you to see what can be
  102.     done in the scripts, SO MODIFY THEM TO MEET YOUR ENVIRONMENT and read
  103.     the manual pages to see which environment variables the shell requires.
  104.     Some of the variables are set up for the companion uxutl???.zip
  105.     programs.
  106.  
  107.     ${HOME}/profile.sh    - your profile (NOT MINE) in your ${HOME} directory.
  108.     /etc/profile.sh    - your /etc profile (NOT MINE).  The variable
  109.               Rootdrive in sh.ini determines which drive this
  110.               file is located on.  A value of 3 is drive C, 4 D,
  111.               etc.
  112.     sh.rc        - your ${ENV} file (NOT MINE).  Anywhere as long as
  113.               ${ENV} in either ${HOME}/profile, /etc/profile or
  114.               the environment from which you start the shell
  115.               (autoexec.bat) declare the variable.
  116.  
  117.               Note:  This file is usuful for selecting the swap
  118.                  mode on startup.
  119.  
  120.     extend.lst          - your Extended command line processing file (NOT MINE).
  121.                   Anywhere as long as ${EXTENDED_LINE} in either
  122.               ${HOME}/profile, /etc/profile or the environment
  123.               from which you start the shell (autoexec.bat)
  124.               declare the file.
  125.  
  126.               Note:  The utilities I use are NOT the GNU utilities.
  127.               They are programs I've written or ported from non-GNU
  128.               sources and they contain my version of stdargv.c
  129.               which provides @filename support.  So if you are
  130.               not using uxutl22[abcd].zip or are running under
  131.               OS/2, you will need to remove the UNIX commands
  132.               from this file (unless you have rebuild with my
  133.               stdargv.c).
  134.     
  135.     For example:
  136.  
  137.     Suppose you have a /system/bin directory on drive E in which you have
  138.     both the 16 and 32 bit versions of the shell, a home directory on drive D
  139.     (/usr/ian), and the root drive is F.  Then
  140.  
  141.     In E:/SYSTEM/BIN, you should have the files (assuming you are running DOS):
  142.  
  143.     shdos16.exe
  144.     shdos32.exe
  145.     shdos16.ini
  146.     shdos32.ini
  147.     
  148.     In F:/ETC, you should have the file:
  149.  
  150.     profile.sh        # The /etc version
  151.     
  152.     In D:/USR/IAN, you should have the file:
  153.  
  154.     profile.sh        # The ${HOME} version
  155.  
  156.     The value of RootDrive in e:/bin/shdos{16,32}.ini should be 6.
  157.  
  158.     The location of sh.rc and extend.lst then up to you.  I normally put
  159.     extend.lst in the same directory as the shell executable and sh.rc
  160.     either in /etc or ${HOME}.
  161.  
  162.     There a number of other options.  You could combine /etc/profile and
  163.     ${HOME}/profile into one file and only have the /etc version or the
  164.     ${HOME} version.  You normally only require the ${ENV} file if you set
  165.     up aliases or functions which you want in every interactive shell.
  166.  
  167.     If you don't currently know about writing shell scripts, the best thing
  168.     to do is to get a book on the Bourne or Korn Shell.
  169.  
  170.     The only real different is that you have control over the /etc profile
  171.     which on UNIX is under the control of the system administrator
  172.     (although this could also be true on Windows NT).  You define the drive
  173.     on which this file is located (via the sh.ini file).  Also, the value
  174.     of ${HOME} is normally set up for you under UNIX as part of the login
  175.     process.  Under DOS, OS/2 or Windows NT (not sure), you have to set up
  176.     the value of ${HOME} yourself in either autoexec.bat or /etc/profile.
  177.  
  178. 8)  Type "sh -0" and see what happens.
  179.  
  180. 9) If you have problems, check that the environment variables are set
  181.     correctly.  Use the set command under the MSDOS command.com and in the
  182.     shell.
  183.  
  184.     Remember that some commands require DOS format file names and environment
  185.     variables.  So check the setting of these variables (using the shell's
  186.     msdos command) and the entries in ${EXTENDED_LINE}.
  187.  
  188. 10) I would say, if everything else fails, e-mail me.  But after 9th
  189.     September 94, I will not be on Internet.  You could write to be at the
  190.     address in the ReadMe file, get the source and see if you can fix the
  191.     problem yourself or try one of the MSDOS or OS/2 newsgroups - there may
  192.     be some one there who is using the shell who can help you.  I'll update
  193.     the files as soon as I get a new internet account.
  194.