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_TOP_DIRS
= @ALL_TOP_DIRS@
34 # Sub-directories to run make all into
39 # Sub-directories to run make install/uninstall into
44 # Sub-directories that don't have a makefile
45 EXTRASUBDIRS
= dlls libs
48 @echo
"Wine build complete."
50 WINAPI_CHECK_EXTRA_FLAGS
= --global
54 # Rules for re-running configure
56 ALL_CONFIGS
= Makefile @ALL_MAKERULES@ @ALL_SYMLINKS@
58 $(SRCDIR
)/configure
: @MAINTAINER_MODE@ configure.ac aclocal.m4
59 cd
$(SRCDIR
) && autoconf
--warnings
=all
61 $(SRCDIR
)/include/config.h.in
: @MAINTAINER_MODE@
include/stamp-h.in
62 $(SRCDIR
)/include/stamp-h.in
: configure.ac aclocal.m4
63 cd
$(SRCDIR
) && autoheader
--warnings
=all
66 config.status
: configure
67 @.
/config.status
--recheck
69 include/config.h
: include/stamp-h
70 include/stamp-h
: include/config.h.in config.status
71 @.
/config.status
include/config.h
include/stamp-h
85 # Rules for dependencies
87 depend
: $(ALL_DIRS
:%=%/__depend__
) dummy
88 .PHONY
: $(ALL_DIRS
:%=%/__depend__
)
92 $(ALL_DIRS
:%=%/__clean__
): dummy
93 @cd
`dirname $@` && $(MAKE
) clean
95 clean:: $(ALL_DIRS
:%=%/__clean__
)
96 $(RM
) $(ALL_DIRS
:%=%/Makefile
) tools
/makedep
$(EXEEXT
)
99 $(RM
) config.
* configure.lineno TAGS
tags include/config.h
include/stamp-h
$(ALL_CONFIGS
)
100 $(RM
) -r autom4te.cache
102 .PHONY
: distclean $(ALL_DIRS
:%=%/__clean__
)
104 # Rules for installing
106 $(INSTALLSUBDIRS
:%=%/__install__
): dummy
107 @cd
`dirname $@` && $(MAKE
) install
109 $(INSTALLSUBDIRS
:%=%/__install-lib__
): dummy
110 @cd
`dirname $@` && $(MAKE
) install-lib
112 $(INSTALLSUBDIRS
:%=%/__install-dev__
): dummy
113 @cd
`dirname $@` && $(MAKE
) install-dev
115 $(INSTALLSUBDIRS
:%=%/__uninstall__
): dummy
116 @cd
`dirname $@` && $(MAKE
) uninstall
118 install:: $(INSTALLSUBDIRS
:%=%/__install__
) dummy
119 install-lib
:: $(INSTALLSUBDIRS
:%=%/__install-lib__
) dummy
120 install-dev
:: $(INSTALLSUBDIRS
:%=%/__install-dev__
) dummy
121 uninstall:: $(INSTALLSUBDIRS
:%=%/__uninstall__
) dummy
123 .PHONY
: $(INSTALLSUBDIRS
:%=%/__install__
) $(INSTALLSUBDIRS
:%=%/__uninstall__
) \
124 $(INSTALLSUBDIRS
:%=%/__install-lib__
) $(INSTALLSUBDIRS
:%=%/__install-dev__
)
126 # Rules for auto documentation
128 DOCSUBDIRS
= $(ALL_DLL_DIRS
)
130 $(DOCSUBDIRS
:%=%/__man__
): dummy
131 @cd
`dirname $@` && $(MAKE
) man
133 $(DOCSUBDIRS
:%=%/__doc_html__
): dummy
134 @cd
`dirname $@` && $(MAKE
) doc-html
136 $(DOCSUBDIRS
:%=%/__doc_sgml__
): dummy
137 @cd
`dirname $@` && $(MAKE
) doc-sgml
139 $(DOCSUBDIRS
:%=%/__doc_xml__
): dummy
140 @cd
`dirname $@` && $(MAKE
) doc-xml
142 man
: $(DOCSUBDIRS
:%=%/__man__
)
143 doc-html
: $(DOCSUBDIRS
:%=%/__doc_html__
)
144 doc-sgml
: $(DOCSUBDIRS
:%=%/__doc_sgml__
)
145 doc-xml
: $(DOCSUBDIRS
:%=%/__doc_xml__
)
147 manpages htmlpages sgmlpages xmlpages
: dummy
148 @cd documentation
&& $(MAKE
) $@
150 .PHONY
: man doc-html doc-sgml doc-xml manpages htmlpages sgmlpages xmlpages \
151 $(DOCSUBDIRS
:%=%/__man__
) $(DOCSUBDIRS
:%=%/__doc_html__
) $(DOCSUBDIRS
:%=%/__doc_sgml__
) $(DOCSUBDIRS
:%=%/__doc_xml__
)
153 # Dependencies between directories
155 # dependencies needed to build any dll or program
156 __tooldeps__
: libs
/port libs
/wine libs
/wpp
157 __builddeps__ __buildcrossdeps__
: __tooldeps__
include
158 .PHONY
: __tooldeps__ __builddeps__ __buildcrossdeps__
160 loader server
: libs
/port libs
/wine tools
164 tools
/wmc tools
/wrc
: tools
165 tools tools
/wmc tools
/wrc
: libs
/wine
166 tools
/widl tools
/wmc tools
/wrc
: libs
/wpp
168 fonts
/__install__ fonts
/__install-lib__
: tools
169 include/__install__
include/__install-dev__
: include
170 libs
/wine
/__install__ libs
/wine
/__install-lib__ libs
/wine
/__install-dev__
: libs
/wine
171 loader
/__install__ loader
/__install-lib__
: libs
/port libs
/wine tools
172 server
/__install__ server
/__install-lib__
: libs
/port libs
/wine tools
173 tools
/__depend__
: $(MAKEDEP
)
175 $(MAKEDEP
): include/config.h tools
/Makefile
176 @cd
$(TOOLSDIR
)/tools
&& $(MAKE
) makedep
$(TOOLSEXT
)
182 (test -d .git
&& git ls-files
'*.[chly]' '*.idl' || find
-L
$(TOPSRCDIR
) -name
'*.[ch]' -print) | xargs etags
-a
186 (test -d .git
&& git ls-files
'*.[chly]' '*.idl' || find
-L
$(TOPSRCDIR
) -name
'*.[ch]' -print) | xargs ctags
-a
194 @ALL_MAKEFILE_DEPENDS@
197 -rmdir
$(DESTDIR
)$(datadir)/wine
$(DESTDIR
)$(fakedlldir
) $(DESTDIR
)$(dlldir
)