Здравствуйте, Vzhyk, Вы писали:
V>Всем здравствуйте.
V>Rejecting impossible implicit prerequisite `debug/../a2a.cpp'.
V>Главное, что непонятно это Rejecting impossible implicit prerequisite `debug/../a2a.cpp'.. Почему?
V>Файл то реально по этому пути и находиться.
V>Причем эта ошибка, только при первом запуске make MODE=debug. Хотя все нужные директории debug создает. При втором запуске, когда эти директории уже существуют. Все работает.
V>И еще если убрать
V>-include $(DEPSS), то тоже все работает.
Простой ответ — не знаю. У меня есть подозрение, что make кеширует пути, и при обработке include $(DEPSS) приходит к выводу, что debug путей не существует.
Как чистенько победить проблему — тоже не знаю. Грязный хак — заменить
make-modedir:
ifneq ($(MODE), )
-mkdir -p $(MODE) $(addsuffix $(MODE), $(dir $(OBJS)))
endif
на
ifneq ($(MODE), )
HACK := $(shell mkdir -p $(MODE) $(addsuffix $(MODE), $(dir $(OBJS))))
endif
и убрать все упоминания о make-modedir. Переменная HACK (как и всякая другая) вычислится до обработки целей, и директория будет создана вовремя.