Dec 082017
 
Quick Silver MAKE utility.
File DBMAKE10.ZIP from The Programmer’s Corner in
Category Dbase Source Code
Quick Silver MAKE utility.
File Name File Size Zip Size Zip Type
C-AUTO.BAT 1326 525 deflated
C-LFILE.BAT 874 427 deflated
DBMAKE.COM 36616 21225 deflated
DBMAKE.DOC 60418 10685 deflated
S-AUTO.BAT 822 395 deflated
S-FLIST.BAT 898 432 deflated
S-LFILE.BAT 760 369 deflated

Download File DBMAKE10.ZIP Here

Contents of the DBMAKE.DOC file


Creation Date: 10-14-1986 Last Modified: 11-10-1986








dBMake


MAKE Utility for the WordTech

dBaseIIICompiler











Version: 1.0

Author: Richard P. Hendricks

November, 1986













General Electric Co., AEBG
1000 Western Ave., Md: 45207
Lynn, Ma. 01910

(617) 594-9692

dBMake Page i

Index
Page
Introduction ........................................................ 1

File Contained in Archive ........................................... 2
System Requirements ................................................. 2
dBMake Start Up ..................................................... 3
dBMakeFile .......................................................... 3
Notations Used ...................................................... 4

Compiling ........................................................... 5
Compiling: AutoCompile Mode ....................................... 6
Compiling: File List Mode ......................................... 8
Compiling: ListFile Mode .......................................... 9

Linking ............................................................. 10
Linking: AutoLink Mode ............................................ 11
Linking: File List Mode ........................................... 13
Linking: ListFile Mode ............................................ 15

Debugging ........................................................... 17
Debugger .......................................................... 18

Internal DOS Commands ............................................... 19
External DOS Commands ............................................... 19
Pipes and Filters ................................................... 19
Non-dBaseIIICompiler Commands ....................................... 20
Internal dBMake Commands ............................................ 21

dBMakeFile Creation ................................................. 22

Eamples: dBMakeFile ................................................. 24
File and Path Naming Conventions .................................... 26


dBMake Page 1

Introduction

dBMake is a utility that was written to assist in the compiling and linking
of dBase III and dBase III Plus applications with the dBaseIIICompiler by
WordTech Systems, Inc. dBMake uses a dBMakeFile to know how to construct an
application. dBMake preprocesses each of the dBaseIIICompiler commands to
determine if there are any elements of a command that can be skipped and still
produce the proper executable files or determine that a command should be skipped
completly because earlier commands failed. dBMake will execute internal and
external DOS Commands, dBaseIIICompiler Commands and most other programs (.EXE,
.COM or .BAT).

Some of the benifits to using a MAKE type program:

- Faster reconstruction of large applications where the object files
are still available and only a few of the source files have been
modified.

- Insures a consistant reconstruction of a application. The same
switches, libraries, etc. will be used time after time.

- All newly modified source files will be recompiled and linked. It
is possible to change a number of programs an forget to issue the
command(s) to recompile all of the modified programs.




Release History:

Version 1.0 - Original Release of dBMake, November 1986

Future Enhancements:

Incorporate QuickSilver's Native Assembly Code Translator Command
Allow for substitution variables within dBMakeFile
Improve Documentation

Acknowledgments:

Companies:
Borland International, Inc., Turbo Pascal Compiler
WordTech Systems, Inc., dBaseIIICompiler & QuickSilver
Ashton-Tate, Inc., dBase III and dBase III Plus

Individuals:
David W. Terry and
Karl Brendel, Turbo Pascal Directory Routines
Bela Lubkin, Turbo Pascal SubProcessing Routines
PL Glatz, Turbo Pascal Name and Path String
Processing Routines


dBMake Page 2

Files Contained in Archive

DBMAKE.COM dBMake program
DBMAKE.DOC Documentation for dBMake

S-AUTO.BAT Batch file that creates a Simple Auto Compile
dBMakeFile
C-AUTO.BAT Batch file that creates a Complex Auto Compile
dBMakeFile

S-FLIST.BAT Batch file that creates a Simple File List Compile
dBMakeFile

S-LFILE.BAT Batch file that creates a Simple ListFile Compile
dBMakeFile
C-LFILE.BAT Batch file that creates a Complex ListFile Compile
dBMakeFile


System Requirements
Hardware:

Computer: IBM PC/XT/AT
Memory : 384K
Storage : Suggested Hard Drive
Other : Monochrome (not tested on Color or EGA)

Software:
DOS : PC Version 2.0 or greater
(appears to work under Wang IBM Emulation)

Compiler: WordTech Systems, Inc., dBaseIIICompiler
Versions: PC and MS 1.1, 1.2, 2.0



dBMake Page 3
dBMake Start Up

The format of the DOS command is as follows:


dbmake [d:][path]dbmakefile[.dbm]

The only parameter that is read from the DOS command line is the name of the
dBMakeFile. The drive, path and extension are optional. The drive and path
default to the current ones and the dBMakeFile extension defaults to .DBM.The
processing that dBMake performs is based on the commands that are found in this
file.



dBMakeFile

