diff --git a/doc/HACKING.md b/doc/HACKING.md index 7aa7ec1d4..0e551789e 100644 --- a/doc/HACKING.md +++ b/doc/HACKING.md @@ -244,6 +244,17 @@ parts of the code: This has to be the *first* field of the structure, or else `dev-memleak` command will think your structure has leaked. + +Protocol Modifications +---------------------- + +The source tree contains CSV files extracted from the v1.0 BOLT +specifications (wire/extracted_peer_wire_csv and +wire/extracted_onion_wire_csv). You can regenerate these by setting +`BOLTDIR` and `BOLTVERSION` appropriately, and running `make +extract-bolt-csv`. + + Further Information ------------------- diff --git a/wire/Makefile b/wire/Makefile index ba939f643..e928efcd4 100644 --- a/wire/Makefile +++ b/wire/Makefile @@ -28,18 +28,16 @@ ALL_GEN_HEADERS += $(WIRE_GEN_HEADERS) # They may not have the bolts. BOLT_EXTRACT=$(LOCAL_BOLTDIR)/tools/extract-formats.py -ifeq ($(DEVELOPER),1) -wire/gen_peer_wire_csv: bolt-precheck - @set -e; if [ -d $(LOCAL_BOLTDIR) ]; then for f in $(LOCAL_BOLTDIR)/0[127]*.md $(BOLT_EXTRACT); do if [ $$f -nt $@ -o ! -f $@ ]; then $(BOLT_EXTRACT) --message-fields --message-types $(LOCAL_BOLTDIR)/0[127]*.md > $@; break; fi; done; fi +# Explicit command to re-extract CSV from BOLTs. +extract-bolt-csv: bolt-precheck + @$(BOLT_EXTRACT) --message-fields --message-types $(LOCAL_BOLTDIR)/0[127]*.md > wire/extracted_peer_wire_csv + @echo '#include ' > wire/extracted_onion_wire_csv + @$(BOLT_EXTRACT) --message-fields --message-types $(LOCAL_BOLTDIR)/04*.md >> wire/extracted_onion_wire_csv -wire/gen_onion_wire_csv: bolt-precheck - @set -e; if [ -f $(BOLT_EXTRACT) ]; then for f in $(LOCAL_BOLTDIR)/04*.md $(BOLT_EXTRACT); do if [ $$f -nt $@ -o ! -f $@ ]; then echo '#include ' > $@ && $(BOLT_EXTRACT) --message-fields --message-types $(LOCAL_BOLTDIR)/04*.md >> $@; break; fi; done; fi -endif - -wire/gen_peer_wire.h: $(WIRE_GEN) wire/gen_peer_wire_csv +wire/gen_peer_wire.h: $(WIRE_GEN) wire/extracted_peer_wire_csv $(WIRE_GEN) --bolt --header $@ wire_type < wire/gen_peer_wire_csv > $@ -wire/gen_peer_wire.c: $(WIRE_GEN) wire/gen_peer_wire_csv +wire/gen_peer_wire.c: $(WIRE_GEN) wire/extracted_peer_wire_csv $(WIRE_GEN) --bolt ${@:.c=.h} wire_type < wire/gen_peer_wire_csv > $@ wire/gen_onion_wire.h: $(WIRE_GEN) wire/gen_onion_wire_csv diff --git a/wire/gen_onion_wire_csv b/wire/extracted_onion_wire_csv similarity index 100% rename from wire/gen_onion_wire_csv rename to wire/extracted_onion_wire_csv diff --git a/wire/gen_peer_wire_csv b/wire/extracted_peer_wire_csv similarity index 100% rename from wire/gen_peer_wire_csv rename to wire/extracted_peer_wire_csv