mirror of
https://github.com/sheumann/dmake.git
synced 2024-06-17 00:29:27 +00:00
142 lines
5.5 KiB
Plaintext
142 lines
5.5 KiB
Plaintext
Notes on the OS/2 implementation of dmake:
|
|
==========================================
|
|
|
|
As shipped the DOS versions of dmake will run under OS/2 protected mode.
|
|
However, support for a full OS/2 version is also provided. The OS/2 version
|
|
will run in parallel under OS/2. The port was made possible by files supplied
|
|
by:
|
|
|
|
Duncan Booth -- (duncanb@ibmpcug.co.uk, Bix:jrichards)
|
|
Kai Uwe Rommel -- (rommel@lan.informatik.tu-muenchen.dbp.de),
|
|
|
|
For which I am grateful. I have taken the two ports and integrated them
|
|
into a single port using the structure supplied by Duncan Booth, and some
|
|
files and OS2'ism supplied by Kai Rommel.
|
|
|
|
If there are any problems with the port then please let myself or one of the
|
|
two people above know. I will then attempt to fix the problem. I do not
|
|
have access to an OS/2 box to verify any problems myself.
|
|
|
|
|
|
Bootstrapping the binary:
|
|
-------------------------
|
|
A make.cmd 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:
|
|
msc40 - Microsoft C 4.0 compile.
|
|
msc50 - Microsoft C 5.0 compile.
|
|
msc51 - Microsoft C 5.1 compile.
|
|
msc60 - Microsoft C 6.0 compile.
|
|
ibm - IBM C2 compile.
|
|
|
|
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.cmd target'.
|
|
|
|
The command file runs a second command 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.
|
|
|
|
By default the command 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 file found in os2/mscdos and selecting a diferrent
|
|
cpu type by supplying the appropriate compiler flags.
|
|
You then need to remake dmake again but this time use dmake itself,
|
|
see below.
|
|
|
|
|
|
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 (not needed for OS/2)
|
|
|
|
These three variables should be defined in your environment. Valid values
|
|
for them are listed in the dmake makefile.mk file. For example, if you
|
|
are using OS/2, with Microsoft-C then the valid settings are:
|
|
|
|
set OS=os2
|
|
set OSRELEASE=mscdos
|
|
|
|
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=\init\dmake.ini
|
|
|
|
The dmake makefile has several 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.
|
|
|
|
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 script.
|
|
|
|
|
|
|
|
OS/2 Specifics
|
|
--------------
|
|
|
|
There is a small number of OS/2 specific features that need to be
|
|
stated.
|
|
|
|
1. The environment variables TMP as well as TMPDIR are checked for the
|
|
location of the directory where dmake should place any temporary files.
|
|
TMPDIR is checked before TMP.
|
|
|
|
2. Appropriate limits are setup for MAXPROCESSES and buffer sizes etc.
|
|
See output of 'dmake -V'.
|
|
|
|
3. By default dmake will look for the startup.mk file in the path:
|
|
|
|
$(INIT)/dmake.ini
|
|
|
|
This is more in keeping with OS/2 philosophy. You may still rename
|
|
and put it anywhere else you like by defining the MAKESTARTUP
|
|
environment variable.
|
|
|
|
4. The OS/2 directory contains files required by Kai Rommel's compiler
|
|
shell. However you do not need the compiler shell to build dmake.
|
|
|
|
5. Swapping the dmake binary to disk is not supported under OS/2.
|
|
|
|
|
|
Other notes:
|
|
------------
|
|
dmake does not care if you are running cmd.exe 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.
|
|
|
|
Group recipes under OS/2 that use cmd.exe as the command interpretter
|
|
require you to set the GROUPSUFFIX macro.
|
|
|
|
As shipped the startup.mk files 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,
|
|
cmd.exe (via COMSPEC), 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 now supports the MKS argument passing conventions. The facility is
|
|
enabled by setting .MKSARGS:=1 and is set by default in the startup.mk file
|
|
if an MKS Korn shell is detected as being the active command interpretter.
|