PREFIX=lang
SHELL=/bin/sh
CC=gcc
CXX=g++
CFLAGS=-O2 $(DEBUG)
CXXFLAGS=$(DEBUG)
DEBUG=-g
YACC=bison
YFLAGS=-d -t -v
LEX=flex
LFLAGS=-L -t

COMPRESS=gzip -9

.y.cc :
	$(YACC) $(YFLAGS) $<
	@mv $*.tab.c $*.cc
	@mv $*.tab.h $*.h
.l.cc :
	$(LEX) $(LFLAGS) $< >$*.cc

PRECIOUS=$(GENERAL) $(YLFILES) $(CFILES) $(HFILES) $(PROJECT)
GENERAL=Makefile ChangeLog
PROJECT=$(SUITE_FILES)
YLFILES=lang.y lex.l
HFILES=
CFILES=

YOBJS=lang.o 
LOBJS=lex.o 
COBJS=Expression.o
OBJS=$(YOBJS) $(LOBJS) $(COBJS)
LIBS= # -L/usr/local/lib -lmmalloc

a.out : $(OBJS)
	$(CXX) $(CFLAGS) $(OBJS) $(LIBS)

#
#	This is the user dependant part which gets automatically inserted
#
SUITE_FILES=

new :
	@( cd suite ; fold ; sh new ; )
test :
	@sh suite/regress

#
#
all : a.out archive tags

TAGS=$(YLFILES) $(CFILES) $(HFILES)
tags : stamp-tags
stamp-tags: $(TAGS)
	@-ctags $(TAGS)
	@-etags $(TAGS)
	@-touch stamp-tags
	@-echo -Tags set up-

archive : stamp-archive
stamp-archive : $(PRECIOUS)
	@-mv $(PREFIX).tar.z $(PREFIX).b.tar.z
	@gtar -cf $(PREFIX).tar $(PRECIOUS)
	@$(COMPRESS) $(PREFIX).tar
	@-touch stamp-archive
	@echo -Archived-

USELESS=$(OBJS) a.out core lex.yy.c y.tab.* yacc.*
clean :
	@-rm -f $(USELESS)
	@echo -Cleaned-
SPECIAL_USELESS=y.output lex.c lang.cc lang.h
realclean : clean
	@-rm -f	$(SPECIAL_USELESS) tags TAGS
	@echo -Absolutely Clean now-

#----------------------------------------------------------------------
#	Everything below this line is automatically generated
#	Anything you put here is likely to go away
#----------------------------------------------------------------------
lex.cc : lex.l
lang.cc : lang.y
Expression.o: Expression.cc Expression.h list.h
lang.o: lang.cc Expression.h list.h
lex.o: lex.cc Expression.h list.h lang.h
