docbook.mak 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # -*- make -*-
  2. # This processes DocBook XML to produce html and plain text output
  3. # Input
  4. # $(SOURCE) - The documents to use
  5. # All output is written to files in the build doc directory
  6. # See defaults.mak for information about LOCAL
  7. # Some local definitions
  8. LOCAL := docbook-$(firstword $(SOURCE))
  9. $(LOCAL)-HTML := $(addsuffix .html,$(addprefix $(DOC)/,$(basename $(SOURCE))))
  10. $(LOCAL)-TEXT := $(addsuffix .text,$(addprefix $(DOC)/,$(basename $(SOURCE))))
  11. docbook:
  12. #---------
  13. # Rules to build HTML documentations
  14. ifdef XSLTPROC
  15. DOCBOOK_HTML_STYLESHEET := docbook-html-style.xsl
  16. # Install generation hooks
  17. docbook: $($(LOCAL)-HTML)
  18. veryclean: veryclean/html/$(LOCAL)
  19. vpath %.dbk $(SUBDIRS)
  20. vpath $(DOCBOOK_HTML_STYLESHEET) $(SUBDIRS)
  21. $(DOC)/%.html: %.dbk $(DOCBOOK_HTML_STYLESHEET)
  22. echo Creating html for $< to $@
  23. -rm -rf $@
  24. mkdir -p $@
  25. $(DOCBOOK) \
  26. --stringparam base.dir $@/ \
  27. --stringparam l10n.gentext.default.language $(LC) \
  28. $(<D)/$(DOCBOOK_HTML_STYLESHEET) $< || exit 199
  29. # Clean rule
  30. .PHONY: veryclean/html/$(LOCAL)
  31. veryclean/html/$(LOCAL):
  32. -rm -rf $($(@F)-HTML)
  33. endif
  34. #---------
  35. # Rules to build Text documentations
  36. ifdef XSLTPROC
  37. DOCBOOK_TEXT_STYLESHEET := docbook-text-style.xsl
  38. # Install generation hooks
  39. docbook: $($(LOCAL)-TEXT)
  40. veryclean: veryclean/text/$(LOCAL)
  41. vpath %.dbk $(SUBDIRS)
  42. vpath $(DOCBOOK_TEXT_STYLESHEET) $(SUBDIRS)
  43. $(DOC)/%.text: %.dbk $(DOCBOOK_TEXT_STYLESHEET)
  44. echo Creating text for $< to $@
  45. $(DOCBOOK) \
  46. --stringparam l10n.gentext.default.language $(LC) \
  47. $(<D)/$(DOCBOOK_TEXT_STYLESHEET) $< | \
  48. LC_ALL=C.UTF-8 $(DOCBOOK2TEXT) > $@ || exit 198
  49. # Clean rule
  50. .PHONY: veryclean/text/$(LOCAL)
  51. veryclean/text/$(LOCAL):
  52. -rm -rf $($(@F)-TEXT)
  53. endif