Makefile 中的引用函数?

Makefile 中的引用函数?

我正在修改 aMakefile以添加一个将用于更新和编译依赖项的命令。

我已经让make clean命令工作了。现在我试图让它在运行任何其他make命令之前运行。

我正在尝试添加all: clean,但似乎不起作用:

.PHONY: all
all: clean

.PHONY: clean
clean:
        rm -rf build

update-dep:
        mkdir -p build/package_name \
          && # do stuff here

当任何其他函数运行时,如何才能干净地运行?

答案1

好吧,我想你知道依赖关系是如何工作的,你只需将它们放在冒号后面即可。因此,一个常见的习惯用法是具有all这样的依赖关系:

all: main_program

它唯一的特别之处在于第一的文件中的目标是默认目标,因此allMakefile 开头的显式允许您设置默认目标。

如果您想将其添加main_program为依赖项,只需将其与其他项一起列出即可:main_program.oclean

all: clean main_program

update_dep: clean
    do stuff...

all: clean没有其他依赖项的列表与make all相同make clean,因此您可能想在其中添加一些其他依赖项。

在每次运行之前清理所有内容仍然不是一个好主意,因为 Make 的整个想法是它找出需要更新的文件,并且只执行更新所需的工作。clean如果您希望它每次都运行,您需要明确地坚持作为所有其他目标的依赖项。

相关内容