Anchorite, сам препроцессор представляет собой отдельную программу под названием cpp. Все поставки gcc идут с cpp, кроме того есть сборки cpp, отдельные от gcc -- см. rpmseek.com.
m4 -- это стандартный юниксовый препроцессор. Стандартный в том смысле, что описан в Posix. Сильно отличается от cpp.
Доументация по cpp рекомендует не пользоваться cpp для обработки произвольных текстов, так как от заточен под С-подобные языки. Вместо cpp предлагают пользоваться m4.
См. также тему
https://forum.shelek.ru/index.php/topic,3905.0.html&highlight=