Makefile 重复推理规则
myMakefile 重复推理规则,makefile,ocaml,Makefile,Ocaml,mymakefile中有以下几种推理规则: %.ml: %.mll $(OCAMLLEX) $*.mll %.ml %.mli: %.mly $(OCAMLYACC) $*.mly %.cmo: %.ml %.cmi $(OCAMLC) $(OCAMLFLAGS) -c $*.ml %.cmx: %.ml %.cmi $(OCAMLOPT) $(OCAMLFLAGS) -c $*.ml %.cmi: %.mli $(OCAMLC) $(OCAMLFLAGS
makefile
中有以下几种推理规则:
%.ml: %.mll
$(OCAMLLEX) $*.mll
%.ml %.mli: %.mly
$(OCAMLYACC) $*.mly
%.cmo: %.ml %.cmi
$(OCAMLC) $(OCAMLFLAGS) -c $*.ml
%.cmx: %.ml %.cmi
$(OCAMLOPT) $(OCAMLFLAGS) -c $*.ml
%.cmi: %.mli
$(OCAMLC) $(OCAMLFLAGS) -c $*.mli
%.cmo: %.ml
$(OCAMLC) $(OCAMLFLAGS) -c $*.ml
%.cmx: %.ml
$(OCAMLOPT) $(OCAMLFLAGS) -c $*.ml
我只是想知道那边有没有复制品。例如,
%有两个规则。cmx
,哪个规则算数?是否应.cmx
取决于.cmi
我不是make
方面的专家,但据我所知,如果make
发现满足所有先决条件的规则,它将使用它。因此,您与cmi的规则将不会被接受
至于问题的ocaml部分,cmx
,应取决于cmi
,如果存在mli
,如果不存在,则不是故障,ocaml不会检查模块接口。用make语言来表达这一点并不容易
我建议您要么使用现有的Makefile解决方案,要么使用
ocamlbuild
,甚至oasis
。事实上,我强烈反对重新设计构建系统。首先,你把宝贵的时间花在一项已经解决的任务上。其次,您的解决方案仍将落后于现有的解决方案,主要原因是缺乏测试和总体努力。有太多错误打包的ocaml包,所有这些包都使用它们的定制和错误构建系统。不要重新发明自行车,只要学会骑:)我不是make
方面的专家,但据我所知,如果make
找到一条满足所有先决条件的规则,它就会使用它。因此,您与cmi的规则将不会被接受
至于问题的ocaml部分,cmx
,应取决于cmi
,如果存在mli
,如果不存在,则不是故障,ocaml不会检查模块接口。用make语言来表达这一点并不容易
我建议您要么使用现有的Makefile解决方案,要么使用ocamlbuild
,甚至oasis
。事实上,我强烈反对重新设计构建系统。首先,你把宝贵的时间花在一项已经解决的任务上。其次,您的解决方案仍将落后于现有的解决方案,主要原因是缺乏测试和总体努力。有太多错误打包的ocaml包,所有这些包都使用它们的定制和错误构建系统。不要重新发明自行车,只要学会骑:)