The dBMakeFile is a ASCII file that consists of commands that dBMake will review,
preprocess, and then submit to the operation system. The preprocessing is done on
the dBaseIIICompiler Commands only. It evaluates the command, reviews the request
against other information and then submits to the operating system only the com-
mands that need to be submitted to satisfy the request.

An example of what dBMake will do is as follows. Currently there is an application
that has 10 programs, 3 of which have been changed since the last compile. The
object files from the last compile are still available. dBMake will determine
which programs have been changed resently, submit a compile command for only those
programs, if the compile is successful then the link command will be executed. If
the compile fails, then dBMake will not issue the link command.

The format of the dBaseIIICompiler commands that are understood by dBMake are as
close as possible to the format that is described by WordTech Systems, Inc. The
main difference is found in the auto compile mode. The other change is that in
certain cases the DOS wild card characters, ? and * can be used to describe the
list of files to be compiled or linked. These differences are described in more
detail in the rest of the documentation.

Command types that are discussed:

- Compiler Command (DB3C)
- Linker Command (DB3L)
- Debugger Command (DB3G)
- Internal DOS Commands
- External DOS Commands
- Pipes and Filters
- Non-dBaseIIICompiler Commands
- Internal dBMake Commands

Other Subjects that are discussed:

- dBMakeFile Creation
- Sample dBMakeFiles
- File and Path Naming Conventions

dBMake Page 4
Notations Used

Notation Meaning
~ Identifies a ListFile Name, dBaseIIICompiler Convention
^ Identifies the start of the AutoCompile File Information Area,
dBMake Convention
[] Optional Input
| User supplies one of the ones in the list
Example: ON | OFF ; user selects either ON or OFF
<> User supplies the information
Example: ; user puts in appropriate filename,
normally not filename
d: Drive designation with ':'
drive Drive designation without ':'
path Path to the command and/or file
Example: \db3-comp\source\


dBMake Page 5
COMPILING

There are 3 forms of the Compile command. The compile can be done with an
AUTOCOMPILE mode, FILE LIST mode or LISTFILE mode. The AUTOCOMPILE mode is where
the root or main program name is provided to the compiler and it determines all
of the other required programs. The FILE LIST mode is where a list of all the
files to be compiled are provided to the compiler on the command line. The root
or main program name MUST be the first name in the list. The LISTFILE mode uses
a file that contains a list of all the files to be compiled. The root or main
program name MUST be the first name in this file.

The preprocessing that is done on the compile command is as follows.

- Parse the compile command to determine what is to be done.

- Compare all of the dates and times of the source programs with the appropriate
object file. Submit to the operation system the appropriate command(s) to
insure that only the out-of-date objects are recompiled. It may be necessary
to submit more than one intermediate compile command, if the number of
objects to be recreated is large.

- Evaluate the results of the compile. This takes the form of comparing the
number of resulting objects with the number of source files. If an object
file is to be recreated, it is deleted by dBMake prior to recompiling. This
evaluation is used by the dBMake to determine if the Link and/or Debug
command should be submitted to the operating system.

Caution:
The WordTech Compiler does not set an ErrorLevel Code as to if the compile
was successful or not. So, dBMake determines if the compile was successful
by comparing the number of object files to the number of source files. If
there are object files from other applications on the object disk then dBMake
will determine that the compile was successful when it may not have been.

Alternatives:
Compile the objects to a separate floppy disk, delete the objects when the
application is completely compiled, use subdirectories or store objects on
floppies and then copy them to the location where the objects are to be
written.


dBMake Page 6

COMPILING: AUTOCOMPILE MODE

Command Format:

[d:][path]DB3C [-a][-p][-v][-d][-f][-w][-c][-g] <[d:]RootPrg>
[^<[d:]File List | ~[d:][path]ListFile>]

Parameters Meaning and Instructions
d: path If the version of DOS will allow this then the drive and path
to the compile command can be provided. The format should
follow the normal DOS conventions. dBMake does not validate
these parameters.
DB3C Compiler command.
-a Compiler Option: Auto Compile.
-p Compiler Option: No Keyboard Input when errors are encounterd.
-v Compiler Option: Line Count not displayed.
-d Compiler Option: Write Object-Code file(s) on specified drive.
Only the drive letter is accepted.
-f Compiler Option: Drop first character of filename.
For Example: Source Name : filename.prg
Object with -f: @ilename.prg
Object without -f: @filenam.prg
note: if debug option is selected then the files will
begin with a # sign rather than the @ sign.
-w Compiler Option: No warning on trival errors.
-c Compiler Option: Check sytax only. If this is specified, dBMake
does not perform any pre-processing or evalation.
-g Compiler Option: Compile for debugger. The resulting object
files will start with a # sign rather than the @ sign.

d: Drive on which the source files are to be found. All the
source files must be on the same drive.
RootPrg The name of the Root or Main program. The extension is assumed
to be .PRG.
^ This indicates to dBMake that the information that follows is
a list of file names (wild card characters allowed) or a
listfile name. This is a dBMake requirement. If this inform-
ation is not supplied then no preprocessing will will be done.

<[d:]File List|~[d:][path]ListFile>

