123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- # AsciiDoc plugin.
- ASCIIDOC_TARGETS = $(call list_targets,asciidoc)
- .PHONY: asciidoc $(ASCIIDOC_TARGETS)
- asciidoc: $(ASCIIDOC_TARGETS)
- # Disable the Asciidoc tests requiring the DocBook toolchain
- # when Asciidoc is not installed. The toolchain is too heavy for CI.
- ifneq ($(shell which a2x),)
- asciidoc-build: init
- $i "Bootstrap a new OTP application named $(APP)"
- $t mkdir $(APP)/
- $t cp ../erlang.mk $(APP)/
- $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
- $i "Add asciideck to the local dependencies"
- $t perl -ni.bak -e 'print;if ($$.==1) {print "DOC_DEPS = asciideck\n"}' $(APP)/Makefile
- $i "Run AsciiDoc"
- $t $(MAKE) -C $(APP) asciidoc $v
- $i "Check that no documentation was generated"
- $t test ! -e $(APP)/doc/guide.pdf
- $t test ! -e $(APP)/doc/html/
- $t test ! -e $(APP)/doc/man3/
- $t test ! -e $(APP)/doc/man7/
- $i "Generate AsciiDoc documentation"
- $t mkdir -p $(APP)/doc/src/guide/ $(APP)/doc/src/manual/
- $t printf "%s\n" \
- "= Erlang.mk tests" "" \
- "Hello world!" > $(APP)/doc/src/guide/book.asciidoc
- $t printf "%s\n" \
- "= erlang_mk(3)" "" \
- "== Name" "" \
- "erlang_mk - Erlang.mk test" "" \
- "== Description" "" \
- "Hello world!" > $(APP)/doc/src/manual/erlang_mk.asciidoc
- $t printf "%s\n" \
- "= erlang_mk(7)" "" \
- "== Name" "" \
- "erlang_mk - Erlang.mk application" "" \
- "== Description" "" \
- "Summer is better than winter!" > $(APP)/doc/src/manual/erlang_mk_app.asciidoc
- $i "Run AsciiDoc"
- $t $(MAKE) -C $(APP) asciidoc $v
- $i "Check that the documentation was generated"
- $t test -f $(APP)/doc/guide.pdf
- $t test -d $(APP)/doc/html/
- $t test -f $(APP)/doc/man3/erlang_mk.3.gz
- $t test -f $(APP)/doc/man7/erlang_mk.7.gz
- $i "Distclean the application"
- $t $(MAKE) -C $(APP) distclean $v
- $i "Check that the generated documentation was removed"
- $t test ! -e $(APP)/doc/guide.pdf
- $t test ! -e $(APP)/doc/html/
- $t test ! -e $(APP)/doc/man3/
- $t test ! -e $(APP)/doc/man7/
- $i "Generate an invalid AsciiDoc file"
- $t printf "%s\n" \
- "= fail(3)" "" \
- "This will fail because the Name section is missing." > $(APP)/doc/src/manual/fail.asciidoc
- $i "Check that AsciiDoc errors out"
- $t ! $(MAKE) -C $(APP) asciidoc $v
- asciidoc-docs: init
- $i "Bootstrap a new OTP application named $(APP)"
- $t mkdir $(APP)/
- $t cp ../erlang.mk $(APP)/
- $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
- $i "Add asciideck to the local dependencies"
- $t perl -ni.bak -e 'print;if ($$.==1) {print "DOC_DEPS = asciideck\n"}' $(APP)/Makefile
- $i "Generate AsciiDoc documentation"
- $t mkdir -p $(APP)/doc/src/guide/
- $t printf "%s\n" \
- "= Erlang.mk tests" "" \
- "Hello world!" > $(APP)/doc/src/guide/book.asciidoc
- $i "Check that AsciiDoc runs on 'make docs'"
- $t $(MAKE) -C $(APP) docs $v
- $t test -f $(APP)/doc/guide.pdf
- $t test -d $(APP)/doc/html/
- asciidoc-guide: init
- $i "Bootstrap a new OTP application named $(APP)"
- $t mkdir $(APP)/
- $t cp ../erlang.mk $(APP)/
- $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
- $i "Add asciideck to the local dependencies"
- $t perl -ni.bak -e 'print;if ($$.==1) {print "DOC_DEPS = asciideck\n"}' $(APP)/Makefile
- $i "Generate AsciiDoc documentation"
- $t mkdir -p $(APP)/doc/src/guide/ $(APP)/doc/src/manual/
- $t printf "%s\n" \
- "= Erlang.mk tests" "" \
- "Hello world!" > $(APP)/doc/src/guide/book.asciidoc
- $t printf "%s\n" \
- "= erlang_mk(3)" "" \
- "== Name" "" \
- "erlang_mk - Erlang.mk test" "" \
- "== Description" "" \
- "Hello world!" > $(APP)/doc/src/manual/erlang_mk.asciidoc
- $i "Check that only the guide is generated on 'make asciidoc-guide'"
- $t $(MAKE) -C $(APP) asciidoc-guide $v
- $t test -f $(APP)/doc/guide.pdf
- $t test -d $(APP)/doc/html/
- $t test ! -e $(APP)/doc/man3/
- endif
- asciidoc-install: init
- $i "Bootstrap a new OTP application named $(APP)"
- $t mkdir $(APP)/
- $t cp ../erlang.mk $(APP)/
- $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
- $i "Add asciideck to the local dependencies"
- $t perl -ni.bak -e 'print;if ($$.==1) {print "DOC_DEPS = asciideck\n"}' $(APP)/Makefile
- $i "Only enable man pages section 3"
- $t perl -ni.bak -e 'print;if ($$.==1) {print "MAN_SECTIONS = 3\n"}' $(APP)/Makefile
- $i "Generate AsciiDoc documentation"
- $t mkdir -p $(APP)/doc/src/manual/
- $t printf "%s\n" \
- "= erlang_mk(3)" "" \
- "== Name" "" \
- "erlang_mk - Erlang.mk test" "" \
- "== Description" "" \
- "Hello world!" > $(APP)/doc/src/manual/erlang_mk.asciidoc
- $i "Build and install the man pages to $(APP)/installed/"
- $t $(MAKE) -C $(APP) install-docs MAN_INSTALL_PATH=installed/share $v
- $i "Check that the documentation was installed properly"
- $t test -f $(APP)/installed/share/man3/erlang_mk.3.gz
- asciidoc-manual: init
- $i "Bootstrap a new OTP application named $(APP)"
- $t mkdir $(APP)/
- $t cp ../erlang.mk $(APP)/
- $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
- $i "Add asciideck to the local dependencies"
- $t perl -ni.bak -e 'print;if ($$.==1) {print "DOC_DEPS = asciideck\n"}' $(APP)/Makefile
- $i "Only enable man pages section 3"
- $t perl -ni.bak -e 'print;if ($$.==1) {print "MAN_SECTIONS = 3\n"}' $(APP)/Makefile
- $i "Generate AsciiDoc documentation"
- $t mkdir -p $(APP)/doc/src/guide/ $(APP)/doc/src/manual/
- $t printf "%s\n" \
- "= Erlang.mk tests" "" \
- "Hello world!" > $(APP)/doc/src/guide/book.asciidoc
- $t printf "%s\n" \
- "= erlang_mk(3)" "" \
- "== Name" "" \
- "erlang_mk - Erlang.mk test" "" \
- "== Description" "" \
- "Hello world!" > $(APP)/doc/src/manual/erlang_mk.asciidoc
- $t printf "%s\n" \
- "= name_changed(3)" "" \
- "== Name" "" \
- "name_changed - Manual page name different than output" "" \
- "== Description" "" \
- "Name changed!" > $(APP)/doc/src/manual/change_name.asciidoc
- $i "Run 'make asciidoc-manual'"
- $t $(MAKE) -C $(APP) asciidoc-manual $v
- $i "Check that only the manual was generated"
- $t test ! -e $(APP)/doc/guide.pdf
- $t test ! -e $(APP)/doc/html/
- $t test -f $(APP)/doc/man3/erlang_mk.3.gz
- $t test -f $(APP)/doc/man3/name_changed.3.gz
|