Category : C Source Code
Archive   : GENX.ZIP
Filename : GENDOX.TXT

Output of file : GENDOX.TXT contained in archive : GENX.ZIP
User notes for GENMAK

GENMAK is a program for creating customized MAKE files compatible with
the Turbo MAKE utility. The output created by GENMAK can be
easily modified with the TC editor. Requirements for using GENMAK
- the Turbo Make utility
- a librarian utility
- a linking utility

The ideal conditions for GENMAK are when between 15 - 20 EXE files
must be created and there are between 30 - 40 OBJ support files.

GENMAK philosophy

GENMAK thinks that a directory containing a variable number of C and H
files are all related in some way to a "target" system:

- some C files are intended to become EXE files

- some C files are intended to become OBJ files
that support those in the first category

- H files, INC files, etc. should be specified in
MAKE dependency rules, but are not intended to
become EXE or OBJ files

Because the number of OBJ modules can sometimes be quite large, the
maximum size of the LINK/TLINK command tail (128 bytes) poses problems.
To work around this, GENMAK likes to put all OBJ files into a single
LIB file (designated by the MAKE macro, PROJECT_LIBRARY). This approach
requires that you have a librarian utility, such as LIB, OLIB, TLIB, etc
(designated by the MAKE macro, LIBRARIAN_NAME) in your PATH.

When the EXE files are linked, the project library is included.

Detailed instructions

1. Move all the C files needed by your target system
into the directory containing GENMAK.


a. The information panel provides an opportunity
to adjust the macros. The default values
assume a LARGE memory model with the related
link files (C0L.OBJ, etc) on drive D:

If you are using commercial libraries, be
sure to include those in the LINK_SUFFIX
macro. Failure to do this may cause a
system crash when LINK/TLINK gets underway.

b. GENMAK then examines each C file for
occurences of the include directive. When
an include directive is encountered (even
those commented or ifdef'ed out), it uses
the following rule: if the include file
is enclosed in angle brackets (such as
), it is ignored; if the include
file is enclosed in quotes, it is picked up
as a MAKE dependency.

c. When the scanning process is complete, GENMAK
will a pop-up menu to determine the disposition
of each file:

- The file should be compiled to an OBJ
file. In this case, the file is
compiled and added to your project
library (a "lib" file).

- The file should be compiled as an EXE
file. In this case, the file is compiled
and linked to the project library file.

- The file should be ignored.

d. GENMAK will return with a message giving the file
specification of the MAKE file, it will look some-
thing like TMP1.$$$ as it is named via the "tmpnam"

3. Pull the new MAKE file into a text editor and make
any necessary modifications. With the Turbo MAKE
utility, you can simulate a run with the -n option
(make -n -ftmp1.$$$).

Caveats and Observations

Creating a MAKE macro to specify your "include" and "lib"
subdirectories is a bewildering exercise. My advice is to
forget it.

An interesting idea for those particularly convoluted situations
is to try something like: make -n -fmymake >oneshot.bat
then edit the batch file.

Don't forget that the Microsoft linker will concatenate the
options you pass on the command tail with any options existing
in your LINK environment variable. My autoexec contains the

set link=/SE:1000 /PAC /F

Another interesting, not clearly documented feature of the
Turbo Make utility is the ability to insert a dependency
condition without having a related command. This is my
technique for incorporating multiple EXE files into a
single make (using a "psuedo" rule called COMPLETE).

GENMAK does not understand the following concepts:

- Nested includes
- Include statements that have been commented out
- Include statements that have been defined out

GENMAK is public domain. You are free to use/gain from it as
you see fit without obligation on your part. There is no
obligation or liability on my part. Garry J. Vass [72307,3311]

  3 Responses to “Category : C Source Code
Archive   : GENX.ZIP
Filename : GENDOX.TXT

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: