В соответствии с тем, что я прочитал о make файлах, фальшивая цель - это любая цель, которая не соответствует фактическому имени файла. Моя интуиция говорит, что каталог как цель будет обрабатываться так же, как и файл.
Почему это важно? У меня есть каталог в качестве цели в моем make файле. когда у меня есть это как предварительное условие для моего основного исполняемого файла, этот исполняемый файл всегда создается, независимо от того, обновляется или нет. Если я выберу это как предварительное условие, мой make файл достаточно умен, чтобы знать, когда нужно строить вещи, но у меня есть проблема не знать, нужно ли создавать каталог. Согласно тому, что я прочитал о make, любые фиктивные цели не являются хорошими предпосылками, потому что make не знает, являются ли они актуальными, поэтому они всегда будут восстанавливать связанную цель. Вот выдержка из моего make файла.
$(EXEC_WITH_PATH): ${OBJ_DIR} $(DPEND) $(OBJS)
@echo "--------------------------------------------";
@echo "$(THIS_DIR) $(MACHINE)";
@echo "Linking Shared Library";
@echo "ar -rc $(EXEC_WITH_PATH) INSERT::{OBJS}";
ar -rc $(EXEC_WITH_PATH) $(OBJS);
@echo "--------------------------------------------";
# Make dirs for object code and links
${OBJ_DIR} :
@if [ ! -d ${OBJ_DIR} ]; then \
mkdir ${OBJ_DIR}; \
fi;
Итак, в этом случае, ${OBJ_DIR}
, имя каталога, фальшивая цель или нет?