CC=gcc
PP=g++
PROB11=hw6_2_1_1
PROB12=hw6_2_1_2
PROB13=hw6_2_1_3
PROB21=hw6_2_2_1
PROB22=hw6_2_2_2
PROB23=hw6_2_2_3

PROG=$(PROB11) $(PROB12) $(PROB13) $(PROB21) $(PROB22) $(PROB23)

LIB=avl.o rb.o bst.o
HEADER=avl.h rb.h bst.h

RM=rm -rf

.PHONY:all pre cleanall clean run1 run2

all:$(PROG)

%.o:%.c
	$(CC) $< -c

%:%.c $(HEADER) $(LIB)
	$(CC) $< $(LIB) -lm -o $@

%:%.cpp $(HEADER) $(LIB)
	$(PP) $< $(LIB) -lm -o $@

demo: avl-demo

pre: $(LIB)

cleanall:
	$(RM) $(PROG)
	$(RM) $(LIB)

clean:
	$(RM) $(PROG)

run1: $(PROB11) $(PROB12) $(PROB13)
	./$(PROB11)
	./$(PROB12)
	./$(PROB13)

run2: $(PROB21) $(PROB22) $(PROB23)
	./$(PROB21)
	./$(PROB22)
	./$(PROB23)
