Это упрощенные примеры моего вопроса.
У меня есть:
Makefile в top / sub / sub / dir:
THINGSTODO := dothis
dothis:
@echo Do cool stuff
Основной make-файл в верхнем каталоге:
all: $(THINGSTODO)
@echo do important stuff
Makefile в подкаталогах включается автоматически.
Если я запускаю это (сделать все), я получаю:
Нет правила, чтобы сделать цель 'dothis', необходимой для 'all'.
Мой вывод заключается в том, что переменная THINGSTODO получает значение, но по какой-то причине правило "dothis" не отображается.
Если я помещаю правило "dothis" в основной make-файл, оно работает как шарм
Но я не хочу менять основной make-файл, я просто хочу добавить правило в make-файл sub / sub / dir, которое выполняется до выполнения правила "all".
Мне, должно быть, не хватает жизненно важных знаний, чтобы решить это. Какие-либо предложения?
Спасибо.
система: Linux 4.18.13-100.fc27.x86_64
make: GNU Make 4.2.1 (построен для x86_64-redhat-linux-gnu)