From 9eb215055e1fc4c03f1076c06b34240859d6f17f Mon Sep 17 00:00:00 2001 From: Jeremie Dimino Date: Fri, 2 Jun 2017 18:25:20 +0100 Subject: [PATCH] Remove the use of (foreach ...) in doc/jbuild --- Makefile | 23 +++++++++++- doc/jbuild | 106 ++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 110 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 82f46532..8b2fcdf6 100644 --- a/Makefile +++ b/Makefile @@ -22,10 +22,29 @@ all-supported-ocaml-versions: $(BIN) build @install @runtest --workspace jbuild-workspace.dev --root . clean: - -$(BIN) clean - -rm -f ./boot.exe + $(BIN) clean + rm -f ./boot.exe doc: cd doc && sphinx-build . _build +CMDS = $(shell $(BIN) --help=plain | \ + sed -n '/COMMANDS/,/OPTIONS/p' | sed -En 's/^ ([a-z-]+)/\1/p') + +update-jbuilds: $(BIN) + sed -n '1,/;;GENERATED/p' doc/jbuild > doc/jbuild.tmp + { for cmd in $(CMDS); do \ + echo -ne "\n"\ + "(rule\n"\ + " ((targets (jbuilder-$$cmd.1))\n"\ + " (action (with-stdout-to $$""{@}\n"\ + " (run $$""{bin:jbuilder} $$cmd --help=groff)))))\n"\ + "\n"\ + "(install\n"\ + " ((section man)\n"\ + " (files (jbuilder-$$cmd.1))))\n"; \ + done } >> doc/jbuild.tmp + rm -f doc/jbuild + mv doc/jbuild.tmp doc/jbuild + .PHONY: default install uninstall reinstall clean test doc diff --git a/doc/jbuild b/doc/jbuild index 22c4470d..8798ba17 100644 --- a/doc/jbuild +++ b/doc/jbuild @@ -9,23 +9,95 @@ ((section man) (files (jbuilder.1)))) -(foreach ${cmd} - (build - external-lib-deps - install - installed-libraries - runtest - clean - uninstall - exec - subst - rules) +;; Run "make update-jbuilds" to update the rest of this file +;;GENERATED - (rule - ((targets (jbuilder-${cmd}.1)) +(rule + ((targets (jbuilder-build.1)) (action (with-stdout-to ${@} - (run ${bin:jbuilder} ${cmd} --help=groff))))) + (run ${bin:jbuilder} build --help=groff))))) - (install - ((section man) - (files (jbuilder-${cmd}.1))))) +(install + ((section man) + (files (jbuilder-build.1)))) + +(rule + ((targets (jbuilder-clean.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} clean --help=groff))))) + +(install + ((section man) + (files (jbuilder-clean.1)))) + +(rule + ((targets (jbuilder-exec.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} exec --help=groff))))) + +(install + ((section man) + (files (jbuilder-exec.1)))) + +(rule + ((targets (jbuilder-external-lib-deps.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} external-lib-deps --help=groff))))) + +(install + ((section man) + (files (jbuilder-external-lib-deps.1)))) + +(rule + ((targets (jbuilder-install.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} install --help=groff))))) + +(install + ((section man) + (files (jbuilder-install.1)))) + +(rule + ((targets (jbuilder-installed-libraries.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} installed-libraries --help=groff))))) + +(install + ((section man) + (files (jbuilder-installed-libraries.1)))) + +(rule + ((targets (jbuilder-rules.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} rules --help=groff))))) + +(install + ((section man) + (files (jbuilder-rules.1)))) + +(rule + ((targets (jbuilder-runtest.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} runtest --help=groff))))) + +(install + ((section man) + (files (jbuilder-runtest.1)))) + +(rule + ((targets (jbuilder-subst.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} subst --help=groff))))) + +(install + ((section man) + (files (jbuilder-subst.1)))) + +(rule + ((targets (jbuilder-uninstall.1)) + (action (with-stdout-to ${@} + (run ${bin:jbuilder} uninstall --help=groff))))) + +(install + ((section man) + (files (jbuilder-uninstall.1))))