1 | # -*- mode: makefile -*- |
---|
2 | |
---|
3 | #################################### |
---|
4 | # Everything below here is generic # |
---|
5 | #################################### |
---|
6 | |
---|
7 | if GTK_DOC_USE_LIBTOOL |
---|
8 | GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS) |
---|
9 | GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) |
---|
10 | else |
---|
11 | GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS) |
---|
12 | GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) |
---|
13 | endif |
---|
14 | |
---|
15 | # We set GPATH here; this gives us semantics for GNU make |
---|
16 | # which are more like other make's VPATH, when it comes to |
---|
17 | # whether a source that is a target of one rule is then |
---|
18 | # searched for in VPATH/GPATH. |
---|
19 | # |
---|
20 | GPATH = $(srcdir) |
---|
21 | |
---|
22 | TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) |
---|
23 | |
---|
24 | EXTRA_DIST = \ |
---|
25 | $(content_files) \ |
---|
26 | $(HTML_IMAGES) \ |
---|
27 | $(DOC_MAIN_SGML_FILE) \ |
---|
28 | $(DOC_MODULE).types \ |
---|
29 | $(DOC_MODULE)-sections.txt \ |
---|
30 | $(DOC_MODULE)-overrides.txt |
---|
31 | |
---|
32 | DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ |
---|
33 | $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp |
---|
34 | |
---|
35 | SCANOBJ_FILES = \ |
---|
36 | $(DOC_MODULE).args \ |
---|
37 | $(DOC_MODULE).hierarchy \ |
---|
38 | $(DOC_MODULE).interfaces \ |
---|
39 | $(DOC_MODULE).prerequisites \ |
---|
40 | $(DOC_MODULE).signals |
---|
41 | |
---|
42 | CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-scan.o $(DOC_MODULE)-unused.txt $(DOC_STAMPS) |
---|
43 | |
---|
44 | if ENABLE_GTK_DOC |
---|
45 | all-local: html-build.stamp |
---|
46 | |
---|
47 | #### scan #### |
---|
48 | |
---|
49 | scan-build.stamp: $(HFILE_GLOB) |
---|
50 | @echo '*** Scanning header files ***' |
---|
51 | @-chmod -R u+w $(srcdir) |
---|
52 | if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \ |
---|
53 | CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ |
---|
54 | else \ |
---|
55 | cd $(srcdir) ; \ |
---|
56 | for i in $(SCANOBJ_FILES) ; do \ |
---|
57 | test -f $$i || touch $$i ; \ |
---|
58 | done \ |
---|
59 | fi |
---|
60 | cd $(srcdir) && \ |
---|
61 | gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) |
---|
62 | touch scan-build.stamp |
---|
63 | |
---|
64 | $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp |
---|
65 | @true |
---|
66 | |
---|
67 | #### templates #### |
---|
68 | |
---|
69 | tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt |
---|
70 | @echo '*** Rebuilding template files ***' |
---|
71 | @-chmod -R u+w $(srcdir) |
---|
72 | cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) |
---|
73 | touch tmpl-build.stamp |
---|
74 | |
---|
75 | tmpl.stamp: tmpl-build.stamp |
---|
76 | @true |
---|
77 | |
---|
78 | #### xml #### |
---|
79 | |
---|
80 | sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml |
---|
81 | @echo '*** Building XML ***' |
---|
82 | @-chmod -R u+w $(srcdir) |
---|
83 | cd $(srcdir) && \ |
---|
84 | gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml $(MKDB_OPTIONS) |
---|
85 | touch sgml-build.stamp |
---|
86 | |
---|
87 | sgml.stamp: sgml-build.stamp |
---|
88 | @true |
---|
89 | |
---|
90 | #### html #### |
---|
91 | |
---|
92 | html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) |
---|
93 | @echo '*** Building HTML ***' |
---|
94 | @-chmod -R u+w $(srcdir) |
---|
95 | rm -rf $(srcdir)/html |
---|
96 | mkdir $(srcdir)/html |
---|
97 | cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) |
---|
98 | test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) |
---|
99 | @echo '-- Fixing Crossreferences' |
---|
100 | cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) |
---|
101 | touch html-build.stamp |
---|
102 | endif |
---|
103 | |
---|
104 | ############## |
---|
105 | |
---|
106 | clean-local: |
---|
107 | rm -f *~ *.bak |
---|
108 | |
---|
109 | maintainer-clean-local: clean |
---|
110 | cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt |
---|
111 | |
---|
112 | install-data-local: |
---|
113 | $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) |
---|
114 | (installfiles=`echo $(srcdir)/html/*`; \ |
---|
115 | if test "$$installfiles" = '$(srcdir)/html/*'; \ |
---|
116 | then echo '-- Nothing to install' ; \ |
---|
117 | else \ |
---|
118 | for i in $$installfiles; do \ |
---|
119 | echo '-- Installing '$$i ; \ |
---|
120 | $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ |
---|
121 | done; \ |
---|
122 | echo '-- Installing $(srcdir)/html/index.sgml' ; \ |
---|
123 | $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \ |
---|
124 | fi) |
---|
125 | |
---|
126 | uninstall-local: |
---|
127 | rm -f $(DESTDIR)$(TARGET_DIR)/* |
---|
128 | |
---|
129 | # |
---|
130 | # Require gtk-doc when making dist |
---|
131 | # |
---|
132 | if ENABLE_GTK_DOC |
---|
133 | dist-check-gtkdoc: |
---|
134 | else |
---|
135 | dist-check-gtkdoc: |
---|
136 | @echo "*** gtk-doc must be installed and enabled in order to make dist" |
---|
137 | @false |
---|
138 | endif |
---|
139 | |
---|
140 | dist-hook: dist-check-gtkdoc dist-hook-local |
---|
141 | mkdir $(distdir)/tmpl |
---|
142 | mkdir $(distdir)/xml |
---|
143 | mkdir $(distdir)/html |
---|
144 | -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl |
---|
145 | -cp $(srcdir)/xml/*.xml $(distdir)/xml |
---|
146 | -cp $(srcdir)/html/* $(distdir)/html |
---|
147 | |
---|
148 | .PHONY : dist-hook-local |
---|