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):
- vulcanize 从 .html 文件中创建一个 .ecpp 和一个 .ecpp.js 文件
- 这些新创建的文件被 ecppc 编译器编译为 .cpp 文件
- 创建的.cpp文件是用g++编译的
我有很多 .html 文件需要处理,我该如何处理?
您可以使用 Suffix rules or Pattern rules。在你的情况下,两者都应该同样出色地完成工作。
唯一的区别是模式规则是 GNU-Make 特定的(与 Unix make 不兼容),尽管我链接到的 GNU 手册不鼓励使用后缀规则,可能是因为它可能的用例很多比模式规则更受限制。
我有以下使用 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):
- vulcanize 从 .html 文件中创建一个 .ecpp 和一个 .ecpp.js 文件
- 这些新创建的文件被 ecppc 编译器编译为 .cpp 文件
- 创建的.cpp文件是用g++编译的
我有很多 .html 文件需要处理,我该如何处理?
您可以使用 Suffix rules or Pattern rules。在你的情况下,两者都应该同样出色地完成工作。
唯一的区别是模式规则是 GNU-Make 特定的(与 Unix make 不兼容),尽管我链接到的 GNU 手册不鼓励使用后缀规则,可能是因为它可能的用例很多比模式规则更受限制。