Что мне нужно: сделать цель LAUNCHMAKES зависимой от чего-либо, чтобы не вызывать вспомогательные make-файлы, когда исходный файл не был изменен.
SUB MakeFile содержит сбор всех файлов .cpp вкаталог и сохраняет их в объект /.Тогда никакой файл src не изменился, он все равно вызывает и порождает "Вход в каталог - Выход из каталога".Мне нужно избавиться от этого, когда в этом нет необходимости.Я прочитал о --no-print-directory
, но это не так.
Структура проекта:
Project
|----project
| |----dir1
| | |----src1.cpp
| | `----Makefile
| |----dir2
| | |----src2.cpp
| | `----Makefile
`----main.cpp
|----obj
| |----src1.o
| |----src2.o
| `----main.o
|----MakeFile
Код:
release: LAUNCHMAKES obj/main.o
$(CXX) $(CXXFLAGS) main.o src1.o src2.o -o result
LAUNCHMAKES: (?)
for i in $(SUBDIRS); do \
$(MAKE) -C $$i CXXFLAGS=$(CXXFLAGS); \
done
obj/main.o: project/main.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@