Drive to the source files.
FILE LIST is a list of files that identify all the files to
be compiled. The list of files can include wild card char-
acters. If an extension is not supplied then .PRG is assumed.

~ indicates that the filename that follows is a LISTFILE
rather than a program name.
Drive and path to the ListFile.
LISTFILE is the filename of the file that contains a list of
all the files that are to be compiled. The root or main
program must be the first one in the list. This file follows
the same format as the LISTFILE used by the dBaseIIICompiler.
If an extension is not supplied then .PRG is assumed.


dBMake Page 7

COMPILING: AUTOCOMPILE MODE (continued)

Examples:

DB3C -a-v-f-w sales^ sa*.prg
; Auto compile the system called SALES, where all
the all the program names start with 'SA'.

DB3C -a-v-f-w sales^ sales.prg rep*.prg up*.prg del*.prg add*.prg

; Auto compile the system called SALES, where all
the program names are identified by:
SALES.PRG, REP*.PRG, UP*PRG, etc.

DB3C -a-v-f-w sales^ ~sales.lst

; Auto compile the system called SALES, where
all the program names are identified in the
ListFile SALES.LST.

DB3C -a-da-v-f-w sales^ sa*.prg
; Auto compile the system called SALES, where all
the program names start with 'SA'. Store the
Object Files on drive a.

DB3C -a-da-v-f-w-g sales^ sa*.prg
; Auto compile the system called SALES, where all
the program names start with 'SA'. Store the
Object Files on drive a. Compile for use with
DEBUGGER.

dBMake Page 8


COMPILING: FILE LIST MODE

Command Format:

[d:][path]DB3C [-p][-v][-d][-f][-w][-c][-g] <[d:]File List>

Parameters Meaning and Instructions
d: path If the version of DOS will allow this then the drive and path
to the compile command can be provided. The format should
follow the normal DOS conventions. dBMake does not validate
these parameters.
DB3C Compiler command.
-p Compiler Option: No Keyboard Input when errors are encounterd.
-v Compiler Option: Line Count not displayed.
-d Compiler Option: Write Object-Code file(s) on specified drive.
Only the drive letter is accepted.
-f Compiler Option: Drop first character of filename.
For Example: Source Name : filename.prg
Object with -f: @ilename.prg
Object without -f: @filenam.prg
note: if debug option is selected then the files will
begin with a # sign rather than the @ sign.
-w Compiler Option: No warning on trival errors.
-c Compiler Option: Check sytax only. If this is specified, dBMake
does not perform any pre-processing or evalation.
-g Compiler Option: Compile for debugger. The resulting object
files will start with a # sign rather than the @ sign.

<[d:]File List> Drive on which the source files are to be found. All the
source files must be on the same drive.
FILE LIST is a list of files that identify all the files to
be compiled. The root or main program name must be first. The
list of files can include wild card characters. If an
extension is not supplied then .PRG is assumed.

Examples:

DB3C -v-f-w sales report1 report2 add1 add2 update1 update2 delete1 delete2
; Compile with a File List the system called
SALES, where all the names are listed. SALES
must be the first program in the list of
program names, since it is the root program.

DB3C -v-f-w sales report1 report2 add1 add2 update1 update2 delete1 delete2
; Compile with a File List the system called
SALES, where all the names are listed. SALES
must be the first program in the list of
program names, since it is the root program.
The object files will be stored on drive a.

DB3C -v-f-w-g sales report1 report2 add1 add2 update1 update2 delete1 delete2
; Compile with a File List the system called
SALES, where all the names are listed. Compile
to be used with the DEBUGGER.

dBMake Page 9


COMPILING: LISTFILE MODE


Command Format:

[d:][path]DB3C [-p][-v][-d][-f][-w][-c][-g] <~[d:]ListFile>

Parameters Meaning and Instructions
d: path If the version of DOS will allow this then the drive and path
to the compile command can be provided. The format should
follow the normal DOS conventions. dBMake does not validate
these parameters.
DB3C Compiler command.
-p Compiler Option: No Keyboard Input when errors are encounterd.
-v Compiler Option: Line Count not displayed.
-d Compiler Option: Write Object-Code file(s) on specified drive.
Only the drive letter is accepted.
-f Compiler Option: Drop first character of filename.
For Example: Source Name : filename.prg
Object with -f: @ilename.prg
Object without -f: @filenam.prg
note: if debug option is selected then the files will
begin with a # sign rather than the @ sign.
-w Compiler Option: No warning on trival errors.
-c Compiler Option: Check sytax only. If this is specified, dBMake
does not perform any pre-processing or evalation.
-g Compiler Option: Compile for debugger. The resulting object
files will start with a # sign rather than the @ sign.
<~[d:]ListFile> ~ indicates that the filename that follows is a LISTFILE
rather than a program name.
Drive on which the source files and the LISTFILE are to be
found. All the source files must be on the same drive.
LISTFILE is the filename of the file that contains a list of
all the files that are to be compiled. The root or main
program must be the first one in the list. This file follows
the same format as the LISTFILE used by the dBaseIIICompiler.
If an extension is not supplied then .PRG is assumed.

Examples:

