Prepare for conversion of Guide chapters to AsciiDoc.
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 24 Jan 2014 01:10:10 +0000 (01:10 +0000)
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 24 Jan 2014 01:10:10 +0000 (01:10 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@54936 f5534014-38df-0310-8fa8-9805f1628bb7

cmake/modules/FindASCIIDOC.cmake
docbook/CMakeLists.txt
docbook/Makefile.am
docbook/Makefile.nmake

index 7c746c7660c2e3fd2ecec15e36c3cae45e7c6d8b..0d84e063d6e8600bad7cbe7d498b3f14680a7e09 100644 (file)
@@ -18,6 +18,17 @@ FIND_PROGRAM(A2X_EXECUTABLE
     /sbin
 )
 
+FIND_PROGRAM(XMLLINT_EXECUTABLE
+  NAMES
+    xmllint
+  PATHS
+    ${CYGWIN_INSTALL_PATH}/bin
+    /bin
+    /usr/bin
+    /usr/local/bin
+    /sbin
+)
+
 # Make sure we don't get language specific quotes
 set( A2X_EXECUTABLE LC_ALL=C ${A2X_EXECUTABLE} )
 
@@ -105,3 +116,31 @@ MACRO( ASCIIDOC2PDF _output _asciidocsource _conffile _paper )
     )
 ENDMACRO()
 
+# Convert an AsciiDoc document to a Docbook chapter
+MACRO( ASCIIDOC2CHAPTER _output _asciidocsource _conffile )
+    GET_FILENAME_COMPONENT( _source_base_name ${_asciidocsource} NAME_WE )
+    set( A2X_HTML_OPTS --stylesheet=ws.css )
+    ADD_CUSTOM_COMMAND(
+       WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+        OUTPUT
+            ${_output}
+       COMMAND ${A2X_EXECUTABLE}
+           --verbose
+           --destination-dir=${CMAKE_CURRENT_BINARY_DIR}
+           --asciidoc-opts="--conf-file=${_conffile}"
+           --no-xmllint
+           --format=docbook --doctype=book
+           ${A2X_HTML_OPTS}
+           ${_asciidocsource}
+       COMMAND mv
+           ${CMAKE_CURRENT_BINARY_DIR}/${_source_base_name}.xml
+           ${CMAKE_CURRENT_BINARY_DIR}/${_source_base_name}.dbk
+       COMMAND ${XMLLINT}
+           --xpath chapter
+           ${CMAKE_CURRENT_BINARY_DIR}/${_source_base_name}.dbk
+           > ${CMAKE_CURRENT_BINARY_DIR}/${_output}
+        DEPENDS
+            ${_asciidocsources}
+            ${_conffile}
+    )
+ENDMACRO()
index 8aa092336f61c0f03b665b2207db06a54cd90886..8923e86f4f2118744a67ff11bda96683e83c3a42 100644 (file)
@@ -192,6 +192,10 @@ set(WSDG_FILES
        ws.css
 )
 
+set(WSDG_ASCIIDOC_FILES
+       wsdg_src/WSDG_chapter_sources.asciidoc
+)
+
 set(WSDG_GRAPHICS
        wsdg_graphics/ws-capture-sync.dia
        wsdg_graphics/ws-capture-sync.png
@@ -313,6 +317,7 @@ VALIDATE_XML(
        WSDG_SOURCE
 )
 
+ASCIIDOC2CHAPTER(WSDG_ASCIIDOC_FILES)
 XML2HTML(
        wsdg.validated
        wsdg_html/index.html
index 03079a6c16085723784102c2fbdee083cad0be5a..164b3d7786c7a4bb7a1cb971325c29b3a1ecb2e3 100644 (file)
@@ -55,6 +55,15 @@ else
        @false
 endif
 
+# Convert an AsciiDoc document to a Docbook chapter
+.asciidoc.xml:
+       $(A2X) --verbose \
+               --asciidoc-opts="--conf-file=asciidoc.conf" \
+               --no-xmllint \
+               --format=docbook --doctype=book \
+               $<
+       mv $*.xml $*.dbk
+       xmllint --xpath chapter $*.dbk > $@
 
 if HAVE_XSLTPROC
 ALL_TARGETS=git_version_check wsug wsdg release_notes
@@ -233,6 +242,8 @@ release-notes.txt: $(RELEASE_NOTES_SOURCE)
 news: release-notes.txt
        cp release-notes.txt ../NEWS
 
+# Apparently we can only run one instance of a2x at a time.
+.NOTPARALLEL: release-notes-us.pdf release-notes-a4.pdf
 # create pdf file, portrait pages on US letter paper
 release-notes-us.pdf: $(RELEASE_NOTES_SOURCE) custom_layer_pdf.xsl
        @ echo --- RELEASE NOTES - PDF US LETTER PAPER ---
index 29ae0e057599dd671fe50180286d8221f1997236..f14db0e8a57c6cf68023265363bf95a23cffdfcb 100644 (file)
@@ -32,6 +32,19 @@ A2X_TEXT_OPTS=$(A2X_TEXT_OPTS) --lynx
 
 .SUFFIXES: .fo .pdf
 
+# Convert an AsciiDoc document to a Docbook chapter
+.asciidoc.xml:
+       $(A2X) --verbose \
+               --asciidoc-opts="--conf-file=asciidoc.conf" \
+               --no-xmllint \
+               --format=docbook --doctype=book \
+               $<
+       mv $*.xml $*.dbk
+       xmllint --xpath chapter $*.dbk > $@
+
+.SUFFIXES: .asciidoc .xml
+
+
 # On every build, record the working copy revision string
 #   in git_version.xml (if the svn version has changed).
 # This is done during nmake "preprocessing" so that it's done *before*