Странное поведение после рекурсивного вызова другого make-файла
У меня есть основной make-файл в корневом каталоге моего проекта. В каталоге include есть другой make-файл. Второй make-файл использует ключевое слово include для вызова некоторых других make-файлов в других проектах, которые я не контролирую. Я не могу напрямую включить этот make-файл, так как у него есть несколько целей, которые имеют то же имя, что и мои. В качестве обходного пути я решил использовать рекурсивные вызовы. Когда я запускаю этот make-файл через оболочку, используя следующую команду, он работает хорошо:
my_project$ make -C include -f Second_Makefile
Но когда я вызываю его через основной Makefile следующим образом, он не ведет себя нормально, что означает, что он сообщает о некоторых специфичных для проекта ошибках, коренящихся из включенных файлов во втором make-файле, которые очень трудно найти.
all:
@$(MAKE) -C include -f Second_Makefile
Я также попробовал следующую строку, но это не помогло:
cd include; @$(MAKE) -f Second_Makefile
Я думаю, что должна быть разница между рекурсивным вызовом и прямым вызовом, но я не знаю, что это такое.