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@
30 ALL_STATICLIB_DIRS
= @ALL_STATICLIB_DIRS@
31 ALL_TEST_DIRS
= @ALL_TEST_DIRS@
32 ALL_TOOL_DIRS
= @ALL_TOOL_DIRS@
33 ALL_TOP_DIRS
= @ALL_TOP_DIRS@
35 # Sub-directories to run make depend/clean into
48 $(ALL_STATICLIB_DIRS
) \
51 # Sub-directories to run make all into
56 $(ALL_STATICLIB_DIRS
) \
59 # Sub-directories to run make install/uninstall into
66 # Sub-directories to run make test into
67 TESTSUBDIRS
= $(ALL_TEST_DIRS
)
69 # Sub-directories that don't have a makefile
73 @echo
"Wine build complete."
75 WINAPI_CHECK_EXTRA_FLAGS
= --global
79 $(SRCDIR
)/configure
: @MAINTAINER_MODE@ configure.ac aclocal.m4
80 cd
$(SRCDIR
) && autoconf
--warnings
=all
82 $(SRCDIR
)/include/config.h.in
: @MAINTAINER_MODE@
include/stamp-h.in
83 $(SRCDIR
)/include/stamp-h.in
: configure.ac aclocal.m4
84 cd
$(SRCDIR
) && autoheader
--warnings
=all
87 config.status
: configure
88 @.
/config.status
--recheck
90 include/config.h
: include/stamp-h
91 include/stamp-h
: include/config.h.in config.status
92 @.
/config.status
include/config.h
include/stamp-h
97 -rmdir
$(DESTDIR
)$(datadir)/wine
101 STATIC_LIBS
= @ALL_STATIC_LIBS@
102 IMPORT_LIBS
= @ALL_IMPORT_LIBS@
104 implib
: $(ALL_STATICLIB_DIRS
) $(IMPORT_LIBS
)
107 # Dependencies between directories
111 # dependencies needed to build any dll or program
112 __builddeps__
: libs
/port libs
/wine libs
/wpp
$(ALL_TOOL_DIRS
) include $(ALL_STATICLIB_DIRS
) $(IMPORT_LIBS
)
113 __buildcrossdeps__
: libs
/port libs
/wine
$(ALL_TOOL_DIRS
) include $(STATIC_LIBS
:.a
=.cross.a
) $(IMPORT_LIBS
:.def
=.cross.a
)
114 .PHONY
: __builddeps__ __buildcrossdeps__
116 dlls programs
: __builddeps__
117 loader server
: libs
/port libs
/wine tools
120 programs
: $(ALL_TEST_DIRS
)
121 libs
/wine
$(ALL_TOOL_DIRS
): libs
/port
122 tools
/wmc tools
/wrc
: tools
123 tools tools
/wmc tools
/wrc
: libs
/wine
124 tools
/widl tools
/wmc tools
/wrc
: libs
/wpp
126 dlls
/__install__ dlls
/__install-lib__ dlls
/__install-dev__
: __builddeps__
127 programs
/__install__ programs
/__install-lib__
: __builddeps__
128 fonts
/__install__ fonts
/__install-lib__
: tools
129 include/__install__
include/__install-dev__
: include
130 libs
/wine
/__install__ libs
/wine
/__install-lib__ libs
/wine
/__install-dev__
: libs
/wine
131 loader
/__install__ loader
/__install-lib__
: libs
/port libs
/wine tools
132 server
/__install__ server
/__install-lib__
: libs
/port libs
/wine tools
133 tools
/__install__ tools
/__install-lib__ tools
/__install-dev__
: tools
134 tools
/widl
/__install__ tools
/widl
/__install-dev__
: tools
/widl
135 tools
/winebuild
/__install__ tools
/winebuild
/__install-dev__
: tools
/winebuild
136 tools
/winedump
/__install__ tools
/winedump
/__install-dev__
: tools
/winedump
137 tools
/winegcc
/__install__ tools
/winegcc
/__install-dev__
: tools
/winegcc
138 tools
/wmc
/__install__ tools
/wmc
/__install-dev__
: tools
/wmc
139 tools
/wrc
/__install__ tools
/wrc
/__install-dev__
: tools
/wrc
150 dlls
$(RECURSE_TARGETS
:%=dlls
/%): $(MAKEDEP
)
151 programs
$(RECURSE_TARGETS
:%=programs
/%): $(MAKEDEP
)
154 $(MAKEDEP
): include/config.h tools
/Makefile
155 @cd
$(TOOLSDIR
)/tools
&& $(MAKE
) makedep
$(TOOLSEXT
)
161 (test -d .git
&& git ls-files
'*.[chly]' '*.idl' || find
-L
$(TOPSRCDIR
) -name
'*.[ch]' -print) | xargs etags
-a
165 (test -d .git
&& git ls-files
'*.[chly]' '*.idl' || find
-L
$(TOPSRCDIR
) -name
'*.[ch]' -print) | xargs ctags
-a
167 manpages htmlpages sgmlpages xmlpages
: dummy
168 @cd documentation
&& $(MAKE
) $@
171 $(RM
) config.
* configure.lineno TAGS
tags include/config.h
include/stamp-h
172 $(RM
) -r autom4te.cache
174 .PHONY
: manpages htmlpages sgmlpages xmlpages
distclean
178 ALL_MAKEFILES
= @ALL_MAKEFILES@
179 ALL_CONFIGS
= Makefile
$(ALL_MAKEFILES
) @ALL_MAKERULES@ @ALL_SYMLINKS@
187 dlls
$(RECURSE_TARGETS
:%=dlls
/%): $(ALL_MAKEFILES
)
188 programs
$(RECURSE_TARGETS
:%=programs
/%): $(ALL_MAKEFILES
)
193 @ALL_MAKEFILE_DEPENDS@