source: trunk/third/gstreamer/docs/gst/Makefile.am @ 21448

Revision 21448, 11.1 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21447, which included commits to RCS files with non-trunk default branches.
Line 
1## Process this file with automake to produce Makefile.in
2
3# The name of the module, e.g. 'glib'.
4# DOC_MODULE=gstreamer-@GST_MAJORMINOR@
5DOC_MODULE=gstreamer
6
7# for upload.mak
8DOC=gstreamer
9FORMATS=html
10html: html-build.stamp
11include $(srcdir)/../upload.mak
12
13# generated basefiles
14#basefiles = \
15#               gstreamer-@GST_MAJORMINOR@.types \
16#               gstreamer-@GST_MAJORMINOR@-sections.txt \
17#               gstreamer-@GST_MAJORMINOR@-docs.sgml
18
19# ugly hack to make -unused.sgml work
20#unused-build.stamp:
21#       BUILDDIR=`pwd` && \
22#       cd $(srcdir)/tmpl && \
23#       ln -sf gstreamer-unused.sgml \
24#               $$BUILDDIR/tmpl/gstreamer-@GST_MAJORMINOR@-unused.sgml
25#       touch unused-build.stamp
26
27# these rules are added to create parallel docs using GST_MAJORMINOR
28#$(basefiles): gstreamer-@GST_MAJORMINOR@%: gstreamer%
29#       cp $< $@
30
31#CLEANFILES = $(basefiles)
32
33# The top-level SGML file. Change it if you want.
34DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
35
36# The directory containing the source code. Relative to $(top_srcdir).
37# gtk-doc will search all .c & .h files beneath here for inline comments
38# documenting functions and macros.
39DOC_SOURCE_DIR=$(top_srcdir)/gst
40
41# Extra options to supply to gtkdoc-scan.
42SCAN_OPTIONS=--deprecated-guards="GST_DISABLE_DEPRECATED"
43
44# Extra options to supply to gtkdoc-mkdb.
45MKDB_OPTIONS=--sgml-mode --ignore-files=parse
46
47# Extra options to supply to gtkdoc-fixref.
48FIXXREF_OPTIONS=
49
50# Used for dependencies.
51HFILE_GLOB=$(DOC_SOURCE_DIR)/*.h
52CFILE_GLOB=$(DOC_SOURCE_DIR)/*.c
53
54# this is a wingo addition
55# thomasvs: another nice wingo addition would be an explanation on why
56# this is useful ;)
57
58#SCANOBJ_DEPS = $(top_builddir)/gst/elements/libgstelements.la \
59#       $(top_builddir)/gst/schedulers/libgstbasicomegascheduler.la
60
61# Header files to ignore when scanning. Use base file name, no paths
62IGNORE_HFILES= \
63        gettext.h \
64        gst-i18n-lib.h \
65        gst-i18n-app.h \
66        gst_private.h \
67        gstatomic_impl.h \
68        gstdata_private.h \
69        gstarch.h \
70        cothreads.h \
71        cothreads_compat.h \
72        gthread-cothreads.h \
73        faircothreads.h \
74        types.h \
75        grammar.tab.h \
76        gstmarshal.h \
77        gstaggregator.h \
78        gstbufferstore.h \
79        gstfakesink.h \
80        gstfakesrc.h \
81        gstfdsink.h \
82        gstfdsrc.h \
83        gstfilesink.h \
84        gstfilesrc.h \
85        gstidentity.h \
86        gstmd5sink.h \
87        gstmultifilesrc.h \
88        gstmultifdsink.h \
89        gstpipefilter.h \
90        gstshaper.h \
91        gststatistics.h \
92        gsttee.h \
93        gsttypefindelement.h \
94        gstspider.h \
95        gstspideridentity.h \
96        gstsearchfuncs.h \
97        gstxmlregistry.h
98
99# Images to copy into HTML directory.
100HTML_IMAGES =
101
102# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
103content_files =
104
105# Other files to distribute.
106extra_files =
107
108# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
109# contains GtkObjects/GObjects and you want to document signals and properties.
110GTKDOC_CFLAGS = $(GST_OBJ_CFLAGS) -I$(top_builddir)
111GTKDOC_LIBS = $(GST_OBJ_LIBS) $(SCANOBJ_DEPS)
112
113GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
114GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
115
116# If you need to override some of the declarations, place them in this file
117# and uncomment this line.
118#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
119
120
121
122###########################################################################
123# Everything below here is generic and you shouldn't need to change it.
124###########################################################################
125# thomas: except of course that we did
126
127# thomas: copied from glib-2
128# We set GPATH here; this gives us semantics for GNU make
129# which are more like other make's VPATH, when it comes to
130# whether a source that is a target of one rule is then
131# searched for in VPATH/GPATH.
132#
133GPATH = $(srcdir)
134
135# thomas: make docs parallel installable
136TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@
137
138EXTRA_DIST =                            \
139        $(content_files)                \
140        $(extra_files)                  \
141        $(HTML_IMAGES)                  \
142        $(DOC_MAIN_SGML_FILE)           \
143        $(DOC_MODULE).types             \
144        $(DOC_MODULE)-sections.txt
145
146DOC_STAMPS =                            \
147        scan-build.stamp                \
148        tmpl-build.stamp                \
149        sgml-build.stamp                \
150        html-build.stamp                \
151        $(srcdir)/tmpl.stamp            \
152        $(srcdir)/sgml.stamp            \
153        $(srcdir)/html.stamp
154
155SCANOBJ_FILES =                         \
156        $(DOC_MODULE).args              \
157        $(DOC_MODULE).hierarchy         \
158        $(DOC_MODULE).interfaces        \
159        $(DOC_MODULE).prerequisites     \
160        .libs/$(DOC_MODULE)-scan.o      \
161        $(DOC_MODULE).signals
162
163CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS)
164
165if HAVE_GTK_DOC
166all-local: html-build.stamp
167
168#### scan ####
169
170# in the case of non-srcdir builds, the built gst directory gets added
171# to gtk-doc scanning; but only then, to avoid duplicates
172scan-build.stamp: $(HFILE_GLOB) $(SCANOBJ_DEPS) $(basefiles)
173        @echo '*** Scanning header files ***'
174        if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null;  \
175        then                                                            \
176            if test x"$(srcdir)" != x. ; then                           \
177                cp $(srcdir)/$(DOC_MODULE).types . ;                    \
178                chmod u+w $(DOC_MODULE).types ;                         \
179            fi ;                                                        \
180            CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"                         \
181            CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)"          \
182            $(GTK_DOC_SCANOBJ) --type-init-func="gst_init(NULL,NULL)"   \
183                --module=$(DOC_MODULE) ;                                \
184        else                                                            \
185            cd $(srcdir) ;                                              \
186            for i in $(SCANOBJ_FILES) ; do                              \
187               test -f $$i || touch $$i ;                               \
188            done                                                        \
189        fi
190        if test "x$(top_srcdir)" != "x$(top_builddir)";                 \
191        then                                                            \
192          export BUILT_OPTIONS="--source-dir=$(top_builddir)/gst";      \
193        fi;                                                             \
194        gtkdoc-scan                                                     \
195                $(SCAN_OPTIONS) $(EXTRA_HFILES)                         \
196                --module=$(DOC_MODULE)                                  \
197                --source-dir=$(DOC_SOURCE_DIR)                          \
198                $$BUILT_OPTIONS                                         \
199                --ignore-headers="$(IGNORE_HFILES)"
200        touch scan-build.stamp
201
202$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp
203        @true
204
205#### templates ####
206
207tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES)
208        @echo '*** Rebuilding template files ***'
209        if test x"$(srcdir)" != x. ; then \
210            cp $(srcdir)/$(DOC_MODULE)-sections.txt . ; \
211            touch $(DOC_MODULE)-decl.txt ; \
212        fi
213        gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log
214        @cat $(DOC_MODULE)-unused.txt
215        @if ! test -z "`grep -v GstPoptOption gstreamer-unused.txt`"; then \
216            exit 1; fi
217        rm -f tmpl-build.log
218        touch tmpl-build.stamp
219
220tmpl.stamp: tmpl-build.stamp
221        @true
222
223#### xml ####
224
225sgml-build.stamp: tmpl.stamp $(CFILE_GLOB)
226        @echo '*** Building XML ***'
227        gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log
228        @if grep "WARNING:" sgml-build.log > /dev/null; then exit 1; fi
229        rm sgml-build.log
230        touch sgml-build.stamp
231
232sgml.stamp: sgml-build.stamp
233        @true
234
235#### html ####
236
237# FIXME: setting LANG=C is a hack to work with gtk-doc < 1.1, because
238# that forces a non-utf8 locale.  gtk-doc >= 1.1 solves this by calling
239# use bytes; in gtkdoc-fixxref
240html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
241        @echo '*** Building HTML ***'
242        if test -d html; then rm -rf html; fi
243        mkdir html
244        cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html
245        cp -pr xml html
246        cp ../version.entities html
247        cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
248        rm -f html/$(DOC_MAIN_SGML_FILE)
249        rm -rf html/xml
250        rm -f html/version.entities
251        test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \
252            if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done
253        @echo '-- Fixing Crossreferences'
254        LANG=C && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
255        touch html-build.stamp
256else
257all-local:
258endif
259
260clean-local:
261        rm -f *~ *.bak
262        rm -rf xml html
263        rm -rf .libs
264
265maintainer-clean-local: clean
266        cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
267
268# company: don't delete .sgml and -sections.txt as they're in CVS
269# FIXME : thomas added all sgml files and some other things to make
270# make distcheck work
271distclean-local: clean
272        rm -rf $(DOC_MODULE)-decl-list.txt
273        rm -rf $(DOC_MODULE)-decl.txt
274        rm -rf $(DOC_MODULE)-undocumented.txt
275        rm -rf $(DOC_MODULE)-unused.txt
276        rm -rf tmpl/*.sgml.bak
277        rm -f $(DOC_MODULE).hierarchy
278        rm -f *.stamp || true
279        if test x"$(srcdir)" != x. ; then \
280            rm -f $(DOC_MODULE)-docs.sgml ; \
281            rm -f $(DOC_MODULE).types ; \
282            rm -f $(DOC_MODULE).interfaces ; \
283            rm -f $(DOC_MODULE).prerequisites ; \
284            rm -f $(DOC_MODULE)-sections.txt ; \
285            rm -rf tmpl/*.sgml ; \
286        fi
287        rm -rf *.o
288
289# thomas: make docs parallel installable; devhelp requires majorminor too
290install-data-local:
291        $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
292        (installfiles=`echo ./html/*.html`; \
293        if test "$$installfiles" = './html/*.html'; \
294        then echo '-- Nothing to install' ; \
295        else \
296          for i in $$installfiles; do \
297            echo '-- Installing '$$i ; \
298            $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
299          done; \
300          pngfiles=`echo ./html/*.png`; \
301          if test "$$pngfiles" != './html/*.png'; then \
302            for i in $$pngfiles; do \
303              echo '-- Installing '$$i ; \
304              $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
305            done; \
306          fi; \
307          echo '-- Installing $(srcdir)/html/$(DOC_MODULE).devhelp' ; \
308          $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp \
309            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \
310          echo '-- Installing $(srcdir)/html/index.sgml' ; \
311          $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
312                if test -e $(srcdir)/html/style.css; then \
313                        echo '-- Installing $(srcdir)/html/style.css' ; \
314                        $(INSTALL_DATA) $(srcdir)/html/style.css $(DESTDIR)$(TARGET_DIR); \
315                fi; \
316        fi)
317uninstall-local:
318        (installfiles=`echo ./html/*.html`; \
319        if test "$$installfiles" = './html/*.html'; \
320        then echo '-- Nothing to uninstall' ; \
321        else \
322          for i in $$installfiles; do \
323            rmfile=`basename $$i` ; \
324            echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \
325            rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \
326          done; \
327          pngfiles=`echo ./html/*.png`; \
328          if test "$$pngfiles" != './html/*.png'; then \
329            for i in $$pngfiles; do \
330              rmfile=`basename $$i` ; \
331              echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \
332              rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \
333            done; \
334          fi; \
335          echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp' ; \
336          rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \
337          echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/index.sgml' ; \
338          rm -f $(DESTDIR)$(TARGET_DIR)/index.sgml; \
339                if test -e $(DESTDIR)$(TARGET_DIR)/style.css; then \
340                        echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/style.css' ; \
341                        rm -f $(DESTDIR)$(TARGET_DIR)/style.css; \
342                fi; \
343        fi)
344        if test -d $(DESTDIR)$(TARGET_DIR); then rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(TARGET_DIR) 2>/dev/null; fi
345
346#
347# Require gtk-doc when making dist
348#
349if HAVE_GTK_DOC
350dist-check-gtkdoc:
351else
352dist-check-gtkdoc:
353        @echo "*** gtk-doc must be installed and enabled in order to make dist"
354        @false
355endif
356
357dist-hook: dist-check-gtkdoc dist-hook-local
358        mkdir $(distdir)/tmpl
359        mkdir $(distdir)/xml
360        mkdir $(distdir)/html
361        -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
362        -cp $(srcdir)/sgml/*.xml $(distdir)/xml
363        -cp $(srcdir)/html/index.sgml $(distdir)/html
364        -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
365        -cp $(srcdir)/html/gstreamer.devhelp $(distdir)/html
366
367        images=$(HTML_IMAGES) ;               \
368        for i in "" $$images ; do                     \
369          if test "$$i" != ""; then cp $(srcdir)/$$i $(distdir)/html ; fi; \
370        done
371
372.PHONY : dist-hook-local
Note: See TracBrowser for help on using the repository browser.