For example, a file n .o could be made from n .y by running first Yacc and then cc . Such a sequence is called a chain . Ultimately both n .c and n .o are updated. In this case, n .c is called an intermediate file . Once make has decided to use the intermediate file, it is entered in the data base as if it had been mentioned in the makefile, along with the implicit rule that says how to create it.
Intermediate files are remade using their rules just like all other files.
The difference is that the intermediate file is deleted when make is finished. Therefore, the intermediate file which did not exist before make also does not exist after make . The deletion is reported to you by printing a rm -f command that shows what make is doing. A chain can involve more than two implicit rules. Then both foo.y and foo.c are intermediate files that are deleted at the end.