是否可以通过命令'make all'在变量初始化之前执行bash脚本。这个想法是这个脚本编译idls并在whitch中创建新的目录.h和.cpp文件等。在执行这个脚本之后,必须初始化makefile中的变量。
BR, d
答案 0 :(得分:1)
这听起来不是一个好的设计,但这是一种方法:
all:
bash-script
$(MAKE) other-things
other-things: some-prereq $(FOO)
other-stuff $(BAR)
答案 1 :(得分:0)
值得一提的是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.