X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2FMakefile;h=fcf51b5d05f46ffc252d9b8eaad6a8c3ddb8d6b1;hb=50a9ed8c6207145fccf59e6a5dbbff935cd2c6d7;hp=40a37472876d4c1856a99f78120b8fa6fed6eb04;hpb=0927e99496346a4b713e454c61a5246b778a0b04;p=helm.git diff --git a/helm/software/matita/Makefile b/helm/software/matita/Makefile index 40a374728..fcf51b5d0 100644 --- a/helm/software/matita/Makefile +++ b/helm/software/matita/Makefile @@ -5,15 +5,27 @@ include ../Makefile.defs NULL = H=@ -OCAML_FLAGS = -pp $(CAMLP4O) +ifeq ($(ANNOT),true) + ANNOTOPTION = -dtypes +else + ANNOTOPTION = +endif + +OCAML_FLAGS = -pp $(CAMLP5O) -rectypes $(ANNOTOPTION) +OCAMLDEP_FLAGS = -pp $(CAMLP5O) PKGS = -package "$(MATITA_REQUIRES)" CPKGS = -package "$(MATITA_CREQUIRES)" OCAML_THREADS_FLAGS = -thread OCAML_DEBUG_FLAGS = -g +#OCAML_PROF=p -p a +#OCAMLOPT_DEBUG_FLAGS = -p OCAMLC_FLAGS = $(OCAML_FLAGS) $(OCAML_THREADS_FLAGS) -OCAMLC = $(OCAMLFIND) ocamlc $(OCAMLC_FLAGS) $(OCAML_DEBUG_FLAGS) -OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS) -OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAML_FLAGS) +OCAMLC = $(OCAMLFIND) ocamlc$(OCAML_PROF) $(OCAMLC_FLAGS) $(OCAML_DEBUG_FLAGS) +OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS) $(OCAMLOPT_DEBUG_FLAGS) +OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAMLDEP_FLAGS) +INSTALL_PROGRAMS= matita matitac +INSTALL_PROGRAMS_LINKS_MATITA= +INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitaclean matitawiki MATITA_FLAGS = -noprofile NODB=false @@ -21,161 +33,188 @@ ifeq ($(NODB),true) MATITA_FLAGS += -nodb endif -# objects for matita (GTK GUI) -CMOS = \ - buildTimeConf.cmo \ - matitaTypes.cmo \ - matitaMisc.cmo \ - matitamakeLib.cmo \ - matitaInit.cmo \ - matitaExcPp.cmo \ - matitaEngine.cmo \ - matitacLib.cmo \ - matitaScript.cmo \ - matitaGeneratedGui.cmo \ - matitaGtkMisc.cmo \ - applyTransformation.cmo \ - matitaMathView.cmo \ - matitaGui.cmo \ +MLI = \ + lablGraphviz.mli \ + matitaTypes.mli \ + matitaMisc.mli \ + applyTransformation.mli \ + matitaEngine.mli \ + matitaExcPp.mli \ + matitacLib.mli \ + matitaInit.mli \ + matitaGtkMisc.mli \ + matitaAutoGui.mli \ + virtuals.mli \ + matitaScript.mli \ + predefined_virtuals.mli \ + matitaMathView.mli \ + matitaGui.mli \ $(NULL) -# objects for matitac (batch compiler) -CCMOS = \ - buildTimeConf.cmo \ - matitaTypes.cmo \ - matitaMisc.cmo \ - matitamakeLib.cmo \ - matitaInit.cmo \ - matitaExcPp.cmo \ - matitaEngine.cmo \ - matitacLib.cmo \ +CMLI = \ + matitaTypes.mli \ + matitaMisc.mli \ + applyTransformation.mli \ + matitaEngine.mli \ + matitaExcPp.mli \ + matitacLib.mli \ + matitaInit.mli \ + matitaWiki.mli \ $(NULL) -MAINCMOS = \ - matitadep.cmo \ - matitaclean.cmo \ - matitamake.cmo \ +MAINCMLI = \ + matitadep.mli \ + matitaclean.mli \ $(NULL) -PROGRAMS_BYTE = matita matitac cicbrowser matitadep matitaclean matitamake dump_moo -PROGRAMS = $(PROGRAMS_BYTE) matitatop +# objects for matita (GTK GUI) +ML = buildTimeConf.ml matitaGeneratedGui.ml $(MLI:%.mli=%.ml) +# objects for matitac (batch compiler) +CML = buildTimeConf.ml $(CMLI:%.mli=%.ml) +MAINCML = $(MAINCMLI:%.mli=%.ml) + +PROGRAMS_BYTE = \ + matita matitac matitadep matitaclean \ + matitawiki +PROGRAMS = $(PROGRAMS_BYTE) PROGRAMS_OPT = $(patsubst %,%.opt,$(PROGRAMS_BYTE)) +NOINST_PROGRAMS = dump_moo +NOINST_PROGRAMS_OPT = $(patsubst %,%.opt,$(EXTRA_PROGRAMS)) .PHONY: all -all: $(PROGRAMS) -# all: matita.conf.xml $(PROGRAMS) coq.moo - -# matita.conf.xml: matita.conf.xml.sample -# @if diff matita.conf.xml.sample matita.conf.xml 1>/dev/null 2>/dev/null; then\ -# touch matita.conf.xml;\ -# else\ -# echo;\ -# echo "matita.conf.xml.sample is newer than matita.conf.xml";\ -# echo;\ -# echo "PLEASE update your configuration file!";\ -# echo "(copying matita.conf.xml.sample should work)";\ -# echo;\ -# false;\ -# fi - -# coq.moo: library/legacy/coq.ma matitac -# ./matitac $(MATITA_FLAGS) $< -# coq.moo.opt: library/legacy/coq.ma matitac.opt -# ./matitac.opt $(MATITA_FLAGS) $< - -ifeq ($(HAVE_OCAMLOPT),yes) +all: $(PROGRAMS) $(NOINST_PROGRAMS) +CMOS = $(ML:%.ml=%.cmo) +CCMOS = $(CML:%.ml=%.cmo) +MAINCMOS = $(MAINCML:%.ml=%.cmo) CMXS = $(patsubst %.cmo,%.cmx,$(CMOS)) CCMXS = $(patsubst %.cmo,%.cmx,$(CCMOS)) MAINCMXS = $(patsubst %.cmo,%.cmx,$(MAINCMOS)) +$(CMOS) : $(LIB_DEPS) +$(CMXOS): $(LIBX_DEPS) + LIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(MATITA_REQUIRES)) LIBX_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "native" -format "%d/%a" $(MATITA_REQUIRES)) CLIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(MATITA_CREQUIRES)) CLIBX_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "native" -format "%d/%a" $(MATITA_CREQUIRES)) -.PHONY: opt -opt: $(PROGRAMS_OPT) coq.moo.opt -.PHONY: upx -upx: $(PROGRAMS_UPX) coq.moo.opt +opt: $(PROGRAMS_OPT) $(NOINST_PROGRAMS_OPT) +upx: $(PROGRAMS_UPX) +.PHONY: opt upx +ifeq ($(HAVE_OCAMLOPT),yes) +world: depend.opt opt links else - -opt: - @echo "Native code compilation is disabled" - +world: depend all endif +#links %.opt -> % +links: + $(H)for X in $(INSTALL_PROGRAMS_LINKS_MATITAC) \ + $(INSTALL_PROGRAMS_LINKS_MATITA); do\ + ln -sf $$X.opt $$X;\ + done + $(H)ln -sf matita.opt matita + $(H)ln -sf matitac.opt matitac + +linkonly: + $(H)echo " OCAMLC matita.ml" + $(H)$(OCAMLC) $(PKGS) -linkpkg -o matita $(CMOS) $(OCAML_DEBUG_FLAGS) matita.ml + $(H)echo " OCAMLC matitac.ml" + $(H)$(OCAMLC) $(CPKGS) -linkpkg -o matitac $(CCMOS) $(MAINCMOS) $(OCAML_DEBUG_FLAGS) matitac.ml +.PHONY: linkonly matita: matita.ml $(LIB_DEPS) $(CMOS) - @echo "OCAMLC $<" + $(H)echo " OCAMLC $<" $(H)$(OCAMLC) $(PKGS) -linkpkg -o $@ $(CMOS) matita.ml matita.opt: matita.ml $(LIBX_DEPS) $(CMXS) - @echo "OCAMLOPT $<" + $(H)echo " OCAMLOPT $<" $(H)$(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(CMXS) matita.ml dump_moo: dump_moo.ml buildTimeConf.cmo - @echo "OCAMLC $<" + $(H)echo " OCAMLC $<" $(H)$(OCAMLC) $(PKGS) -linkpkg -o $@ buildTimeConf.cmo $< dump_moo.opt: dump_moo.ml buildTimeConf.cmx - @echo "OCAMLOPT $<" + $(H)echo "OCAMLOPT $<" $(H)$(OCAMLOPT) $(PKGS) -linkpkg -o $@ buildTimeConf.cmx $< matitac: matitac.ml $(CLIB_DEPS) $(CCMOS) $(MAINCMOS) - @echo "OCAMLC $<" + $(H)echo " OCAMLC $<" $(H)$(OCAMLC) $(CPKGS) -linkpkg -o $@ $(CCMOS) $(MAINCMOS) matitac.ml matitac.opt: matitac.ml $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) - @echo "OCAMLOPT $<" + $(H)echo " OCAMLOPT $<" $(H)$(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml -matitatop: matitatop.ml $(CLIB_DEPS) $(CCMOS) - @echo "OCAMLC $<" - $(H)$(OCAMLC) $(CPKGS) -linkpkg -o $@ toplevellib.cma $(CCMOS) $< +rottener: rottener.ml $(CLIB_DEPS) $(CCMOS) $(MAINCMOS) + $(H)echo " OCAMLC $<" + $(H)$(OCAMLC) $(CPKGS) -package lablgtk2 -linkpkg -o $@ $(CCMOS) $(MAINCMOS) rottener.ml +rottener.opt: rottener.ml $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) + $(H)echo " OCAMLOPT $<" + $(H)$(OCAMLOPT) $(CPKGS) -package lablgtk2 -linkpkg -o $@ $(CCMXS) $(MAINCMXS) rottener.ml +clean-rottened: + find . -type f -name "*.ma.*.rottened" -exec rm {} \; matitadep: matitac - @test -f $@ || ln -s $< $@ + $(H)test -f $@ || ln -s $< $@ matitadep.opt: matitac.opt - @test -f $@ || ln -s $< $@ + $(H)test -f $@ || ln -s $< $@ + +matitawiki: matitac + $(H)test -f $@ || ln -s $< $@ +matitawiki.opt: matitac.opt + $(H)test -f $@ || ln -s $< $@ matitaclean: matitac - @test -f $@ || ln -s $< $@ + $(H)test -f $@ || ln -s $< $@ matitaclean.opt: matitac.opt - @test -f $@ || ln -s $< $@ - -matitamake: matitac - @test -f $@ || ln -s $< $@ -matitamake.opt: matitac.opt - @test -f $@ || ln -s $< $@ - -cicbrowser: matita - @test -f $@ || ln -s $< $@ -cicbrowser.opt: matita.opt - @test -f $@ || ln -s $< $@ - -matitaGeneratedGui.ml matitaGeneratedGui.mli: matita.glade - $(LABLGLADECC) -embed $< > matitaGeneratedGui.ml - $(OCAMLC) $(PKGS) -i matitaGeneratedGui.ml > matitaGeneratedGui.mli + $(H)test -f $@ || ln -s $< $@ + +matitaGeneratedGui.ml: matita.glade + $(H)$(LABLGLADECC) -embed $< > matitaGeneratedGui.ml .PHONY: clean clean: - rm -rf *.cma *.cmo *.cmi *.cmx *.cmxa *.a *.o \ - $(PROGRAMS) \ - $(PROGRAMS_OPT) \ + $(H)rm -rf *.cma *.cmo *.cmi *.cmx *.cmxa *.a *.o \ + $(PROGRAMS) $(PROGRAMS_OPT) \ + rottener rottener.opt \ + $(NOINST_PROGRAMS) $(NOINST_PROGRAMS_OPT) \ $(PROGRAMS_STATIC) \ $(PROGRAMS_UPX) \ + *.stamp \ $(NULL) -TEST_DIRS = \ - library \ - tests \ - tests/bad_tests \ - contribs/LAMBDA-TYPES \ - contribs/PREDICATIVE-TOPOLOGY \ +.PHONY: distclean +distclean: clean + $(H)$(MAKE) -C dist/ clean + $(H)rm -f matitaGeneratedGui.ml matitaGeneratedGui.mli + $(H)rm -f buildTimeConf.ml + $(H)rm -f matita.glade.bak matita.gladep.bak + $(H)rm -f matita.conf.xml.sample + $(H)rm -rf .matita + +TEST_DIRS = \ + legacy \ + library \ + contribs/character \ + tests \ + contribs/dama/dama \ + contribs/assembly \ + contribs/CoRN \ + contribs/RELATIONAL \ + contribs/LOGIC \ + contribs/limits \ + $(NULL) + +# library_auto +TEST_DIRS_OPT = \ + $(TEST_DIRS) \ +# contribs/LAMBDA-TYPES \ $(NULL) .PHONY: tests tests.opt cleantests cleantests.opt tests: $(foreach d,$(TEST_DIRS),$(d)-test) -tests.opt: $(foreach d,$(TEST_DIRS),$(d)-test-opt) +tests.opt: $(foreach d,$(TEST_DIRS_OPT),$(d)-test-opt) cleantests: $(foreach d,$(TEST_DIRS),$(d)-cleantests) -cleantests.opt: $(foreach d,$(TEST_DIRS),$(d)-cleantests-opt) +cleantests.opt: $(foreach d,$(TEST_DIRS_OPT),$(d)-cleantests-opt) -%-test: matitac matitadep matitaclean coq.moo +%-test: matitac matitadep matitaclean -cd $* && make -k clean all -%-test-opt: matitac.opt matitadep.opt matitaclean.opt coq.moo.opt +%-test-opt: matitac.opt matitadep.opt matitaclean.opt -cd $* && make -k clean.opt opt %-cleantests: matitaclean -cd $* && make clean @@ -184,23 +223,30 @@ cleantests.opt: $(foreach d,$(TEST_DIRS),$(d)-cleantests-opt) # {{{ Distribution stuff -ifeq ($(wildcard matitac.opt),matitac.opt) -BEST=opt -else -BEST=all -endif +ifeq ($(DISTRIBUTED),yes) -stdlib: - MATITA_RT_BASE_DIR=`pwd` \ - MATITA_FLAGS="-system -conffile `pwd`/matita.conf.xml.build" \ - ./matitamake -init build_stdlib -# MATITA_RT_BASE_DIR=`pwd` \ - $(MAKE) MATITA_FLAGS="-system -conffile `pwd`/matita.conf.xml.build" -C library/ $(BEST) +dist_library: install_preliminaries + $(H)echo "depend" + $(H)cd $(WHERE)/ma/standard-library;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitadep) + $(H)echo "publish" + $(H)cd $(WHERE)/ma/standard-library;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitac -system -noinnertypes) + $(H)echo "destroy" + $(H)cd $(WHERE)/ma/standard-library;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitaclean) +# sqlite3 only + $(H)cp $(WHERE)/.matita/matita.db $(WHERE)/metadata.db || true +#$(H)rm -rf $(WHERE)/.matita/ + touch $@ + +endif + +dist_pre: matitaGeneratedGui.ml + $(MAKE) -C dist/ dist_pre -DEST = @RT_BASE_DIR@ +WHERE = $(DESTDIR)/$(RT_BASE_DIR) INSTALL_STUFF = \ icons/ \ + help/ \ matita.gtkrc \ matita.lang \ matita.ma.templ \ @@ -208,19 +254,43 @@ INSTALL_STUFF = \ matita.conf.xml \ closed.xml \ gtkmathview.matita.conf.xml \ - template_makefile.in \ - library/ \ - $(PROGRAMS_BYTE) \ + AUTHORS \ + LICENSE \ $(NULL) + +ifeq ($(HAVE_OCAMLOPT),yes) +INSTALL_STUFF_BIN = $(INSTALL_PROGRAMS:%=%.opt) +else +INSTALL_STUFF_BIN = $(INSTALL_PROGRAMS) +endif + +install-arch: install_preliminaries +install-indep: + +install_preliminaries : install_preliminaries.stamp + +install_preliminaries.stamp: + $(H)install -d $(WHERE)/ma/ + $(H)cp -a $(INSTALL_STUFF) $(WHERE) ifeq ($(HAVE_OCAMLOPT),yes) -INSTALL_STUFF += $(PROGRAMS_OPT) + $(H)install -s $(INSTALL_STUFF_BIN) $(WHERE) + $(H)for p in $(INSTALL_PROGRAMS); do ln -fs $$p.opt $(WHERE)/$$p; done +else + $(H)install $(INSTALL_STUFF_BIN) $(WHERE) endif + $(H)for p in $(INSTALL_PROGRAMS_LINKS_MATITAC); do \ + ln -fs matitac $(WHERE)/$$p;\ + done + $(H)for p in $(INSTALL_PROGRAMS_LINKS_MATITA); do \ + ln -fs matita $(WHERE)/$$p;\ + done + $(H)cp -a library/ $(WHERE)/ma/standard-library + $(H)cp -a nlibrary/ $(WHERE)/ma/new-standard-library + + $(H)touch install_preliminaries.stamp -install: - install -d $(DEST) - cp -a .matita/ - cp -a $(INSTALL_STUFF) $(DEST) uninstall: + $(H)rm -rf $(WHERE) STATIC_LINK = dist/static_link/static_link # for matita @@ -239,17 +309,25 @@ STATIC_CLIBS = \ gdome \ mysqlclient \ $(NULL) +STATIC_CLIBS_PROVER = \ + $(STATIC_CLIBS) \ + z \ + pcre \ + expat \ + xml2 \ + glib-2.0 \ + $(NULL) STATIC_EXTRA_CLIBS = PROGRAMS_STATIC = $(patsubst %,%.static,$(PROGRAMS_OPT)) PROGRAMS_UPX = $(patsubst %,%.upx,$(PROGRAMS_STATIC)) ifeq ($(HAVE_OCAMLOPT),yes) -static: $(STATIC_LINK) $(PROGRAMS_STATIC) coq.moo.opt +static: $(STATIC_LINK) $(PROGRAMS_STATIC) else upx: - @echo "Native code compilation is disabled" + $(H)echo "Native code compilation is disabled" static: - @echo "Native code compilation is disabled" + $(H)echo "Native code compilation is disabled" endif $(STATIC_LINK): @@ -271,23 +349,11 @@ matitac.opt.static: $(STATIC_LINK) $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) matitac.ml $(STATIC_EXTRA_CLIBS) strip $@ matitadep.opt.static: matitac.opt.static - @test -f $@ || ln -s $< $@ + $(H)test -f $@ || ln -s $< $@ matitaclean.opt.static: matitac.opt.static - @test -f $@ || ln -s $< $@ -matitamake.opt.static: matitac.opt.static - @test -f $@ || ln -s $< $@ -cicbrowser.opt.static: matita.opt.static - @test -f $@ || ln -s $< $@ -cicbrowser.opt.static.upx: matita.opt.static.upx - @test -f $@ || ln -s $< $@ - -.PHONY: distclean -distclean: clean - $(MAKE) -C dist/ clean - rm -f matitaGeneratedGui.ml matitaGeneratedGui.mli - rm -f buildTimeConf.ml - rm -f matita.glade.bak matita.gladep.bak - rm -f matita.conf.xml.sample + $(H)test -f $@ || ln -s $< $@ +matitawiki.opt.static: matitac.opt.static + $(H)test -f $@ || ln -s $< $@ %.upx: % cp $< $@ @@ -296,43 +362,75 @@ distclean: clean # }}} End of distribution stuff +# {{{ Deps and automatic rules tags: TAGS .PHONY: TAGS TAGS: - cd ..; otags -vi -r components/ matita/ - -#.depend: matitaGeneratedGui.ml matitaGeneratedGui.mli *.ml *.mli + $(H)cd ..; otags -vi -r components/ matita/ .PHONY: depend -depend: - $(OCAMLDEP) *.ml *.mli > .depend -include .depend +depend: + $(H)echo " OCAMLDEP" + $(H)$(OCAMLDEP) *.ml *.mli > .depend +depend.opt: + $(H)echo " OCAMLDEP -native" + $(H)$(OCAMLDEP) -native *.ml *.mli > .depend.opt + +# this should be sligtly better, since should work with 'make all opt' +MAKECMDGOALS_DELIM=$(addprefix _x_,$(addsuffix _x_,$(MAKECMDGOALS))) +ifneq (,$(findstring _x_all_x_,$(MAKECMDGOALS_DELIM))) + # if we 'make all opt' the deps for 'all' should be fine also for opt + # if we 'make opt all' it should not work... + INCLUDE_MANDATORY=yes + TO_INCLUDE+=.depend + TO_DEPEND_ON=$(LIB_DEPS) +else ifneq (,$(findstring _x_opt_x_,$(MAKECMDGOALS_DELIM))) + INCLUDE_MANDATORY=yes + TO_INCLUDE+=.depend.opt + TO_DEPEND_ON=$(LIBX_DEPS) +else ifneq (,$(findstring _x_world_x_,$(MAKECMDGOALS_DELIM))) + ifeq ($(HAVE_OCAMLOPT),yes) + INCLUDE_MANDATORY=yes + TO_INCLUDE+=.depend.opt + TO_DEPEND_ON=$(LIBX_DEPS) + else + INCLUDE_MANDATORY=yes + TO_INCLUDE+=.depend + TO_DEPEND_ON=$(LIB_DEPS) + endif +else + TO_INCLUDE+=.depend + INCLUDE_MANDATORY=no + TO_DEPEND_ON=$(LIB_DEPS) +endif + +$(MLI:%.mli=%.cmi) $(ML:%.ml=%.cmo) $(ML:%.ml=%.cmx): $(TO_DEPEND_ON) + +ifeq (no,$(INCLUDE_MANDATORY)) + -include $(TO_INCLUDE) +else + include $(TO_INCLUDE) +endif %.cmi: %.mli - @echo "OCAMLC $<" + $(H)echo " OCAMLC $<" $(H)$(OCAMLC) $(PKGS) -c $< %.cmo %.cmi: %.ml - @echo "OCAMLC $<" + $(H)echo " OCAMLC $<" $(H)$(OCAMLC) $(PKGS) -c $< %.cmx: %.ml - @echo "OCAMLOPT $<" + $(H)echo " OCAMLOPT $<" $(H)$(OCAMLOPT) $(PKGS) -c $< %.annot: %.ml - @echo "OCAMLC -dtypes $<" + $(H)echo " OCAMLC -dtypes $<" $(H)$(OCAMLC) -dtypes $(PKGS) -c $< -$(CMOS): $(LIB_DEPS) -$(CMOS:%.cmo=%.cmx): $(LIBX_DEPS) +deps.ps: deps.dot + dot -Tps -o $@ $< +deps.dot: .depend + ./dep2dot.rb < $< | tred > $@ -ifeq ($(MAKECMDGOALS),all) - $(CMOS:%.cmo=%.cmi): $(LIB_DEPS) -endif -ifeq ($(MAKECMDGOALS),) - $(CMOS:%.cmo=%.cmi): $(LIB_DEPS) -endif -ifeq ($(MAKECMDGOALS),opt) - $(CMOS:%.cmo=%.cmi): $(LIBX_DEPS) -endif +# }}} End of deps and automatic rules # vim: set foldmethod=marker: