首页 > 解决方案 > makefile递归所有子系统总是最新的

问题描述

我正在尝试创建一个递归生成文件,但是当子目录中没有目标文件、可执行文件甚至生成文件时,生成只会报告我的所有子系统都是最新的。

    coco:
        if [ ! -f ./CoCo/makefile ]; then cp ./CoCo/Makefiles/Linux/makefile ./CoCo ;fi 
        $(MAKE) -C CoCo

    becker:
        if [ ! -f ./becker/makefile ]; then cp ./becker/Makefiles/Linux/makefile ./becker ;fi
        $(MAKE) -C becker
    ...

我想在每个子系统中做的第一件事是确保 makefile 存在,如果不存在,则从适当的位置复制它。接下来我希望它更改到子目录并执行make。

最后,我将如何使用一个命令(如(make all))来制作所有子系统?

标签: recursionmakefile

解决方案


尝试添加.PHONY: coco becker到您的开头makefile,然后它应该运行那些目标,即使存在同名的艰难目录


推荐阅读