问题标签 [automake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1735 浏览

c - 如何避免重新定义 VERSION、PACKAGE 等

我还没有看到任何与 GNU autoconf/automake 构建相关的问题,但我希望至少你们中的一些人熟悉它。开始:

我有一个项目(我称之为 myproject),其中包括另一个项目(供应商)。供应商项目是由其他人维护的独立项目。包含这样的项目相当简单,但在这种情况下有一个小问题:每个项目都生成自己的config.h文件,每个文件都定义了标准宏,例如 PACKAGE、VERSION 等。这意味着,在构建期间,当供应商正在构建,我收到很多这样的错误:

这些只是警告,至少目前是这样,但我想摆脱它们。我能够通过 Google 搜索找到的唯一相关信息是automake 邮件列表上的这个线程,这并不是很多帮助。还有其他人有更好的想法吗?

0 投票
5 回答
3467 浏览

java - JNI 和 Java:ant 调用 make 还是 make 调用 ant?

我即将第一次进入 JNI(Java 本机接口)世界,以提供从特定于平台的 C/C++ 代码到 Java 的文件系统更改通知。那是除非有人建议我错过了一些出色的图书馆来做这件事。

作为 JNI 的新手,我设法在它的接口方面和库生成方面找到了很多文档,但在构建本机库方面我没有找到太多。

我有一个基于 ant 的现有 Java 源代码构建,所以我正在尝试确定是否应该让 ant 调用 make 来创建库,或者最好在创建后让 make 调用 ant图书馆?

这两个选项都不是非常好,但似乎都比试图让 ant 调用编译器来编译代码并直接生成库要好。

0 投票
4 回答
2722 浏览

autoconf - 将 GNU autoconf/automake 的辅助脚本放在哪里?

我正在开发一个将与 GNU autoconf/automake 一起分发的项目,并且我有一组调用 awk 脚本的 bash 脚本。我希望 bash 脚本以 $PATH 结尾,而不是 awk 脚本。我应该如何将这些插入到项目中?是否应该将它们与其他二进制文件一起放入?

另外,有没有办法确定安装后文件的最终位置?我认为 /usr/local/bin 并不总是可执行文件的最终位置......

0 投票
2 回答
2450 浏览

unit-testing - 如何在 KDevelop 中为基于 automake 的项目添加自定义构建步骤?

我最近开始使用 C++ 和 KDevelop 进行个人编码项目。虽然我一开始只是四处乱窜,但我认为从长远来看,如果我在走得更远之前设置一个适当的单元测试套件会更好。我已经创建了一个单独的测试运行程序可执行文件作为子项目,并且我添加到其中的测试似乎运行正常。至此,成功。

但是,我真的很想让我的单元测试在每次构建时都运行,而不仅仅是在我显式运行它们时。当我将我造成的混乱分解为便利库时尤其如此,每个便利库都可能有自己的测试可执行文件。与其手动运行它们,我想让它们作为构建过程的最后一步运行。我已经查看了项目菜单和 automake 管理器中的所有选项,但我不知道如何设置它。

我想这可能可以通过手动编辑makefile来完成。不幸的是,我的 makefile-fu 有点弱,而且我还担心下次我通过 IDE 更改某些内容时,KDevelop 可能会覆盖我手动所做的任何更改。因此,如果可以选择如何通过 KDevelop 本身执行此操作,我更愿意采用这种方式。

有谁知道我如何让 KDevelop 在构建过程中运行我的测试可执行文件?谢谢!

(我不是 100% 依赖 KDevelop。如果 KDevelop 不能做到这一点,或者如果有一个 IDE 可以让这变得更容易,我可能会被说服切换。)

0 投票
3 回答
3873 浏览

linux - 使用 automake 设置每个文件的标志

有没有办法使用 automake 在每个文件的基础上设置标志?
特别是,如果我有一个 c++ 项目并且想要使用 -WAll 编译所有文件,除了我想要禁用特定警告的文件,我该怎么办?

我试过类似的东西:

但它没有用。

已编辑:删除了对 automake 手册的引用,这实际上具有误导性(感谢 Douglas Leeder)。

0 投票
2 回答
1591 浏览

c++ - Automake:Makefile.am 中 *_la_LDFLAGS 的有效值是什么?

我想知道 Makefile.am 中 *_la_LDFLAGS 的可能值是多少?

如果我问这个问题,那是因为我想要以下内容:

然而,这是我通过使用-release标志得到的:

我也尝试过完全没有标志并得到了

我应该怎么做 ?我应该使用哪个标志?

提前致谢

0 投票
2 回答
19377 浏览

c++ - Autotools:如何设置全局编译标志

我有一个包含多个源目录的项目:

在每个中,Makefile.am 包含

如何避免在每个源文件夹中重复此操作?

我试图修改 src/Makefile.am 和 configure.in,但没有成功。我以为我可以使用 AC_PROG_CXX 全局设置编译标志,但找不到太多关于如何使用这些宏的文档(你有任何指向此类文档的指针吗?)。

提前致谢

0 投票
3 回答
1016 浏览

cygwin - 试图在cygwin上编译slapd,这个automake错误是什么意思?

我正在尝试在 cygwin 上编译一个非常旧的 slapd(LDAP 服务器)版本。以前它在 Linux 机器上运行,但由于我无法控制的原因,它必须在 Windows 服务器上运行。有人建议我们可以使用 cygwin 来编译源代码。

不幸的是,在“配置”期间构建失败并显示错误消息:

config.log 的最后几行是:

更新:这是一台 win32 计算机 - cygwin 不包含一个名为 user32 的共享对象,但 Windows XP 确实包含一个名为 user32.dll 的对象 - 知道这是否是链接器正在寻找的对象吗?

UPDATE2: w32api 已经安装,(3.13-1) - 我注意到有一个 user32.lib 作为 visual-stuido 2003 .Net 的一部分 - 有没有办法让 Cygwin 中的 GCC 使用它?

0 投票
2 回答
1932 浏览

autotools - 如何为 GNU Autotools 重新配置大型程序

我有一个用 C 编写的相当大的程序。它跨越多个文件,并进行了一些重组以试图弥补平台问题。具体来说,我有不同操作系统、体系结构和编译器的头文件,这些文件定义了它用来处理事情的宏。例如,-v标志打印版本信息,包括构建它的编译器的名称,以及构建它的操作系统和体系结构。举一个为什么它很重要的例子,程序可以创建一个 C 代码文件,如果你愿意,可以编译它 - 一个任务,它只是对它构建的任何编译器进行系统调用。

如果在您的系统上找到它,它还支持 GNU Readline 库(或 BSD Editline 库——同样的东西),如果您没有它,它还支持没有所有纯 ANSI 的 Readline 功能的等价物。

最重要的是,我不能去掉任何依赖于平台的位,因为几个函数在很大程度上取决于你拥有的操作系​​统/架构/编译器。我还想为拥有它的人提供良好的功能。我希望人们下载并安装它具有标准./configure和界面。makemake install

目前,我正在使用一个抱歉的手工 shell 脚本configure从头开始创建 Makefile,并根据您的操作系统/架构/编译器确定要包含哪些头文件。我想要一个更有效的方法,并且我想使用一个使用 GNU Autotools 的更标准的构建系统。这样我就知道我所做的事情可以在其他人的计算机上运行,​​而无需在他们的计算机上进行测试。

我的问题是,对于那些努力完成所有这些的人(谢谢!),我的问题是:1)我如何从自制构建系统切换到 GNU Autotools?2) 有哪些很好的 GNU Autotools 入门教程?3)我怎样才能使这个过程相对轻松?

0 投票
2 回答
2788 浏览

c - GNU make %-style 模式规则的可移植等价物

我正在按照“使用 Autotools 检查”页面上的说明来尝试在(当前)小型 C 项目中构建对单元测试的支持。虽然我使用的是Cgreen而不是Check

我在执行第 9 步时遇到了问题,这导致 automake 发出关于使用 `%' 样式的模式规则作为 GNU make 扩展的警告。

具体的制作规则是:

我想知道是否有一种等效的方法来指定此规则,它不依赖于 gnu make 扩展。