March 95
Version 1.32 of pccts

At the moment this file is available via anonymous FTP at

        Node: marvin.ecn.purdue.edu
        File: pub/pccts/1.32/NOTES.BCC

Mail corrections or additions to David Seidel <71333.1575@compuserve.com>
===============================================================================
Notes on Building PCCTS 1.32 with Borland C++

David Seidel, Innovative Data Concepts Incorporated
CompuServe: 71333,1575
Internet:   71333.1575@compuserve.com
            dseidel@delphi.com

I have gotten ANTLR and DLG to succesfully build with BCC 4.0, but have found
from experience that ANTLR, in particular, is likely to run out of memory
with grammars over a certain size, or with larger values for the -k and -ck
options.  Now that BCC 4.02 and the new Borland Power Pack for DOS is now
available, I feel that there is no excuse not to build these tools as
32-bit executables, as they ought to be.

For people without the Power Pack, the makefiles below should be fairly easily
modified to build 16-bit real-mode executables, but I don't really recommend
it.  As an alternative, you might consider the highly regarded DJGPP compiler
(a DOS port of the Gnu GCC compiler, with a DOS extender included).  Hopefully
some other PCCTS who has DJGPP can provode whatever advice is necessary.  The
Watcom compiler is also an excellent possibility (albeit a commercial one),
and I hope to make available Watcom makefiles in the near future.

Here are the makefiles I am using.  Both makefiles use a compiler configuration
file that contains compiler switches such as optimization settings.  I call
this file bor32.cfg and keep a copy in both the ANTLR and DLG subdirectories.

==== File: bor32.cfg (cut here) ===============================================
-w-
-RT-
-x-
-N-
-k-
-d
-O2-e-l
-Z
-D__STDC__=1
==== End of file bor32.cfg (cut here) =========================================

==== File: antlr\bor32.mak (cut here) =========================================
#
#  ANTLR 1.32 Makefile for Borland C++ 4.02 with DPMI 32-bit DOS extender by
#  David Seidel
#  Innovative Data Concepts Incorporated
#  71333.1575@compuserve.com (or) dseidel@delphi.com
#
#  Notes:   1. Compiler switches (optimization etc.) are contained in the
#              file bor32.cfg.
#           2. This makefile requires Borland C++ 4.02 or greater with
#              the DOS Power Pack add-on package.
#           3. Change the BCCDIR macro below to the topmost directory in
#              which BCC is installed on your system.
#

BCCDIR   =  d:\bc4
CC       =  bcc32
SET      =  ..\support\set
PCCTS_H  =  ..\h
ANTLR    =  ..\bin\antlr
DLG      =  ..\bin\dlg
CFLAGS   =  -I$(BCCDIR)\include -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN \
 +bor32.cfg
LIBS     =  dpmi32 cw32
OBJ_EXT  =  obj
OBJS     =  antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj fset.obj \
 gen.obj globals.obj hash.obj lex.obj main.obj misc.obj pred.obj dialog.obj \
 set.obj

.c.obj:
      $(CC) -c $(CFLAGS) {$&.c }

antlr.exe: $(OBJS)
   tlink32 @&&|
-Tpe -ax -c -s -L$(BCCDIR)\lib +
$(BCCDIR)\lib\c0x32 $**
$@

$(LIBS)
;
|
   copy *.exe ..\bin


# *********** Target list of PC machines ***********
#
# Don't worry about the ambiguity messages coming from antlr
# for making antlr.c etc...  [should be 10 of them, I think]
#

# leave this commented out for initial build!
#antlr.c stdpccts.h parser.dlg tokens.h err.c : antlr.g
#   $(ANTLR) antlr.g

antlr.$(OBJ_EXT): antlr.c mode.h tokens.h

scan.$(OBJ_EXT): scan.c mode.h tokens.h

# leave this commented out for initial build!
#scan.c mode.h: parser.dlg
#   $(DLG) -C2 parser.dlg scan.c

set.$(OBJ_EXT): $(SET)\set.c
   $(CC) -c $(CFLAGS) $(SET)\set.c

==== End of file antlr\bor32.mak (cut here) ===================================

==== File: dlg\bor32.mak (cut here) ===========================================
#
#  DLG 1.32 Makefile for Borland C++ 4.02 with DPMI 32-bit DOS extender by
#  David Seidel
#  Innovative Data Concepts Incorporated
#  71333.1575@compuserve.com (or) dseidel@delphi.com
#
#  Notes:   1. Compiler switches (optimization etc.) are contained in the
#              file bor32.cfg.
#           2. This makefile requires Borland C++ 4.02 or greater with
#              the DOS Power Pack add-on package.
#           3. Change the BCCDIR macro below to the topmost directory in
#              which BCC is installed on your system.
#


BCCDIR   =  d:\bc4
CC       =  bcc32
SET      =  ..\support\set
PCCTS_H  =  ..\h
ANTLR    =  ..\bin\antlr
DLG      =  ..\bin\dlg
CFLAGS   =  -I$(BCCDIR)\include -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN \
 +bor32.cfg
LIBS     =  dpmi32 cw32
OBJ_EXT  =  obj
OBJS     =  dlg_p.obj dlg_a.obj main.obj err.obj support.obj \
 output.obj relabel.obj automata.obj set.obj

.c.obj:
      $(CC) -c $(CFLAGS) {$&.c }

dlg.exe : $(OBJS)
   tlink32 @&&|
-Tpe -ax -c -s -L$(BCCDIR)\lib +
c0x32 $**
$@

$(LIBS)
;
|
   copy *.exe ..\bin

dlg_p.obj:  dlg_p.c

dlg_a.obj:  dlg_a.c

main.obj:   main.c

err.obj:    err.c

support.obj:   support.c

output.obj: output.c

relabel.obj:   relabel.c

automata.obj:  automata.c

set.$(OBJ_EXT): $(SET)\set.c
   $(CC) -c $(CFLAGS) $(SET)\set.c

==== End of file dlg\bor32.mak (cut here) =====================================






