The GNU Makefile Standards specify a number of different clean rules. Generally the files that can be cleaned are determined automatically by Automake. Of course, Automake also recognizes some variables that can be defined to specify additional files to clean. These variables are MOSTLYCLEANFILES, CLEANFILES, DISTCLEANFILES, and MAINTAINERCLEANFILES. As the GNU Standards aren't always explicit as to which files should be removed by which target, we've adopted a heuristic which we believe was first formulated by Franccedil;ois Pinard:
If make built it, and it is commonly something that one would want to rebuild (for instance, a .o file), then mostlyclean should delete it.
Otherwise, if make built it, then clean should delete it.
If configure built it, then distclean should delete it
If the maintainer built it, then maintainer-clean should delete it.
We recommend that you follow this same set of heuristics in your Makefile.am.