autotools可以创建多平台makefile

时间:2008-11-27 16:12:34

标签: 64-bit makefile 32-bit autotools multiplatform

我有一个插件项目,我已经开发了几年,其中插件与[主应用程序版本,第三方库版本,32位与64位]的多种组合一起工作。是否有一种(干净的)方法来使用autotools来创建构建插件的所有版本的单个makefile。

据我在浏览autotools文档时所知,最接近我想要的是拥有项目的N个独立副本,每个副本都有自己的makefile。这对于测试和开发来说似乎有点不理想,因为(a)我需要在所有不同的副本中不断传播代码更​​改,并且(b)在复制项目时有很多浪费的空间。还有更好的方法吗?

编辑:

我一直在推出自己的解决方案,我有一个花哨的makefile和一些perl脚本来搜索各种第三方库版本等等。因此,我对其他非autotools解决方案持开放态度。对于其他构建工具,我希望它们对于最终用户来说非常容易安装。这些工具还需要足够智能,以便在没有大量麻烦的情况下搜索各种第三方库和标题。我主要是在寻找一个Linux解决方案,但也适用于Windows和/或Mac的解决方案。

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:4)

据我所知,你不能这样做。但是,你是否坚持使用autotools? CMakeSCons都不是选项吗?

答案 2 :(得分:1)

我们尝试过它并不起作用!所以我们现在使用SCons

本主题的一些文章:12

修改 我喜欢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