#
# PCCTS makefile for: ansi.g
#
# Created from: /designs/tsms/pccts/bin/genmk -CC -class CParser -project c ansi.g
#
# PCCTS release 1.30
# Project: c
# 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/local/src/pccts
ANTLR_H = $(PCCTS)/h
BIN = $(PCCTS)/bin
ANTLR = $(BIN)/antlr
DLG = $(BIN)/dlg
CFLAGS = -I. -I$(ANTLR_H) -g
AFLAGS = -CC -k 2 -gd
DFLAGS = -C2 -i -CC
GRM = ansi.g
SRC = main.cpp support.cpp Dictionary.cpp \
      ansi.cpp \
      CParser.cpp \
      $(ANTLR_H)/AParser.cpp $(ANTLR_H)/DLexerBase.cpp $(ANTLR_H)/ATokenBuffer.cpp $(SCAN).cpp
OBJ = main.o support.o Dictionary.o \
      ansi.o \
      CParser.o \
      AParser.o DLexerBase.o ATokenBuffer.o $(SCAN).o
ANTLR_SPAWN = ansi.cpp CParser.cpp \
              CParser.h $(DLG_FILE) $(TOKENS)
DLG_SPAWN = $(SCAN).cpp $(SCAN).h
CCC=g++
CC=$(CCC)

c : $(OBJ) $(SRC)
	$(CCC) -o c $(CFLAGS) $(OBJ)

main.o : main.cpp $(ANTLR_SPAWN) $(SCAN).h
	$(CCC) -c $(CFLAGS) main.cpp

support.o : support.cpp $(ANTLR_SPAWN) $(SCAN).h
	$(CCC) -c $(CFLAGS) support.cpp

ansi.o : $(TOKENS) $(SCAN).h ansi.cpp
	$(CCC) -c $(CFLAGS) -o ansi.o ansi.cpp

CParser.o : $(TOKENS) $(SCAN).h CParser.cpp CParser.h
	$(CCC) -c $(CFLAGS) -o CParser.o CParser.cpp

Dictionary.o : Dictionary.cpp
	$(CCC) -c $(CFLAGS) Dictionary.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

clean:
	rm -f *.o core c

scrub:
	rm -f *.o core c $(ANTLR_SPAWN) $(DLG_SPAWN)

tar:
	tar cvf ansi.tar main.cpp support.cpp CDictionary.h CSymbol.h \
	 ansi.g Makefile Dictionary.h Dictionary.cpp DictEntry.h input.c README

