# set to -debug, -optimize, etc, or leave blank
# run "gmake recompile" after changing CLUFLAGS
CLUFLAGS =
PCLULIB = /mit/PCLU/lib/lib

# PCLU libraries
LOWLEV = $(PCLULIB)/lowlev.lib
USEFUL = $(PCLULIB)/useful.lib

ALLOBJS = argument.o block.o env.o il.o  label.o rvalue.o lvalue.o \
	  procedure.o program.o rhs.o statement.o var.o 

# Rules for building the program from source.
.SUFFIXES: .o .clu 
.clu.o:
	../compile $(CLUFLAGS) $^

foo: $(ALLOBJS)

# Utility rules.
.PHONY: clean recompile debug nodebug
clean:	
	rm -f *.o $(PROGRAM) *.lib *.newlib *.c clu.junk clucc.junk
recompile:
	rm -f *.o
	@$(MAKE) $(MFLAGS)
debug:
	sed -e 's/^CLUFLAGS\(.*\)/CLUFLAGS\1-debug/' Makefile > tmp
	mv -f tmp Makefile
	@$(MAKE) $(MFLAGS) recompile
nodebug:
	sed -e 's/^CLUFLAGS\(.*\)-debug\(.*\)/CLUFLAGS\1\2/' Makefile > tmp
	mv -f tmp Makefile
	@$(MAKE) $(MFLAGS) recompile

argument.o: il.lib ../utils/utils.lib il.equ
block.o: il.lib ../utils/utils.lib il.equ
env.o: il.lib ../utils/utils.lib il.equ
il.o: il.lib ../utils/utils.lib il.equ
label.o: il.lib ../utils/utils.lib il.equ
lvalue.o: il.lib ../utils/utils.lib il.equ
procedure.o: il.lib ../utils/utils.lib il.equ
program.o: il.lib ../utils/utils.lib il.equ
rhs.o: il.lib ../utils/utils.lib il.equ 
rvalue.o: il.lib ../utils/utils.lib il.equ
statement.o: il.lib ../utils/utils.lib il.equ statement.equ
var.o: il.lib ../utils/utils.lib il.equ

il.lib:
	../spec il.lib *.clu il.equ

