home *** CD-ROM | disk | FTP | other *** search
- OS/2 specific information for dmake. This information is provided in the
- hope that it makes it easier to install and recompile dmake in a OS/2
- environment. I do not own an OS/2 machine. As a result I rely on others to
- insure that this version of dmake works as advertized. If you have any
- problems with it please fix them and send me the differences so that
- I can incorporate them into future releases and patches.
-
- 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
-
- 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.
-
- 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:\init\startup.mk
-
- See the dmake man page in the src/man subdirectory for additional details
- of how dmake starts up.
-
-
- 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.
-
- 6. Caching directories is not supported under OS/2 if you anyone wants
- to add this grab the code in unix/cache.c and an OS/2 implementation
- of opendir/readdir/closedir and hack away. Please send me the results.
-
-
- 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.
-