TARGET = hoc4
OBJS = main.o y.tab.o symbol.o math.o code.o
CFLAGS = -g -std=c99

all: $(TARGET)

$(TARGET): $(OBJS)
	gcc $(OBJS) -o $@

main.o: main.c y.tab.h hoc.h
	gcc -c $< -o $@ $(CFLAGS)

symbol.o: symbol.c hoc.h
	gcc -c $< -o $@ $(CFLAGS)

code.o: code.c 
	gcc -c $< -o $@ $(CFLAGS)

math.o: math.c
	gcc -c $< -o $@ $(CFLAGS)

y.tab.o: y.tab.c y.tab.h hoc.h
	gcc -c $< -o $@ $(CFLAGS)

y.tab.c: hoc.y
	yacc $<

y.tab.h: hoc.y
	yacc -d $<

clean:
	rm -f y.tab.c
	rm -f y.tab.h
	rm -f $(OBJS)
	rm -f $(TARGET)
