gpt4 book ai didi

Makefile - 获取传递给 make 的参数

转载 作者:行者123 更新时间:2023-12-04 12:18:59 26 4
gpt4 key购买 nike

我有一个像这样的makefile:

.SILENT: #don't echo commands as we run them.

###
# here, set $1 (in the latter bash script) to the first make arg.
# $2 to the second one.
# et cetera.
# ($0 being set properly is optional)
###

foo:
echo "you passed to make: $1 $2 $3 $4 $5 $6"

所以我可以这样做:
make foo
You passed to make: foo

(不要告诉任何人,但我正在创造一个“让我做一个三明治”的东西)

最佳答案

不,您无法“看到” 的完整参数列表。制作 Makefile 中的命令。您可以按照在命令行中输入的顺序查看“目标”列表,例如

make a   c b   d

将产生 $(MAKECMDGOALS) a c b d .

您可以专门检查 上是否设置了某些内容。制作 命令行,例如
make A=B C=D

将产生 $(A) B , 和 $(C) D .但你永远不会知道它是否是 make A=B C=Dmake C=D A=Bmake A=F -B C=D A=B .

如果它真的很重要,您可以将您的 make 包装在一个 shell 脚本中,并拥有它的全部功能:
make.sh a A=B c

电话
#!/bin/bash
make MAKECMDLINE="$*" $*

现在在 Makefile 中,您可以解析 $(MAKECMDLINE) 如你所愿。

请注意,某些命令行选项可能会禁用您的解析器,例如
make A=B C=D -h

永远不会读取您的 Makefile,并且
make A=B C=D -f /dev/null

也会忽略你的 Makefile。

关于Makefile - 获取传递给 make 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34500003/

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