1#
2# Makefile for ANTLR 1.33
3#
4# SOFTWARE RIGHTS
5#
6# We reserve no LEGAL rights to the Purdue Compiler Construction Tool
7# Set (PCCTS) -- PCCTS is in the public domain.  An individual or
8# company may do whatever they wish with source code distributed with
9# PCCTS or the code generated by PCCTS, including the incorporation of
10# PCCTS, or its output, into commerical software.
11#
12# We encourage users to develop software with PCCTS.  However, we do ask
13# that credit is given to us for developing PCCTS.  By "credit",
14# we mean that if you incorporate our source code into one of your
15# programs (commercial product, research project, or otherwise) that you
16# acknowledge this fact somewhere in the documentation, research report,
17# etc...  If you like PCCTS and have developed a nice tool with the
18# output, please mention that you developed it using PCCTS.  In
19# addition, we ask that this header remain intact in our source code.
20# As long as these guidelines are kept, we expect to continue enhancing
21# this system and expect to make other tools available as they are
22# completed.
23#
24# ANTLR 1.33
25# Terence Parr
26# Parr Research Corporation
27# with Purdue University
28# and AHPCRC, University of Minnesota
29# 1989-1995
30#
31# Ported to Borland C++, IBM C-Set/2 and Microsoft 6.0 by
32# Ed Harfmann
33# Micro Data Base Systems
34# Lafayette, Indiana
35#
36SET=../support/set
37PCCTS_H=../h
38
39##
40## Uncomment the appropriate section to build
41## (both targets and 'make' variable definitions)
42## Note that UNIX is the default
43##
44
45#
46#   OS/2 & DOS 16 bit using MSC 6.0
47#
48#CC=cl
49#ANTLR=..\bin\antlr
50#DLG=..\bin\dlg
51#CFLAGS= -I. -I$(SET) -I$(PCCTS_H) /AL /Za /W3 -DPC -DUSER_ZZSYN
52#OUT_OBJ = -Fo
53#LIBS=/NOD:LLIBCE LLIBCEP
54#OBJ_EXT = obj
55#
56#antlr.exe: antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \
57#        fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \
58#        misc.obj set.obj pred.obj egamn.obj
59#       link @<<
60#$** /NOI
61#$@ /STACK:14336
62#
63#$(LIBS: = +^
64#)
65#$(DEF_FILE) $(LFLAGS) ;
66#<<
67#        bind $@ c:\os2\doscalls.lib
68#        copy *.exe ..\bin
69#
70
71#
72#   Borland C++ for DOS
73#
74#CC=bcc
75#ANTLR=..\bin\antlr
76#DLG=..\bin\dlg
77#CFLAGS= -I. -I$(SET) -I$(PCCTS_H) -ml -ff- -w- -DPC -DUSER_ZZSYN
78#OUT_OBJ = -o
79#LIBS= emu mathl cl
80#OBJ_EXT = obj
81#
82#antlr.exe: antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \
83#        fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \
84#        misc.obj set.obj pred.obj egman.obj mrhoist.obj fcache.obj
85#       tlink @&&|
86#C0L $**
87#$@ /Tde /c
88#
89#$(LIBS)
90#$(DEF_FILE) $(LFLAGS) ;
91#|
92#        copy *.exe ..\bin
93#
94
95#
96# C-Set/2 for OS/2
97#
98#CC=icc
99#CFLAGS= -I. -I$(SET) -I$(PCCTS_H) /Sa /W3 -DUSER_ZZSYN -D__STDC__
100#OUT_OBJ = -Fo
101#LIBS=
102#ANTLR=..\bin\antlr
103#DLG=..\bin\dlg
104#OBJ_EXT = obj
105#
106#antlr.exe: antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \
107#        fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \
108#        misc.obj set.obj pred.obj egman.obj mrhoist.obj fcache.obj
109#        link386 @<<
110#$** /NOI
111#$@ /STACK:32768
112#
113#$(LIBS: = +^
114#)
115#$(DEF_FILE) $(LFLAGS) ;
116#<<
117#        copy *.exe ..\bin
118#
119
120#
121# Borland C++ for OS/2
122#
123#CC=bcc
124#CFLAGS= -I. -I$(SET) -I$(PCCTS_H) -w- -v -DUSER_ZZSYN
125#OUT_OBJ = -o
126#LIBS= c2 os2
127#
128#ANTLR=..\bin\antlr
129#DLG=..\bin\dlg
130#OBJ_EXT = obj
131#antlr.exe: antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \
132#        fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \
133#        misc.obj set.obj pred.obj egman.obj mrhoist.obj fcache.obj
134#        tlink @&&|
135#c02 $** -c -v
136#antlr.exe
137#
138#C2 os2
139#
140#|
141#        copy *.exe ..\bin
142#
143
144# *********** Target list of PC machines ***********
145#
146# Don't worry about the ambiguity messages coming from antlr
147# for making antlr.c etc...  [should be 10 of them, I think]
148#
149#antlr.c stdpccts.h parser.dlg tokens.h err.c : antlr.g
150#	$(ANTLR) antlr.g
151#
152#antlr.$(OBJ_EXT): antlr.c mode.h tokens.h
153#
154#scan.$(OBJ_EXT): scan.c mode.h tokens.h
155#
156#scan.c mode.h: parser.dlg
157#	$(DLG) -C2 parser.dlg scan.c
158#
159#set.$(OBJ_EXT): $(SET)/set.c
160#	$(BUILD_CC) $(BUILD_CFLAGS) -c $(OUT_OBJ)set.$(OBJ_EXT) $(SET)/set.c
161
162
163
164#
165#   UNIX  (default)
166#
167BUILD_CC?=gcc
168COPT=-O
169ANTLR=${BIN_DIR}/antlr
170DLG=${BIN_DIR}/dlg
171OBJ_EXT=o
172OUT_OBJ = -o
173BUILD_CFLAGS= $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN $(COTHER) -DZZLEXBUFSIZE=65536
174BUILD_CPPFLAGS=
175#
176# SGI Users, use this CFLAGS
177#
178#CFLAGS= -O -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN -woff 3262
179OBJ=antlr.o scan.o err.o bits.o build.o fset2.o fset.o gen.o  \
180        globals.o hash.o lex.o main.o misc.o set.o pred.o egman.o mrhoist.o fcache.o
181
182$(BIN_DIR)/antlr : $(OBJ) $(SRC)
183		$(BUILD_CC) $(BUILD_CFLAGS) -o $(BIN_DIR)/antlr $(OBJ)
184
185# what files does PCCTS generate (both ANTLR and DLG)
186PCCTS_GEN=antlr.c scan.c err.c tokens.h mode.h parser.dlg stdpccts.h remap.h
187
188SRC=antlr.c scan.c err.c bits.c build.c fset2.c fset.c gen.c globals.c \
189	hash.c lex.c main.c misc.c $(SET)/set.c pred.c egman.c mrhoist.c fcache.c
190
191#
192# Don't worry about the ambiguity messages coming from antlr
193# for making antlr.c etc...  [should be 10 of them, I think]
194#
195#antlr.c stdpccts.h parser.dlg tokens.h err.c : antlr.g
196#	$(ANTLR) -gh antlr.g
197
198antlr.o : antlr.c mode.h tokens.h
199
200scan.o : scan.c mode.h tokens.h
201
202#scan.c mode.h: parser.dlg
203#	$(DLG) -C2 parser.dlg scan.c
204
205set.o : $(SET)/set.c
206	$(BUILD_CC) $(BUILD_CFLAGS) -c -o set.o $(SET)/set.c
207
208%.o : %.c
209	$(BUILD_CC) -c $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
210
211#
212# ****** These next targets are common to UNIX and PC world ********
213#
214
215#clean up all the intermediate files
216clean:
217	rm -f $(BIN_DIR)/antlr *.$(OBJ_EXT) core
218
219#remove everything in clean plus the PCCTS files generated
220scrub:
221	rm -f $(PCCTS_GEN) *.$(OBJ_EXT) core
222