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

2024-10-03 06:32:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个makefile写一个规则文件(makefile),我用echo命令来做, 但是当我拿着$来做这件事的时候,我不知道该怎么做。在

我试过了:

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

但我收到了一条错误信息:

^{pr2}$

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

 #!/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,

然后调用这个规则(称为rules而不是makefile)文件来构建debian包。在

规则文件可以由py2dsc命令自动生成,但我需要修改它以使其适用于不同版本的python(例如python2.*和python3.*)。所以我想从makefile(它将调用python)编写规则文件设置.pysdist和py2dsc以及此规则文件),用于python2.*和python3.*。在

现在我面临一个问题:如何将shell命令以这种方式写入规则文件。谢谢!在


Tags: 文件命令echomakebin规则usrshell
1条回答
网友
1楼 · 发布于 2024-10-03 06:32:01

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

all:
         @echo 'VAR = $$VAR'

顺便说一句,你不应该用$(shell ...)来做这个我不认为。您没有给出makefile的完整示例,但是如果您的echo命令是配方的一部分,请直接编写它,不要使用$(shell ...)。在

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

相关问题 更多 >