- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我使用 automake 和 autoconf。
在子目录 src/中,Makefile.am 包含
bin_PROGRAMS = hello
hello_SOURCES = hello.c
构建 hello 后,我想在二进制文件上运行一个工具(系统上安装的一些分析器/优化器)来修改它(例如 strip)或生成统计信息(例如 dwarves、pahole ...)。为此,顶层目录中的 Makefile.am 包含
tool:
tool src/hello
当使用 make 构建 hello 并执行 make 工具时,一切都很好。当用户在未构建二进制文件的情况下运行 make 工具时会出现此问题。我如何强制构建 bin_PROGRAMS(可能是一个列表)或仅构建 hello 二进制文件作为目标工具的依赖项?
都不是
tool: bin_PROGRAMS
tool src/hello
也不是
tool: src/hello
tool src/hello
工作。
最佳答案
一个名为“tool”的 Makefile 目标应该创建一个名为“tool”的文件。由于 'tool' 已经存在,Make 假设它不需要再次运行命令(我正在简化,但只是一点点)。
像这样的构造应该可以工作:
tool_output: tool src/hello
tool src/hello > tool_output
此外,一般来说,我认为您不能将 bin_PROGRAMS
或任何其他 Automake 变量(使用 =
分配)用作依赖项,但我可能是错的。
关于linux - Automake:依赖于构建结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4837895/
以下语句不起作用: dist_include_DATA = someheaders.h 导致错误: Makefile.am:8: `includedir' is not a legitimate di
在我的 Makefile.am文件我有这样的东西: bin_PROGRAMS = foo bar foo_SOURCES = foo.cpp bar_SOURCES = bar.cpp 我有兴趣拥有
假设我有一个这样的项目: (dev dir) - README - INSTALL / src - blah.cpp - blah.hpp / conf - blah_one.xml
想象一下由 autoconf 生成的以下目标和命令: .c.lo: $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
我想在安装二进制文件之前使用 automake 处理/修改它们。例如,我想将二进制文件中的符号提取到单独的文件和位置(如 this )。另一个示例是收集关键 Assets 的 md5sum 以发布报告
我遇到了一个 automake 的问题,我似乎找不到一个干净的解决方案,这似乎应该是可能的(甚至是简单的),但没有简单的工作。 基本上,我遇到的问题是源文件包含自动生成的头文件。我可以添加依赖项来生成
此主题的大部分内容都在 pkginclude_HEADERS 上的此主题中进行了介绍。 我有一个开源库,它有一些包含通用名称的内容。我怀疑最好的解决方案是将我的伞形包含文件放在 pkginclude_
假设我开发了 libfoo.a 作为我编译过程的中间步骤。这是 Makefile.am 中的一行: noinst_LIBRARIES = libfoo.a 这个库依赖于其他库。为了防止我收到 unde
操作系统: Ubuntu 14.14 automake 版本:automake (GNU automake) 1.14.1 我使用 automake 构建源代码以创建共享库。 但是我得到一个错误,au
我在 Rapbian (2014-09-09-wheezy-raspbian) 发行版上安装 automake 1.14.1 时遇到问题。我写了 sh ./configure 然后我写了 make 然
我对 GNU Make 非常有经验,但对 autotools 完全陌生。通过查看一些教程,我了解到 autotools 是一种标准化 makefile 目标并跨多个体系结构构建的方法。这是一件好事,因
我的 Makefile.am包括一个文件(带有各种定义的变量),例如: include make.config ... 问题是该文件又是由工具(即 config.generator.sh )基于某些输
我正在尝试编译和构建 automake 1.16,但它以下列方式失败: help2man: can't get `--help' info from automake-1.16 Try `--no-d
我正在尝试在 CentOS5 上构建 glib-2.36.4。我意识到升级到 6 会更明智,但由于客户要求,这是不可能的。 我已经开始构建,但出现以下错误。该错误提示系统上不存在 automake-1
在我的Makefile.am中,我进行了以下测试: TESTS += tests/test1 check_PROGRAMS += tests/test1 tests_test1_SOURCES = t
我正在尝试在 automake 中执行此操作 platform=$(uname) ifeq ($(platform), Darwin) stmt = ... else stmt1 =
我正在尝试在 automake 中执行此操作 platform=$(uname) ifeq ($(platform), Darwin) stmt = ... else stmt1 =
如何告诉 Automake 构建一个不需要安装的动态模块? pkglib_LTLIBRARIES = mywrapper.la mywrapper_la_LDFLAGS = -no-undefined
我刚刚建立了一个 cross-helloworld automake 项目(用于 stm32f4-discovery)。我有一个自定义 discovery.ld 脚本。我在我的 Makefile.am
我知道我可以使用 install-data-hook在复制我的数据文件后做任何我想做的事情,这样我就可以按照我想要的方式调整文件权限。 不过,我的问题在它之前。 有什么办法可以告诉我automake在
我是一名优秀的程序员,十分优秀!