A minimal example:
%.txt: foo.log
# pass
%.log:
# pass
Run:
$ make a.txt --dry-run
# pass
# pass
rm foo.log
You are making a.txt by means of a chain of implicit rules (in this case implicit rules which you defined yourself). So Make considers foo.log an intermediate file, and deletes it when it has served its purpose. You can override this behavior by declaring foo.log a SECONDARY target:
.SECONDARY: foo.log