标签: autotools

Autoconf和Autotools的替代品?

我是GNU Autotools的常用用户(主要是Autoconf,偶尔也是Libtool).我正在开展一个可移植性将成为关键点的项目.然而,团队的其他成员只是不习惯使用m4.我得到这个在我的收件箱从不是一个,而是四个人:

m4不是lisp,该死!

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

c autoconf autotools

54
推荐指数
5
解决办法
2万
查看次数

当我们可以编写自己的makefile时,为什么要使用像Autotools这样的构建工具?

最近,我将开发环境从Windows切换到了Linux.到目前为止,我只使用Visual Studio进行C++开发,因此许多概念,如makeAutotools,对我来说都是新的.我已经阅读了GNU makefile文档并且几乎了解了它.但我对Autotools感到困惑.

据我所知,makefile用于简化构建过程.

  1. 为什么我们需要像Autotools这样的工具来创建makefile?由于所有人都知道如何创建一个makefile,我没有真正使用Autotools.
  2. 标准是什么?我们需要使用这样的工具还是手写的makefile呢?

linux autotools gnu-make

52
推荐指数
6
解决办法
1万
查看次数

使用automake配置脚本在64位Linux上构建32位?

我使用的是64位系统但需要一组32位二进制文​​件.我必须将哪些选项传递给configure脚本才能生成32位/ x86 makefile?

automake autotools configure

51
推荐指数
3
解决办法
6万
查看次数

将Autotools转换为CMake的教程

因此,关于Autotools与CMake的主题似乎有很多写作,但对于我的生活,我似乎无法找到关于如何将项目从Autotools转换为CMake的好教程.有人知道吗?

build-process build autotools cmake build-system

51
推荐指数
2
解决办法
2万
查看次数

我应该将哪些文件由Autotools保存在版本控制存储库中?

我是autotools的新手,我正在研究一个C项目.我想将我的项目添加到git存储库.我需要在我的版本控制系统中跟踪哪些文件由autotools生成,哪些文件应该被忽略?

git version-control autotools

50
推荐指数
2
解决办法
6444
查看次数

autotools入门

有人建议一个人如何开始使用autotools来构建C项目?

c build-automation resources build autotools

43
推荐指数
3
解决办法
2万
查看次数

aclocal有什么意义?

什么是点aclocal会脚本和aclocal.m4文件,在使用自动工具来配置源文件的情况下?从我读到的,aclocal扫描宏文件的宏以后由automake使用.我不深入理解这个过程,但似乎扫描功能可能刚刚嵌入到automake中.

autotools m4

41
推荐指数
2
解决办法
3万
查看次数

Autotools vs CMake用于Windows和Linux编译

我一直在寻找Autotools和CMake的优点和缺点.但我想知道那些使用这些工具中的一个(或两个)的人的意见.

我基本上在一年前使用过Autotools,我知道其中一个优点是它依赖于shell脚本,因此不需要安装它来运行并使用可移植的shell脚本.但它看起来过于面向unix,并且无法在Windows上运行配置文件.

我现在要为开源项目选择一个构建系统工具,必须至少为Linux和Windows编译.它是用C++编写的,并使用Qt GUI前端,其余部分是"通用的".

谢谢你的帮助.

portability build-process autotools cmake

37
推荐指数
2
解决办法
2万
查看次数

安装了libtool但找不到libtoolize

我试图在我的mac上从源代码构建libxml2.

所以我使用mac ports安装了autoconf libtool和automake

autoconf和automake似乎正如预期的那样正常工作.

我首先尝试运行autogen.sh.

不幸的是,libtoolize --version给出了

-bash: libtoolize: command not found
Run Code Online (Sandbox Code Playgroud)

我尝试跑步(再次)

sudo port install libtool

--->  Cleaning libtool
--->  Scanning binaries for linking errors: 100.0%
--->  No broken files found.
Run Code Online (Sandbox Code Playgroud)

我试试

locate libtool
Run Code Online (Sandbox Code Playgroud)

它似乎安装得很好

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man1/libtool.1
/Applications/Xcode.app/Contents/Developer/usr/bin/libtool
/Applications/Xcode.app/Contents/Developer/usr/share/man/man1/libtool.1
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/cross/mipsel-linux-binutils/files/110-uclibc-libtool-conf.patch
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool/Portfile
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool/files
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool/files/ltmain.m4sh-allow-clang-stdlib.diff
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool-devel
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool-devel/Portfile
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/openslp/files/libtool-tags.patch
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/t1lib/files/patch-libtool-tag.diff
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/print/pdflib/files/patch-libtool.diff
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/security/steghide/files/libtool-tag.diff
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/www/apache2/files/libtool-tag.diff
/usr/bin/libtool
/usr/lib/php/build/libtool.m4
/usr/share/apr-1/build-1/libtool
/usr/share/man/man1/libtool.1
Run Code Online (Sandbox Code Playgroud)

我如何让libtoolize工作?

macos autoconf autotools libxml2 libtool

34
推荐指数
3
解决办法
5万
查看次数

使用cmake的autotools构建库

这是我对cmake的第一次尝试,如果可能的话,我希望有一些关于我做了什么的反馈,因为一些问题仍然存在.

在库文件夹的CMakeLists.txt中,我创建了两个makefile目标:configure-antlr3cantlr3c.第一个目标运行autotools配置shell脚本,第二个目标运行make可执行文件来构建库:

# CMakeLists.txt in libantlr3c-3.1.3 
add_custom_target(
  configure-antlr3c
  ${SHELL_EXECUTABLE} configure
  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)

add_custom_target(
  antlr3c
   ${MAKE}
   DEPENDS configure-antlr3c
   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
Run Code Online (Sandbox Code Playgroud)

主要问题是configure-antlr3c目标总是"过时",因此即使没有发生任何变化也会始终执行.此外,我一定需要在一个单独的目录中生成我的cmake makefile(不在我的项目的根目录中),以避免覆盖库的autotools Makefile ...

有谁有这个问题(用cmake构建autotools项目)?如果是这样,你的解决方案是什么?

谢谢.

编辑:解决方案 在根CMakeLists.txt中:

include(ExternalProject)
ExternalProject_Add(
  libantlr3c
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3/configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  BUILD_COMMAND make
  BUILD_IN_SOURCE 1
)
Run Code Online (Sandbox Code Playgroud)

build-automation build-process autotools cmake antlr3

33
推荐指数
2
解决办法
2万
查看次数