gpt4 book ai didi

python - Makefile 条件与 automake/autoconf

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:48 33 4
gpt4 key购买 nike

谁能告诉我是否有办法向 Makefile.am 插入条件 block ,以便将其进一步传递给由 autotools 创建的 Makfile?

这是一个例子:

ifeq "$(SOMEVAR)" ""
SOMEVAR="default_value"
endif

这似乎是 Makefile 执行条件操作的常用方式。 Automake 切断 endif 行并最终失败并显示如下消息:

Makefile:390: * 缺少 `endif'。停止。

有什么想法吗?

最佳答案

因为它也被标记为 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 中调用的。然后您可以做两件事。

  1. 将上述命令更改为 python setup.py --root=${DESTDIR}///--prefix=${DESTDIR}///$(prefix)。三重斜杠可能是必要的,因为 AFAIK,POSIX 允许双斜杠具有特殊含义,但不允许三个或更多连续斜杠。

  2. 将上述命令更改为 DESTDIR=${DESTDIR:-///} && python setup.py --root=${DESTDIR} --prefix=${DESTDIR}$(prefix)

可能值得注意的是,以我的观点和对整个画面的有限理解,这些都不是必要的。由于 configure 的原始调用者能够准确指定他真正想要使用的 prefix。如果没有指定,Autoconf 已经默认为绝对路径 (/usr/local)。所以,我想,我不太明白你为什么会遇到你的问题。

关于python - Makefile 条件与 automake/autoconf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4256609/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com