Makefile 在不同的步骤中处理不同的文件

Makefile process different files in different steps

我有以下使用 GNU autotools 的 makefile:

AUTOMAKE_OPTIONS = subdir-objects

bin_PROGRAMS = app

app_SOURCES = \
    core/main.cpp

nodist_app_SOURCES = \
    index.cpp \
    index.ecpp.js.cpp

AM_INCLUDES = -I$(top_srcdir)/src

index.cpp: index.ecpp
    $(ECPPC) index.ecpp -o index.cpp

index.ecpp.js.cpp: index.ecpp.js
    $(ECPPC) -b index.ecpp.js

index.ecpp:
    vulcanize -o index.ecpp core/view/index.html --inline --strip --csp

会发生什么(在这种情况下仅适用于 index.html):

我有很多 .html 文件需要处理,我该如何处理?

您可以使用 Suffix rules or Pattern rules。在你的情况下,两者都应该同样出色地完成工作。

唯一的区别是模式规则是 GNU-Make 特定的(与 Unix make 不兼容),尽管我链接到的 GNU 手册不鼓励使用后缀规则,可能是因为它可能的用例很多比模式规则更受限制。