#
# PCCTS makefile for: ltree.g
#
# Created from: /projects/pccts/bin/genmk -CC -class LTREEParser -project ltree -trees ltree.g
#
# PCCTS release 1.32
# Project: ltree
# 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 = /projects/pccts
ANTLR_H = $(PCCTS)/h
BIN = $(PCCTS)/bin
ANTLR = $(BIN)/antlr
DLG = $(BIN)/dlg
CFLAGS = -I. -g
AFLAGS = -CC -gt
DFLAGS = -C2 -i -CC
GRM = ltree.g
SRC = ltree.cpp \
      LTREEParser.cpp \
      AParser.cpp DLexerBase.cpp \
      ASTBase.cpp PCCTSAST.cpp \
       ATokenBuffer.cpp $(SCAN).cpp main.cpp
OBJ = ltree.o \
      LTREEParser.o \
       AParser.o DLexerBase.o \
      ASTBase.o PCCTSAST.o \
       ATokenBuffer.o $(SCAN).o main.o

ANTLR_SPAWN = ltree.cpp LTREEParser.cpp \
              LTREEParser.h $(DLG_FILE) $(TOKENS)
DLG_SPAWN = $(SCAN).cpp $(SCAN).h
ANTLRSTUFF=	$(ANTLR_H)/AParser.cpp \
		$(ANTLR_H)/ATokenBuffer.cpp \
		$(ANTLR_H)/ASTBase.cpp \
		$(ANTLR_H)/PCCTSAST.cpp \
		$(ANTLR_H)/DLexerBase.cpp \
		$(ANTLR_H)/DLexer.cpp \
		$(ANTLR_H)/AParser.h \
		$(ANTLR_H)/ASTBase.h \
		$(ANTLR_H)/AToken.h \
		$(ANTLR_H)/ATokenBuffer.h \
		$(ANTLR_H)/PCCTSAST.h \
		$(ANTLR_H)/PBlackBox.h \
		$(ANTLR_H)/config.h \
		$(ANTLR_H)/ATokenStream.h \
		$(ANTLR_H)/DLexerBase.h \
		$(ANTLR_H)/ATokPtr.h \
		$(ANTLR_H)/ATokPtr.cpp
ANTLRSTUFFHERE =ltree/AParser.cpp \
		ltree/ATokenBuffer.cpp \
		ltree/ASTBase.cpp \
		ltree/PCCTSAST.cpp \
		ltree/DLexerBase.cpp \
		ltree/DLexer.cpp \
		ltree/AParser.h \
		ltree/ASTBase.h \
		ltree/AToken.h \
		ltree/ATokenBuffer.h \
		ltree/PCCTSAST.h \
		ltree/PBlackBox.h \
		ltree/config.h \
		ltree/ATokenStream.h \
		ltree/DLexerBase.h \
		ltree/ATokPtr.h \
		ltree/ATokPtr.cpp
TARSTUFF = ltree/ltree.cpp ltree/LTREEParser.cpp ltree/LTREEParser.h \
	   ltree/tokens.h ltree/main.cpp ltree/ltree.h ltree/adobe.h \
	   ltree/makefile ltree/ltree.g ltree/DLGLexer.h ltree/DLGLexer.cpp \
	   ltree/AST.h ltree/README ltree/parser.dlg $(ANTLRSTUFFHERE)
CCC=g++
CC=$(CCC)

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

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

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

LTREEParser.o : $(TOKENS) $(SCAN).h LTREEParser.cpp LTREEParser.h
	$(CCC) -c $(CFLAGS) -o LTREEParser.o LTREEParser.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 : AParser.cpp
	$(CCC) -c $(CFLAGS) -o AParser.o AParser.cpp

ATokenBuffer.o : ATokenBuffer.cpp
	$(CCC) -c $(CFLAGS) -o ATokenBuffer.o ATokenBuffer.cpp

DLexerBase.o : DLexerBase.cpp
	$(CCC) -c $(CFLAGS) -o DLexerBase.o DLexerBase.cpp

ASTBase.o : ASTBase.cpp
	$(CCC) -c $(CFLAGS) -o ASTBase.o ASTBase.cpp

PCCTSAST.o : PCCTSAST.cpp
	$(CCC) -c $(CFLAGS) -o PCCTSAST.o PCCTSAST.cpp


clean:
	rm -f *.o core ltree

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

tar:
	cp $(ANTLRSTUFF) .
	(cd ..; tar cvf ltree/ltree.tar $(TARSTUFF))
