]> git.wh0rd.org - fontconfig.git/blobdiff - doc/Makefile.am
Make most generated-files cross-compiling-safe
[fontconfig.git] / doc / Makefile.am
index 408e3a6956f8aae588be5e541c95d126f58a5d02..8d7d5c8ba823921451680539f2e552f66fff9b70 100644 (file)
@@ -1,24 +1,54 @@
+#
+# fontconfig/doc/Makefile.am
+#
+# Copyright © 2003 Keith Packard
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  The authors make no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+DOC_SRC = $(srcdir)
 DOC_MODULE = fontconfig
 DOC2HTML = docbook2html
 DOC2TXT = docbook2txt
 DOC2MAN = docbook2man
+DOC2PDF = docbook2pdf
 
 TXT = fontconfig-user.txt fontconfig-devel.txt
+PDF = fontconfig-user.pdf fontconfig-devel.pdf
 HTML_FILES = fontconfig-user.html
-HTML_DIRS = fontconfig-devel
+HTML_DIR = fontconfig-devel
 SGML = fontconfig-user.sgml fontconfig-devel.sgml
-FNCS_TMPL = func.sgml
+FNCS_TMPL = ${DOC_SRC}/func.sgml
 
 DOC_FUNCS_FNCS=\
        fcatomic.fncs \
        fcblanks.fncs \
+       fccache.fncs \
        fccharset.fncs \
        fcconfig.fncs \
        fcconstant.fncs \
+       fcdircache.fncs \
        fcfile.fncs \
        fcfontset.fncs \
+       fcformat.fncs \
        fcfreetype.fncs \
        fcinit.fncs \
+       fclangset.fncs \
        fcmatrix.fncs \
        fcobjectset.fncs \
        fcobjecttype.fncs \
@@ -26,17 +56,21 @@ DOC_FUNCS_FNCS=\
        fcstring.fncs \
        fcstrset.fncs \
        fcvalue.fncs
-       
+
 DOC_FUNCS_SGML=\
        fcatomic.sgml \
        fcblanks.sgml \
+       fccache.sgml \
        fccharset.sgml \
        fcconfig.sgml \
        fcconstant.sgml \
+       fcdircache.sgml \
        fcfile.sgml \
        fcfontset.sgml \
+       fcformat.sgml \
        fcfreetype.sgml \
        fcinit.sgml \
+       fclangset.sgml \
        fcmatrix.sgml \
        fcobjectset.sgml \
        fcobjecttype.sgml \
@@ -45,110 +79,125 @@ DOC_FUNCS_SGML=\
        fcstrset.sgml \
        fcvalue.sgml
 
-man_MANS=fonts-conf.5 \
-FcAtomicCreate.3 FcAtomicDeleteNew.3 FcAtomicDestroy.3 FcAtomicLock.3 \
-FcAtomicNewFile.3 FcAtomicOrigFile.3 FcAtomicReplaceOrig.3 FcAtomicUnlock.3 \
-FcBlanksAdd.3 FcBlanksCreate.3 FcBlanksDestroy.3 FcBlanksIsMember.3 \
-FcCharSetAddChar.3 FcCharSetCopy.3 FcCharSetCount.3 FcCharSetCreate.3 \
-FcCharSetDestroy.3 FcCharSetEqual.3 FcCharSetFirstPage.3 FcCharSetHasChar.3 \
-FcCharSetIntersect.3 FcCharSetIntersectCount.3 FcCharSetIsSubset.3 \
-FcCharSetNextPage.3 FcCharSetSubtract.3 FcCharSetSubtractCount.3 \
-FcCharSetUnion.3 FcConfigAppFontAddDir.3 FcConfigAppFontAddFile.3 \
-FcConfigAppFontClear.3 FcConfigBuildFonts.3 FcConfigCreate.3 \
-FcConfigDestroy.3 FcConfigFilename.3 FcConfigGetBlanks.3 FcConfigGetCache.3 \
-FcConfigGetConfigDirs.3 FcConfigGetConfigFiles.3 FcConfigGetCurrent.3 \
-FcConfigGetFontDirs.3 FcConfigGetFonts.3 FcConfigGetRescanInverval.3 \
-FcConfigParseAndLoad.3 FcConfigSetCurrent.3 FcConfigSetRescanInverval.3 \
-FcConfigSubstitute.3 FcConfigSubstituteWithPat.3 FcConfigUptoDate.3 \
-FcDefaultSubstitute.3 FcDirCacheValid.3 FcDirSave.3 FcDirScan.3 FcFileScan.3 \
-FcFontList.3 FcFontMatch.3 FcFontRenderPrepare.3 FcFontSetAdd.3 \
-FcFontSetCreate.3 FcFontSetDestroy.3 FcFontSort.3 FcFreeTypeCharIndex.3 \
-FcFreeTypeCharSet.3 FcFreeTypeQuery.3 FcGetVersion.3 FcInit.3 \
-FcInitBringUptoDate.3 FcInitLoadConfig.3 FcInitLoadConfigAndFonts.3 \
-FcInitReinitialize.3 FcMatrixCopy.3 FcMatrixEqual.3 FcMatrixInit.3 \
-FcMatrixMultiply.3 FcMatrixRotate.3 FcMatrixScale.3 FcMatrixShear.3 \
-FcNameConstant.3 FcNameGetConstant.3 FcNameGetObjectType.3 FcNameParse.3 \
-FcNameRegisterConstants.3 FcNameRegisterObjectTypes.3 FcNameUnparse.3 \
-FcNameUnregisterConstants.3 FcNameUnregisterObjectTypes.3 FcObjectSetAdd.3 \
-FcObjectSetBuild.3 FcObjectSetCreate.3 FcObjectSetDestroy.3 \
-FcPatternAdd-Type.3 FcPatternAdd.3 FcPatternAddWeak.3 FcPatternBuild.3 \
-FcPatternCreate.3 FcPatternDel.3 FcPatternDestroy.3 FcPatternEqual.3 \
-FcPatternEqualSubset.3 FcPatternGet-Type.3 FcPatternGet.3 FcPatternHash.3 \
-FcPatternPrint.3 FcStrBasename.3 FcStrCmpIgnoreCase.3 FcStrCopy.3 \
-FcStrCopyFilename.3 FcStrDirname.3 FcStrListCreate.3 FcStrListDone.3 \
-FcStrListNext.3 FcStrSetAdd.3 FcStrSetAddFilename.3 FcStrSetCreate.3 \
-FcStrSetDel.3 FcStrSetDestroy.3 FcStrSetMember.3 FcUcs4ToUtf8.3 FcUtf16Len.3 \
-FcUtf16ToUcs4.3 FcUtf8Len.3 FcUtf8ToUcs4.3 FcValueDestroy.3 FcValueSave.3
+man5_MANS=fonts-conf.5
+man3_MANS=$(DOCMAN3)
 
 noinst_PROGRAMS=edit-sgml
 edit_sgml_SOURCES=edit-sgml.c
 