DB3C -v-f-w ~sales.lst
; Compile with a ListFile the system called
SALES, where all the names are listed in the
file called SALES.LST. SALES must be the first
program in the list of program names, since it
is the root program.

DB3C -da-v-f-w ~sales.lst
; Compile with a ListFile the system called
SALES, where all the names are listed in the
file called SALES.LST. SALES must be the first
program in the list of program names, since it
is the root program. The object files will be
stored on drive a.

DB3C -v-f-w-g ~sales.lst
; Compile with a ListFile the system called
SALES, where all the names are listed in the
file called SALES.LST. Compile for used with
the DEBUGGER.

dBMake Page 10
LINKING

There are 3 forms of the Link command. The link can be done with an AUTOLINK mode,
FILE LIST mode or LISTFILE mode. The AUTOLINK mode is where the root or main
program name is provided to the linker and it determines all of the other required
programs. The FILE LIST mode is where a list of all the files to be linked are
provided to the linker on the command line. The LISTFILE mode uses a file that
contains a list of all the files to be linked. The root or main program name
MUST be the first name in this file.

The preprocessing that is done on the link command is as follows.

- Parse the link command to determine what is to be done.

- Determine if the Compile was successful. If it was then the Link command
will be submitted to the operating system. If it was not then the Link
command is not submitted.

- Evaluate the results of the link. This takes the form looking for the
.EXE, .OVL and .DB? files or .MAP and .DBG files (if debug option was
selected) with the appropriate root name. dBMake only looks for the appro-
priate names, so it is possible for the Link to fail and yet have dBMake
determine that the Link was successful. To avoid this it is recommended
that the respective files be deleted prior to the Link Command. dBMake will
look for either the .DBC, .DBG or .DB3 overlay file. Older versions of the
compiler produced a .DB3 file rather than .DBC. The debug option produces
the .DBG. This evaluation is used by the dBMake to determine if the Debug
command should be submitted.

Caution:
dBMake is not able to distinguish between pathes with dashes, filenames with
dashes and switches UNLESS the filenames and pathes are terminated with a
space. This is primmarily true in the area of the switches on the link com-
mand line. If the dash is in the drive and path area before DB3L or in the
file description area then there is no problem. An example of the problem
is:

c:\db3-comp\DB3L -da:\exe-files\-oa:\exe-files\-f ~c:\db3-comp\ListFile
^ ^ ^ ^
| | | |.........ok
| |...Problem....|
|.........ok
Solution:

c:\db3-comp\DB3L -da:\exe-files\ -oa:\exe-files\ -f ~c:\db3-comp\ListFile
^ ^
|..added spaces.|

Recomendation:
When specifying a Switch Setting, Always include a space after the path
and/or filename designation.



dBMake Page 11

LINKING: AUTOLINK MODE


Command Format:

[d:][path]DB3L [-d][-o][-w][-f][-g][-l[path]]
<[path]RootPrg>


Parameters Meaning and Instructions
d: path If the version of DOS will allow this then the drive and path
to the link command can be provided. The format should
follow the normal DOS conventions. dBMake does not validate
these parameters.
DB3L Linker command.
-d Linker Option: Write .DBC or .DBG overlay file to the specified
drive and path. Use normal DOS conventions for the drive and
path designation. dBMake does not support the Compiler option
of a space between the -D and a Leter as a subdirectory. The
work around for this is to specify the drive and path as a
normal DOS path.
-o Linker Option: Write .EXE, .DBC or .MAP to specified drive and
path. Use normal DOS conventions for the drive and path desig-
nation. dBMake does not support the Compiler option of a space
between the -D and a Leter as a subdirectory. The work around
for this is to specify the drive and path as a normal DOS path.
-w Linker Option: No warning on trival errors.
-f Linker Option: Root filename's first character was dropped
during compilation.
For Example: Source Name : filename.prg
Object with -f: @ilename.prg
Object without -f: @filenam.prg
note: if debug option is selected then the files will
begin with a # sign rather than the @ sign.
-g Linker Option: Link for debugger. The linker is looking for
object files that start with a # sign rather than the @ sign.

-l<[path]>library

Linker Option: Specify the LIbrary to use and the path to
the library. Use normal DOS conventions for the drive and path
designation. dBMake does not support the Compiler option of
a space between the -D and a Leter as a subdirectory. The
work around for this is to specify the drive and path as a
normal DOS path. If the extension is not supplied on the
library name, then .LIB is used.
<[path]RootPrg> Drive and path on which the object files are to be found. All
the object files must be on the same drive. Use the normal
DOS drive and path conventions.
The name of the Root or Main program. The extension is assumed
to be .PRG.

dBMake Page 12

LINKING: AUTOLINK MODE (continued)


Examples:

DB3L sales
; Auto Link the system called SALES, where SALES
is the root program name.

DB3L -ldb3pcl sales
; Auto Link the system called SALES, where SALES
is the root program name. The large Library
file will be used.

DB3L -da: -oa: -f -ldb3pcl sales
; Auto Link the system called SALES, where SALES
is the root program name. The large Library
file will be used and the executable and
overlay files will be on drive a.

