Скрыть
[C][Makefile] Условная компиляция
Мне понятно как это делается в простом файле на C: #ifndef SOME_MEGA_PARAMERT и вперёд - пишешь два куска программы "с" и "без". Но у меня сложилась ситуация, когда помимо #ifndef-а добавляется ещё один файл в проект (на самом деле 2: somefile.h и somefile.c). Хочется при этом иметь возможность компилировать и первый вариант программы и второй. Следовательно надо как-то внести этот somefile.c в Makefile и при этом, чтобы его включение в проект было опциональным. Как это делается?
Re:[C][Makefile] Условная компиляция
Как-то сумбурно получилось. Попробую изложить иначе.
Изменения вносятся для простоты только в main.c. Хочется объединить ветки в одну. Все различия в main.c потом спрячутся в ifdef-ы. Но появляется два файла somefile.{h,c}, которых в ветке A не существовало. Таким образом надо что-то такое добавить в Makefile, чтобы при выполнении условия (SOME_VAR=1, для примера) в проект включался ещё и дополнительный файл somefile.c. Но при SOME_VAR=0 этот файл не включался в проект и не компилировался. Засунуть текст somefile.[h,c] в тот же main.c нельзя, так как это достаточно независимая часть и может [теоретически в будущем] применяться в других файлах проекта.