我想在我的m4文本中包含一個相對於我的沙盒基礎目錄的文件,而不使用-I
開關。在m4中,如何包含名稱中包含環境變量的文件?
到目前爲止,我已經找到了如何使用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
如何一個文件的路徑中是否包含環境變量?
你確實是這個人。這工作。謝謝!有趣的是,除了'include'宏調用之外,我可以使用'MODEL_ROOT'。無論如何,謝謝! – 2011-03-17 23:48:55