Получить путь к файлу, который включен в Makefile - PullRequest
0 голосов
/ 20 сентября 2018

У меня следующая ситуация: я хочу, чтобы несколько независимых 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

1 Ответ

0 голосов
/ 21 сентября 2018

Переменная MAKEFILE_LIST (см. Пример в ссылке) может использоваться для поиска этой информации.Просто убедитесь, что вы получили его, прежде чем другой include скрывает его.

...