In his answer @Grundlefleck explains how to check whether a directory exists or not. I tried some to use this inside a makefile as follow:
foo.b
I had a case where I wanted to define a variable based on the test whether a directory exists or not at the top-most level of the Makefile where the approaches described above don't work. I found here a nice solution which can be used like this:
MY_DIRNAME=../External
ifneq "$(wildcard $(MY_DIRNAME) )" ""
# if directory MY_DIRNAME exists:
INCLUDES += -I../External
else
# if it doesn't:
INCLUDES += -I$(HOME)/Code/External
endif
This will modify the variable INCLUDES based on whether the directory stored in MY_DIRNAME exists or not.
(Motivation: In my case this variable would be used in another Makefile included later by the first:
include $(SFRAME_DIR)/Makefile.common
I wanted to have the same Makefile work in two different environments in a simple way.)