#
# PCCTS makefile for: p3.g
#
# Created from: genmk -CC -class MiParser -project p3 -trees p3.g
#
# PCCTS release 1.33MR10
# Project: p3
# C++ output
# DLG scanner
# ANTLR-defined token types
#
TOKENS = tokens.h
#
# The following filenames must be consistent with ANTLR/DLG flags
DLG_FILE = parser.dlg
ERR = err
HDR_FILE =
SCAN = DLGLexer
PCCTS = /usr
ANTLR_H = $(PCCTS)/include/pccts
BIN = $(PCCTS)/bin
ANTLR = $(BIN)/antlr
DLG = $(BIN)/dlg
CFLAGS = -I. -I$(ANTLR_H) $(COTHER)
AFLAGS = -k 1 -CC -gt -mrhoist off $(AOTHER)
DFLAGS = -C2 -i -CC  $(DOTHER)
GRM = p3.g
SRC = p3.cpp AST.h TAC.h\
      MiParser.cpp \
      $(ANTLR_H)/AParser.cpp $(ANTLR_H)/DLexerBase.cpp \
      $(ANTLR_H)/ASTBase.cpp $(ANTLR_H)/PCCTSAST.cpp \
       $(ANTLR_H)/ATokenBuffer.cpp $(SCAN).cpp Cuad.cpp TAC.cpp 
OBJ = p3.o \
      MiParser.o \
       AParser.o DLexerBase.o \
      ASTBase.o PCCTSAST.o \
       ATokenBuffer.o $(SCAN).o Cuad.o TAC.o 
ANTLR_SPAWN = p3.cpp MiParser.cpp \
              MiParser.h $(DLG_FILE) $(TOKENS)
DLG_SPAWN = $(SCAN).cpp $(SCAN).h
CCC=g++
#CCC=CC

p3 : $(OBJ) $(SRC) 
	$(CCC) -o p3 $(CFLAGS) $(OBJ)

p3.o : $(TOKENS) $(SCAN).h p3.cpp
	$(CCC) -c $(CFLAGS) -o p3.o p3.cpp

MiParser.o : $(TOKENS) $(SCAN).h MiParser.cpp MiParser.h
	$(CCC) -c $(CFLAGS) -o MiParser.o MiParser.cpp

$(SCAN).o : $(SCAN).cpp $(TOKENS)
	$(CCC) -c $(CFLAGS) -o $(SCAN).o $(SCAN).cpp

$(ANTLR_SPAWN) : $(GRM)
	$(ANTLR) $(AFLAGS) $(GRM)

$(DLG_SPAWN) : $(DLG_FILE)
	$(DLG) $(DFLAGS) $(DLG_FILE)

AParser.o : $(ANTLR_H)/AParser.cpp
	$(CCC) -c $(CFLAGS) -o AParser.o $(ANTLR_H)/AParser.cpp

ATokenBuffer.o : $(ANTLR_H)/ATokenBuffer.cpp
	$(CCC) -c $(CFLAGS) -o ATokenBuffer.o $(ANTLR_H)/ATokenBuffer.cpp

DLexerBase.o : $(ANTLR_H)/DLexerBase.cpp
	$(CCC) -c $(CFLAGS) -o DLexerBase.o $(ANTLR_H)/DLexerBase.cpp

ASTBase.o : $(ANTLR_H)/ASTBase.cpp
	$(CCC) -c $(CFLAGS) -o ASTBase.o $(ANTLR_H)/ASTBase.cpp

PCCTSAST.o : $(ANTLR_H)/PCCTSAST.cpp
	$(CCC) -c $(CFLAGS) -o PCCTSAST.o $(ANTLR_H)/PCCTSAST.cpp

Cuad.o : Cuad.cpp Cuad.h
	$(CCC) -c $(CFLAGS) Cuad.cpp -o Cuad.o

TAC.o : TAC.cpp TAC.h
	$(CCC) -c $(CFLAGS)  TAC.cpp -o TAC.o

clean:
	rm -f *.o core p3

scrub:
	rm -f *.o core p3 $(ANTLR_SPAWN) $(DLG_SPAWN)

