答案 0 :(得分:3)
我从未亲自使用过Makepp,但由于它是GNU Make的直接替代品,你应该可以做类似的事情:
build: foo.h foo.cpp
g++ $(CFLAGS) foo.cpp -o $(LFLAGS) foo
foo.h foo.cpp: foo.lzz
lzz foo.lzz
还不确定那里的lzz调用,但这应该有所帮助。您可以在http://theory.uwinnipeg.ca/gnu/make/make_37.html了解详情。
答案 1 :(得分:2)
Lzz太神奇了!这正是我所寻找的http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c50de73b70a6a957/f3f47fcdcfb6bc09
实际上你需要的只是依赖(通常)你的链接规则中的foo.o,以及一个调用lzz的模式规则:
%.cpp %.h: %.lzz
lzz $(input)
其余部分将自动落实到位。在编译包含foo.h的任何源代码或将foo.o链接到库或程序时,首先会自动调用lzz。
Makepp还会识别是否只更改了生成文件的时间戳而不是内容,并忽略它。但是通过使用lzz选项来禁止重新创建相同的文件,可以减少要做的事情。
问候 - 丹尼尔