#
# Makefile for CS152 uscheme
#

SUBMIT   = /usr/local/bin/submit
SOURCES  = ast.c env.c eval.c error.c lex.c loc.c name.c parse.c prim.c print.c \
           read.c scheme.c value.c ast-code.c par-code.c value-code.c list-code.c
HEADERS  = all.h prim.h
OBJECTS  = $(SOURCES:.c=.o)
RESULT   = uscheme

CC = gcc
CFLAGS = -g -Wall -ansi -pedantic 
CPPFLAGS = -I.
RM = rm -f

.SUFFIXES:
.SUFFIXES: .c .o

$(RESULT): $(OBJECTS)
	$(CC) -o $@ $(OBJECTS)

.c.o:
	$(CC) $(CFLAGS) $(CPPFLAGS) -c $<

clean:
	$(RM) $(RESULT) *.o *.core core *~

submit: $(RESULT)
	$(SUBMIT) cs152 scheme `pwd`

ast.o: $(HEADERS)
env.o: $(HEADERS)
eval.o: $(HEADERS)
error.o: $(HEADERS)
lex.o: $(HEADERS)
loc.o: $(HEADERS)
name.o: $(HEADERS)
parse.o: $(HEADERS)
prim.o: $(HEADERS)
print.o: $(HEADERS)
read.o: $(HEADERS)
scheme.o: $(HEADERS)
value.o: $(HEADERS)
ast-code.o: $(HEADERS)
par-code.o: $(HEADERS)
value-code.o: $(HEADERS)
