Исключение неиспользуемых директив препроцессора из кода
Есть большой проект, естественно собирается он под многие платформы. Не буду таить - это conky. Моя лаба - упростить его донельзя и оставить только часть которая компилируется под линукс, без графики (не спрашивайте зачем, современные учебные планы не отвечают на такой вопрос, мне главное сделать и сдать).
Естественно, неплохую часть кода там составляют макросы #ifdef для разных платформ, посему есть такой вопрос: удалять вручную и разбираться довольно муторно, однако возникла идея - если препроцессор обрабатывает код, он сам детектит в процессе, какие переменные определены - можно ли каким-то образом заставить его вернуть чистый код, с теми переменными и условиями, которые реально имеют ценность после компиляции? Я понимаю как он работает, код прошарил, но было бы проще, если бы 90% макросов не было