【发布时间】:2012-03-11 20:37:22
【问题描述】:
我们正在使用automake 和autoconf 来构建我们的多包软件。我想知道如何用例如的输出填充变量shell脚本一次并重用它,例如对于需要的包含目录
INCLUDES := -I`some-ext-config --incdir`
在这里使用:= 而不是= 会使这个变量填充一次,所以some-ext-config 只会被调用一次(AFAIK 这来自普通的make)。当然INCLUDES 是AM_CPPFLAGS 的表亲,但如果我改用那个,每次编译都会调用shell 脚本。
使用INCLUDES 而不是AM_CPPFLAGS 对我来说是一个可以接受的解决方案(尽管我认为可能存在可移植性问题),但我没有解决方案,例如用于 libtool 库的 LDFLAGS
libmylib_la_LDFLAGS := `some-ext-config --ldflags` # will always be evaluated
如果我想确保这些外部工具不会被多次调用,automake 内部的一般解决方案是什么?我想避免在configure.ac 中使用明显的AC_SUBST,因为我们必须确保我们的包可以从子目录(其中一些configure.ac)以及从顶层和configure.ac 那里不需要对不同的子项目了解太多。
【问题讨论】: