问题标签 [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 投票
2 回答
724 浏览

autotools - libtool 被“make distclean”删除

我已将 libtool 复制到我的程序的源代码树中,以便与程序一起分发它。但是当我运行“make distclean”时,libtool 会与其余生成的文件一起被删除。我该如何阻止这种情况发生?

我尝试放入EXTRA_DIST = libtoolMakefile.am 但这不起作用。

这基本上是我的 configure.ac 的样子。

0 投票
2 回答
2452 浏览

automated-tests - 向 autotools 项目添加额外的 make/test 目标

我们有一个 autotools 项目,它混合了单元测试和集成测试,所有这些都通过“make check”运行。这并不理想,因为一些集成测试需要一段时间,并且有各种依赖项(数据库等)

我想分离集成测试并为它们分配自己的 make 目标。这样,仍然可以经常运行单元测试(通过 make check),并且可以根据需要以类似的方式运行集成测试。

是否有一种直接(或其他)方式来添加额外的 make 目标?

注意:我可能还应该补充一点,这是一个大型项目,因此手动编辑/维护每个 makefile 是不可取的。如果可能的话,我想用“自动工具方式”来做。

-- 更新 1 --

我已经尝试过Jon的解决方案,它更接近了一步,但并不完全在那里。我还有几个问题:

1)递归 - 我可以修改构建树根目录中的 makefile.am 以及包含测试的任何目录,但似乎应该有一种方法可以在我没有的地方做到这一点更改层次结构中的每个 Makefile.am。(毕竟检查目标是这样工作的)

2) .PHONY - 我不断收到关于 .PHONY 被重新定义的消息。这是可以理解的,因为它是由另一个包(特别是 doxygen)设置的。怎样才能让两个人一起玩好呢?

0 投票
1 回答
2308 浏览

php - 链接用 C 编写的 PHP 扩展

编辑:修改我的问题

在 C 中构建外部 PHP 模块时,如何链接共享对象?

0 投票
2 回答
556 浏览

autotools - 我应该如何从 Makefile.am 运行预构建的 Makefile?

我应该如何从 Makefile.am 运行预构建的 Makefile?

我是 automake/autoconf 构建系统的新手。我正在为其实现 autotools 的包有几个库和每个库的测试可执行文件。一些库是自动生成的 ASN1C 代码,带有预构建的 makefile。我不确定在 Makefile.am 内部说“使用预构建的 makefile 构建 ASN1C 库”的最佳方式。

由于大量的 makefile 文档,尝试用这样的东西搜索 google 有点困难。

谢谢,陈兹

0 投票
3 回答
3108 浏览

autotools - 在 C/C++ 项目中自动检测库依赖关系的最佳方法是什么?

在 C/C++ 项目中自动检测库依赖关系的最佳方法是什么?

我有一个项目,我拥有机器上的所有依赖项。它构建并运行。现在我想组合一个自动工具构建系统。我正在寻找一种自动检测所需的所有依赖项的好方法,例如使用的头文件和链接所需的库。

图书馆位似乎是我最难弄清楚的。我想说,为列表或其他东西中的每个函数生成 AC_CHECK_LIB 命令。我可能可以在 Perl 中做到这一点,但我必须想象它已经存在于其他地方。

我所知道的是我可以使用 objdump 和 nm 查看符号,我可以使用这些实用程序找到函数所属的库,然后我可以在 configure.ac 中手动输入 AC_CHECK_LIB 命令来检查它。在这一点上,自动化会很棒。

谢谢,陈兹

0 投票
3 回答
790 浏览

c - 我应该使用 automake/autoconf 来分发小型 ansi C 应用程序吗?

我有一个小型 ANSI C 应用程序,它可以在不同的测试编译器和平台下干净地编译。它不使用任何预处理器开关或外部依赖项,makefile 类似于:

如果我想以尽可能可移植的源形式分发这个项目,我应该使用 automake/autoconf 包装它吗?这实际上会增加便携性,还是像它一样便携?

我唯一能想到的是它会自动选择系统编译器,但它也会增加很多复杂性。这值得么?

0 投票
2 回答
3330 浏览

c - 你如何在automake中设置库的顺序?

你如何在automake中设置库的顺序?

在我的 am 文件中,我有类似的内容:

现在,当我编译时,我也得到了类似的编译行:

问题是 libmine.a 依赖于 libadhoc.a,因此编译行应该是:

你如何在automake中设置库的顺序?(或者可能是一种解决方法;您如何在编译行中重复所有库。这就是我在自定义 Makefile 中所做的。)

0 投票
2 回答
1658 浏览

ubuntu - Debian 放弃了对 .la 文件的支持;我现在如何构建?

背景

我最近遇到了fuppes UPnP 媒体服务器,它看起来很棒。我将它安装在我的家庭服务器上并开始使用它将视频流式传输到我的 Xbox。它工作得非常好,我很满意。然后我升级了我的服务器分发和 fuppes 停止工作;我现在知道这是因为各种库已经贬值,特别是debian 已经开始从他们的大多数包中删除 .la libtool 文件

问题/问题

所以我的问题是,既然我没有那些用于 libtool 的 .la 文件,我该如何构建 fuppes?更具体地说,这是我的确切错误消息:

我没有 /usr/lib/libogg.la 文件了。这从终端证明了这一点:

我只需要指出正确的方向。我已经阅读了 libtool-automake 文档,但我仍然缺少告诉我如何编译的信息,因为我不再有 libogg.la 了。简而言之,在没有 .la 文件的情况下如何编译?

注意这一切都在 Ubuntu Karmic Koala 上

0 投票
4 回答
258 浏览

c++ - 如何阻止 automake 添加 -I。到我的编译行?

如何阻止 automake 添加 -I。到我的编译行?

似乎 automake 或 libtool 对象总是有一个类似于以下的编译命令:

问题是我有两个同名的头文件....

每个标头都有一个名为 Header 的类,尽管每个标头都位于不同的命名空间中。因此,当我在 ./proj/thisdir 中构建时,“-I”。被包括在内,我无法进入 ./proj/otherdir 中的标题

我不知道如何摆脱最初的“-I”。出现。

有什么提示吗?

谢谢陈兹

0 投票
2 回答
3792 浏览

autotools - 可移植地在 autoconf/automake 中包含 GLib 标头

我需要为一个使用基于 autoconf 的系统构建的项目包含GLib头文件以实现可移植性。

如何以可移植的方式安全地导入 GLib 标头?我知道pkg-config,但这并不完全可移植(因为某些系统没有它,我宁愿只依靠 autoconf 进行配置)。