我有一个src/apps/myapp/myapp
程序,我正在构建作为 automake 规则的一部分,它工作正常。
然后我在 Makefile 规则中使用它来生成 HTML 文件,例如:
.src.html: src/apps/myapp/myapp
src/apps/myapp/myapp --html $< > /tmp/generated && \
mv /tmp/generated $@
html: data/src/example.html src/apps/myapp/myapp
这是因为它在运行时构建和src/apps/myapp/myapp
生成:data/src/example.html
data/src/example.src
make html
更改时data/src/example.src
,它会正确地重新生成data/src/example.html
.
问题是,如果src/apps/myapp/myapp
发生变化,它不会重新生成data/src/example.html
. 此外,该src/apps/myapp/myapp
程序是在 HTML 文件之后构建的(即它只使用html
目标依赖项而不是.src.html
规则依赖项)。
更新:
使用 GNU Make,我可以改变:
.src.html: src/apps/myapp/myapp
到:
%.html : %.src src/apps/myapp/myapp
这按预期工作,但依赖于 GNU make 扩展。我可以以便携的方式做到这一点吗?