是否可以在变量初始化之前通过命令“make all”执行 bash 脚本。这个想法是这个脚本编译 idls 并在 .h 和 .cpp 文件等中创建新目录。并且在这个脚本执行后必须初始化 makefile 中的变量。
BR, D
这听起来不是一个好的设计,但这里有一种方法:
all:
bash-script
$(MAKE) other-things
other-things: some-prereq $(FOO)
other-stuff $(BAR)
值得一提的是,它make
支持惰性求值,这意味着它不会扩展变量,直到它们实际在命令中使用(或者如果您使用:=
而不是=
在分配值时使用)。这允许您修改变量直到最后一刻(当它们在命令行中使用时)。
A variable is evaluated when it is part of the right side of the ``:='' or the ``!=''
operator, or directly before executing a shell command which the variable is part of.
In all other cases, make(1) performs lazy evaluation, that is, variables are not
evaluated until there's no other way. The ``modifiers'' mentioned in the man page
also evaluate the variable.