问题标签 [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.
c - 如何避免重新定义 VERSION、PACKAGE 等
我还没有看到任何与 GNU autoconf/automake 构建相关的问题,但我希望至少你们中的一些人熟悉它。开始:
我有一个项目(我称之为 myproject),其中包括另一个项目(供应商)。供应商项目是由其他人维护的独立项目。包含这样的项目相当简单,但在这种情况下有一个小问题:每个项目都生成自己的config.h
文件,每个文件都定义了标准宏,例如 PACKAGE、VERSION 等。这意味着,在构建期间,当供应商正在构建,我收到很多这样的错误:
这些只是警告,至少目前是这样,但我想摆脱它们。我能够通过 Google 搜索找到的唯一相关信息是automake 邮件列表上的这个线程,这并不是很多帮助。还有其他人有更好的想法吗?
autoconf - 将 GNU autoconf/automake 的辅助脚本放在哪里?
我正在开发一个将与 GNU autoconf/automake 一起分发的项目,并且我有一组调用 awk 脚本的 bash 脚本。我希望 bash 脚本以 $PATH 结尾,而不是 awk 脚本。我应该如何将这些插入到项目中?是否应该将它们与其他二进制文件一起放入?
另外,有没有办法确定安装后文件的最终位置?我认为 /usr/local/bin 并不总是可执行文件的最终位置......
bash - autoconf 使用 sh,我需要 SHELL=BASH,如何强制 autoconf 使用 bash?
我正在运行 autoconf 并将 SHELL 设置为“/bin/sh”。这会产生巨大的问题。如何强制 SHELL 成为 autoconf 的“/bin/bash”?
我试图让它在 osx 上运行,它在 linux 上运行。Linux 使用 SHELL=/bin/bash。osx 默认为 /bin/sh。
java - JNI 的 Autoconf 测试包括目录
我正在为 JNI 包装器编写配置脚本。配置参数之一是jni.h
. 对于 C++ 编译是否正确设置了这个参数,什么是一个好的快速和肮脏的 Autoconf 测试?您可以假设您在 Linux 上运行并且g++
可用。
或者,有没有办法让javah
(或支持工具)直接给我这条路?
c++ - Autotools:如何设置全局编译标志
我有一个包含多个源目录的项目:
在每个中,Makefile.am 包含
如何避免在每个源文件夹中重复此操作?
我试图修改 src/Makefile.am 和 configure.in,但没有成功。我以为我可以使用 AC_PROG_CXX 全局设置编译标志,但找不到太多关于如何使用这些宏的文档(你有任何指向此类文档的指针吗?)。
提前致谢
ruby - 在非 ruby 项目中使用 rake
一位同事提出了使用 rake 作为非 ruby 项目的构建系统的想法。是否可以扩展 rake 以补充通常使用 autoconf 工具集的其他语言?
compilation - 使用 Autoconf 查找可变名称库
我正在编写我的第一个项目,该项目将使用 autoconf 并在我进行时自学。在大多数情况下,事情进展得非常顺利。我还有最后一个重大障碍。我在定位可能因系统不同而命名不同的库和头文件时遇到问题。
例如,我需要使用 Mozilla 的 SpiderMonkey 进行编译。从源代码编译时,SpiderMonkey 变为 libjs.so。然而,在我的 Linux 变体中,SpiderMonkey 安装为 libmozjs.so。它是同一个库,只是名称不同,因此链接器标志不同。
是否有适当的方法来检测库的名称?我是否只是将其默认为“js”并提供配置选项来覆盖它?
我对头文件也有同样的情况。SpiderMonkey 的头文件安装在我的操作系统上的 /usr/include/mozjs/ 中。我确信在其他系统上,它将是 /usr/include/js/ 或者甚至可能只是 /usr/include/。如何找到正确的头文件位置?我犹豫要不要做一个普通的“查找”,因为它会很慢,而且我可能会找到错误的文件副本(例如,在用户的主目录而不是 /usr/include/ 中查找文件。)
autotools - 如何为 GNU Autotools 重新配置大型程序
我有一个用 C 编写的相当大的程序。它跨越多个文件,并进行了一些重组以试图弥补平台问题。具体来说,我有不同操作系统、体系结构和编译器的头文件,这些文件定义了它用来处理事情的宏。例如,-v
标志打印版本信息,包括构建它的编译器的名称,以及构建它的操作系统和体系结构。举一个为什么它很重要的例子,程序可以创建一个 C 代码文件,如果你愿意,可以编译它 - 一个任务,它只是对它构建的任何编译器进行系统调用。
如果在您的系统上找到它,它还支持 GNU Readline 库(或 BSD Editline 库——同样的东西),如果您没有它,它还支持没有所有纯 ANSI 的 Readline 功能的等价物。
最重要的是,我不能去掉任何依赖于平台的位,因为几个函数在很大程度上取决于你拥有的操作系统/架构/编译器。我还想为拥有它的人提供良好的功能。我希望人们下载并安装它具有标准./configure
和界面。make
make install
目前,我正在使用一个抱歉的手工 shell 脚本configure
从头开始创建 Makefile,并根据您的操作系统/架构/编译器确定要包含哪些头文件。我想要一个更有效的方法,并且我想使用一个使用 GNU Autotools 的更标准的构建系统。这样我就知道我所做的事情可以在其他人的计算机上运行,而无需在他们的计算机上进行测试。
我的问题是,对于那些努力完成所有这些的人(谢谢!),我的问题是:1)我如何从自制构建系统切换到 GNU Autotools?2) 有哪些很好的 GNU Autotools 入门教程?3)我怎样才能使这个过程相对轻松?
autoconf - 使用 autoconf 进行库解析?
我正在构建我的第一个 autoconf 托管包。
但是,我在任何地方都找不到任何简单的示例来说明如何指定所需的库,并在不同的地方找到该库。
我目前有:
但:
- 它没有找到安装的版本
/opt/local/lib
- 如果实际上没有找到库,它不会抱怨
/opt/local/include
我也需要将包含路径设置为
非常感谢任何帮助或指向体面教程的链接...