Makefile以不同的步骤处理不同的文件

时间:2015-02-28 20:12:03

标签: c++ makefile gnu autotools tntnet

我使用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文件,我该如何实现呢?

1 个答案:

答案 0 :(得分:2)

您可以使用Suffix rulesPattern rules。在你的情况下,两者都应该同样做好。

唯一的区别是模式规则是GNU-Make特定的(与Unix make不兼容),虽然我链接的GNU手册不鼓励使用后缀规则,可能是因为它可能的用例更加有限而不是模式规则。