Другие ответы объяснили, почему это плохая идея.Тем не менее, один из способов сделать это - предварительно обработать фрагмент make-файла:
В foo.mk.in
:
#ifdef FOO
FOO_DEFINED := y
#else
FOO_DEFINED := n
#endif
В Makefile
:
foo.mk: foo.mk.in
$(CPP) $(CPPFLAGS) -o $@ $<
include foo.mk
ifeq ($(FOO_DEFINED),y)
$(warning FOO is defined)
else
$(warning FOO is not defined)
endif