blob: 19cd0e6befdf9da90f061bd4614070b35320b678 [file] [log] [blame]
Igor Sarkisovc9d10aa2020-10-06 15:22:51 -07001#
2# WARNING: this is not gtk-doc.make file from gtk-doc project. This
3# file has been modified to match with util-linux-ng requirements:
4#
5# * install files to $datadir
6# * don't maintain generated files in git repository
7# * don't distribute the final html files
8# * don't require --enable-gtk-doc for "make dist"
9# * support out-of-tree build ($srcdir != $builddir)
10#
11# -- kzak, Nov 2009
12#
13
14####################################
15# Everything below here is generic #
16####################################
17
18if GTK_DOC_USE_LIBTOOL
19GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
20GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
21GTKDOC_RUN = $(LIBTOOL) --mode=execute
22else
23GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
24GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
25GTKDOC_RUN = sh -c
26endif
27
28# We set GPATH here; this gives us semantics for GNU make
29# which are more like other make's VPATH, when it comes to
30# whether a source that is a target of one rule is then
31# searched for in VPATH/GPATH.
32#
33GPATH = $(srcdir)
34
35TARGET_DIR=$(docdir)/$(DOC_MODULE)
36
37EXTRA_DIST = \
38 $(content_files) \
39 $(HTML_IMAGES) \
40 $(DOC_MAIN_SGML_FILE) \
41 $(DOC_MODULE)-sections.txt
42# $(DOC_MODULE)-overrides.txt
43
44DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
45 $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
46
47SCANOBJ_FILES = \
48 $(DOC_MODULE).args \
49 $(DOC_MODULE).hierarchy \
50 $(DOC_MODULE).interfaces \
51 $(DOC_MODULE).prerequisites \
52 $(DOC_MODULE).signals
53
54REPORT_FILES = \
55 $(DOC_MODULE)-undocumented.txt \
56 $(DOC_MODULE)-undeclared.txt \
57 $(DOC_MODULE)-unused.txt
58
59CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
60
61if ENABLE_GTK_DOC
62all-local: html-build.stamp
63else
64all-local:
65endif
66
67docs: html-build.stamp
68
69$(REPORT_FILES): sgml-build.stamp
70
71#### scan ####
72
73scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) $(srcdir)/$(DOC_MODULE)-*.txt $(content_files)
74
75 test -f $(DOC_MODULE)-sections.txt || \
76 cp $(srcdir)/$(DOC_MODULE)-sections.txt $(builddir)
77
78 @echo 'gtk-doc: Scanning header files'
79 gtkdoc-scan --module=$(DOC_MODULE) \
80 --source-dir=$(srcdir)/$(DOC_SOURCE_DIR) \
81 --source-dir=$(builddir)/$(DOC_SOURCE_DIR) \
82 --ignore-headers="$(IGNORE_HFILES)" \
83 --output-dir=$(builddir) \
84 $(SCAN_OPTIONS) $(EXTRA_HFILES)
85
86 if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
87 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" \
88 CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) \
89 $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) \
90 --module=$(DOC_MODULE) --output-dir=$(builddir) ; \
91 else \
92 for i in $(SCANOBJ_FILES) ; do \
93 test -f $$i || touch $$i ; \
94 done \
95 fi
96 touch scan-build.stamp
97
98$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(srcdir)/$(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
99 @true
100
101#### templates ####
102
103tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(srcdir)/$(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
104 @echo 'gtk-doc: Rebuilding template files'
105 test -z $(builddir)/tmpl || $(MKDIR_P) $(builddir)/tmpl
106 gtkdoc-mktmpl --module=$(DOC_MODULE) \
107 $(MKTMPL_OPTIONS)
108 touch tmpl-build.stamp
109
110tmpl.stamp: tmpl-build.stamp
111 @true
112
113tmpl/*.sgml:
114 @true
115
116
117#### xml ####
118
119sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(srcdir)/$(DOC_MODULE)-sections.txt $(builddir)/tmpl/*.sgml $(expand_content_files)
120 @echo 'gtk-doc: Building XML'
121 gtkdoc-mkdb --module=$(DOC_MODULE) \
122 --source-dir=$(srcdir)/$(DOC_SOURCE_DIR) \
123 --source-dir=$(builddir)/$(DOC_SOURCE_DIR) \
124 --output-format=xml \
125 --ignore-files="$(IGNORE_HFILES)" \
126 --expand-content-files="$(expand_content_files)" \
127 --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
128 $(MKDB_OPTIONS)
129 touch sgml-build.stamp
130
131sgml.stamp: sgml-build.stamp
132 @true
133
134#### html ####
135
136html-build.stamp: sgml.stamp $(srcdir)/$(DOC_MAIN_SGML_FILE) $(content_files)
137 @echo 'gtk-doc: Building HTML'
138 rm -rf $(builddir)/html
139 $(MKDIR_P) $(builddir)/html
140 cd $(builddir)/html && \
141 gtkdoc-mkhtml --path="$(abs_builddir):$(abs_builddir)/xml:$(abs_srcdir)" \
142 $(MKHTML_OPTIONS) \
143 $(DOC_MODULE) \
144 $(abs_srcdir)/$(DOC_MAIN_SGML_FILE)
145
146 test "x$(HTML_IMAGES)" = "x" || \
147 ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
148
149 @echo 'gtk-doc: Fixing cross-references'
150 gtkdoc-fixxref --module-dir=html \
151 --html-dir=$(HTML_DIR) \
152 $(FIXXREF_OPTIONS)
153 touch html-build.stamp
154
155##############
156
157clean-local:
158 rm -f *~ *.bak
159 rm -rf .libs
160
161distclean-local:
162 rm -rf xml html tmpl $(REPORT_FILES) *.stamp \
163 $(DOC_MODULE)-overrides.txt \
164 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
165 test $(abs_builddir) == $(abs_srcdir) || \
166 rm -f $(DOC_MODULE)-sections.txt
167
168install-data-local:
169 installfiles=`echo $(builddir)/html/*`; \
170 if test "$$installfiles" = '$(builddir)/html/*'; \
171 then echo '-- Nothing to install' ; \
172 else \
173 if test -n "$(DOC_MODULE_VERSION)"; then \
174 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
175 else \
176 installdir="$(DESTDIR)$(TARGET_DIR)"; \
177 fi; \
178 $(mkinstalldirs) $${installdir} ; \
179 for i in $$installfiles; do \
180 echo '-- Installing '$$i ; \
181 $(INSTALL_DATA) $$i $${installdir}; \
182 done; \
183 if test -n "$(DOC_MODULE_VERSION)"; then \
184 mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
185 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
186 mv -f $${installdir}/$(DOC_MODULE).devhelp \
187 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
188 fi; \
189 ! which gtkdoc-rebase >/dev/null 2>&1 || \
190 gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \
191 fi
192
193uninstall-local:
194 if test -n "$(DOC_MODULE_VERSION)"; then \
195 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
196 else \
197 installdir="$(DESTDIR)$(TARGET_DIR)"; \
198 fi; \
199 rm -rf $${installdir}
200
201#
202# Require gtk-doc when making dist
203#
204if ENABLE_GTK_DOC
205dist-check-gtkdoc:
206else
207dist-check-gtkdoc:
208 @echo "*** gtk-doc must be installed and enabled in order to make dist"
209 @false
210endif
211
212#dist-hook: dist-check-gtkdoc dist-hook-local sgml.stamp html-build.stamp
213# mkdir $(distdir)/tmpl
214# mkdir $(distdir)/xml
215# mkdir $(distdir)/html
216# -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
217# -cp $(srcdir)/xml/*.xml $(distdir)/xml
218# cp $(srcdir)/html/* $(distdir)/html
219# -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
220# -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
221# cd $(distdir) && rm -f $(DISTCLEANFILES)
222# ! which gtkdoc-rebase >/dev/null 2>&1 || \
223# gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
224#
225#.PHONY : dist-hook-local docs