Commit 9fe1c000 authored by Sebastian Hahn's avatar Sebastian Hahn
Browse files

Allow generating documentation from asciidoc in the Makefile

parent 3efadcd0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -109,6 +109,10 @@ AC_PROG_RANLIB
dnl autoconf 2.59 appears not to support AC_PROG_SED
AC_CHECK_PROG([SED],[sed],[sed],[/bin/false])

dnl check for asciidoc and a2x
AC_PATH_PROG([ASCIIDOC], [asciidoc], none)
AC_PATH_PROG([A2X], [a2x], none)

AC_PATH_PROG([SHA1SUM], [sha1sum], none)
AC_PATH_PROG([OPENSSL], [openssl], none)

+25 −1
Original line number Diff line number Diff line
asciidoc_files = tor-gencert

html_in = $(asciidoc_files:=.html.in)

man_in = $(asciidoc_files:=.1.in)

EXTRA_DIST = HACKING                                         \
             tor-resolve.1 tor-gencert.1                     \
             $(html_in) $(man_in) $(asciidoc_files:=.1.txt)  \
             tor-osx-dmg-creation.txt tor-rpm-creation.txt   \
             tor-win32-mingw-creation.txt torify.1

man_MANS = tor.1 tor-resolve.1 tor-gencert.1 torify.1
nodist_man_MANS = tor.1 tor-resolve.1 tor-gencert.1 torify.1 $(asciidoc_files:=.1)

doc_DATA = $(asciidoc_files:=.html)

asciidoc_product = $(nodist_man_MANS) $(doc_DATA)

SUBDIRS = design-paper spec

DIST_SUBDIRS = design-paper spec

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

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

# use ../config.status to swap all machine-specific magic strings
# in the asciidoc with their replacements.
$(asciidoc_product) :
	../config.status --file=$@;

doc/asciidoc-helper.sh

0 → 100755
+54 −0
Original line number Diff line number Diff line
#!/bin/sh

# Copyright (c) The Tor Project, Inc.
# See LICENSE for licensing information
# Run this to generate .html.in or .1.in files from asciidoc files.
# Arguments:
# html|man asciidocpath sedpath outputfile

set -e

if [ $# != 4 ]; then
  exit 1;
fi

output=$4
input=`echo $output | $3 -e 's/html\.in$/1\.txt/g' -e 's/1\.in$/1\.txt/g'`
base=`echo $output | $3 -e 's/\.html\.in$//g' -e 's/\.1\.in$//g'`

if [ "$1" = "html" ]; then
    if [ "$2" != none ]; then
      "$2" -d manpage -o $output $input;
    else
      echo "==================================";
      echo;
      echo "The manpage in html form for $base will ";
      echo "NOT be available, because asciidoc doesn't appear to be ";
      echo "installed!";
      echo;
      echo "==================================";
    fi
elif [ "$1" = "man" ]; then
    if test "$2" != none; then
      if $2 -f manpage $input; then
        mv $base.1 $output;
      else
        echo "==================================";
        echo;
        echo "a2x is installed, but some required docbook support files are";
        echo "missing. Please install docbook-xsl and docbook-xml (Debian)";
        echo "or similar.";
        echo;
        echo "==================================";
      fi;
    else
      echo "==================================";
      echo;
      echo "The manpage for $base will NOT be ";
      echo "available, because a2x doesn't appear to be installed!";
      echo;
      echo "==================================";
    fi
fi

touch $output; \