diff options
| author | Marcel Holtmann <marcel@holtmann.org> | 2008-08-14 22:59:09 +0200 | 
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2008-08-14 22:59:09 +0200 | 
| commit | 226b34727f14fafa2bc1564fcd19a66abb99648e (patch) | |
| tree | f66a9163e436306ac97549173d3d7bbb86a2185c /doc/gtk-doc.make | |
| parent | 975f5d049e2d55a1221830dba6a505d85750e5d7 (diff) | |
Add infrastructure for gtk-doc support
Diffstat (limited to 'doc/gtk-doc.make')
| -rw-r--r-- | doc/gtk-doc.make | 173 | 
1 files changed, 173 insertions, 0 deletions
| diff --git a/doc/gtk-doc.make b/doc/gtk-doc.make new file mode 100644 index 00000000..354ffb7c --- /dev/null +++ b/doc/gtk-doc.make @@ -0,0 +1,173 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +else +GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +EXTRA_DIST = 				\ +	$(content_files)		\ +	$(HTML_IMAGES)			\ +	$(DOC_MAIN_SGML_FILE)		\ +	$(DOC_MODULE)-sections.txt	\ +	$(DOC_MODULE)-overrides.txt + +DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ +	   $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = 		 \ +	$(DOC_MODULE).args 	 \ +	$(DOC_MODULE).hierarchy  \ +	$(DOC_MODULE).interfaces \ +	$(DOC_MODULE).prerequisites \ +	$(DOC_MODULE).signals + +REPORT_FILES = \ +	$(DOC_MODULE)-undocumented.txt \ +	$(DOC_MODULE)-undeclared.txt \ +	$(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) + +if ENABLE_GTK_DOC +all-local: html-build.stamp +else +all-local: +endif + +docs: html-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) +	@echo 'gtk-doc: Scanning header files' +	@-chmod -R u+w $(srcdir) +	cd $(srcdir) && \ +	  gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) +	if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ +	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ +	else \ +	    cd $(srcdir) ; \ +	    for i in $(SCANOBJ_FILES) ; do \ +               test -f $$i || touch $$i ; \ +	    done \ +	fi +	touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp +	@true + +#### templates #### + +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt +	@echo 'gtk-doc: Rebuilding template files' +	@-chmod -R u+w $(srcdir) +	cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) +	touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp +	@true + +tmpl/*.sgml: +	@true + + +#### xml #### + +sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) +	@echo 'gtk-doc: Building XML' +	@-chmod -R u+w $(srcdir) +	cd $(srcdir) && \ +	gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) +	touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp +	@true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) +	@echo 'gtk-doc: Building HTML' +	@-chmod -R u+w $(srcdir) +	rm -rf $(srcdir)/html +	mkdir $(srcdir)/html +	cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) +	test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) +	@echo 'gtk-doc: Fixing cross-references' +	cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) +	touch html-build.stamp + +############## + +clean-local: +	rm -f *~ *.bak +	rm -rf .libs + +distclean-local: +	cd $(srcdir) && \ +	  rm -rf xml $(REPORT_FILES) \ +	         $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean +	cd $(srcdir) && rm -rf xml html + +install-data-local: +	-installfiles=`echo $(srcdir)/html/*`; \ +	if test "$$installfiles" = '$(srcdir)/html/*'; \ +	then echo '-- Nothing to install' ; \ +	else \ +	  $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ +	  for i in $$installfiles; do \ +	    echo '-- Installing '$$i ; \ +	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ +	  done; \ +	  echo '-- Installing $(srcdir)/html/index.sgml' ; \ +	  $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \ +	  which gtkdoc-rebase >/dev/null && \ +	    gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \ +	fi +	 + +uninstall-local: +	rm -f $(DESTDIR)$(TARGET_DIR)/* + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: +	@echo "*** gtk-doc must be installed and enabled in order to make dist" +	@false +endif + +dist-hook: dist-check-gtkdoc dist-hook-local +	mkdir $(distdir)/tmpl +	mkdir $(distdir)/xml +	mkdir $(distdir)/html +	-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl +	-cp $(srcdir)/xml/*.xml $(distdir)/xml +	cp $(srcdir)/html/* $(distdir)/html +	-cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ +	-cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ +	cd $(distdir) && rm -f $(DISTCLEANFILES) +	-gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs | 
