Предположим, у меня есть Makefile:
all: $(BINARY)
$(BINARY): $(OBJS) $(DEBUG_OBJS)
#Link objects here
$(OBJS): headers
#Compile code into objects without debug option
$(DEBUG_OBJS): headers
#Compile code into objects with debug option
headers:
#Create on-the-fly header files
Как видите, цель headers
требуется как для $(OBJS)
, так и для $(DEBUG_OBJS)
. Вопрос в том, будет ли headers
вызываться дважды? Кроме того, будет ли приведенный ниже код равным/эквивалентным приведенному выше:
all: $(BINARY)
$(BINARY): headers $(OBJS) $(DEBUG_OBJS)
#Link objects here
$(OBJS):
#Compile code into objects without debug option
$(DEBUG_OBJS):
#Compile code into objects with debug option
headers:
#Create on-the-fly header files
в этом случае заголовки будут вызываться перед $(OBJS)
и $(DEBUG_OBJS)
с помощью $(BINARY)
?