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_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 depend
: $(ALL_DIRS
:%=%/__depend__
) dummy
102 .PHONY
: $(ALL_DIRS
:%=%/__depend__
)
106 $(ALL_DIRS
:%=%/__clean__
): dummy
107 @cd
`dirname $@` && $(MAKE
) clean
109 clean:: $(ALL_DIRS
:%=%/__clean__
)
110 $(RM
) $(ALL_DIRS
:%=%/Makefile
) tools
/makedep
$(EXEEXT
)
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__
)
141 -rmdir
$(DESTDIR
)$(datadir)/wine
$(DESTDIR
)$(fakedlldir
) $(DESTDIR
)$(dlldir
)
145 $(ALL_TEST_DIRS
:%=%/__test__
): dummy
146 @cd
`dirname $@` && $(MAKE
) test
148 $(ALL_TEST_DIRS
:%=%/__crosstest__
): dummy
149 @cd
`dirname $@` && $(MAKE
) crosstest
151 check test:: $(ALL_TEST_DIRS
:%=%/__test__
)
152 crosstest
:: $(ALL_TEST_DIRS
:%=%/__crosstest__
)
155 $(RM
) $(ALL_TEST_DIRS
:%=%/*.ok
)
157 .PHONY
: check test testclean crosstest
$(ALL_TEST_DIRS
:%=%/__test__
) $(ALL_TEST_DIRS
:%=%/__crosstest__
)
159 # Rules for auto documentation
161 DOCSUBDIRS
= $(ALL_DLL_DIRS
)
163 $(DOCSUBDIRS
:%=%/__man__
): dummy
164 @cd
`dirname $@` && $(MAKE
) man
166 $(DOCSUBDIRS
:%=%/__doc_html__
): dummy
167 @cd
`dirname $@` && $(MAKE
) doc-html
169 $(DOCSUBDIRS
:%=%/__doc_sgml__
): dummy
170 @cd
`dirname $@` && $(MAKE
) doc-sgml
172 $(DOCSUBDIRS
:%=%/__doc_xml__
): dummy
173 @cd
`dirname $@` && $(MAKE
) doc-xml
175 man
: $(DOCSUBDIRS
:%=%/__man__
)
176 doc-html
: $(DOCSUBDIRS
:%=%/__doc_html__
)
177 doc-sgml
: $(DOCSUBDIRS
:%=%/__doc_sgml__
)
178 doc-xml
: $(DOCSUBDIRS
:%=%/__doc_xml__
)
180 manpages htmlpages sgmlpages xmlpages
: dummy
181 @cd documentation
&& $(MAKE
) $@
183 .PHONY
: man doc-html doc-sgml doc-xml manpages htmlpages sgmlpages xmlpages \
184 $(DOCSUBDIRS
:%=%/__man__
) $(DOCSUBDIRS
:%=%/__doc_html__
) $(DOCSUBDIRS
:%=%/__doc_sgml__
) $(DOCSUBDIRS
:%=%/__doc_xml__
)
186 # Rules for import libraries
188 STATIC_LIBS
= @ALL_STATIC_LIBS@
189 IMPORT_LIBS
= @ALL_IMPORT_LIBS@
191 implib
: $(ALL_STATICLIB_DIRS
) $(IMPORT_LIBS
)
194 # Dependencies between directories
196 # dependencies needed to build any dll or program
197 __tooldeps__
: libs
/port libs
/wine libs
/wpp
$(ALL_TOOL_DIRS
)
198 __builddeps__
: __tooldeps__
include $(ALL_STATICLIB_DIRS
) $(IMPORT_LIBS
)
199 __buildcrossdeps__
: __tooldeps__
include $(STATIC_LIBS
:.a
=.cross.a
) $(IMPORT_LIBS
:.def
=.cross.a
)
200 .PHONY
: __tooldeps__ __builddeps__ __buildcrossdeps__
202 loader server
: libs
/port libs
/wine tools
205 programs
/winetest
: $(ALL_TEST_DIRS
)
206 libs
/wine
$(ALL_TOOL_DIRS
): libs
/port
207 tools
/wmc tools
/wrc
: tools
208 tools tools
/wmc tools
/wrc
: libs
/wine
209 tools
/widl tools
/wmc tools
/wrc
: libs
/wpp
211 fonts
/__install__ fonts
/__install-lib__
: tools
212 include/__install__
include/__install-dev__
: include
213 libs
/wine
/__install__ libs
/wine
/__install-lib__ libs
/wine
/__install-dev__
: libs
/wine
214 loader
/__install__ loader
/__install-lib__
: libs
/port libs
/wine tools
215 server
/__install__ server
/__install-lib__
: libs
/port libs
/wine tools
216 tools
/__install__ tools
/__install-lib__ tools
/__install-dev__
: tools
217 tools
/widl
/__install__ tools
/widl
/__install-dev__
: tools
/widl
218 tools
/winebuild
/__install__ tools
/winebuild
/__install-dev__
: tools
/winebuild
219 tools
/winedump
/__install__ tools
/winedump
/__install-dev__
: tools
/winedump
220 tools
/winegcc
/__install__ tools
/winegcc
/__install-dev__
: tools
/winegcc
221 tools
/wmc
/__install__ tools
/wmc
/__install-dev__
: tools
/wmc
222 tools
/wrc
/__install__ tools
/wrc
/__install-dev__
: tools
/wrc
223 tools
/__depend__
: $(MAKEDEP
)
225 $(MAKEDEP
): include/config.h tools
/Makefile
226 @cd
$(TOOLSDIR
)/tools
&& $(MAKE
) makedep
$(TOOLSEXT
)
232 (test -d .git
&& git ls-files
'*.[chly]' '*.idl' || find
-L
$(TOPSRCDIR
) -name
'*.[ch]' -print) | xargs etags
-a
236 (test -d .git
&& git ls-files
'*.[chly]' '*.idl' || find
-L
$(TOPSRCDIR
) -name
'*.[ch]' -print) | xargs ctags
-a
244 @ALL_MAKEFILE_DEPENDS@