######################################################################
# Settings

CFLAGS=-Wall -g


######################################################################
# Standard targets

.PHONY: default
default: all

.PHONY: all
all: psp-examples reverser resrever

.PHONY: test
test: string-reverse-utests string-swap-utests
	echo "Testing string-reverse"
	string-reverse-utests
	echo "Testing string-swap"
	string-swap-utests

.PHONY: clean
clean: 
	rm -rf *.o
	rm -rf *~

.PHONY: distclean
distclean: clean
	rm -rf psp-examples

.PHONY: package
package:
	tar cvf rebelsky.hw7.tar Makefile *.c *.h


######################################################################
# Individual programs

psp-examples: psp-examples.o print-sequential-prefixes.o
	$(LINK.o) -o $@ $^

reverser: string-reverse.o reverser.o
	$(LINK.o) -o $@ $^

resrever: string-reverse.o resrever.o
	$(LINK.o) -o $@ $^

string-reverse-utests: string-reverse.o string-reverse-utests.o utest.o
	$(LINK.o) -o $@ $^


######################################################################
# Header dependencies

print-sequential-prefixes.o: string-utils.h
psp-examples.o: string-utils.h
reverser.o: string-utils.h
string-reverse.o: string-utils.h
string-reverse-utests.o: string-utils.h utest.h
string-swap.o: string-utils.h
string-swap-utests.o: string-utils.h
utest.o: utest.h

