home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dmake40.zip / readme / msdos < prev    next >
Text File  |  1994-10-23  |  7KB  |  173 lines

  1. MSDOS specific information for dmake.  This information is provided in the
  2. hope that it makes it easier to install and recompile dmake under MSDOS.
  3. I will be happy to hear of erroneous information and will make every effort
  4. to correct it.
  5.  
  6.  
  7. 1. ENVIRONMENT VARIABLE SETTINGS
  8.  
  9. There are many environment variable settings available for MSDOS.  Each
  10. option is described below.
  11.  
  12.    OS         - msdos
  13.  
  14.    OSRELEASE     - bccdos        # Borland BCC C and C++ compilers
  15.          - tccdos        # Borland Turbo-C compiler
  16.          - ztcdos        # Zortech C/C++ compilers
  17.          - mscdos        # Microsoft Compilers 4.0 and greater
  18.  
  19.    OSENVIRONMENT - NULL
  20.  
  21.    MSC_VER     - 4.0            # Microsoft Compiler version if mscdos
  22.          - 5.0            # Microsoft Compiler version if mscdos
  23.          - 5.1            # Microsoft Compiler version if mscdos
  24.          - 6.0            # Microsoft Compiler version if mscdos
  25.  
  26. You must set OS and OSRELEASE, and MSC_VER if OSRELEASE is "mscdos".
  27.  
  28.  
  29. 2. IMPLEMENTATION NOTES
  30.  
  31. Bootstrapping the binary:
  32. -------------------------
  33.    A make.bat file is provided to bootstrap the binary.  The file contains
  34.    several targets for bootstrapping.  Invoking the batch file with no
  35.    arguments lists the possibilities shown below.
  36.  
  37.       INDEX:  You must specify one of:
  38.       ** tcc      - Turbo C 2.0 compile.
  39.       ** tccswp   - Turbo C 2.0 compile of swapping dmake.
  40.      bcc      - Borland C++ 2.0 compile.
  41.      bccswp   - Borland C++ 2.0 compile of swapping dmake.
  42.      msc40    - Microsoft C 4.0 compile.
  43.      msc50    - Microsoft C 5.0 compile.
  44.      msc51    - Microsoft C 5.1 compile.
  45.      msc60    - Microsoft C 6.0 compile.
  46.      msc40swp - Microsoft C 4.0, MASM 5.1 compile of swapping dmake.
  47.      msc50swp - Microsoft C 5.0, MASM 5.1 compile of swapping dmake.
  48.      msc51swp - Microsoft C 5.1, MASM 5.1 compile of swapping dmake.
  49.      msc60swp - Microsoft C 6.0, MASM 5.1 compile of swapping dmake.
  50.      ztc      - Zortech C++ 2.1 compile.
  51.      ztcswp   - Zortech C++ 2.1 compile of swapping dmake.
  52.  
  53.    ** dmake 4.0 seems to break when compiled with Turbo C 2.0, I am not
  54.       sure why, but compiling with a later release of the Borland compilers
  55.       fixes the problem.  I suspect a bug in the C-libraries.
  56.  
  57.    Based on the compiler you have installed and whether or not you
  58.    want the swapping version of dmake, you should select the appropriate
  59.    target and issue 'make.bat target'.
  60.  
  61.    The batch file runs a second batch script that comes with the distribution
  62.    which compiles the sources using the appropriate compiler and flags.  The
  63.    MSC Versions of the batch files should not require any further user
  64.    intervention during the compile.  The Turbo-C version, as a final step,
  65.    invokes tlink with two response files.  The second of these response files,
  66.    named in msdos/tccdos/mk*.bat, contains absolute path names to Turbo-C
  67.    libraries.  You likely need to edit these before getting a successful binary
  68.    is linked.
  69.  
  70.    By default the batch files make an executable that will run on an 8088
  71.    cpu and up.  You can change that by making the initial version and then
  72.    editing the config.mk files found in either msdos/tccdos or msdos/mscdos
  73.    (depending on the compiler you use), and selecting a different cpu type by
  74.    supplying the appropriate compiler flags.  You then need to remake dmake
  75.    again but this time use dmake itself, see below.
  76.  
  77.    Note that the file msdos/exec.uue is a uuencoded version of a BCC++
  78.    compiled exec.obj (from exec.asm).  If you do not have an assembler
  79.    either microsoft MASM or Borland TASM (or some other), you can uudecode
  80.    this file and put it into the appropriate objects directory.
  81.  
  82.  
  83. Using dmake to Make itself:
  84. ---------------------------
  85.    If you use dmake to make itself you must first set a number of makefile
  86.    control variables, either through the environment or on the command line.
  87.  
  88.    The following variables must be set:
  89.  
  90.     OS           - defines operating system (must be set)
  91.     OSRELEASE      - particular version of it.
  92.     OSENVIRNOMENT  - more customization
  93.  
  94.    These three variables should be defined in your environment.  Valid values
  95.    for MSDOS are listed above in Section 1.  You must chose one setting from
  96.    each category, so for example when using Turbo-C then the valid settings
  97.    are:
  98.  
  99.     set OS=msdos
  100.     set OSRELEASE=tccdos
  101.     set OSENVIRONMENT=
  102.  
  103.    The dmake makefile has several macro variables that can be user specified
  104.    and default to reasonable values if not set.
  105.  
  106.     MODEL   - defines the model to compile, valid values are
  107.           {s,c,m, or l}, defaults to 'l' (ie. large) model
  108.           if unspecified.
  109.  
  110.     MSC_VER - defines the version of Microsoft C in use, should be set to
  111.           one of 4.0, 5.0, 5.1 or 6.0; defaults to 6.0.
  112.  
  113.     SWAP    - If set to 'y', compile the dmake swapping version of
  114.           spawnvpe.  This has the effect of turning on swapping of the
  115.           executable to disk if the MSDOS version is made.
  116.  
  117.     DEBUG   - If set to '1' then make the debugging version of dmake, this
  118.           will also set MODEL to 'l'.
  119.  
  120.    To set the above variables you must specify them on the dmake command line
  121.    or insert them into the makefile.mk definition.
  122.  
  123.    Finally, dmake searches for an initial startup file, you should set the
  124.    environment variable MAKESTARTUP to contain the full path to the startup
  125.    file, eg:
  126.  
  127.     set MAKESTARTUP=d:\usr\lib\startup.mk
  128.  
  129.    See the dmake man page in the src/man subdirectory for additional details
  130.    of how dmake starts up.
  131.  
  132.  
  133. Memory Requirements and Swapping:
  134. ---------------------------------
  135.    The swapping code currently only swaps to DISK, I have left hooks
  136.    in to accomodate XMS and EMS, I have some code that performs the
  137.    necessary XMS/EMS accesses but have not incorporated it in yet.
  138.    It appears that a ramdisk seems to work just fine.  If anyone
  139.    wishes to fill in the hooks please do and I'll be happy to include
  140.    them in future distributions.
  141.  
  142.  
  143. ^C and stopping a make:
  144. -----------------------
  145.    Thanks to the efforts of Len Reed, appears to now work.  I have been unable
  146.    to hang my machine if it's swapped out and I hit ^C a couple thousand times.
  147.  
  148.  
  149. Other notes:
  150. ------------
  151.    dmake does not care if you are running command.com or some other command
  152.    interpretter, you must however specify the proper values of the environment
  153.    variables SHELL, SHELLFLAGS, GROUPSHELL, and GROUPFLAGS in order for things
  154.    to work correctly.  Read the man page FIRST, if you still have trouble
  155.    then send email.
  156.  
  157.    Group recipes under DOS that use command.com as the command interpretter
  158.    require you to set the GROUPSUFFIX macro.
  159.  
  160.    As shipped the startup.mk files for the DOS version try to figure out what
  161.    command interpretter you are using and set things up appropriately.
  162.    Two command interpretters are supported in the shipped startup.mk file,
  163.    command.com, and the MKS Korn shell.
  164.  
  165.    dmake does not contain any builtin commands.  It gets all commands it
  166.    executes from an external file system.  It is therefore most useful if it
  167.    is used in conjunction with an environment similar to that provided by
  168.    the MKS Tool Kit, or equivalent.
  169.  
  170.    dmake supports the MKS argument passing conventions.  The facility is
  171.    enabled by setting .MKSARGS:=1.  It is set by default in the startup.mk file
  172.    if an MKS Korn shell is detected as being the active command interpretter.
  173.