强制Makefile中的一条必须执行

一个工程有多个子目录。每个子目录下都有一个Makefile,将该子目录下的源代码编译为一个.o文件。根目录下的Makefile控制将这些.o链接到一起形成最终的执行文件。执行文件只依赖.o文件,对每个.o的处理规则都是进入其子目录然后make。这种布局会遇到一个问题,就是子目录里有源码的修改,根目录Makefile定义的依赖关系里检测不到,就不会重新编译。被这个问题困扰很久,今天看qt的Makefile,发现了一个很巧的解决方法。

subdir1/sub1.o: FORCE
    cd subdir1 && make
 
subdir2/sub2.o: FORCE
    cd subdir2 && make
 
FORCE:

发表评论

电子邮件地址不会被公开。 必填项已用*标注