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
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
23 TOPSRCDIR
= @top_srcdir@
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
44 $(ALL_STATICLIB_DIRS
) \
49 # Sub-directories to run make install/uninstall into
54 $(ALL_STATICLIB_DIRS
) \
58 # Sub-directories that don't have a makefile
59 EXTRASUBDIRS
= dlls libs
62 @echo
"Wine build complete."
64 WINAPI_CHECK_EXTRA_FLAGS
= --global
68 # Rules for re-running configure
70 ALL_CONFIGS
= Makefile
$(ALL_DIRS
:%=%/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
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
99 # Rules for dependencies
101 $(ALL_DIRS
:%=%/__depend__
): dummy
102 @cd
`dirname $@` && $(MAKE
) depend
104 depend
: $(MAKEDEP
) $(ALL_DIRS
:%=%/__depend__
) dummy
105 .PHONY
: $(ALL_DIRS
:%=%/__depend__
)
109 $(ALL_DIRS
:%=%/__clean__
): dummy
110 @cd
`dirname $@` && $(MAKE
) clean
112 clean:: $(ALL_DIRS
:%=%/__clean__
)
115 $(RM
) config.
* configure.lineno TAGS
tags include/config.h
include/stamp-h
$(ALL_CONFIGS
)
116 $(RM
) -r autom4te.cache
118 .PHONY
: distclean $(ALL_DIRS
:%=%/__clean__
)
120 # Rules for installing
122 $(INSTALLSUBDIRS
:%=%/__install__
): dummy
123 @cd
`dirname $@` && $(MAKE
) install
125 $(INSTALLSUBDIRS
:%=%/__install-lib__
): dummy
126 @cd
`dirname $@` && $(MAKE
) install-lib
128 $(INSTALLSUBDIRS
:%=%/__install-dev__
): dummy
129 @cd
`dirname $@` && $(MAKE
) install-dev
131 $(INSTALLSUBDIRS
:%=%/__uninstall__
): dummy
132 @cd
`dirname $@` && $(MAKE
) uninstall
134 install:: $(INSTALLSUBDIRS
:%=%/__install__
) dummy
135 install-lib
:: $(INSTALLSUBDIRS
:%=%/__install-lib__
) dummy
136 install-dev
:: $(INSTALLSUBDIRS
:%=%/__install-dev__
) dummy
137 uninstall:: $(INSTALLSUBDIRS
:%=%/__uninstall__
) dummy
139 .PHONY
: $(INSTALLSUBDIRS
:%=%/__install__
) $(INSTALLSUBDIRS
:%=%/__uninstall__
) \
140 $(INSTALLSUBDIRS
:%=%/__install-lib__
) $(INSTALLSUBDIRS
:%=%/__install-dev__
)
143 -rmdir
$(DESTDIR
)$(datadir)/wine
$(DESTDIR
)$(fakedlldir
) $(DESTDIR
)$(dlldir
)
147 $(ALL_TEST_DIRS
:%=%/__test__
): dummy
148 @cd
`dirname $@` && $(MAKE
) test
150 $(ALL_TEST_DIRS
:%=%/__crosstest__
): dummy
151 @cd
`dirname $@` && $(MAKE
) crosstest
153 $(ALL_TEST_DIRS
:%=%/__testclean__
): dummy
154 @cd
`dirname $@` && $(MAKE
) testclean
156 check test:: $(ALL_TEST_DIRS
:%=%/__test__
)
157 crosstest
:: $(ALL_TEST_DIRS
:%=%/__crosstest__
)
158 testclean
:: $(ALL_TEST_DIRS
:%=%/__testclean__
)
160 .PHONY
: check test testclean crosstest
$(ALL_TEST_DIRS
:%=%/__test__
) \
161 $(ALL_TEST_DIRS
:%=%/__crosstest__
) $(ALL_TEST_DIRS
:%=%/__testclean__
)
163 # Rules for auto documentation
165 DOCSUBDIRS
= $(ALL_DLL_DIRS
)
167 $(DOCSUBDIRS
:%=%/__man__
): dummy
168 @cd
`dirname $@` && $(MAKE
) man
170 $(DOCSUBDIRS
:%=%/__doc_html__
): dummy
171 @cd
`dirname $@` && $(MAKE
) doc-html
173 $(DOCSUBDIRS
:%=%/__doc_sgml__
): dummy
174 @cd
`dirname $@` && $(MAKE
) doc-sgml
176 $(DOCSUBDIRS
:%=%/__doc_xml__
): dummy
177 @cd
`dirname $@` && $(MAKE
) doc-xml
179 man
: $(DOCSUBDIRS
:%=%/__man__
)
180 doc-html
: $(DOCSUBDIRS
:%=%/__doc_html__
)
181 doc-sgml
: $(DOCSUBDIRS
:%=%/__doc_sgml__
)
182 doc-xml
: $(DOCSUBDIRS
:%=%/__doc_xml__
)
184 manpages htmlpages sgmlpages xmlpages
: dummy
185 @cd documentation
&& $(MAKE
) $@
187 .PHONY
: man doc-html doc-sgml doc-xml manpages htmlpages sgmlpages xmlpages \
188 $(DOCSUBDIRS
:%=%/__man__
) $(DOCSUBDIRS
:%=%/__doc_html__
) $(DOCSUBDIRS
:%=%/__doc_sgml__
) $(DOCSUBDIRS
:%=%/__doc_xml__
)
190 # Rules for import libraries
192 STATIC_LIBS
= @ALL_STATIC_LIBS@
193 IMPORT_LIBS
= @ALL_IMPORT_LIBS@
195 implib
: $(ALL_STATICLIB_DIRS
) $(IMPORT_LIBS
)
198 # Dependencies between directories
200 # dependencies needed to build any dll or program
201 __tooldeps__
: libs
/port libs
/wine libs
/wpp
$(ALL_TOOL_DIRS
)
202 __builddeps__
: __tooldeps__
include $(ALL_STATICLIB_DIRS
) $(IMPORT_LIBS
)
203 __buildcrossdeps__
: __tooldeps__
include $(STATIC_LIBS
:.a
=.cross.a
) $(IMPORT_LIBS
:.def
=.cross.a
)
204 .PHONY
: __tooldeps__ __builddeps__ __buildcrossdeps__
206 loader server
: libs
/port libs
/wine tools
209 programs
/winetest
: $(ALL_TEST_DIRS
)
210 libs
/wine
$(ALL_TOOL_DIRS
): libs
/port
211 tools
/wmc tools
/wrc
: tools
212 tools tools
/wmc tools
/wrc
: libs
/wine
213 tools
/widl tools
/wmc tools
/wrc
: libs
/wpp
215 fonts
/__install__ fonts
/__install-lib__
: tools
216 include/__install__
include/__install-dev__
: include
217 libs
/wine
/__install__ libs
/wine
/__install-lib__ libs
/wine
/__install-dev__
: libs
/wine
218 loader
/__install__ loader
/__install-lib__
: libs
/port libs
/wine tools
219 server
/__install__ server
/__install-lib__
: libs
/port libs
/wine tools
220 tools
/__install__ tools
/__install-lib__ tools
/__install-dev__
: tools
221 tools
/widl
/__install__ tools
/widl
/__install-dev__
: tools
/widl
222 tools
/winebuild
/__install__ tools
/winebuild
/__install-dev__
: tools
/winebuild
223 tools
/winedump
/__install__ tools
/winedump
/__install-dev__
: tools
/winedump
224 tools
/winegcc
/__install__ tools
/winegcc
/__install-dev__
: tools
/winegcc
225 tools
/wmc
/__install__ tools
/wmc
/__install-dev__
: tools
/wmc
226 tools
/wrc
/__install__ tools
/wrc
/__install-dev__
: tools
/wrc
237 $(MAKEDEP
): include/config.h tools
/Makefile
238 @cd
$(TOOLSDIR
)/tools
&& $(MAKE
) makedep
$(TOOLSEXT
)
244 (test -d .git
&& git ls-files
'*.[chly]' '*.idl' || find
-L
$(TOPSRCDIR
) -name
'*.[ch]' -print) | xargs etags
-a
248 (test -d .git
&& git ls-files
'*.[chly]' '*.idl' || find
-L
$(TOPSRCDIR
) -name
'*.[ch]' -print) | xargs ctags
-a
256 @ALL_MAKEFILE_DEPENDS@