DB3L -da: -oa: -f -ldb3pcl -g sales
; Auto Link the system called SALES, where SALES
is the root program name. Link for use with the
DEBUGGER. The large Library file will be used
and the files needed by the debugger will be
on drive a.

dBMake Page 13

LINKING: FILE LIST MODE


Command Format:

[d:][path]DB3L [-d][-o][-w][-f][-g][-l[path]]
<[path]File List>


Parameters Meaning and Instructions
d: path If the version of DOS will allow this then the drive and path
to the link command can be provided. The format should
follow the normal DOS conventions. dBMake does not validate
these parameters.
DB3L Linker command.
-d Linker Option: Write .DBC or .DBG overlay file to the specified
drive and path. Use normal DOS conventions for the drive and
path designation. dBMake does not support the Compiler option
of a space between the -D and a Leter as a subdirectory. The
work around for this is to specify the drive and path as a
normal DOS path.
-o Linker Option: Write .EXE, .DBC or .MAP to specified drive and
path. Use normal DOS conventions for the drive and path desig-
nation. dBMake does not support the Compiler option of a space
between the -D and a Leter as a subdirectory. The work around
for this is to specify the drive and path as a normal DOS path.
-w Linker Option: No warning on trival errors.
-f Linker Option: Root filename's first character was dropped
during compilation.
For Example: Source Name : filename.prg
Object with -f: @ilename.prg
Object without -f: @filenam.prg
note: if debug option is selected then the files will
begin with a # sign rather than the @ sign.
-g Linker Option: Link for debugger. The linker is looking for
object files that start with a # sign rather than the @ sign.

-l<[path]>library
Linker Option: Specify the LIbrary to use and the path to
the library. Use normal DOS conventions for the drive and path
designation. dBMake does not support the Compiler option of
a space between the -D and a Leter as a subdirectory. The
work around for this is to specify the drive and path as a
normal DOS path. If the extension is not supplied on the
library name, then .LIB is used.

<[path]File List>

Drive and path on which the object files are to be found. All
the object files must be on the same drive. Use the normal
DOS drive and path conventions.
FILE LIST is a list of files that identify all the files to
be linked. The root or main program name must be first. The
list of files can include wild card characters. If an
extension is not supplied then .PRG is assumed. Do not specify
the names with the @ sign or # sign, the Linker will make the
conversion.

dBMake Page 14

LINKING: FILE LIST MODE (continued)


Examples:

DB3L sales report1 report2 add1 add2 update1 update2 delete1 delete2
; Link with a File List the system called SALES,
where SALES is the first name in the list
because it is the root program name.

DB3L -ldb3pcl sales report1 report2 add1 add2 update1 update2 delete1 delete2
; Link with a File List the system called SALES,
where SALES is the first name in the list
because it is the root program name. The large
Library file will be used.

DB3L -da: -oa: -ldb3pcl sales report1 report2 add1 add2 update1 update2
delete1 delete2
; Link with a File List the system called SALES.
The large Library file will be used and the
executable and overlay files will be on
drive a.

DB3L -da: -oa: -ldb3pcl -g sales report1 report2 add1 add2 update1 update2
delete1 delete2
; Link the system called SALES. Link for use with
the DEBUGGER. The large Library file will be
used and the files needed by the debugger will
be on drive a.

dBMake Page 15

LINKING: LISTFILE MODE


Command Format:

[d:][path]DB3L [-d][-o][-w][-f][-g][-l[path]]
<~[path]Listfile>


Parameters Meaning and Instructions
d: path If the version of DOS will allow this then the drive and path
to the link command can be provided. The format should
follow the normal DOS conventions. dBMake does not validate
these parameters.
DB3L Linker command.
-d Linker Option: Write .DBC or .DBG overlay file to the specified
drive and path. Use normal DOS conventions for the drive and
path designation. dBMake does not support the Compiler option
of a space between the -D and a Leter as a subdirectory. The
work around for this is to specify the drive and path as a
normal DOS path.
-o Linker Option: Write .EXE, .DBC or .MAP to specified drive and
path. Use normal DOS conventions for the drive and path desig-
nation. dBMake does not support the Compiler option of a space
between the -D and a Leter as a subdirectory. The work around
for this is to specify the drive and path as a normal DOS path.
-w Linker Option: No warning on trival errors.
-f Linker Option: Root filename's first character was dropped
during compilation.
For Example: Source Name : filename.prg
Object with -f: @ilename.prg
Object without -f: @filenam.prg
note: if debug option is selected then the files will
begin with a # sign rather than the @ sign.
-g Linker Option: Link for debugger. The linker is looking for
object files that start with a # sign rather than the @ sign.

-l<[path]>library
Linker Option: Specify the LIbrary to use and the path to
the library. Use normal DOS conventions for the drive and path
designation. dBMake does not support the Compiler option of
a space between the -D and a Leter as a subdirectory. The
work around for this is to specify the drive and path as a
normal DOS path. If the extension is not supplied on the
library name, then .LIB is used.
Note: There is no need to specify the library if the -G
option is used, because the second step of the link is never
performed.


dBMake Page 16

LINKING: LISTFILE MODE (continued)




