Я хочу включить файл, основанный на моем базовом каталоге песочницы, внутри моего текста m4 без использования переключателя -I
.
До сих пор я понял, как получить переменные среды с помощью системного вызова:
define(MODEL_ROOT,`syscmd(`printf $MODEL_ROOT')')dnl
Затем я хочу включить файл на основе этой переменной среды:
include(MODEL_ROOT/sw/lib/m4_macros/foreach2.m4)
Итого имею:
define(MODEL_ROOT,`syscmd(`printf $MODEL_ROOT')')
MODEL_ROOT
MODEL_ROOT/sw/lib/m4_macros/foreach2.m4
include(MODEL_ROOT/sw/lib/m4_macros/foreach2.m4)
Что печатает:
/home/ross/sandbox
/home/ross/sandbox/sw/lib/m4_macros/foreach2.m4
/home/ross/sandboxforeach_example.m4:7: m4: Cannot open /sw/lib/m4_macros/foreach2.m4: No such file or directory
Я знаю, что нормальный синтаксис для include:
include(`file.m4')
Но если я цитирую MODEL_ROOT/sw/lib/m4_macros/foreach2.m4
, то m4 вроде:
[...]
include(`MODEL_ROOT/sw/lib/m4_macros/foreach2.m4')
м4 жалуется:
[...]
foreach_example.m4:7: m4: Cannot open MODEL_ROOT/sw/lib/m4_macros/foreach2.m4: No such file or directory
Как включить файл с переменной окружения в его путь?