在编译之前系统地清理文件

时间:2013-12-16 11:11:50

标签: makefile ocaml

以下是我makefile的一部分:

all:    $(CMX_DOMAIN) 
        analyze

clean:
    rm -rf */*.o */*.cmo */*.cmi */*.cmx */*.cma */*.cmxa */*.cmo */*.cmi */*.annot \
      $(AUTOGEN) */*~ */*.log */*.output depend analyze print batch

修改代码后,我需要在启动make clean之前键入make。否则,通常存在依赖性不一致的问题。

现在我想修改makefile,以便在clean每次调用之前系统地完成all。然后我写了

all:    clean
        $(CMX_DOMAIN) 
        analyze

当我启动make时,在清理文件后,它会给我一个错误/bin/bash: values/consts_bool.cmx: No such file or directory,其中values/consts_bool是文件列表中的第一个组件。这很奇怪,因为这个文件不存在是正常的,应该在之后生成。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

你的意思是

all: clean $(CMX_DOMAIN)

在一条线上。

我不特别推荐这个,因为删除所有构建的文件否定了Make的主要目的。如果您不想保留文件,为什么使用Make?

作为构建基础设施时的临时修复,可能会有所帮助。