Command Format:

[d:][path]DB3L [-d][-o][-w][-f][-g][-l[path]]
<~[path]Listfile>


Parameters Meaning and Instructions
<~[path]ListFile>
~ indicates that the filename that follows is a LISTFILE
rather than a program name.
Drive and path on which the LISTFILE and the Object files are
to be found. All the object files must be on the same drive.
LISTFILE is the filename of the file that contains a list of
all the files that are to be linked. The root or main
program must be the first one in the list. This file follows
the same format as the LISTFILE used by the dBaseIIICompiler.
If an extension is not supplied then .PRG is assumed. Do not

specify the names with the @ sign or # sign, the Linker will
make the conversion.

Examples:

DB3L ~sales.lst
; Link with a ListFile, called SALES.LST, the
system called SALES. SALES is the first name
in the list of files, because it is the root
program name.

DB3L -ldb3pcl ~sales.lst
; Link with a ListFile, called SALES.LST, the
system called SALES. SALES is the first name
in the list of files, because it is the root
program name. The large Library file will be
used.

DB3L -da: -oa: -ldb3pcl ~sales.lst
; Link with a ListFile, called SALES.LST, the
system called SALES. SALES is the first name
in the list of files, because it is the root
program name. The large Library file will be
used and the executable and overlay files will
be on drive a.

DB3L -da: -oa: -ldb3pcl -g ~sales.lst
; Link with a ListFile, called SALES.LST, the
system called SALES. Link for use with
the DEBUGGER. The large Library file will be
used and the files needed by the debugger will
be on drive a.

dBMake Page 17

DEBUGGING


The Symbolic Debugger is an interactive facility of the WordTech dBaseIIICompiler.
The results of the debug command are not evaluated by dBMake as they are with the
Compile and Link Commands. If the Link command fails on its own or it is not
executed because the compile did not complete successfully, then the Debug command
will not be executed by dBMake.

For the Debugger to work it is necessary to compile and link with the -G option.
If this is not done then the files expected by the Debugger will not be available.
The Compiler produces object files that begin with a '#' sign and the Linker
produces a .DBG and .MAP file. The Debugger also requires that the source files
be available.


dBMake Page 18

DEBUGGER

Command Format:

