2017-01-23 01:05:27 +01:00
#! /usr/bin/make
# Designed to be run one level up
doc-wrongdir :
$( MAKE) -C .. doc-all
MANPAGES := doc/lightning-cli.1 \
2019-08-04 15:30:44 +02:00
doc/lightningd.8 \
2018-05-17 06:46:22 +02:00
doc/lightningd-config.5 \
2021-02-02 06:16:22 +01:00
doc/lightning-addgossip.7 \
2018-03-17 16:12:37 +01:00
doc/lightning-autocleaninvoice.7 \
2018-12-07 18:31:16 +01:00
doc/lightning-check.7 \
2019-10-13 07:19:37 +02:00
doc/lightning-checkmessage.7 \
2018-04-10 08:03:15 +02:00
doc/lightning-close.7 \
2018-04-26 12:22:09 +02:00
doc/lightning-connect.7 \
2022-07-16 15:18:27 +02:00
doc/lightning-commando.7 \
doc/lightning-commando-rune.7 \
2019-11-14 17:51:28 +01:00
doc/lightning-createonion.7 \
2020-12-14 02:21:48 +01:00
doc/lightning-createinvoice.7 \
2021-08-25 04:50:12 +02:00
doc/lightning-datastore.7 \
2018-01-13 12:21:33 +01:00
doc/lightning-decodepay.7 \
2021-01-07 19:48:47 +01:00
doc/lightning-decode.7 \
2021-08-25 04:50:12 +02:00
doc/lightning-deldatastore.7 \
2018-02-26 13:37:53 +01:00
doc/lightning-delexpiredinvoice.7 \
2017-01-23 01:05:27 +01:00
doc/lightning-delinvoice.7 \
2020-08-08 17:47:53 +02:00
doc/lightning-delpay.7 \
2021-02-18 00:56:19 +01:00
doc/lightning-disableoffer.7 \
2018-12-03 06:20:25 +01:00
doc/lightning-disconnect.7 \
2022-06-24 03:39:12 +02:00
doc/lightning-emergencyrecover.7 \
2020-07-12 05:30:35 +02:00
doc/lightning-feerates.7 \
2021-01-07 19:45:47 +01:00
doc/lightning-fetchinvoice.7 \
2018-05-03 16:54:39 +02:00
doc/lightning-fundchannel.7 \
2019-06-06 01:32:04 +02:00
doc/lightning-fundchannel_start.7 \
doc/lightning-fundchannel_complete.7 \
doc/lightning-fundchannel_cancel.7 \
2021-07-15 18:48:36 +02:00
doc/lightning-funderupdate.7 \
2020-07-15 07:39:47 +02:00
doc/lightning-fundpsbt.7 \
2017-01-23 01:05:27 +01:00
doc/lightning-getroute.7 \
2020-06-29 08:28:46 +02:00
doc/lightning-hsmtool.8 \
2017-01-23 01:05:27 +01:00
doc/lightning-invoice.7 \
2020-07-01 13:35:58 +02:00
doc/lightning-keysend.7 \
2019-01-07 20:09:59 +01:00
doc/lightning-listchannels.7 \
2021-08-25 04:50:12 +02:00
doc/lightning-listdatastore.7 \
2019-01-11 23:05:46 +01:00
doc/lightning-listforwards.7 \
2018-04-26 12:22:09 +02:00
doc/lightning-listfunds.7 \
2018-01-16 21:28:46 +01:00
doc/lightning-listinvoices.7 \
2021-02-18 00:56:19 +01:00
doc/lightning-listoffers.7 \
2019-02-23 06:00:04 +01:00
doc/lightning-listpays.7 \
2018-12-05 22:38:07 +01:00
doc/lightning-listpeers.7 \
2019-02-23 06:00:04 +01:00
doc/lightning-listsendpays.7 \
2022-06-24 03:39:12 +02:00
doc/lightning-makesecret.7 \
2020-09-09 05:11:37 +02:00
doc/lightning-multifundchannel.7 \
2020-09-09 12:26:14 +02:00
doc/lightning-multiwithdraw.7 \
2018-04-26 12:22:09 +02:00
doc/lightning-newaddr.7 \
2020-10-12 07:33:50 +02:00
doc/lightning-notifications.7 \
2021-01-07 19:45:47 +01:00
doc/lightning-offer.7 \
2021-01-07 19:46:47 +01:00
doc/lightning-offerout.7 \
2021-03-09 22:14:08 +01:00
doc/lightning-openchannel_abort.7 \
2021-03-11 05:33:47 +01:00
doc/lightning-openchannel_bump.7 \
2020-09-03 20:01:45 +02:00
doc/lightning-openchannel_init.7 \
2020-09-10 21:43:40 +02:00
doc/lightning-openchannel_signed.7 \
doc/lightning-openchannel_update.7 \
2018-01-13 12:21:33 +01:00
doc/lightning-pay.7 \
2021-06-23 21:31:47 +02:00
doc/lightning-parsefeerate.7 \
2019-08-10 01:22:23 +02:00
doc/lightning-plugin.7 \
2022-06-24 03:39:12 +02:00
doc/lightning-recoverchannel.7 \
2020-06-10 02:20:18 +02:00
doc/lightning-reserveinputs.7 \
2021-01-07 19:45:47 +01:00
doc/lightning-sendinvoice.7 \
2019-11-14 17:51:28 +01:00
doc/lightning-sendonion.7 \
2021-01-14 04:36:49 +01:00
doc/lightning-sendonionmessage.7 \
2017-01-23 01:05:27 +01:00
doc/lightning-sendpay.7 \
2022-03-21 01:58:28 +01:00
doc/lightning-setchannel.7 \
2019-03-09 21:40:38 +01:00
doc/lightning-setchannelfee.7 \
2021-07-13 23:04:30 +02:00
doc/lightning-sendcustommsg.7 \
2019-10-13 07:19:37 +02:00
doc/lightning-signmessage.7 \
2022-06-24 03:39:12 +02:00
doc/lightning-staticbackup.7 \
2019-06-05 09:00:05 +02:00
doc/lightning-txprepare.7 \
doc/lightning-txdiscard.7 \
doc/lightning-txsend.7 \
2020-06-10 02:20:18 +02:00
doc/lightning-unreserveinputs.7 \
2020-08-18 04:22:53 +02:00
doc/lightning-utxopsbt.7 \
2017-01-23 01:09:43 +01:00
doc/lightning-waitinvoice.7 \
2018-03-08 01:19:55 +01:00
doc/lightning-waitanyinvoice.7 \
2019-12-26 11:19:09 +01:00
doc/lightning-waitblockheight.7 \
2018-04-26 12:12:17 +02:00
doc/lightning-waitsendpay.7 \
2020-08-21 15:59:24 +02:00
doc/lightning-withdraw.7 \
2020-08-31 14:42:28 +02:00
doc/lightning-ping.7 \
doc/lightning-stop.7 \
doc/lightning-signpsbt.7 \
doc/lightning-sendpsbt.7 \
doc/lightning-getinfo.7 \
doc/lightning-listtransactions.7 \
doc/lightning-listnodes.7 \
doc/lightning-listconfigs.7 \
doc/lightning-help.7 \
2020-09-10 21:43:40 +02:00
doc/lightning-getlog.7
2017-01-23 01:05:27 +01:00
2021-12-06 01:03:52 +01:00
doc-all : $( MANPAGES ) doc /index .rst
2021-11-04 15:13:43 +01:00
2021-12-06 01:03:52 +01:00
SCHEMAS := $( wildcard doc/schemas/*.json)
check-fmt-schemas : $( SCHEMAS :%=check -fmt -schema /%)
2022-02-05 14:38:18 +01:00
fmt-schemas : $( SCHEMAS :%=fmt -schema /%)
2021-11-04 15:13:43 +01:00
2021-12-06 01:03:52 +01:00
check-fmt-schema/% : %
@jq . < " $* " > " $* " .fmt && diff -u " $* " " $* .fmt " && rm " $* .fmt "
2022-02-05 14:38:18 +01:00
fmt-schema/% : %
@jq . < " $* " > " $* " .fmt && cat " $* " .fmt > " $* " && rm " $* .fmt "
2021-12-06 01:03:52 +01:00
check-doc : check -config -docs check -manpages check -fmt -schemas
2017-01-23 01:05:27 +01:00
2021-05-26 07:49:01 +02:00
# Some manpages use a schema, so need that added.
MARKDOWN_WITH_SCHEMA := $( shell grep -l GENERATE-FROM-SCHEMA $( MANPAGES:= .md) )
# These are hard to use in $(call) functions.
LBRACKET = (
RBRACKET = )
$(MARKDOWN_WITH_SCHEMA) : doc /lightning -%.7.md : doc /schemas /%.schema .json tools /fromschema .py
@if $( call SHA256STAMP_CHANGED) ; then $( call VERBOSE, " fromschema $@ " , tools/fromschema.py --markdownfile= $@ doc/schemas/$* .schema.json > $@ .tmp && grep -v SHA256STAMP: $@ .tmp > $@ && rm -f $@ .tmp && $( call SHA256STAMP,[ comment] : # $(LBRACKET),$(RBRACKET))); else touch $@; fi
2021-05-26 07:41:01 +02:00
# mrkd doesn't format nested lists properly, so we fixup with sed (see doc/lightning-connect.7
# and https://github.com/refi64/mrkd/issues/4
2019-08-10 01:23:11 +02:00
$(MANPAGES) : doc /%: doc /%.md
2021-05-26 07:41:01 +02:00
@if $( call SHA256STAMP_CHANGED) ; then $( call VERBOSE, " mrkd $< " , mrkd $< $@ .tmp && sed -e 's/\(.\)\.RS$$/\1\n.RS/' < $@ .tmp > $@ && rm $@ .tmp && $( call SHA256STAMP,\\ \" ,) ) ; else touch $@ ; fi
2017-01-23 01:05:27 +01:00
2021-05-21 07:16:05 +02:00
$(MANPAGES) : $( FORCE )
2021-05-26 07:49:01 +02:00
$(MARKDOWN_WITH_SCHEMA) : $( FORCE )
2020-08-31 03:13:25 +02:00
2017-01-23 01:05:27 +01:00
doc/protocol-%.svg : test /test_protocol
test/test_protocol --svg < test/commits/$* .script > $@
protocol-diagrams : $( patsubst %.script , doc /protocol -%.svg , $ ( notdir $ ( wildcard test /commits /*.script ) ) )
doc/deployable-lightning.pdf : doc /deployable -lightning .lyx doc /bitcoin .bib
lyx -E pdf $@ $<
doc/deployable-lightning.tex : doc /deployable -lightning .lyx
lyx -E latex $@ $<
state-diagrams : doc /normal -states .svg doc /simplified -states .svg doc /error -states .svg doc /full -states .svg
%.svg : %.dot
dot -Tsvg $< > $@ || ( rm -f $@ ; false )
doc/simplified-states.dot : test /test_state_coverage
test/test_state_coverage --dot --dot-simplify > $@
doc/normal-states.dot : test /test_state_coverage
test/test_state_coverage --dot > $@
doc/error-states.dot : test /test_state_coverage
test/test_state_coverage --dot-all --dot-include-errors > $@
doc/full-states.dot : test /test_state_coverage
test/test_state_coverage --dot-all --dot-include-errors --dot-include-nops > $@
maintainer-clean : doc -maintainer -clean
clean : doc -clean
2018-05-17 06:46:22 +02:00
check : check -manpages
2019-08-22 08:17:24 +02:00
# This needs plugins, too.
2022-04-12 06:59:30 +02:00
check-manpages : all -programs check -config -docs default -targets
2019-08-10 12:50:31 +02:00
@tools/check-manpage.sh cli/lightning-cli doc/lightning-cli.1.md
@tools/check-manpage.sh "lightningd/lightningd --lightning-dir=/tmp/" doc/lightningd-config.5.md
2017-01-23 01:05:27 +01:00
2021-06-16 03:12:17 +02:00
# Makes sure that fields mentioned in schema are in man page, and vice versa.
check-config-docs :
@for c in ` sed -n 's/^ "\(.*\)": {/\1/p' doc/schemas/listconfigs.schema.json | grep -v '^# version$$' | grep -v '^plugins$$' | grep -v '^important-plugins$$' ` ; do if ! grep -q " ^ \*\* $$ c\*\* " doc/lightningd-config.5.md; then echo " $$ c undocumented! " ; exit 1; fi ; done
2021-11-04 15:13:43 +01:00
@for c in ` grep -v '\[plugin ' doc/lightningd-config.5.md | sed -n 's/^ \*\*\([^*]*\)\*\*.*/\1/p' | grep -v '^\(help\|version\|mainnet\|testnet\|signet\|plugin\|important-plugin\|plugin-dir\|clear-plugins\)$$' ` ; do if ! grep -q '"' " $$ c " '"' doc/schemas/listconfigs.schema.json; then echo " $$ c documented but not in schema! " ; exit 1; fi ; done
2021-06-16 03:12:17 +02:00
2017-01-23 01:05:27 +01:00
doc-maintainer-clean :
$( RM) $( MANPAGES)
doc-clean :
$( RM) doc/deployable-lightning.{ aux,bbl,blg,dvi,log,out,tex}
2020-08-25 03:33:08 +02:00
doc/index.rst : $( MANPAGES :=.md )
@$( call VERBOSE, " genidx $@ " ,( grep -v " ^ lightning.*\.[0-9]\.md> $$ " $@ ; for m in $$ ( cd doc && ls lightningd*.[ 0-9] .md lightning-*.[ 0-9] .md) ; do echo " $$ {m%.[0-9].md} < $$ m> " ; done | $( SORT) ) > $@ .tmp.$$ $$ && mv $@ .tmp.$$ $$ $@ )