-DOCDIR=@DOCDIR@
+DOC_FILES=$(TXT) $(PDF) $(HTML_FILES)
+LOCAL_DOCS=$(man3_MANS) $(man5_MANS) $(DOC_FILES) $(HTML_DIR)/*
 
-DOC_FILES=$(TXT) $(HTML_FILES)
-DOC_DIRS=$(HTML_DIRS)
-LOCAL_DOCS=$(man_MANS) $(DOC_FILES) $(DOC_DIRS)
+check_SCRIPTS=check-missing-doc
+TESTS_ENVIRONMENT=top_srcdir=${top_srcdir} sh
+TESTS=check-missing-doc
+
+EXTRA_DIST=$(LOCAL_DOCS) $(SGML) $(DOC_FUNCS_FNCS) $(DOC_FUNCS_SGML) $(check_SCRIPTS) func.sgml confdir.sgml.in
 
-EXTRA_DIST = $(LOCAL_DOCS) $(SGML) $(DOC_FUNCS_FNCS) $(FNCS_TMPL)
-       
 SUFFIXES=.fncs .sgml .txt .html
 
-if ENABLE_DOCS
+if USEDOCBOOK
 
+if CROSS_COMPILING
+.fncs.sgml:
+       @echo Warning: cannot rebuild $@ when cross-compiling
+else
 .fncs.sgml:
        $(RM) $@
-       ./edit-sgml $(FNCS_TMPL) < $*.fncs > $*.sgml
+       ./edit-sgml$(EXEEXT) $(FNCS_TMPL) < '$<' > $*.sgml
+endif
 
 .sgml.txt:
        $(RM) $@
-       $(DOC2TXT) $*.sgml
+       $(DOC2TXT) $<
 
-all-local: all-local-docs
-clean-local: clean-local-docs
+.sgml.pdf:
+       $(RM) $@
+       $(DOC2PDF) $<
 
-$(man_MANS): func.refs
+$(man3_MANS): func.refs
 
-func.refs: fontconfig-devel.sgml $(DOC_FUNCS_SGML)
+func.refs: local-fontconfig-devel.sgml $(DOC_FUNCS_SGML) version.sgml confdir.sgml
        $(RM) func.refs
-       $(DOC2MAN) fontconfig-devel.sgml
-       mv manpage.refs func.refs
-       $(RM) manpage.links
+       $(DOC2MAN) -o devel-man local-fontconfig-devel.sgml && \
+       mv devel-man/manpage.refs func.refs && \
+       mv devel-man/*.3 . && \
+       $(RM) devel-man/manpage.* && \
+       rmdir devel-man
 
-$(DOC_FUNCS_SGML): edit-sgml $(FNCS_TMPL)
+local-fontconfig-devel.sgml: fontconfig-devel.sgml
+       $(LN_S) $< $@
 
-fonts-conf.5: fontconfig-user.sgml
-       $(RM) file.refs
-       $(DOC2MAN) -u fontconfig-user.sgml
-       $(RM) manpage.refs manpage.links
+$(DOC_FUNCS_SGML): edit-sgml.c $(FNCS_TMPL)
 
-all-local-docs: $(DOCS)
+fonts-conf.5: local-fontconfig-user.sgml version.sgml confdir.sgml
+       $(RM) $@
+       $(DOC2MAN) local-fontconfig-user.sgml && \
+       $(RM) manpage.*
+       
+local-fontconfig-user.sgml: fontconfig-user.sgml
+       $(LN_S) $< $@
 
-clean-local-docs:
-       $(RM) $(man_MANS) $(DOC_FILES) $(DOC_FUNCS_SGML) func.refs
-       $(RM) -r $(DOC_DIRS)
+all-local: $(LOCAL_DOCS)
 
-fontconfig-devel: fontconfig-devel.sgml $(DOCS_FUNCS_SGML)
-       $(RM) -r fontconfig-devel
-       $(DOC2HTML) -o fontconfig-devel fontconfig-devel.sgml
+clean-local:
+       $(RM) $(man3_MANS) $(man5_MANS) $(DOC_FILES) func.refs
+       $(RM) -r $(HTML_DIR)
 
-fontconfig-user.html: fontconfig-user.sgml
-       $(DOC2HTML) -u fontconfig-user.sgml
+MAINTAINERCLEANFILES = $(DOC_FUNCS_SGML)
+
+$(HTML_DIR): local-fontconfig-devel.sgml $(DOC_FUNCS_SGML) version.sgml confdir.sgml
+       $(RM) -r $(HTML_DIR)
+       $(DOC2HTML) -V '%use-id-as-filename%' -o $(HTML_DIR) local-fontconfig-devel.sgml
+
+fontconfig-devel.txt: local-fontconfig-devel.sgml $(DOC_FUNCS_SGML) version.sgml confdir.sgml
+       $(RM) $@
+       $(DOC2TXT) local-fontconfig-devel.sgml
+       mv local-fontconfig-devel.txt $@
+
+fontconfig-devel.pdf: local-fontconfig-devel.sgml $(DOC_FUNCS_SGML) version.sgml confdir.sgml
+       $(RM) $@
+       $(top_srcdir)/missing --run $(DOC2PDF) $< && mv local-$@ $@ \
+       || echo Failed to generate $@ >&2; \
+       (test -f $@ || echo $(DOC2PDF) is required to generate this file >> $@)
+
+fontconfig-user.html: local-fontconfig-user.sgml version.sgml confdir.sgml
+       $(RM) $@ local-$@ $@.tmp
+       $(DOC2HTML) -u local-fontconfig-user.sgml > $@.tmp
+       -test -f local-$@ && mv local-$@ $@
+       -test -f $@ || mv $@.tmp $@
+       -test -f $@.tmp && $(RM) $@.tmp
+
+fontconfig-user.txt: local-fontconfig-user.sgml version.sgml confdir.sgml
+       $(RM) $@
+       $(DOC2TXT) local-fontconfig-user.sgml
+       mv local-fontconfig-user.txt $@
+
+fontconfig-user.pdf: local-fontconfig-user.sgml version.sgml confdir.sgml
+       $(RM) $@
+       $(top_srcdir)/missing --run $(DOC2PDF) $< && mv local-$@ $@ \
+       || echo Failed to generate $@ >&2; \
+       (test -f $@ || echo $(DOC2PDF) is required to generate this file >> $@)
+
+STRIPNL=awk '{ if (NR > 1) printf ("\n"); printf ("%s", $$0); }'
+confdir.sgml: ${DOC_SRC}/confdir.sgml.in
+       sed "s,@CONFDIR\@,${CONFDIR}," < ${DOC_SRC}/confdir.sgml.in | $(STRIPNL) > confdir.sgml
+
+CLEANFILES=confdir.sgml local-fontconfig-user.sgml local-fontconfig-devel.sgml
+
+htmldoc_DATA = $(HTML_DIR)/*
+
+$(HTML_DIR)/*: $(HTML_DIR)
 
 else
+
+htmldoc_DATA = $(srcdir)/$(HTML_DIR)/*
+
 all-local:
 clean-local:
 endif
 
-install-data-local:
-       $(mkinstalldirs) $(DESTDIR)$(DOCDIR)
-       for i in $(DOC_FILES); do \
-         echo '-- Installing '$$i ; \
-         $(INSTALL_DATA) $$i $(DESTDIR)$(DOCDIR)/$$i; \
-       done
-       for i in $(DOC_DIRS); do \
-         $(mkinstalldirs) $(DESTDIR)$(DOCDIR)/$$i ; \
-         for f in $$i/*; do \
-           echo '-- Installing '$$f ; \
-           $(INSTALL_DATA) $$f $(DESTDIR)$(DOCDIR)/$$f; \
-         done \
-       done
+htmldocdir=$(docdir)/$(HTML_DIR)
+
+doc_DATA = $(DOC_FILES)
+