0

是否可以在变量初始化之前通过命令“make all”执行 bash 脚本。这个想法是这个脚本编译 idls 并在 .h 和 .cpp 文件等中创建新目录。并且在这个脚本执行后必须初始化 makefile 中的变量。

BR, D

4

2 回答 2

1

这听起来不是一个好的设计,但这里有一种方法:

all:
    bash-script
    $(MAKE) other-things

other-things: some-prereq $(FOO)
    other-stuff $(BAR)
于 2013-08-22T20:58:52.893 回答
0

值得一提的是,它make支持惰性求值,这意味着它不会扩展变量,直到它们实际在命令中使用(或者如果您使用:=而不是=在分配值时使用)。这允许您修改变量直到最后一刻(当它们在命令行中使用时)。

引用此 Makefile 文档

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.
于 2013-08-28T15:58:59.080 回答