2011-12-15 46 views
1

我在他们自己的源代码树中有两个类似的应用程序,我使用autotools来构建它们。在每个应用程序的configure.ac中我都有:AC_INIT(appname, appversion)
由于代码库相似并且共享一些代码,所以我想将它们合并到1个源代码树中,但我需要为每个应用程序分别设置appname和appversion。这是使用autotools实现的吗?
我在应用程序中使用了PACKAGE_NAME, PACKAGE_VERSION
我的电流源结构如下:Autoconf和多个不同版本的二进制文件

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

感谢。

回答

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); 
+0

谢谢,这是我最终也做了什么。 – mehturt

相关问题