makefiles: Make sure that dependencies are always updated when regenerating makefiles.
[wine/multimedia.git] / Makefile.in
blob2cd8bf1097b5b27c33bf956be5ecf6f9ed24dca6
1 # This Makefile understands the following targets:
3 # all (default): build wine
4 # clean: remove all intermediate files
5 # distclean: also remove all files created by configure
6 # test: run tests
7 # testclean: clean test results to force running all tests again
8 # crosstest: build tests as native windows applications (requires MinGW)
9 # install-lib: install libraries needed to run applications
10 # install-dev: install development environment
11 # install: install everything
12 # uninstall: uninstall everything
13 # depend: create the dependencies
14 # ctags: create a tags file for vim and others.
15 # etags: create a TAGS file for Emacs.
16 # manpages: compile manpages for Wine API
17 # htmlpages: compile html pages for Wine API
18 # sgmlpages: compile sgml source for the Wine API Guide
19 # xmlpages: compile xml source for the Wine API Guide
21 # Directories
23 TOPSRCDIR = @top_srcdir@
24 TOPOBJDIR = .
25 SRCDIR = @srcdir@
26 VPATH = @srcdir@
27 LIBEXT = @LIBEXT@
28 MODULE = none
30 ALL_DIRS = @ALL_DIRS@
31 ALL_DLL_DIRS = @ALL_DLL_DIRS@
32 ALL_INSTALL_DIRS = @ALL_INSTALL_DIRS@
33 ALL_PROGRAM_DIRS = @ALL_PROGRAM_DIRS@
34 ALL_STATICLIB_DIRS = @ALL_STATICLIB_DIRS@
35 ALL_TEST_DIRS = @ALL_TEST_DIRS@
36 ALL_TOOL_DIRS = @ALL_TOOL_DIRS@
37 ALL_TOP_DIRS = @ALL_TOP_DIRS@
39 # Sub-directories to run make all into
40 BUILDSUBDIRS = \
41 libs/wine \
42 $(ALL_TOOL_DIRS) \
43 $(ALL_TOP_DIRS) \
44 $(ALL_STATICLIB_DIRS) \
45 $(ALL_DLL_DIRS) \
46 $(ALL_PROGRAM_DIRS) \
47 $(ALL_TEST_DIRS)
49 # Sub-directories to run make install/uninstall into
50 INSTALLSUBDIRS = \
51 libs/wine \
52 $(ALL_TOOL_DIRS) \
53 $(ALL_TOP_DIRS) \
54 $(ALL_STATICLIB_DIRS) \
55 $(ALL_DLL_DIRS) \
56 $(ALL_INSTALL_DIRS)
58 # Sub-directories that don't have a makefile
59 EXTRASUBDIRS = dlls libs
61 all: wine
62 @echo "Wine build complete."
64 WINAPI_CHECK_EXTRA_FLAGS = --global
66 @MAKE_RULES@
68 # Rules for re-running configure
70 ALL_CONFIGS = Makefile @ALL_MAKERULES@ @ALL_SYMLINKS@
72 $(SRCDIR)/configure: @MAINTAINER_MODE@ configure.ac aclocal.m4
73 cd $(SRCDIR) && autoconf --warnings=all
75 $(SRCDIR)/include/config.h.in: @MAINTAINER_MODE@ include/stamp-h.in
76 $(SRCDIR)/include/stamp-h.in: configure.ac aclocal.m4
77 cd $(SRCDIR) && autoheader --warnings=all
78 @echo timestamp > $@
80 config.status: configure
81 @./config.status --recheck
83 include/config.h: include/stamp-h
84 include/stamp-h: include/config.h.in config.status
85 @./config.status include/config.h include/stamp-h
87 $(ALL_CONFIGS):
88 @./config.status $@
90 # Rules for building
92 all: $(BUILDSUBDIRS)
94 $(ALL_DIRS): dummy
95 @cd $@ && $(MAKE)
97 .PHONY: $(ALL_DIRS)
99 # Rules for dependencies
101 depend: $(ALL_DIRS:%=%/__depend__) dummy
102 .PHONY: $(ALL_DIRS:%=%/__depend__)
104 # Rules for cleaning
106 $(ALL_DIRS:%=%/__clean__): dummy
107 @cd `dirname $@` && $(MAKE) clean
109 clean:: $(ALL_DIRS:%=%/__clean__)
110 $(RM) $(ALL_DIRS:%=%/Makefile)
112 distclean:: clean
113 $(RM) config.* configure.lineno TAGS tags include/config.h include/stamp-h $(ALL_CONFIGS)
114 $(RM) -r autom4te.cache
116 .PHONY: distclean $(ALL_DIRS:%=%/__clean__)
118 # Rules for installing
120 $(INSTALLSUBDIRS:%=%/__install__): dummy
121 @cd `dirname $@` && $(MAKE) install
123 $(INSTALLSUBDIRS:%=%/__install-lib__): dummy
124 @cd `dirname $@` && $(MAKE) install-lib
126 $(INSTALLSUBDIRS:%=%/__install-dev__): dummy
127 @cd `dirname $@` && $(MAKE) install-dev
129 $(INSTALLSUBDIRS:%=%/__uninstall__): dummy
130 @cd `dirname $@` && $(MAKE) uninstall
132 install:: $(INSTALLSUBDIRS:%=%/__install__) dummy
133 install-lib:: $(INSTALLSUBDIRS:%=%/__install-lib__) dummy
134 install-dev:: $(INSTALLSUBDIRS:%=%/__install-dev__) dummy
135 uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__) dummy
137 .PHONY: $(INSTALLSUBDIRS:%=%/__install__) $(INSTALLSUBDIRS:%=%/__uninstall__) \
138 $(INSTALLSUBDIRS:%=%/__install-lib__) $(INSTALLSUBDIRS:%=%/__install-dev__)
140 uninstall::
141 -rmdir $(DESTDIR)$(datadir)/wine $(DESTDIR)$(fakedlldir) $(DESTDIR)$(dlldir)
143 # Rules for testing
145 $(ALL_TEST_DIRS:%=%/__test__): dummy
146 @cd `dirname $@` && $(MAKE) test
148 $(ALL_TEST_DIRS:%=%/__crosstest__): dummy
149 @cd `dirname $@` && $(MAKE) crosstest
151 $(ALL_TEST_DIRS:%=%/__testclean__): dummy
152 @cd `dirname $@` && $(MAKE) testclean
154 check test:: $(ALL_TEST_DIRS:%=%/__test__)
155 crosstest:: $(ALL_TEST_DIRS:%=%/__crosstest__)
156 testclean:: $(ALL_TEST_DIRS:%=%/__testclean__)
158 .PHONY: check test testclean crosstest $(ALL_TEST_DIRS:%=%/__test__) \
159 $(ALL_TEST_DIRS:%=%/__crosstest__) $(ALL_TEST_DIRS:%=%/__testclean__)
161 # Rules for auto documentation
163 DOCSUBDIRS = $(ALL_DLL_DIRS)
165 $(DOCSUBDIRS:%=%/__man__): dummy
166 @cd `dirname $@` && $(MAKE) man
168 $(DOCSUBDIRS:%=%/__doc_html__): dummy
169 @cd `dirname $@` && $(MAKE) doc-html
171 $(DOCSUBDIRS:%=%/__doc_sgml__): dummy
172 @cd `dirname $@` && $(MAKE) doc-sgml
174 $(DOCSUBDIRS:%=%/__doc_xml__): dummy
175 @cd `dirname $@` && $(MAKE) doc-xml
177 man: $(DOCSUBDIRS:%=%/__man__)
178 doc-html: $(DOCSUBDIRS:%=%/__doc_html__)
179 doc-sgml: $(DOCSUBDIRS:%=%/__doc_sgml__)
180 doc-xml: $(DOCSUBDIRS:%=%/__doc_xml__)
182 manpages htmlpages sgmlpages xmlpages: dummy
183 @cd documentation && $(MAKE) $@
185 .PHONY: man doc-html doc-sgml doc-xml manpages htmlpages sgmlpages xmlpages \
186 $(DOCSUBDIRS:%=%/__man__) $(DOCSUBDIRS:%=%/__doc_html__) $(DOCSUBDIRS:%=%/__doc_sgml__) $(DOCSUBDIRS:%=%/__doc_xml__)
188 # Rules for import libraries
190 STATIC_LIBS = @ALL_STATIC_LIBS@
191 IMPORT_LIBS = @ALL_IMPORT_LIBS@
193 implib: $(ALL_STATICLIB_DIRS) $(IMPORT_LIBS)
194 .PHONY: implib
196 # Dependencies between directories
198 # dependencies needed to build any dll or program
199 __tooldeps__: libs/port libs/wine libs/wpp $(ALL_TOOL_DIRS)
200 __builddeps__: __tooldeps__ include $(ALL_STATICLIB_DIRS) $(IMPORT_LIBS)
201 __buildcrossdeps__: __tooldeps__ include $(STATIC_LIBS:.a=.cross.a) $(IMPORT_LIBS:.def=.cross.a)
202 .PHONY: __tooldeps__ __builddeps__ __buildcrossdeps__
204 loader server: libs/port libs/wine tools
205 fonts: tools
206 include: tools/widl
207 programs/winetest: $(ALL_TEST_DIRS)
208 libs/wine $(ALL_TOOL_DIRS): libs/port
209 tools/wmc tools/wrc: tools
210 tools tools/wmc tools/wrc: libs/wine
211 tools/widl tools/wmc tools/wrc: libs/wpp
213 fonts/__install__ fonts/__install-lib__: tools
214 include/__install__ include/__install-dev__: include
215 libs/wine/__install__ libs/wine/__install-lib__ libs/wine/__install-dev__: libs/wine
216 loader/__install__ loader/__install-lib__: libs/port libs/wine tools
217 server/__install__ server/__install-lib__: libs/port libs/wine tools
218 tools/__install__ tools/__install-lib__ tools/__install-dev__: tools
219 tools/widl/__install__ tools/widl/__install-dev__: tools/widl
220 tools/winebuild/__install__ tools/winebuild/__install-dev__: tools/winebuild
221 tools/winedump/__install__ tools/winedump/__install-dev__: tools/winedump
222 tools/winegcc/__install__ tools/winegcc/__install-dev__: tools/winegcc
223 tools/wmc/__install__ tools/wmc/__install-dev__: tools/wmc
224 tools/wrc/__install__ tools/wrc/__install-dev__: tools/wrc
226 RECURSE_TARGETS = \
227 __clean__ \
228 __install__ \
229 __instal-dev__ \
230 __install-lib__ \
231 __uninstall__ \
232 __crosstest__
234 $(MAKEDEP): include/config.h tools/Makefile
235 @cd $(TOOLSDIR)/tools && $(MAKE) makedep$(TOOLSEXT)
237 # Misc rules
239 TAGS etags:
240 $(RM) TAGS
241 (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs etags -a
243 tags ctags:
244 $(RM) tags
245 (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs ctags -a
247 # Makefile rules
249 .INIT: Makefile
250 .BEGIN: Makefile
251 .MAKEFILEDEPS:
253 @ALL_MAKEFILE_DEPENDS@