У меня следующая ситуация: я хочу, чтобы несколько независимых Make-файлов включали один файл со всеми правилами (с помощью директивы include ...
).Все идет нормально.Однако этот центральный файл правил должен использовать некоторые другие файлы рядом с ним (shell-скрипты и тому подобное).Чтобы назвать эти другие файлы, ему нужно знать свой собственный путь относительно вызова make
.
Что будет работать так:
# in the Makefiles
toolsPath := ../../generalStuff
include $(toolsPath)/generalRules.mk
# in the generalRules.mk
foo: ./$(toolsPath)/script
./$(toolsPath)/script foo
Тем не менее, хотя это будет работать,полагается на включающий Makefiles, чтобы честно указать общему файлу свой собственный путь.И мне интересно, есть ли способ избежать установки переменной toolsPath
.
Можно ли заменить $(toolsPath)
во включенном файле чем-то, что опирается на сам make
Вместо включенных Makefiles?
Я бы хотел просто написать это в Makefiles:
include ../../generalStuff/generalRules.mk