如何为 make 本身生成的头文件正确编写 gmake 规则?
假设我可以通过 domake BUILDTYPE=1
并且 buildtype.h 将被创建并填充
#define BUILDTYPE 1
Makefile 将简单地执行以下操作:
buildtype.h:
echo #define BUILDTYPE 1 > TMPFILE
//pseudo code:
if(TMPFILE != buildtype.h)
cat TMPFILE > buildtype.h
我需要确保这个过程不会对每个 cpp 文件重复 1000 次,并且我想确保这个过程至少会执行一次
我要确保的是该规则始终运行且仅运行一次。也就是说,即使 buidtype.h 存在,它仍然必须运行。我有自动依赖跟踪,它应该只在 make 运行时触发这个规则一次。
也就是说,如果我运行 make BUILDTYPE=2 并且无事可做,它仍然必须为 buildtype.h 运行该规则,并且如果 buildtype.h 将由该规则更新,它应该重新编译所有文件。
gmake可以做到这样的事情吗?