Makefile conditional with automake/autoconf

问题 谁能告诉我是否有办法向 Makefile.am 插入条件块,以便将其进一步传递给由 autotools 创建的 Makfile? 这是一个例子: ifeq "$(SOMEVAR)" "" SOMEVAR="default_value" endif 这似乎是 Makefile 做有条件的事情的常用方法。 Automake 会切断 endif 行并最终导致失败,并显示如下消息: Makefile:390: *缺少 `endif'。 停止。 有什么想法吗? 回答1 因为它也被标记为 Autoconf,所以如果可能的话,我建议将条件放在 configure.ac 中。 类似这样: AM_CONDITIONAL([CONDITION_NAME], [test x"${SOMEVAR}" != x]) 然后,您的 Makefile.am 将包含 if CONDITION_NAME <conditional code> else <else :)> endif 更新 问题与 python setup.py --root=$(DESTDIR) --prefix=$(DESTDIR)$(prefix) 从某处被调用。 如果DESTDIR为空,则前缀可能会扩展为相对路径,这不是您想要的。 您已确认它是从您的 Makefile.am 调用的。 然后你可以做两件事。 将上述命令更改为python

2022-05-16 06:39:04    分类:技术分享    python   conditional   autoconf   automake

Is there any target on Automake that is executed before the automake Makefile rules?

问题 我一直在尝试生成在自动生成 Makefile 规则之前执行的 Makefile 规则。 我已经看到我可以定义“all-local”和“hooks”规则,但是这些是在“all”和其他规则之后执行的,例如。 有什么方法可以在自动添加规则之前执行我的代码? 我想在目录中自动生成文件,但是通过make的编译过程总是试图按照automake Makefile规则编译程序。 如果我可以添加一个“pre-”规则,我可以生成所需的文件,然后让正常的编译过程运行。 我知道 BUILT_SOURCES,但我试图不使用它 那可能吗? 谢谢! 回答1 没有办法做到这一点。 一般来说,在 Makefile 中,如果你想这样做,你应该考虑在需要的地方添加适当的依赖项。 回答2 Makefile 可以具有相同的目标,但前提条件不同,在这种情况下,前提条件将被合并: # The following will be equivalent to 'target: prerequisite1 prerequisite2' target: prerequisite1 target: prerequisite2 这可以从 GNU make 手册中推断出来(那里的解释真的很糟糕,但我没有找到更好的解释)。 您可以在自己的Makefile.am中利用此功能: all: all-prehook all-prehook

2022-05-04 03:30:08    分类:技术分享    hook   automake

Is there any target on Automake that is executed before the automake Makefile rules?

I've been trying to generate Makefile rules that execute before the automake Makefile rules. I've seen I can define "all-local" and "hooks" rules, but these are executed after the "all" and other rules, for instance. Is there any way that I could execute a code of mine before the automake added rules? I want to automatically generate files in a directory, but the compilation process through make always tries to compile programs following automake Makefile rules. If I could add a "pre-" rule, I could generate the needed files, then let the normal compilation process to run. I know about BUILT

2022-05-02 03:46:22    分类:问答    hook   automake

cygwin $'\r': command not found error

问题 我稍微修改了一个项目,在调试下它运行良好。 当我尝试在不调试的情况下构建它时,它显示错误,无法修复。 $ make Making all in third_party make[1]: Entering directory '/cygdrive/c/Users/alimjan/Documents/fast-hlground/slim-2.2.7/third_party' Making all in zdelta-2.1 make[2]: Entering directory '/cygdrive/c/Users/alimjan/Documents/fast-hlground/slim-2.2.7/third_party/zdelta-2.1' gcc -DHAVE_CONFIG_H -I. -I../../src -Wall -export-dynamic -O3 -fopenmp -MT inffast.o -MD -MP -MF .deps/inffast.Tpo -c -o inffast. o inffast.c mv -f .deps/inffast.Tpo .deps/inffast.Po gcc -DHAVE_CONFIG_H -I. -I../../src -Wall -export-dynamic -O3 -fopenmp -MT inflate.o -MD

2022-05-01 23:45:10    分类:技术分享    c   cygwin   automake

Is there a way to tell automake not to interpret part of the automakefile?

Is there a way to tell automake not to interpret part of the Makefile.am? Specifically, I am trying to encode a Makefile conditional in a Makefile.am. As other people have noticed, this doesn't work because automake interprets the endif construct. Is there any way to escape or quote strings in Makefile.am files so that automake copies them verbatim into the destination Makefile? Specifically I don't want it to interpret the endif in something like: ifeq "$(SOMEVAR)" "" SOMEVAR="default_value" endif

2022-04-29 00:10:56    分类:问答    makefile   gnu-make   automake

Link errors while using G++ for MPI code

My code is as simple as this: #include <mpi.h> int main(int argc, char**args) { MPI_Init(&argc, &args); int mpiSize; int mpiRank; MPI_Comm_size(MPI_COMM_WORLD, &mpiSize); MPI_Comm_rank(MPI_COMM_WORLD, &mpiRank); MPI_Finalize(); } I first compile it to object file: g++ -c src/mpitest.cpp -o src/mpitest.o Then I can easily use mpicxx: mpicxx src/mpitest.o -o mpi But I want to use g++ instead, because It's easier for automake, so I tried: mpicxx src/mpitest.o -o mpi -show It prints out: g++ src/mpitest.o -o mpi -I/usr/local/include -L/usr/local/lib -L/usr/local/lib -lmpichcxx -lmpich -lopa

2022-04-28 06:07:41    分类:问答    g++   mpi   automake

Makefile conditional with automake/autoconf

can anybody tell me if there is a way to insert a conditional block to Makefile.am so that it will be passed further to a Makfile created by autotools? Here is an example: ifeq "$(SOMEVAR)" "" SOMEVAR="default_value" endif This seems to be a usual Makefile way of doing conditional things. Automake cuts endif line off and make fails eventually with a message like this: Makefile:390: * missing `endif'. Stop. any thoughts?

