source: draft-ietf-httpbis/latest/BUILDING.txt @ 1526

Last change on this file since 1526 was 1123, checked in by julian.reschke@…, 9 years ago

add httpbis.abnf test target

File size: 1.6 KB
RevLine 
[464]1ABNF
2====
3
4The build process now uses BAP, Bill Fenner's ABNF parser.
5
6To build BAP:
7
8cd ~/abnfparser/bap
9./configure
10make
11
12If linking fails, try to change
13
14  bap:    ${OBJS}
15          ${CC} -o $@ ${DEBUG} ${OBJS} -ll
16       
17to
18
19  bap:    ${OBJS}
20          ${CC} -o $@ ${DEBUG} ${OBJS} -lfl
21         
22
23The actual build process does the following steps:
24
251) Extract ABNF
26
27Extracts the individual ABNF fragments (labeled with type="abnf2616") into
28*.abnf (using XSLT).
29
302) Parse ABNF and do 1st formatting step
31
32Parse the ABNF using BAP, sort it, and re-parse the result using BAP,
33serializing the result with folded lines for RFC production to *.parsed-abnf.
34
353) Generate Collected ABNF appendix, and check whether the src is up2date
36
37Reads both *.xml and *parsed-abnf using XSLT, generating *.abnf-appendix,
38ready for inclusion into the source. While doing so, checks that the current
39source has an up to date appendix already.
40
41This step will produce a WARNING message when the newly generated appendix
[683]42needs to be refreshed in the source. If it does, run refresh-inclusions.sh on
43the source file, or just all:
[464]44
[683]45./refresh-inclusions.sh p*.xml
[464]46
[683]474) Why not automate it?
[464]48
[683]49That would lead to circular dependencies in the Makefile. Help appreciated :-)
50
[1123]515) Combined ABNF
[683]52
[1123]53common-abnf.sh combines the multiple parts into a single ABNF, by removing
54duplicates (only when the rule is indeed the same) and by removing references
55to other parts. There's also some special-casing going on that we'll need to
56get rid of at some point of time.
57
Note: See TracBrowser for help on using the repository browser.