Искам да включа файл, базиран на моята базова директория на пясъчника, в моя m4 текст, без да използвам превключвателя -I
.
Досега разбрах как да взема променливите на средата с помощта на sys извикване:
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(`file.m4')
Но ако цитирам MODEL_ROOT/sw/lib/m4_macros/foreach2.m4
, тогава m4 като:
[...]
include(`MODEL_ROOT/sw/lib/m4_macros/foreach2.m4')
m4 се оплаква:
[...]
foreach_example.m4:7: m4: Cannot open MODEL_ROOT/sw/lib/m4_macros/foreach2.m4: No such file or directory
Как се включва файл с променлива на средата в неговия път?