Autoconf和具有不同版本的多个二进制文件

时间:2011-12-15 07:52:19

标签: autotools autoconf

我在他们自己的源代码树中有两个类似的应用程序,我使用autotools来构建它们。在每个应用程序的configure.ac中,我有:AC_INIT(appname, appversion)
由于代码库是相似的并且共享一些代码,我想将它们合并到一个源代码树中,但是我需要为每个应用程序分别使用appname和appversion,这可以通过autotools来实现吗? 我在应用程序中使用PACKAGE_NAME, PACKAGE_VERSION 我目前的源结构如下所示:

./configure.ac
./src/Makefile.am
./src/*.cpp
./src/include/*.h

感谢。

1 个答案:

答案 0 :(得分:0)

在configure.ac中,你可以这样做:

AC_SUBST([APP1VERSION],[1.2.3])
AC_SUBST([APP2VERSION],[0.0.1])
AC_DEFINE_UNQUOTED([APP1VERSION],["$APP1VERSION"],[Version of app 1])
AC_DEFINE_UNQUOTED([APP2VERSION],["$APP2VERSION"],[Version of app 2])

这些版本独立于PACKAGE_VERSION,但在.c文件中 你可以简单地连接它们:

printf( "%s", PACKAGE_VERSION APP1VERSION );
相关问题