diff --git a/test~coding~readingCppPrograms.fr/Makefile b/test~coding~readingCppPrograms.fr/Makefile
index 8d4da2cc568e21eb605dbbca19d60a006427c2f7..132d42c6df8e5843b4d5fa3c8838b74f3f3708e7 100644
--- a/test~coding~readingCppPrograms.fr/Makefile
+++ b/test~coding~readingCppPrograms.fr/Makefile
@@ -6,12 +6,14 @@ INPUT_PROGRAMS=$(wildcard data/*input.cpp)
 PROGRAMS_MASSAGED=$(PROGRAMS:data/%.cpp=data/static/%.cpp)
 PROGRAM_ANSWERS=$(PROGRAMS:data/%.cpp=data/static/%.cpp.answer)
 #ANSWER=$(INPUT_PROGRAMS:%=%.answer)
-TARGETS=$(shell cd data; ls *.cpp | cut -d '_' -f 1 - | sort | uniq)
+TARGETS=$(shell head -1 src/cpp/read_program.cpp | awk -F'=' '{print $$2}')
+
 
 all: data/static/index $(PROGRAMS_MASSAGED) $(PROGRAM_ANSWERS)
 
-data/static/index: $(PROGRAMS) data/static
-	if [ -f $@ ]; then rm $@; fi; \
+data/static/index: $(PROGRAMS) data/static src/cpp/read_program.cpp
+	echo $(TARGETS)
+	@if [ -f $@ ]; then rm $@; fi; \
 	for target in $(TARGETS); do \
 	    (echo "$$target: "`cd data; ls -m $${target}_*.cpp`) >> $@; \
 	done