From f462137ac21efb76fd826220d493e8c5580ad49d Mon Sep 17 00:00:00 2001 From: David Allsopp Date: Sun, 3 Sep 2017 15:02:15 +0100 Subject: [PATCH] Fix opam-admin.top Two problems from the Jbuilder upgrade: 1. opam_admin_top.cmi should be installed 2. Opam_admin_top functions were not available, because Topmain was invoked from within Opam_admin_top. Signed-off-by: David Allsopp --- Makefile | 4 ++-- src/tools/dune | 22 +++++++++++++++------- src/tools/opam_admin_top.ml | 2 -- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index a769eb9dfd0..cc3d1a9da31 100644 --- a/Makefile +++ b/Makefile @@ -53,8 +53,8 @@ opam-installer: $(DUNE_DEP) $(LN_S) -f _build/default/src/tools/opam_installer.exe $@$(EXE) opam-admin.top: $(DUNE_DEP) - $(DUNE) build --profile=$(DUNE_PROFILE) $(DUNE_ARGS) src/tools/opam_admin_top.bc - $(LN_S) -f _build/default/src/tools/opam_admin_top.bc $@$(EXE) + $(DUNE) build --profile=$(DUNE_PROFILE) $(DUNE_ARGS) src/tools/opam_admin_topstart.bc + $(LN_S) -f _build/default/src/tools/opam_admin_topstart.bc $@$(EXE) lib-ext: $(MAKE) -j -C src_ext lib-ext diff --git a/src/tools/dune b/src/tools/dune index 5a8161894da..68b3308ab91 100644 --- a/src/tools/dune +++ b/src/tools/dune @@ -1,17 +1,25 @@ -(executable +(library (name opam_admin_top) + (public_name opam-admin.top) + (synopsis "OCaml Package Manager admin toplevel") (modules opam_admin_top) + (libraries opam-client opam-file-format compiler-libs.toplevel re) + (wrapped false)) + +(executable + (name opam_admin_topstart) + (public_name opam-admin.top) + (package opam-admin) + (modes byte) + (modules opam_admin_topstart) + (libraries opam-admin.top) (ocamlc_flags (:standard (:include ../ocaml-flags-standard.sexp) (:include ../ocaml-flags-configure.sexp) (:include ../ocaml-context-flags.sexp) - -linkall)) - (libraries opam-client opam-file-format compiler-libs.toplevel re)) + -linkall))) -(install - (section bin) - (package opam-admin) - (files (opam_admin_top.bc as opam-admin.top))) +(rule (with-stdout-to opam_admin_topstart.ml (echo "include Opam_admin_top\n\nlet _ = Topmain.main ()"))) (executable (name opam_check) diff --git a/src/tools/opam_admin_top.ml b/src/tools/opam_admin_top.ml index 6c5689b5488..8f7a47ad09d 100644 --- a/src/tools/opam_admin_top.ml +++ b/src/tools/opam_admin_top.ml @@ -128,5 +128,3 @@ let filter fn patterns = List.exists (fun re -> OpamStd.String.exact_match re str) regexps let filter_packages = filter OpamPackage.to_string - -let _ = Topmain.main ()