2022-04-26 18:50:50    分类:问答    python   conditional   autoconf   automake

Installation of cc-tool on linux?

问题 automake: thread 0: reading autoconf --trace=AC_CONFIG_FILES:\$f:\$l::\$d::\$n::\${::}% --trace=AM_GNU_GETTEXT_INTL_SUBDIR:\$f:\$l::\$d::\$n::\${::}% --trace=AC_REQUIRE_AUX_FILE:\$f:\$l::\$d::\$n::\${::}% --trace=_AM_COND_ELSE:\$f:\$l::\$d::\$n::\${::}% --trace=AM_PROG_CC_C_O:\$f:\$l::\$d::\$n::\${::}% --trace=AM_MAINTAINER_MODE:\$f:\$l::\$d::\$n::\${::}% --trace=AM_AUTOMAKE_VERSION:\$f:\$l::\$d::\$n::\${::}% --trace=AM_ENABLE_MULTILIB:\$f:\$l::\$d::\$n::\${::}% --trace=_AM_COND_IF:\$f:\$l::\$d::\$n::\${::}% --trace=AC_FC_SRCEXT:\$f:\$l::\$d::\$n::\${::}% --trace=AC_CONFIG_LINKS:\$f:\$l::\

2022-04-21 08:12:57    分类:技术分享    linux   installation   automake

Check framework example giving me error when running './configure'

问题 我正在构建检查框架示例“check_money”,但它没有在我的机器上构建。 错误是: configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.." 我尝试使用以下方法安装它: libtoolize --force aclocal autoheader automake --force-missing --add-missing autoconf ./configure 它仍然给我同样的错误。 所以,我将同一个目录复制到另一个目录并运行: autoreconf --install ./configure 它仍然给我同样的错误。 我不知道还能尝试什么。 我在 Mac OS X Mavericks (10.9) 自动配置 2.69 汽车制造 1.15 库工具 2.4.6 检查 0.9.14 回答1 我能够找出导致错误的原因 - 这是由于我使用 brew install 安装的 automake 和 libtools。 尽管已经安装了 autoconf,它安装了我需要的所有必要工具。 此外,我查看了 autoconf 创建的配置脚本,发现变量设置不正确,这就是为什么它给我 install-sh 错误,因为 $ac_dir 没有分配。 这就是我所做的。 我卸载了

2022-04-20 16:37:03    分类:技术分享    autotools   configure   autoconf   automake   check-framework