PROGRAMS=$(wildcard data/*.cpp)
OUTPUT=$(PROGRAMS:%=%.output)
TARGETS=variable if loop function
all: data/index $(OUTPUT)

data/index: $(PROGRAMS)
	cd data; \
	for target in $(TARGETS); do \
	    (echo "$$target: "`ls -m $${target}_*.cpp`) >> index; \
	done

data/%.output: data/%.bin
	./$< > $@

data/%.cpp.bin: data/%.cpp
	g++ $< -o $@

clean:
	rm data/*.bin data/*.output data/index

#main.oef: header.oef programs/guess-output/*.cpp footer.oef Makefile
#	cd programs/guess-output; make all.oef
#	cat header.oef programs/guess-output/all.oef footer.oef > main.oef