home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
dmake40x.zip
/
INSTALL
< prev
next >
Wrap
Text File
|
1998-07-07
|
11KB
|
291 lines
These files were packaged by Ariel Shkedi <ars@ziplink.net> for your convenience
but I claim no copyright whatsoever. See the license file for more information.
The source for this package should be available in the same place you got this.
If you redistribute this package you should re-distribute the source along with
it.
***Author of this package:***
I can be reached at: dvadura@plg.uwaterloo.ca
Dennis Vadura
Dept of Computer Science
University of Waterloo
Waterloo, Ont. N2L 3G1
(519) 885-1211 x3501
***Files in this package:***
The executable dmake.exe
License license
dmake.ini files:
emx-gcc ini\dmake.emx
IBM C 2.0 ini\dmake.ibm
Microsoft C ini\dmake.msc
Documentation:
ANSI Format - Highlight man\dmake.anh
ANSI Format - Underline man\dmake.anu
Text Plain (No Control Chars) man\dmake.nc
Documentation source:
Unix ul format man\dmake.p
Original troff man\dmake.tf
***Installing the package:***
The directory c:\dmake used in these instructions is an example, you may replace
it with whatever you wish. The files do not all need to be in the same directory
dmake.exe should be in the path, and dmake.ini needs to be pointed to by
MAKESTARTUP. The documentation can be placed anywhere.
To install the package first create a directory named c:\dmake:
md c:\dmake
Copy the dmake.exe file to this directory:
copy dmake.exe c:\dmake
Add c:\dmake to your path:
Edit config.sys and add c:\dmake at the end of the line beginning with path=
(Make sure to separate it from other directories with a ;)
Example: path=c:\os2;c:\dmake
Copy the ini file that best matches your environment to c:\dmake\dmake.ini
For:
emx-gcc:
copy ini\dmake.emx c:\dmake\dmake.ini
IBM C 2.0:
copy ini\dmake.ibm c:\dmake\dmake.ini
Microsoft C:
copy ini\dmake.msc c:\dmake\dmake.ini
Add the line:
set MAKESTARTUP=c:\dmake\dmake.ini
To your config.sys
Copy the documentation:
There are 3 files, man\dmake.nc is a plain text format (no control characters).
man\dmake.anu is the documentation with ANSI formatting codes, the underline code
is used. Some systems don't support ANSI underline codes, in that case use
man\dmake.anh which uses highlighting instead. To view the ANSI formatted files
type
ANSI on
at an os2 prompt (it is usually on by default). And do
more < man\dmake.anu
or
more < man\dmake.anh
Choose the type you like better and copy it:
copy man\dmake.anu c:\dmake\dmake.man
or
copy man\dmake.anh c:\dmake\dmake.man
In addition copy man\dmake.nc for viewing in a text editor.
copy man\dmake.nc c:\dmake\dmake.txt
man\dmake.tf is the original troff format, you don't need it unless you want to
convert the documentation to some other format. man\dmake.p is in unix man
format. You can use the unix command ul to view it.
Reboot your computer so that the changes to config.sys are enabled.
After copying the files to their new locations you can delete the originals to
reclaim some disk space.
The source file for dmake contains a very nice debuging package which you may
want, it is in the dbug directory. It is not included here to reduce the file
size and because you would need to compile it for your specific setup.
***Compilation Notes:***
I compiled this package using emx-gcc.
I first commented out in public.h the line:
int _chdir ANSI((char *));
Because it was conflicting with the definition in the gcc library files.
In order to create a stand alone exe file that does not depend on emx, I changed
the last line in emx\make.cmd from:
gcc -Zmtd -o dmake.exe objects/*.o
To the two lines:
emxomf -s objects\*.o
gcc -Zmt -Zomf -Zsys -s -o dmake.exe objects/*.obj
I then ran emx/make.cmd to create the dmake.exe file.
The ini files were copied from dmake.ini in the emx, os2/ibm, and os2/mscdos
directories.
The documentation: dmake.nc, dmake.tf, and dmake.p is copied from the
distribution files using:
copy dmake.nc.A + dmake.nc.B dmake.nc
copy dmake.tf.A + dmake.nc.B dmake.tf
copy dmake.uue.A + dmake.uue.B dmake.uue
uudecode dmake.uue
gunzip -a dmake.Z
ren dmake dmake.p
The dmake.anh and dmake.anu files were created from dmake.p using the unix ul
command. The two type are from two different TERMCAPS. The difference between
the two is that dmake.anu uses ANSI underline commands which are not supported
on many systems. dmake.anh uses reverse highlight instead of underline.
dmake.p uses underlining.
***Extra Info from readme/os2 in the source distribution:***
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.