Also, you cannot rely on it preserving characteristics of the input which are not significant to C-family languages.
If a Makefile is preprocessed, all the hard tabs will be removed, and the Makefile will not work.