[d:][path]DB3G [-s][-o][-c][-x][-i<#>][-k<#>]
[-d][-m<#>][-t<#>] [.ext]


Parameters Meaning and Instructions
d: path If the version of DOS will allow this then the drive and path
to the debug command can be provided. The format should
follow the normal DOS conventions. dBMake does not validate
these parameters.
DB3G Debugger command.
Version of the Compiler. PC-DOS or MS-DOS.
-s Debugger Option: Drive and path to the Source files.
-o Debugger Option: Drive and path to the .DBG file. Note the
.MAP file must be with the DB3Gxx.EXE file.
-c Debugger Option: Sets the debugger message-display color. This
is a numeric value for the color. This option only works when
the PC version is in use.
-x Debugger Option: Indicates to immediately begin program
execution without first encountering the debugger prompt.
-i<#> Debugger Option: Changes the default interrupt code from
Ctrl-D to the ASCII equivalent of the decimal code specified.
-k<#> Debugger Option: Changes the default kill code from Ctrl-D to
the ASCII equivalent of the decimal code specified.
-d Debugger Option: Specify a file of debugger commands that is
to be immediately executed.
-m<#> Debugger Option: Specifies how many kilobytes of space to
reserve for memory variables. The default is 9k and the
maximum is 31k.
-t<#> Debugger Option: Specifies how many kilobytes to reserve
for the system stack at run time. The default is 4k.
The name of the file to be run by the debugger.
.ext The extension is optional and it defaults to .DBG.


Examples:

DB3GPC sales
; Debug the system called SALES. The PC version
of the DEBUGGER is used.

DB3GMS sales
; Debug the system called SALES. The MS version
of the DEBUGGER is used.

DB3GPC -sc: -oa -x sales
; Debug the system called SALES. The PC version
of the DEBUGGER is used. The source programs
are on drive c and the .DBG file is on drive a.
The immediate exection switch is activated.

dBMake Page 19

INTERNAL DOS COMMANDS

dBMake will process internal DOS commands. dBMake does not validate these
commands, so it is possible to submit a command that would invalidate something
that dBMake had established. An example would be:

DB3C testprg
del @*.*
DB3L testprg

dBMake will process all three commands, but the link will fail because the object
files are not found. Under normal conditions dBMake would not issue the Link
command if not all the objects were available. But since the objects were deleted
after the evalation was made, dBMake would believe at all the objects are
available and would submit the Link command.

The format for this type of command is the same as it would be at DOS. Some of the
useful internal DOS commands are:

CLS DEL REN DATE DIR CD
PAUSE ERASE VER TIME d: TYPE


EXTERNAL DOS COMMANDS

dBMake will process external DOS commands. dBMake does not validate these
commands so it is possible to submit a command that would invalidate something
that dBMake had established. Refer to the section NON-DBASEIIICOMPILER COMMANDS
for more information about the syntax for these commands.

PIPES AND FILTERS

Commands that contain piping and filtering can also be done through dBMake. The
format for this type of command is the same as if it were issued to DOS directly.
Some examples are:

dir > dirlist.lst ; pipe the results of the directory
listing to a file
dir | sort > dirlist.srt ; pipe the sorted (filtered) results
of the directory listing to a file
dir | sort.exe > dirlist.srt ; same as above, but includes the
extension on an external DOS Command


dBMake Page 20

NON-DBASEIIICOMPILER COMMANDS


dBMake will process Non-dBaseIIICompiler commands. dBMake does not validate these
commands so it is possible to submit a command that would invalidate something
that dBMake had established.

The format for the command is the same as it would be at DOS except the extension
.EXE, .COM or .BAT is supplied.

[d:][path]Program[<.exe | .com | .bat >] [arguments]

Extensions:

It is best to include with the command the extension (.EXE, .COM or .BAT) of the
program or batch file you are trying to execute. This will cause the commands to
be processed faster, because without the extension the command will be issued to
DOS as an internal command, DOS will determine that it isn't and then it will be
executed as an external command.

DOS Search Pathes:

If the program's extension is provided then the DOS Search Path(es) are not
honored, so it is necessary to provide the path to the command. If the program's
extension is not provided then the DOS Search Path(es) are honored. Refer to the
PATH command in the DOS manual.

Some examples are:

C:\EDIX.EXE filename.prg ; execute an editor with drives
and pathes specified
C:\DB3-COMP\VIEWDBF.COM a:mydbf ; execute a program with the
drives and pathes specified
VIEWNDX.COM a:myndx ; execute a program that is in
the current directory
EDIX filename ; execute an editor without
the extension(.EXE) specified
the DOS search pathes will be
honored

dBMake Page 21

INTERNAL DBMAKE COMMANDS

dBMake has some internal commands. The commands are as follows:

The amount of information returned to the user about the current status of
dBMake's processing is determined by the SET command:

SET

Parameters Meaning and Instructions
SET Set command.

echo | Amount and type of processing information. Enter either ECHO
debug1 | ,DEBUG1 or DEBUG2. Echo is simple status information.
debug2 Debug1 is more detailed and technical in nature. Debug2
is very detailed and quite technical. The default value is
Echo ON

on | off Set the option ON or OFF. If DEBUG2 is set ON, then DEBUG1
and ECHO are also ON. If DEGUG2 is set OFF, after being
turned ON then DEBUG1 and ECHO are still ON. If ECHO is set
OFF then DEBUG1 and DEBUG2 are also set to OFF.

Comments are allowed in the dBMakeFile. A line that starts with an '*' will be
ignored. The format is as follows:

* comment line

Messages to the screen are allowed in the dBMakeFile. A line that starts with a
'?' will be send to the screen in the form of a message to the user. The format
is as follows:

? Message line

If there is a need to shell out to DOS, then enter the PUSH command. This will
put you into the operting system. To return to dBMake simply enter EXIT at the
DOS prompt. The format is as follows:

PUSH


dBMake Page 22

DBMAKEFILE CREATION

Included are several batch files that will generate dBMakeFiles. These batch
files are intended to make it easier to create simple dBmakeFiles. If there is a
need to create dBMakeFiles that perform non-dBaseIIICompiler commands, it will
be necessary to create the dBMakeFile through an editor.

The general DOS command line format is as follows:

BATCHFILENAME

if is a '?' then the specific command line format will be
supplied. For Example:

C>S-AUTO ? [Enter]

Command Format: S-AUTO RootProg AutoHelp dBMakeFileName

Batch file Summary Table:

BatchFileName |-----COMMENTS / ARGUMENTS---------------------------|
S-AUTO.BAT Generates a Simple AUTOcompile dBMakeFile
RootProg : Menu or root program name,
DO NOT include an extension [.PRG]
AutoHelp : Filename pattern (wildcard
charactes are recommended) or
ListFile name (including '~')
dBMakeFileName : Name of the dBMakeFileName,
DO NOT include an extension [.DBM]
Examples : S-AUTO LEVELPRO LEVEL*.PRG LEVELPRO
- or -
S-AUTO LEVELPRO ~LEVEL.LST LEVELPRO

C-AUTO.BAT Generates an Complex AUTOcompile dBMakeFile
OBJ_Drive : Drive for Object Files, no ':'
SRC_Drive : Drive for Source Files, no ':'
RootProg : Menu or root program name,
DO NOT include an extension [.PRG]
AutoHelp : Filename pattern (wildcard
charactes are recommended) or
ListFile name (including '~')
DBC_Path : Drive and path to .DB? file,
format: d:[path]
EXE_Path : Drive and path to .EXE,.OVL & .MAP,
format: d:[path]
dBMakeFileName : Name of the dBMakeFileName,
DO NOT include an extension [.DBM]

Examples : C-AUTO A A LEVELPRO LEVEL*.PRG A: A: LEVELPRO
- or -
C-AUTO A A LEVELPRO ~LEVEL.LST A: A: LEVELPRO

dBMake Page 23

DBMAKEFILE CREATION (continued)

Batch file Summary Table:

BatchFileName |-----COMMENTS / ARGUMENTS---------------------------|
S-FLIST.BAT Generate a Simple File LIST dBMakeFile
dBMakeFileName : Name of the dBMakeFileName,
DO NOT include an extension [.DBM]
: List of up to 10 filenames

Example : S-FLIST LEVELPRO LEVEL LEVMENU LEVDEL LEVADD LEVMOD LEVRPT

S-LFILE.BAT Generate a Simple ListFILE dBMakeFile
ListFileName : Name of the ListFile, no '~'
dBMakeFileName : Name of the dBMakeFileName,
DO NOT include an extension [.DBM]

Example : S-LFILE LEVELPRO.LST LEVELPRO

C-LFILE.BAT Generate an Complex ListFILE dBMakeFile
OBJ_Drive : Drive for Object Files, no ':'
SRC_Drive : Drive for Source Files, no ':'
ListFileName : Name of the ListFile, no '~'
DBC_Path : Drive and path to .DB? file,
format: d:[path]
EXE_Path : Drive and path to .EXE,.OVL & .MAP,
format: d:[path]
dBMakeFileName : Name of the dBMakeFileName,
DO NOT include an extension [.DBM]

Example : C-LFILE A A LEVELPRO.LST A: A: LEVELPRO



dBMake Page 24

EXAMPLES: DBMAKEFILE

Example Number 1: Simple Auto Compile and Link

Comments : A simple autocompile with the compiler, linker, library,
source, object and executable files all on the same drive.

* dBMake File: MAKEORG.dbm Creation Date: 10/07/1986
* Last Modified: 10/10/1986
? --------------------
? dBMake Compile Of MakeOrg - A Mini-CPARS Utility Program
? --------------------
set debug2 on
db3c -a-v-f-w makeorg ^ makeorg cpocdown
db3l -f -ldb3pcl makeorg
* end-of-file MAKEORG.dbm


Example Number 2: Auto Compile from Floppy and Link to Floppy

Comments : An autocompile with the compiler, linker, library, and object
files on one drive and the source and executable files all on
the same drive.


* dBMake File for BET System Data Entry Program
* Creation Date: 10/07/1986......Last Modified: 10/14/1986
* Author : Richard Hendricks
*set debug2 on
? ----------------------------------
? put BETSYS source disk in drive a:
? ----------------------------------
pause
db3c -a-v-f-w-dc a:betsys ^ *.prg
? ----------------------------------
? put BETSYS program disk in drive a:
? ----------------------------------
pause
db3l -da -oa -f -ldb3pcl betsys
* end-of-file BETSYS.dbm

dBMake Page 25

EXAMPLES: DBMAKEFILE (continued)


Example Number 3: Complex ListFile Compile and Link

Comments : Compile and Link with a ListFile. The compiler, linker,
library and source files are on one drive. Object files are
on a floppy drive and the executables are written to a RAM
disk.

*dBMake: CPARS.dbm ***Mini-CPARS Compile and Link*** Creation Date: 10/09/1986
* Last Modified: 10/10/1986
*
*
* File Type Location
*
* Compiler c:\db3-comp\
* Linker c:\db3-comp\
* Library c:\db3-comp\
* Source c:\db3-comp\
* Objects a:
* .DBC d:
* .EXE & .OVL d:
*
* Processing:
*
* Insure that the starting sub directory is C:\DB3-COMP\
* Insure that the Mini-CPARS Object Disk is in drive A:
* Run SETRAM D 330
* Run DBMAKE CPDCOMP[.DBM]
*
? +----------------------------------------+
? | Put Mini-CPARS Object Disk in Drive A: |
? | |
? | Press any key to continue..... |
? +----------------------------------------+
pause
*set debug2 on
db3c -da -v -f -w ~cpcomp.lst
* ^......write objects to drive A:
*
* dbaseIIIcompiler does not allow the location of the Object Files to be defined
* Change drive to A:
a:
*set debug1 on
c:\db3-comp\db3l -dd -od -f -lc:db3pcl ~c:\db3-comp\cpcomp.lst
* ^ ^ ^..Location of ListFile
* | |..write .EXE and .OVL to drive D:
* |......write .DBC to drive D:
c:
*end-of-file CPARS.dbm


dBMake Page 26
FILE AND PATH
NAMING CONVENTIONS

It is recommend that filenames and pathes do not include '~' or '^' since these
characters are used by dBaseIIICompiler and dBMake. The '~' is used by both
the compiler and dBMake to determine if the file that follows is a ListFile and
not the name of a Source or Object File. The '^' is used by dBMake to determine
the end of the normal Compiler command and the start of the autocompile assist-
ance area.

The compiler and dBMake allow for a '-' in a filename and/or path. It is recom-
mended that a space is supplied after the path, path filename combination or
filename.

Example: DB3L -dc:\db3-comp\-oc:\db3-comp\-lc:\db3-comp\db3pcl-f

should be written as:

DB3L -dc:\db3-comp\ -oc:\db3-comp\ -lc:\db3-comp\db3pcl -f
^ ^ ^
| | |
............added spaces.............
end-of-file dBMake.doc



 December 8, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)