e515bf7fccd7bf76d5a8f43bf4c66e7ae9652cdd
[platform/upstream/glib.git] / docs / reference / gobject / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2
3 # The name of the module.
4 DOC_MODULE=gobject
5 # The top-level SGML file.
6 DOC_MAIN_SGML_FILE=gobject-docs.sgml
7 # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
8 EXTRA_DIST +=
9 # The directory containing the source code. Relative to $(srcdir)
10 DOC_SOURCE_DIR=../../../gobject
11 # Extra options to supply to gtkdoc-scan
12 SCAN_OPTIONS=
13 # Extra options to supply to gtkdoc-mkdb
14 MKDB_OPTIONS=
15 # Extra options to supply to gtkdoc-fixref
16 FIXXREF_OPTIONS=--extra-dir=$(srcdir)/../glib/html
17 # Images to copy into HTML directory
18 HTML_IMAGES =
19
20 # Used for dependencies
21 HFILE_GLOB=$(top_srcdir)/gobject/*.h
22 CFILE_GLOB=$(top_srcdir)/gobject/*.c
23 # Headers to ignore
24 IGNORE_HFILES=                          \
25         .saved                          \
26         glib-genmarshal.c               \
27         gbsearcharray.h
28 # Extra files to add when scanning
29 EXTRA_HFILES=
30
31 # CFLAGS and LDFLAGS for compiling scan program. Only needed
32 # if $(DOC_MODULE).types is non-empty.
33 GTKDOC_CFLAGS =
34 GTKDOC_LIBS =
35 # Commands for compiling and linking 
36 GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
37 GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
38
39
40 ####################################
41 # Everything below here is generic #
42 ####################################
43
44 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
45
46 DOC_STAMPS = $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp \
47              build-scan.stamp build-tmpl.stamp build-sgml.stamp build-html.stamp
48 # gtkdoc-mktmpl:        creates, and on changes touches:        tmpl.stamp
49 # gtkdoc-mkdb:          creates, and on changes touches:        sgml.stamp
50 # gtkdoc-mkhtml:        creates, and on changes touches:        html.stamp
51
52
53 .PHONY: gtkdoc-build-all
54
55 if ENABLE_GTK_DOC
56 SCANOBJ_FILES =                 \
57         $(DOC_MODULE).args      \
58         $(DOC_MODULE).hierarchy \
59         $(DOC_MODULE).signal
60
61 all-local: gtkdoc-build-all
62
63 gtkdoc-build-all: build-sgml.stamp build-html.stamp
64         @true
65 build-scan.stamp: $(HFILE_GLOB)
66         @echo '*** Scanning header files ***'
67         cd $(srcdir) && ( \
68         if grep -l '^.+$$' $(DOC_MODULE).types > /dev/null 2>/dev/null ; then \
69             CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) ; \
70         else \
71             for i in $(SCANOBJ_FILES) ; do \
72                test -f $$i || touch $$i ; \
73             done \
74         fi )
75         cd $(srcdir) && \
76           gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
77         touch build-scan.stamp
78 build-tmpl.stamp: build-scan.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(srcdir)/tmpl/*.sgml
79         @echo '*** Rebuilding template files ***'
80         cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
81         touch build-tmpl.stamp
82 tmpl.stamp: build-tmpl.stamp
83         @true
84 build-sgml.stamp: tmpl.stamp $(CFILE_GLOB)
85         @echo '*** Building SGML ***'
86         cd $(srcdir) && \
87         gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS)
88         touch build-sgml.stamp
89 sgml.stamp: build-sgml.stamp
90         @true
91 build-html.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE)
92         @echo '*** Building HTML ***'
93         test -d $(srcdir)/html || mkdir $(srcdir)/html
94         cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
95         test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
96         @echo '-- Fixing Crossreferences' 
97         cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
98         touch build-html.stamp
99 endif
100
101 clean-local:
102         rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS)
103
104 maintainer-clean-local: clean
105         cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
106
107 install-data-local:
108         $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
109         (installfiles=`echo $(srcdir)/html/*.html`; \
110         if test "$$installfiles" = '$(srcdir)/html/*.html'; \
111         then echo '-- Nothing to install' ; \
112         else \
113           for i in $$installfiles; do \
114             echo '-- Installing '$$i ; \
115             $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
116           done; \
117           echo '-- Installing $(srcdir)/html/index.sgml' ; \
118           $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
119         fi)
120
121 #
122 # Require gtk-doc when making dist
123 #
124 if ENABLE_GTK_DOC
125 dist-check-gtkdoc:
126 else
127 dist-check-gtkdoc:
128         @echo "*** gtk-doc must be installed and enabled in order to make dist"
129         @false
130 endif
131
132 dist-hook: dist-check-gtkdoc dist-hook-local
133         mkdir $(distdir)/tmpl
134         mkdir $(distdir)/sgml
135         mkdir $(distdir)/html
136         -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
137         -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
138         -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
139         -cp $(srcdir)/html/index.sgml $(distdir)/html
140         -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
141         for i in $(HTML_IMAGES) ; do          \
142           cp $(srcdir)/$$i $(distdir)/html ;  \
143         done
144
145 .PHONY: dist-hook-local
146
147
148 EXTRA_DIST =                            \
149         $(HTML_IMAGES)                  \
150         $(DOC_MAIN_SGML_FILE)           \
151         $(DOC_MODULE).types             \
152         $(DOC_MODULE)-sections.txt      \
153         $(DOC_MODULE)-overrides.txt