问题标签 [autoconf]

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 投票
4 回答
2722 浏览

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

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

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

0 投票
5 回答
4063 浏览

bash - autoconf 使用 sh,我需要 SHELL=BASH,如何强制 autoconf 使用 bash?

我正在运行 autoconf 并将 SHELL 设置为“/bin/sh”。这会产生巨大的问题。如何强制 SHELL 成为 autoconf 的“/bin/bash”?

我试图让它在 osx 上运行,它在 linux 上运行。Linux 使用 SHELL=/bin/bash。osx 默认为 /bin/sh。

0 投票
3 回答
2254 浏览

java - JNI 的 Autoconf 测试包括目录

我正在为 JNI 包装器编写配置脚本。配置参数之一是jni.h. 对于 C++ 编译是否正确设置了这个参数,什么是一个好的快速和肮脏的 Autoconf 测试?您可以假设您在 Linux 上运行并且g++可用。

或者,有没有办法让javah(或支持工具)直接给我这条路?

0 投票
2 回答
19377 浏览

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

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

在每个中,Makefile.am 包含

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

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

提前致谢

0 投票
5 回答
3335 浏览

ruby - 在非 ruby​​ 项目中使用 rake

一位同事提出了使用 rake 作为非 ruby​​ 项目的构建系统的想法。是否可以扩展 rake 以补充通常使用 autoconf 工具集的其他语言?

0 投票
3 回答
336 浏览

compilation - 使用 Autoconf 查找可变名称库

我正在编写我的第一个项目,该项目将使用 autoconf 并在我进行时自学。在大多数情况下,事情进展得非常顺利。我还有最后一个重大障碍。我在定位可能因系统不同而命名不同的库和头文件时遇到问题。

例如,我需要使用 Mozilla 的 SpiderMonkey 进行编译。从源代码编译时,SpiderMonkey 变为 libjs.so。然而,在我的 Linux 变体中,SpiderMonkey 安装为 libmozjs.so。它是同一个库,只是名称不同,因此链接器标志不同。

是否有适当的方法来检测库的名称?我是否只是将其默认为“js”并提供配置选项来覆盖它?

我对头文件也有同样的情况。SpiderMonkey 的头文件安装在我的操作系统上的 /usr/include/mozjs/ 中。我确信在其他系统上,它将是 /usr/include/js/ 或者甚至可能只是 /usr/include/。如何找到正确的头文件位置?我犹豫要不要做一个普通的“查找”,因为它会很慢,而且我可能会找到错误的文件副本(例如,在用户的主目录而不是 /usr/include/ 中查找文件。)

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 投票
7 回答
26081 浏览

autoconf - 使用 autoconf 进行库解析?

我正在构建我的第一个 autoconf 托管包。

但是,我在任何地方都找不到任何简单的示例来说明如何指定所需的库,并在不同的地方找到该库。

我目前有:

但:

  1. 它没有找到安装的版本/opt/local/lib
  2. 如果实际上没有找到库,它不会抱怨
  3. /opt/local/include我也需要将包含路径设置为

非常感谢任何帮助或指向体面教程的链接...

0 投票
9 回答
21464 浏览

c - Autoconf 和 A​​utotools 的替代品?

我是 GNU Autotools(主要是Autoconf,偶尔是Libtool)的一个非常频繁的用户。我正在从事一个项目,其中可移植性将成为一个症结。然而,团队的其他成员只是不习惯使用m4。我收件箱中收到的不是一个人,而是四个人:

m4 不是口齿不清,该死!

无论如何,也许有人可以推荐一些基于 Python 或 PHP 的东西?我正在研究一棵更大的树的 C 端;我可以肯定 Python 或 PHP 5 都会出现,因为它们是先决条件。