Add build stuff for threadsafety primitives
[platform/upstream/fontconfig.git] / doc / Makefile.am
index 408e3a6..ad68c09 100644 (file)
-DOC_MODULE = fontconfig
+# -*- encoding: utf-8 -*-
+#
+# 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.
+
+NULL =
+EXTRA_DIST =                   \
+       $(BUILT_DOCS)           \
+       $(DOC_FUNCS_FNCS)       \
+       $(DOC_FUNCS_SGML)       \
+       $(HTML_DIR)/*           \
+       $(SGML_FILES)           \
+       $(check_SCRIPTS)        \
+       confdir.sgml.in         \
+       func.sgml               \
+       $(NULL)
+MAINTAINERCLEANFILES =         \
+       $(DOC_FUNCS_SGML)       \
+       $(NULL)
+CLEANFILES =                   \
+       $(BUILT_DOCS)           \
+       $(LOCAL_SGML_FILES)     \
+       confdir.sgml            \
+       func.refs               \
+       $(NULL)
+BUILT_SOURCES =                        \
+       $(NULL)
+SUFFIXES =     \
+       .fncs   \
+       .sgml   \
+       .txt    \
+       .html   \
+       $(NULL)
+TESTS =                                \
+       check-missing-doc       \
+       $(NULL)
+TESTS_ENVIRONMENT=top_srcdir=${top_srcdir} sh
+#
 DOC2HTML = docbook2html
-DOC2TXT = docbook2txt
-DOC2MAN = docbook2man
-
-TXT = fontconfig-user.txt fontconfig-devel.txt
-HTML_FILES = fontconfig-user.html
-HTML_DIRS = fontconfig-devel
-SGML = fontconfig-user.sgml fontconfig-devel.sgml
-FNCS_TMPL = func.sgml
-
-DOC_FUNCS_FNCS=\
-       fcatomic.fncs \
-       fcblanks.fncs \
-       fccharset.fncs \
-       fcconfig.fncs \
-       fcconstant.fncs \
-       fcfile.fncs \
-       fcfontset.fncs \
-       fcfreetype.fncs \
-       fcinit.fncs \
-       fcmatrix.fncs \
-       fcobjectset.fncs \
-       fcobjecttype.fncs \
-       fcpattern.fncs \
-       fcstring.fncs \
-       fcstrset.fncs \
-       fcvalue.fncs
-       
-DOC_FUNCS_SGML=\
-       fcatomic.sgml \
-       fcblanks.sgml \
-       fccharset.sgml \
-       fcconfig.sgml \
-       fcconstant.sgml \
-       fcfile.sgml \
-       fcfontset.sgml \
-       fcfreetype.sgml \
-       fcinit.sgml \
-       fcmatrix.sgml \
-       fcobjectset.sgml \
-       fcobjecttype.sgml \
-       fcpattern.sgml \
-       fcstring.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
-
-noinst_PROGRAMS=edit-sgml
-edit_sgml_SOURCES=edit-sgml.c
-
-DOCDIR=@DOCDIR@
-
-DOC_FILES=$(TXT) $(HTML_FILES)
-DOC_DIRS=$(HTML_DIRS)
-LOCAL_DOCS=$(man_MANS) $(DOC_FILES) $(DOC_DIRS)
-
-EXTRA_DIST = $(LOCAL_DOCS) $(SGML) $(DOC_FUNCS_FNCS) $(FNCS_TMPL)
-       
-SUFFIXES=.fncs .sgml .txt .html
-
-if ENABLE_DOCS
-
+DOC2TXT  = docbook2txt
+DOC2MAN  = docbook2man
+DOC2PDF  = docbook2pdf
+
+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       \
+       fcpattern.fncs          \
+       fcstring.fncs           \
+       fcstrset.fncs           \
+       fcvalue.fncs            \
+       $(NULL)
+SGML_FILES =                   \
+       fontconfig-user.sgml    \
+       fontconfig-devel.sgml   \
+       $(NULL)
+LOCAL_SGML_FILES =                     \
+       local-fontconfig-user.sgml      \
+       local-fontconfig-devel.sgml     \
+       $(NULL)
+
+DOC_FUNCS_SGML = $(DOC_FUNCS_FNCS:.fncs=.sgml)
+BUILT_DOCS =           \
+       $(HTML_FILES)   \
+       $(PDF_FILES)    \
+       $(TXT_FILES)    \
+       $(man3_MANS)    \
+       $(man5_MANS)    \
+       $(NULL)
+DOCS_DEPS =                    \
+       $(DOC_FUNCS_SGML)       \
+       confdir.sgml            \
+       version.sgml            \
+       $(NULL)
+
+TXT_FILES = $(SGML_FILES:.sgml=.txt)
+PDF_FILES = $(SGML_FILES:.sgml=.pdf)
+HTML_FILES =                   \
+       fontconfig-user.html    \
+       $(NULL)
+HTML_DIR = fontconfig-devel
+#
+noinst_PROGRAMS =      \
+       $(NULL)
+##
+edit_sgml_SOURCES =    \
+       edit-sgml.c     \
+       $(NULL)
+#
+check_SCRIPTS =                        \
+       check-missing-doc       \
+       $(NULL)
+#
+man3_MANS =            \
+       $(DOCMAN3)      \
+       $(NULL)
+man5_MANS =            \
+       fonts-conf.5    \
+       $(NULL)
+#
+doc_DATA =             \
+       $(TXT_FILES)    \
+       $(PDF_FILES)    \
+       $(HTML_FILES)   \
+       $(NULL)
+#
+htmldocdir = $(docdir)/$(HTML_DIR)
+htmldoc_DATA =         \
+       $(NULL)
+
+if USEDOCBOOK
+BUILT_SOURCES +=               \
+       $(LOCAL_SGML_FILES)     \
+       $(NULL)
+noinst_PROGRAMS +=     \
+       edit-sgml       \
+       $(NULL)
+htmldoc_DATA += $(HTML_DIR)/*
+
+##
+if CROSS_COMPILING
 .fncs.sgml:
-       $(RM) $@
-       ./edit-sgml $(FNCS_TMPL) < $*.fncs > $*.sgml
-
+       @echo Warning: cannot rebuild $@ when cross-compiling
+else
+.fncs.sgml:
+       $(AM_V_GEN) $(RM) $@; \
+       $(builddir)/edit-sgml$(EXEEXT) $(srcdir)/func.sgml < '$(srcdir)/$*.fncs' > $*.sgml
+endif
 .sgml.txt:
-       $(RM) $@
+       $(AM_V_GEN) $(RM) $@; \
        $(DOC2TXT) $*.sgml
-
-all-local: all-local-docs
-clean-local: clean-local-docs
-
-$(man_MANS): func.refs
-
-func.refs: fontconfig-devel.sgml $(DOC_FUNCS_SGML)
-       $(RM) func.refs
-       $(DOC2MAN) fontconfig-devel.sgml
-       mv manpage.refs func.refs
-       $(RM) manpage.links
-
-$(DOC_FUNCS_SGML): edit-sgml $(FNCS_TMPL)
-
-fonts-conf.5: fontconfig-user.sgml
-       $(RM) file.refs
-       $(DOC2MAN) -u fontconfig-user.sgml
-       $(RM) manpage.refs manpage.links
-
-all-local-docs: $(DOCS)
-
-clean-local-docs:
-       $(RM) $(man_MANS) $(DOC_FILES) $(DOC_FUNCS_SGML) func.refs
-       $(RM) -r $(DOC_DIRS)
-
-fontconfig-devel: fontconfig-devel.sgml $(DOCS_FUNCS_SGML)
-       $(RM) -r fontconfig-devel
-       $(DOC2HTML) -o fontconfig-devel fontconfig-devel.sgml
-
-fontconfig-user.html: fontconfig-user.sgml
-       $(DOC2HTML) -u fontconfig-user.sgml
-
+.sgml.pdf:
+       $(AM_V_GEN) $(RM) $@; \
+       $(DOC2PDF) $*.sgml
+.sgml.html:
+       $(AM_V_GEN) $(RM) $@; \
+       $(DOC2HTML) -u $*.sgml > $@
+##
+fonts-conf.5: local-fontconfig-user.sgml version.sgml confdir.sgml
+       $(AM_V_GEN) $(RM) $@; \
+       $(DOC2MAN) local-fontconfig-user.sgml && \
+       $(RM) manpage.*
+##
+$(man3_MANS): func.refs
+func.refs: local-fontconfig-devel.sgml $(DOCS_DEPS)
+       $(AM_V_GEN) $(RM) $@; \
+       $(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 || rm $@ || :
+confdir.sgml: $(srcdir)/confdir.sgml.in
+       $(AM_V_GEN) sed -e 's,@CONFDIR\@,${CONFDIR},' $(srcdir)/$@.in | awk '{if (NR > 1) printf("\n"); printf("%s", $$0);}' > $@
+##
+$(DOC_FUNCS_SGML): $(DOC_FUNCS_FNCS) edit-sgml$(EXEEXT) $(srcdir)/func.sgml
+$(TXT_FILES): $(DOCS_DEPS)
+$(PDF_FILES): $(DOCS_DEPS)
+$(HTML_FILES): $(DOCS_DEPS)
+$(HTML_DIR)/*: $(HTML_DIR)
+$(HTML_DIR): local-fontconfig-devel.sgml $(DOCS_DEPS)
+       $(AM_V_GEN) $(RM) -r $@; \
+       $(DOC2HTML) -V '%use-id-as-filename%' -o $@ local-fontconfig-devel.sgml
+local-fontconfig-user.sgml: $(srcdir)/fontconfig-user.sgml
+       $(AM_V_GEN) $(LN_S) $(srcdir)/fontconfig-user.sgml $@;  \
+       [ ! -f $(builddir)/fontconfig-user.sgml ] && cp -a $(srcdir)/fontconfig-user.sgml $(builddir)/fontconfig-user.sgml || :
+local-fontconfig-devel.sgml: $(srcdir)/fontconfig-devel.sgml
+       $(AM_V_GEN) $(LN_S) $(srcdir)/fontconfig-devel.sgml $@; \
+       [ ! -f $(builddir)/fontconfig-devel.sgml ] && cp -a $(srcdir)/fontconfig-devel.sgml $(builddir)/fontconfig-devel.sgml || :
+#
+all-local: $(BUILT_DOCS) $(HTML_DIR)/*
+clean-local:
+       $(RM) -r $(HTML_DIR) devel-man
+       [ "x$(builddir)" != "x$(srcdir)" ] && $(RM) $(builddir)/*.sgml || :
 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
+-include $(top_srcdir)/git.mk