home *** CD-ROM | disk | FTP | other *** search
- MSDOS specific information for dmake. This information is provided in the
- hope that it makes it easier to install and recompile dmake under MSDOS.
- I will be happy to hear of erroneous information and will make every effort
- to correct it.
-
-
- 1. ENVIRONMENT VARIABLE SETTINGS
-
- There are many environment variable settings available for MSDOS. Each
- option is described below.
-
- OS - msdos
-
- OSRELEASE - bccdos # Borland BCC C and C++ compilers
- - tccdos # Borland Turbo-C compiler
- - ztcdos # Zortech C/C++ compilers
- - mscdos # Microsoft Compilers 4.0 and greater
-
- OSENVIRONMENT - NULL
-
- MSC_VER - 4.0 # Microsoft Compiler version if mscdos
- - 5.0 # Microsoft Compiler version if mscdos
- - 5.1 # Microsoft Compiler version if mscdos
- - 6.0 # Microsoft Compiler version if mscdos
-
- You must set OS and OSRELEASE, and MSC_VER if OSRELEASE is "mscdos".
-
-
- 2. IMPLEMENTATION NOTES
-
- Bootstrapping the binary:
- -------------------------
- A make.bat file is provided to bootstrap the binary. The file contains
- several targets for bootstrapping. Invoking the batch file with no
- arguments lists the possibilities shown below.
-
- INDEX: You must specify one of:
- ** tcc - Turbo C 2.0 compile.
- ** tccswp - Turbo C 2.0 compile of swapping dmake.
- bcc - Borland C++ 2.0 compile.
- bccswp - Borland C++ 2.0 compile of swapping dmake.
- msc40 - Microsoft C 4.0 compile.
- msc50 - Microsoft C 5.0 compile.
- msc51 - Microsoft C 5.1 compile.
- msc60 - Microsoft C 6.0 compile.
- msc40swp - Microsoft C 4.0, MASM 5.1 compile of swapping dmake.
- msc50swp - Microsoft C 5.0, MASM 5.1 compile of swapping dmake.
- msc51swp - Microsoft C 5.1, MASM 5.1 compile of swapping dmake.
- msc60swp - Microsoft C 6.0, MASM 5.1 compile of swapping dmake.
- ztc - Zortech C++ 2.1 compile.
- ztcswp - Zortech C++ 2.1 compile of swapping dmake.
-
- ** dmake 4.0 seems to break when compiled with Turbo C 2.0, I am not
- sure why, but compiling with a later release of the Borland compilers
- fixes the problem. I suspect a bug in the C-libraries.
-
- Based on the compiler you have installed and whether or not you
- want the swapping version of dmake, you should select the appropriate
- target and issue 'make.bat target'.
-
- The batch file runs a second batch script that comes with the distribution
- which compiles the sources using the appropriate compiler and flags. The
- MSC Versions of the batch files should not require any further user
- intervention during the compile. The Turbo-C version, as a final step,
- invokes tlink with two response files. The second of these response files,
- named in msdos/tccdos/mk*.bat, contains absolute path names to Turbo-C
- libraries. You likely need to edit these before getting a successful binary
- is linked.
-
- By default the batch files make an executable that will run on an 8088
- cpu and up. You can change that by making the initial version and then
- editing the config.mk files found in either msdos/tccdos or msdos/mscdos
- (depending on the compiler you use), and selecting a different cpu type by
- supplying the appropriate compiler flags. You then need to remake dmake
- again but this time use dmake itself, see below.
-
- Note that the file msdos/exec.uue is a uuencoded version of a BCC++
- compiled exec.obj (from exec.asm). If you do not have an assembler
- either microsoft MASM or Borland TASM (or some other), you can uudecode
- this file and put it into the appropriate objects directory.
-
-
- Using dmake to Make itself:
- ---------------------------
- If you use dmake to make itself you must first set a number of makefile
- control variables, either through the environment or on the command line.
-
- The following variables must be set:
-
- OS - defines operating system (must be set)
- OSRELEASE - particular version of it.
- OSENVIRNOMENT - more customization
-
- These three variables should be defined in your environment. Valid values
- for MSDOS are listed above in Section 1. You must chose one setting from
- each category, so for example when using Turbo-C then the valid settings
- are:
-
- set OS=msdos
- set OSRELEASE=tccdos
- set OSENVIRONMENT=
-
- The dmake makefile has several macro variables that can be user specified
- and default to reasonable values if not set.
-
- MODEL - defines the model to compile, valid values are
- {s,c,m, or l}, defaults to 'l' (ie. large) model
- if unspecified.
-
- MSC_VER - defines the version of Microsoft C in use, should be set to
- one of 4.0, 5.0, 5.1 or 6.0; defaults to 6.0.
-
- SWAP - If set to 'y', compile the dmake swapping version of
- spawnvpe. This has the effect of turning on swapping of the
- executable to disk if the MSDOS version is made.
-
- DEBUG - If set to '1' then make the debugging version of dmake, this
- will also set MODEL to 'l'.
-
- To set the above variables you must specify them on the dmake command line
- or insert them into the makefile.mk definition.
-
- Finally, dmake searches for an initial startup file, you should set the
- environment variable MAKESTARTUP to contain the full path to the startup
- file, eg:
-
- set MAKESTARTUP=d:\usr\lib\startup.mk
-
- See the dmake man page in the src/man subdirectory for additional details
- of how dmake starts up.
-
-
- Memory Requirements and Swapping:
- ---------------------------------
- The swapping code currently only swaps to DISK, I have left hooks
- in to accomodate XMS and EMS, I have some code that performs the
- necessary XMS/EMS accesses but have not incorporated it in yet.
- It appears that a ramdisk seems to work just fine. If anyone
- wishes to fill in the hooks please do and I'll be happy to include
- them in future distributions.
-
-
- ^C and stopping a make:
- -----------------------
- Thanks to the efforts of Len Reed, appears to now work. I have been unable
- to hang my machine if it's swapped out and I hit ^C a couple thousand times.
-
-
- Other notes:
- ------------
- dmake does not care if you are running command.com or some other command
- interpretter, you must however specify the proper values of the environment
- variables SHELL, SHELLFLAGS, GROUPSHELL, and GROUPFLAGS in order for things
- to work correctly. Read the man page FIRST, if you still have trouble
- then send email.
-
- Group recipes under DOS that use command.com as the command interpretter
- require you to set the GROUPSUFFIX macro.
-
- As shipped the startup.mk files for the DOS version try to figure out what
- command interpretter you are using and set things up appropriately.
- Two command interpretters are supported in the shipped startup.mk file,
- command.com, and the MKS Korn shell.
-
- dmake does not contain any builtin commands. It gets all commands it
- executes from an external file system. It is therefore most useful if it
- is used in conjunction with an environment similar to that provided by
- the MKS Tool Kit, or equivalent.
-
- dmake supports the MKS argument passing conventions. The facility is
- enabled by setting .MKSARGS:=1. It is set by default in the startup.mk file
- if an MKS Korn shell is detected as being the active command interpretter.
-