make/Docs.gmk
branchihse-manpages-branch
changeset 56977 9221e7c3bf36
parent 56971 b45304f16437
child 57000 03413eb7301f
--- a/make/Docs.gmk	Tue Oct 16 12:02:45 2018 +0200
+++ b/make/Docs.gmk	Wed Oct 17 11:41:33 2018 +0200
@@ -28,6 +28,7 @@
 include MakeBase.gmk
 include Modules.gmk
 include ProcessMarkdown.gmk
+include TextFileProcessing.gmk
 include ZipArchive.gmk
 include $(TOPDIR)/make/ToolsJdk.gmk
 include $(TOPDIR)/make/ModuleTools.gmk
@@ -558,6 +559,25 @@
   )
 
   ifeq ($(ENABLE_MAN_PAGES), true)
+    PANDOC_FILTER := $(SUPPORT_OUTPUTDIR)/docs/pandoc-manpage-filter
+    PANDOC_FILTER_SETUP := $(SUPPORT_OUTPUTDIR)/docs/_pandoc_filter_setup.marker
+
+    # Create a usable instance of the wrapper script that calls the pandoc filter
+    # (which is written in javascript).
+    $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_FILTER, \
+        SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-manpage-filter.sh.template, \
+        OUTPUT_FILE := $(PANDOC_FILTER), \
+        REPLACEMENTS := \
+            @@BOOT_JDK@@ => $(BOOT_JDK) ; \
+            @@TOPDIR@@ => $(TOPDIR) ; \
+            @@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \
+    ))
+
+    # Created script must be made executable
+    $(PANDOC_FILTER_SETUP): $(CREATE_PANDOC_FILTER)
+	$(CHMOD) a+rx $(PANDOC_FILTER)
+	$(TOUCH) $@
+
     # We assume all man pages should reside in section 1
 
     # Generate man pages from markdown
@@ -571,6 +591,8 @@
               FILES := $(filter %.md, $(call CacheFind, $d)), \
               DEST := $(DOCS_OUTPUTDIR)/man/man1, \
               FORMAT := man, \
+              EXTRA_DEPS := $(PANDOC_FILTER_SETUP), \
+              FILTER := $(PANDOC_FILTER), \
           )) \
         ) \
         $(eval MAN_PAGE_TARGETS += $($($m_$d_NAME))) \