说我有my_application.py.in
来生成my_application.py
的automake。如何在扩展$ {prefix}的情况下将datadir添加到我的应用程序中?现在我能想到的最好的是在我的python应用程序中使用replace()
,但是,我假设有一种更合适的方式。
if __name__ == "__main__":
app = Application()
app.VERSION = '@VERSION@'
app.PACKAGE = '@PACKAGE@'
# How should I get the DATA_DIR in this next line?
app.DATA_DIR = "@datarootdir@".replace("${prefix}", "@prefix@")
app.run()
答案 0 :(得分:3)
您需要在make
时进行替换。这在C中更容易,您可以在其中设置#define
,但对于Python,我会尝试这样的事情:
foo.py: foo.py.in
[ -f $@ ] && rm -f $@
$(SED) -e "s:[@]datarootdir@:$(datarootdir):" $< > $@
chmod a-w $@
(将AC_PROG_SED
添加到configure.ac
)
答案 1 :(得分:0)
一种常见的技术是使用configure.ac中的adl_RECURSIVE_EVAL(来自autoconf存档)来生成完全展开的路径。