# We use a two-step process to generate documentation from asciidoc files.
#
# First, we use asciidoc/a2x to process the asciidoc files into .1.in and
# .html.in files (see the asciidoc-helper.sh script). These are the same as
# the regular .1 and .html files, except that they still have some autoconf
# variables set in them.
#
# Second, we use config.status to turn .1.in files into .1 files and
# .html.in files into .html files.
#
# We do the steps in this order so that we can ship the .*.in files as
# part of the source distribution, so that people without asciidoc can
# just use the .1 and .html files.

all_mans = doc/man/tor doc/man/tor-gencert doc/man/tor-resolve doc/man/torify doc/man/tor-print-ed-signing-cert

if USE_ASCIIDOC
txt_in = $(all_mans:=.1.txt)

if BUILD_HTML_DOCS
html_in = $(all_mans:=.html.in)
doc_DATA = $(all_mans:=.html)
else
html_in =
doc_DATA =
endif

if BUILD_MANPAGE
nodist_man1_MANS = $(all_mans:=.1)
man_in = $(all_mans:=.1.in)
else
nodist_man1_MANS =
man_in =
endif

else

html_in =
doc_DATA =
man_in =
txt_in =
nodist_man1_MANS =

endif

EXTRA_DIST+= doc/asciidoc-helper.sh			\
	     $(html_in) $(man_in) $(txt_in)			\
	     doc/state-contents.txt				\
	     doc/torrc_format.txt 				\
	     doc/tor-doxygen.css 				\
	     doc/TUNING						\
	     doc/HACKING/README.1st.md				\
	     doc/HACKING/CodingStandards.md 			\
	     doc/HACKING/CodingStandardsRust.md			\
	     doc/HACKING/Fuzzing.md				\
	     doc/HACKING/GettingStarted.md 			\
	     doc/HACKING/GettingStartedRust.md 			\
	     doc/HACKING/HelpfulTools.md 			\
	     doc/HACKING/HowToReview.md  			\
	     doc/HACKING/Module.md				\
	     doc/HACKING/ReleasingTor.md                        \
	     doc/HACKING/WritingTests.md
	     doc/HACKING/tracing/Tracing.md				\
	     doc/HACKING/tracing/EventsCircuit.md

docdir = @docdir@

asciidoc_product = $(nodist_man1_MANS) $(doc_DATA)

# Generate the html documentation from asciidoc, but don't do
# machine-specific replacements yet
$(html_in) :
	$(AM_V_GEN)$(top_srcdir)/doc/asciidoc-helper.sh html @ASCIIDOC@ $(top_srcdir)/$@

# Generate the manpage from asciidoc, but don't do
# machine-specific replacements yet
$(man_in) :
	$(AM_V_GEN)$(top_srcdir)/doc/asciidoc-helper.sh man @A2X@ $(top_srcdir)/$@

doc/man/tor.1.in: doc/man/tor.1.txt
doc/man/torify.1.in: doc/man/torify.1.txt
doc/man/tor-gencert.1.in: doc/man/tor-gencert.1.txt
doc/man/tor-resolve.1.in: doc/man/tor-resolve.1.txt
doc/man/tor-print-ed-signing-cert.1.in: doc/man/tor-print-ed-signing-cert.1.txt

doc/man/tor.html.in: doc/man/tor.1.txt
doc/man/torify.html.in: doc/man/torify.1.txt
doc/man/tor-gencert.html.in: doc/man/tor-gencert.1.txt
doc/man/tor-resolve.html.in: doc/man/tor-resolve.1.txt
doc/man/tor-print-ed-signing-cert.html.in: doc/man/tor-print-ed-signing-cert.1.txt

# use config.status to swap all machine-specific magic strings
# in the asciidoc with their replacements.
$(asciidoc_product) :
	$(AM_V_GEN)$(MKDIR_P) $(@D)
	$(AM_V_at)if test -e $(top_srcdir)/$@.in && ! test -e $@.in ; then \
		cp $(top_srcdir)/$@.in $@; \
	fi
	$(AM_V_at)$(top_builddir)/config.status -q --file=$@;

doc/man/tor.html: doc/man/tor.html.in
doc/man/tor-gencert.html: doc/man/tor-gencert.html.in
doc/man/tor-resolve.html: doc/man/tor-resolve.html.in
doc/man/tor-print-ed-signing-cert.html: doc/man/tor-print-ed-signing-cert.html.in
doc/man/torify.html: doc/man/torify.html.in

doc/man/tor.1: doc/man/tor.1.in
doc/man/tor-gencert.1: doc/man/tor-gencert.1.in
doc/man/tor-resolve.1: doc/man/tor-resolve.1.in
doc/man/tor-print-ed-signing-cert.1: doc/man/tor-print-ed-signing-cert.1.in
doc/man/torify.1: doc/man/torify.1.in

CLEANFILES+= $(asciidoc_product)
DISTCLEANFILES+= $(html_in) $(man_in)
