
CFLAGS=-Wall -ggdb -O2

PROGS=draw_sail judge

default:all

all:progs data test pictures

data: sail01.in
pictures: sail01.ps

sail01.in:
	./gen-easy.pl
	./gen-byDirection.pl
	./gen-thieves.pl
	./gen-circular.pl
	./gen-random.pl


test: progs sail01.in
	rm -f sail.in ; \
	echo ; \
	echo "*** Running tests ***" ; \
	for i in sail*.in ; do	\
		NUM=$${i##sail} ;	\
		NUM=$${NUM%%.in} ;	\
		echo Testing data num. $${NUM} ;  \
		./judge sail$${NUM}.in sail$${NUM}.ex | grep OK || { echo judge rejected output ; exit 1 ; } ; \
	done ; \
	echo ; \
	echo "*** All tests successful ***"

sail01.ps: progs sail01.in
	echo ; \
	echo "Drawing images" ; \
	for i in sail*.in ; do	\
		NUM=$${i##sail} ;	\
		NUM=$${NUM%%.in} ;	\
		echo Drawing data num. $${NUM} ;  \
		./draw_sail -o sail$${NUM}.ps sail$${NUM}.in sail$${NUM}.ex || { echo "sail drawing failed" ; exit 1 ; } ; \
	done ; \

progs: $(PROGS)

tgz: sail01.in sail01.ps
	tar cvzf sail.tgz *.in *.ex *.cpp *.h *.pl *.ps Makefile


clean:
	rm -f $(PROGS) *.o *.in *.out *.ex *.exe

%.o:%.cpp
	g++ -c $(CFLAGS) -o $@ $<


draw_sail: draw_sail.o lib_eval.o
	g++ -o $@ $^

judge: judge.o lib_eval.o
	g++ -o $@ $^

draw_sail.o:lib_eval.h
judge.o:lib_eval.h
lib_eval.o:lib_eval.h

