Мой проект зависит от других проектов в подпапках. Я хочу вызвать make рекурсивно, чтобы собрать все за один прогон.
Моя первая попытка выглядит так:
.PHONY: all make_recursion
all: program
program: submake1/lib submake2/lib
submake1/lib: make_recursion
submake2/lib: make_recursion
make_recursion:
make -C submake1
make -C submake2
Это не работает, как задумано. Каждый запуск make обоих submake выполняется в случае изменения файла в этих проектах. Для submake2 моя программа также перестраивается, если submake2 / lib была обновлена. Если обновляется только submake1 / lib, мне нужно выполнить make второй раз, чтобы обновить программу.
Причина этого в том, что make берет временную метку submake1 / lib перед make_recursion, но не обновляет ее после этого. Как я могу улучшить это?