CC=gcc
CFLAGS = -Wall -Wstrict-prototypes -Wmissing-prototypes -ansi

renfe: renfe.o enquestes.o taulin.o taufreq.o fst.o

renfe.o: renfe.c enquestes.h taulin.h fst.h
enquestes.o: enquestes.c enquestes.h fst.h
taulin.o: taulin.c taulin.h taufreq.h fst.h
taufreq.o: taufreq.c taufreq.h
fst.o: fst.c fst.h

#
# make clean
#	Neteja el directori de treball
#

.PHONY: clean
clean:
	rm -f *~ *.o renfe *.tgz

#
# make renfe.tar
#	Genera el fitxer tar comprimit que cal lliurar
#

renfe.tgz: WHO enquestes.c  fst.c  renfe.c  taufreq.c  taulin.c enquestes.h  fst.h  taufreq.h  taulin.h 
	tar zcvf $@ $^

#
# make test
#	Executa els tests proporcionats
#

PROGRAM=./renfe
TESTS=1 2
TESTINPUT=enquestes.txt
TESTOUTPUT=resultats.txt

TESTIO=$(TESTINPUT) $(TESTOUTPUT)

genfiles=$(join $(addsuffix -$(1),$(basename $(2))),$(suffix $(2)))

TESTFILES=$(foreach t,$(TESTS),$(call genfiles,$(t),$(TESTIO)))

.PHONY: test
test: $(PROGRAM) $(TESTFILES)
	for t in $(TESTS); \
	do \
	    echo Test $$t: inici; \
	    $(foreach f,$(TESTINPUT),cp $(call genfiles,$$t,$(f)) $(f);) \
	    $(PROGRAM); \
	    $(foreach f,$(TESTOUTPUT),diff -b -B $(call genfiles,$$t,$(f)) $(f) &&) \
	    echo Test $$t: correcte; \
	done
