diff options
-rw-r--r-- | Makefile.am | 20 | ||||
-rw-r--r-- | Makefrag.am | 1 | ||||
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | doc/Makefrag.am | 23 | ||||
-rw-r--r-- | tools/m4/ax_check_a2x.m4 | 5 | ||||
-rw-r--r-- | tools/m4/ax_check_asciidoc.m4 | 5 |
6 files changed, 59 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am index 08511002..809e5a2f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,6 +2,7 @@ EXTRA_DIST = MOSTLYCLEANFILES = AM_CPPFLAGS = AM_CFLAGS = +SUFFIXES = AM_CPPFLAGS += -pipe AM_CPPFLAGS += -imacros config.h @@ -36,12 +37,27 @@ AM_CFLAGS += -fno-stack-protector AM_CFLAGS += -nostdlib -SUFFIXES = .lds .lds.S +SUFFIXES += .lds .lds.S .lds.S.lds: $(AM_V_GEN)$(CPP) -P $(AM_CPPFLAGS) -o $@ $< -exec_bootdir = $(exec_prefix)/boot +ASCIIDOC_FLAGS = -d manpage -a revnumber=@PACKAGE_VERSION@ +A2X_FLAGS = -d manpage -a revnumber=@PACKAGE_VERSION@ + +SUFFIXES += .9 .9.html .9.xml .9.txt + +.9.txt.9.html: + $(AM_V_GEN)$(ASCIIDOC) $(ASCIIDOC_FLAGS) -b html5 -o $(abs_top_builddir)/$@ $< + +# Expose intermediate DocBook files for correct parallel builds. +.9.txt.9.xml: + $(AM_V_GEN)$(ASCIIDOC) $(ASCIIDOC_FLAGS) -b docbook -o $(abs_top_builddir)/$@ $< + +.9.xml.9: + $(AM_V_GEN)$(A2X) $(A2X_FLAGS) -f manpage --xsltproc-opts="-o $(abs_top_builddir)/$@" $< + +exec_bootdir = /boot exec_boot_PROGRAMS = x15 x15_DEPENDENCIES = arch/$(arch)/x15.lds MOSTLYCLEANFILES += arch/$(arch)/x15.lds diff --git a/Makefrag.am b/Makefrag.am index f4f8f631..b16fd8f5 100644 --- a/Makefrag.am +++ b/Makefrag.am @@ -1,4 +1,5 @@ include arch/x86/Makefrag.am +include doc/Makefrag.am EXTRA_DIST += tools/qemu.sh diff --git a/configure.ac b/configure.ac index 6bd2e8b7..9dd3bc0b 100644 --- a/configure.ac +++ b/configure.ac @@ -4,18 +4,24 @@ AC_CONFIG_SRCDIR([kern/config.h]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([tools/m4]) +# Artificially create the doc subdirectory since Automake apparently +# won't do it itself. +AC_CONFIG_COMMANDS([doc/.empty]) + AM_INIT_AUTOMAKE([foreign subdir-objects 1.11]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) -AC_PREFIX_DEFAULT([]) AC_CANONICAL_HOST AC_PROG_CPP AC_PROG_CC AM_PROG_AS AM_PROG_CC_C_O +AX_CHECK_ASCIIDOC([AC_MSG_NOTICE([asciidoc not found, not building html documentation])]) +AX_CHECK_A2X([AC_MSG_NOTICE([a2x not found, not building man pages])]) + # Disable PIE if enabled by default AX_APPEND_COMPILE_FLAGS([-no-pie -fno-pie]) diff --git a/doc/Makefrag.am b/doc/Makefrag.am new file mode 100644 index 00000000..0518f6f1 --- /dev/null +++ b/doc/Makefrag.am @@ -0,0 +1,23 @@ +x15_DOCS = + +x15_SOURCES += $(x15_DOCS) + +if HAVE_ASCIIDOC + +html_DATA = $(x15_DOCS:%.9.txt=%.9.html) +MOSTLYCLEANFILES += $(html_DATA) + +html: $(html_DATA) +.PHONY: html + +endif HAVE_ASCIIDOC + +if HAVE_A2X + +man9_MANS = $(x15_DOCS:%.9.txt=%.9) +MOSTLYCLEANFILES += $(man9_MANS) + +man: $(man9_MANS) +.PHONY: man + +endif HAVE_A2X diff --git a/tools/m4/ax_check_a2x.m4 b/tools/m4/ax_check_a2x.m4 new file mode 100644 index 00000000..438e2478 --- /dev/null +++ b/tools/m4/ax_check_a2x.m4 @@ -0,0 +1,5 @@ +AC_DEFUN([AX_CHECK_A2X], + [AC_ARG_VAR([A2X], [path to a2x command]) + AC_CHECK_PROG([A2X], [a2x], [a2x]) + AS_IF([test x"$A2X" = x], [$1]) + AM_CONDITIONAL([HAVE_A2X], [test x"$A2X" != x])]) diff --git a/tools/m4/ax_check_asciidoc.m4 b/tools/m4/ax_check_asciidoc.m4 new file mode 100644 index 00000000..5f6132ac --- /dev/null +++ b/tools/m4/ax_check_asciidoc.m4 @@ -0,0 +1,5 @@ +AC_DEFUN([AX_CHECK_ASCIIDOC], + [AC_ARG_VAR([ASCIIDOC], [path to asciidoc command]) + AC_CHECK_PROG([ASCIIDOC], [asciidoc], [asciidoc]) + AS_IF([test x"$ASCIIDOC" = x], [$1]) + AM_CONDITIONAL([HAVE_ASCIIDOC], [test x"$ASCIIDOC" != x])]) |