Makefile.am revision 7baf68502f14319bdd95f80645bdcce3f60f5b67
1## Process this file with automake to produce Makefile.in
2
3# The name of the module.
4DOC_MODULE=glib
5
6# The top-level SGML file.
7DOC_MAIN_SGML_FILE=glib-docs.sgml
8
9# The directory containing the source code. Relative to $(srcdir)
10DOC_SOURCE_DIR=../../..
11
12# Extra options to supply to gtkdoc-scan
13SCAN_OPTIONS=--deprecated-guards="G_DISABLE_DEPRECATED"
14
15# Extra options to supply to gtkdoc-mkdb
16MKDB_OPTIONS=--sgml-mode --output-format=xml --ignore-files=trio
17
18# Extra options to supply to gtkdoc-fixref
19FIXXREF_OPTIONS=
20
21# Used for dependencies
22HFILE_GLOB=$(top_srcdir)/glib/*.h $(top_srcdir)/gmodule/*.h
23CFILE_GLOB=$(top_srcdir)/glib/*.c $(top_srcdir)/gmodule/*.c
24
25# Headers to ignore
26IGNORE_HFILES=			\
27	build			\
28	gobject 		\
29	config.h 		\
30	glibintl.h		\
31	gbsearcharray.h		\
32	gmoduleconf.h		\
33	gunibreak.h		\
34	gunicomp.h		\
35	gunidecomp.h		\
36	gunichartables.h	\
37	glibconfig-sysdefs.h	\
38	gdebug.h		\
39	gprintfint.h		\
40	trio
41
42# Extra files to add when scanning
43EXTRA_HFILES=
44
45# Images to copy into HTML directory
46HTML_IMAGES =  				\
47	mainloop-states.gif
48
49# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
50content_files =				\
51	running.sgml			\
52	building.sgml			\
53	changes.sgml			\
54	compiling.sgml			\
55	resources.sgml			\
56	version.xml
57
58
59# Other files to distribute
60extra_files =				\
61	mainloop-states.fig		\
62	mainloop-states.png		\
63	mainloop-states.eps		\
64	version.xml.in
65
66# CFLAGS and LDFLAGS for compiling scan program. Only needed
67# if $(DOC_MODULE).types is non-empty.
68GTKDOC_CFLAGS =
69GTKDOC_LIBS =
70
71# Commands for compiling and linking 
72GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
73GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
74
75
76####################################
77# Everything below here is generic #
78####################################
79
80# We set GPATH here; this gives us semantics for GNU make
81# which are more like other make's VPATH, when it comes to
82# whether a source that is a target of one rule is then
83# searched for in VPATH/GPATH.
84#
85GPATH = $(srcdir)
86
87TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
88
89EXTRA_DIST = 				\
90	$(content_files)		\
91	$(extra_files)			\
92	$(HTML_IMAGES)			\
93	$(DOC_MAIN_SGML_FILE)		\
94	$(DOC_MODULE).types		\
95	$(DOC_MODULE)-sections.txt	\
96	$(DOC_MODULE)-overrides.txt
97
98DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
99	   $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
100
101SCANOBJ_FILES = 		 \
102	$(DOC_MODULE).args 	 \
103	$(DOC_MODULE).hierarchy  \
104	$(DOC_MODULE).interfaces \
105	$(DOC_MODULE).prerequisites \
106	$(DOC_MODULE).signals
107
108if ENABLE_GTK_DOC
109all-local: html-build.stamp
110
111#### scan ####
112
113scan-build.stamp: $(HFILE_GLOB)
114	@echo '*** Scanning header files ***'
115	if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \
116	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
117	else \
118	    cd $(srcdir) ; \
119	    for i in $(SCANOBJ_FILES) ; do \
120               test -f $$i || touch $$i ; \
121	    done \
122	fi
123	cd $(srcdir) && \
124	  gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
125	touch scan-build.stamp
126
127$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp
128	@true
129
130#### templates ####
131
132tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
133	@echo '*** Rebuilding template files ***'
134	cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
135	touch tmpl-build.stamp
136
137tmpl.stamp: tmpl-build.stamp
138	@true
139
140#### sgml ####
141
142sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml
143	@echo '*** Building SGML ***'
144	cd $(srcdir) && \
145	gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS)
146	touch sgml-build.stamp
147
148sgml.stamp: sgml-build.stamp
149	@true
150
151#### html ####
152
153html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
154	@echo '*** Building HTML ***'
155	rm -rf $(srcdir)/html 
156	mkdir $(srcdir)/html
157	cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
158	test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
159	@echo '-- Fixing Crossreferences' 
160	cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
161	touch html-build.stamp
162endif
163
164##############
165
166clean-local:
167	rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS)
168
169maintainer-clean-local: clean
170	cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
171
172install-data-local:
173	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
174	(installfiles=`echo $(srcdir)/html/*`; \
175	if test "$$installfiles" = '$(srcdir)/html/*'; \
176	then echo '-- Nothing to install' ; \
177	else \
178	  for i in $$installfiles; do \
179	    echo '-- Installing '$$i ; \
180	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
181	  done; \
182	  echo '-- Installing $(srcdir)/html/index.sgml' ; \
183	  $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
184	fi)
185
186#
187# Require gtk-doc when making dist
188#
189if ENABLE_GTK_DOC
190dist-check-gtkdoc:
191else
192dist-check-gtkdoc:
193	@echo "*** gtk-doc must be installed and enabled in order to make dist"
194	@false
195endif
196
197dist-hook: dist-check-gtkdoc dist-hook-local
198	mkdir $(distdir)/tmpl
199	mkdir $(distdir)/xml
200	mkdir $(distdir)/html
201	-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
202	-cp $(srcdir)/sgml/*.xml $(distdir)/xml
203	-cp $(srcdir)/html/* $(distdir)/html
204
205.PHONY : dist-hook-local
206
207
208