我有一个插件项目,我已经开发了几年,其中插件与[主应用程序版本,第三方库版本,32位与64位]的多种组合一起工作。是否有一种(干净的)方法来使用autotools来创建构建插件的所有版本的单个makefile。
据我在浏览autotools文档时所知,最接近我想要的是拥有项目的N个独立副本,每个副本都有自己的makefile。这对于测试和开发来说似乎有点不理想,因为(a)我需要在所有不同的副本中不断传播代码更改,并且(b)在复制项目时有很多浪费的空间。还有更好的方法吗?
编辑:
我一直在推出自己的解决方案,我有一个花哨的makefile和一些perl脚本来搜索各种第三方库版本等等。因此,我对其他非autotools解决方案持开放态度。对于其他构建工具,我希望它们对于最终用户来说非常容易安装。这些工具还需要足够智能,以便在没有大量麻烦的情况下搜索各种第三方库和标题。我主要是在寻找一个Linux解决方案,但也适用于Windows和/或Mac的解决方案。
答案 0 :(得分:6)
答案 1 :(得分:4)
答案 2 :(得分:1)
我们尝试过它并不起作用!所以我们现在使用SCons。
修改强> 我喜欢SCons的一些小例子:
env.ParseConfig('pkg-config --cflags --libs glib-2.0')
使用这行代码,您可以将GLib添加到编译环境( env )。并且不要忘记User Guide这对学习SCons很有用(你真的不需要知道Python!)。对于最终用户,您可以尝试使用PyInstaller或类似的东西。
与make
相比,您使用Python,因此是一种完整的编程语言!考虑到这一点,你可以做任何事情(或多或少)。
答案 3 :(得分:0)
您是否曾考虑过使用包含多个构建目录的单个项目? 如果您的automake项目以适当的方式实施(即:不像gcc)
以下是可能的:
mkdir build1 build2 build3
cd build1
../configure $(YOUR_OPTIONS)
cd build2
../configure $(YOUR_OPTIONS2)
[...]
您可以传递不同的配置参数,如包含目录和编译器(交叉编译器,即。)。
然后你可以通过运行
在一个make调用中运行它make -C build1 -C build2 -C build3