gpt4 book ai didi

python - 从 makefile 编写 makefile 的最佳方法是什么

转载 作者:太空宇宙 更新时间:2023-11-04 09:45:11 24 4
gpt4 key购买 nike

我正在尝试从 makefile 编写规则文件 (makefile),我使用 echo 命令来完成它,但是当我使用 $ 来处理这部分时,我无法弄清楚如何正确地完成它。

我试过了:

$(shell echo -e "#!/usr/bin/make -f \nPYTHON3=\"$(shell py3versions -vr)\"" >>text.txt

但是我收到错误信息说:

 py3versions: error parsing Python-Version attribute

我要写入规则文件的代码:

 #!/usr/bin/make -f 

PYTHON3=$(shell py3versions -vr)

%:
dh $@ python3 --buildsystem=python_distutils

override_dh_auto_build: $(PYTHON3:%=build-python%)

......

任何人都可以就我应该使用哪个命令来创建这样的文件提出一些建议?如果使用echo命令,$的输入方式是什么?

更新我的情况:

我正在尝试构建一个 python debian 包。上面显示的规则文件是构建它的方式。 (当然在调用其他函数之后,比如

python  setup.py sdist 

py2dsc,

然后将调用此规则(称为规则而不是 makefile)文件来构建 debian 软件包。

规则文件可以通过 py2dsc 命令自动生成,但我需要修改它以使其适用于不同版本的 python(比如 python2.* 和 python3.* )。所以我想只是从 makefile 中为 python2.* 和 python3.* 编写规则文件(它将调用 python setup.py sdist 和 py2dsc 以及这个规则文件)。

现在我面临的问题是:如何按照规则文件的方式编写 shell 命令。非常感谢!

最佳答案

使用两个美元符号 ($$) 从 make 中转义美元符号:

all:
@echo 'VAR = $$VAR'

顺便说一下,我不认为你不应该为此使用 $(shell ...) 。您没有给出 makefile 的完整示例,但如果您的 echo 命令是菜谱的一部分,请直接编写它,不要使用 $(shell ...).

另请注意:echo -e 不可移植,不能在所有 POSIX 系统上运行。我建议您改用 printf,它可以做同样的事情并且是可移植的。

关于python - 从 makefile 编写 makefile 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16899067/

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