# This Makefile understands the following targets: # # all (default): build wine # clean: remove all intermediate files # distclean: also remove all files created by configure # test: run tests # testclean: clean test results to force running all tests again # crosstest: build tests as native windows applications (requires MinGW) # install-lib: install libraries needed to run applications # install-dev: install development environment # install: install everything # uninstall: uninstall everything # depend: create the dependencies # ctags: create a tags file for vim and others. # etags: create a TAGS file for Emacs. # manpages: compile manpages for Wine API # htmlpages: compile html pages for Wine API # sgmlpages: compile sgml source for the Wine API Guide # xmlpages: compile xml source for the Wine API Guide # Directories TOPSRCDIR = @top_srcdir@ TOPOBJDIR = . SRCDIR = @srcdir@ VPATH = @srcdir@ LIBEXT = @LIBEXT@ MODULE = none ALL_DIRS = @ALL_DIRS@ ALL_DLL_DIRS = @ALL_DLL_DIRS@ ALL_TOOL_DIRS = @ALL_TOOL_DIRS@ ALL_TOP_DIRS = @ALL_TOP_DIRS@ # Sub-directories to run make all into BUILDSUBDIRS = \ libs/wine \ $(ALL_TOOL_DIRS) \ $(ALL_TOP_DIRS) \ $(ALL_DLL_DIRS) # Sub-directories to run make install/uninstall into INSTALLSUBDIRS = \ libs/wine \ $(ALL_TOOL_DIRS) \ $(ALL_TOP_DIRS) \ $(ALL_DLL_DIRS) # Sub-directories that don't have a makefile EXTRASUBDIRS = dlls libs all: wine @echo "Wine build complete." WINAPI_CHECK_EXTRA_FLAGS = --global @MAKE_RULES@ # Rules for re-running configure ALL_CONFIGS = Makefile @ALL_MAKERULES@ @ALL_SYMLINKS@ $(SRCDIR)/configure: @MAINTAINER_MODE@ configure.ac aclocal.m4 cd $(SRCDIR) && autoconf --warnings=all $(SRCDIR)/include/config.h.in: @MAINTAINER_MODE@ include/stamp-h.in $(SRCDIR)/include/stamp-h.in: configure.ac aclocal.m4 cd $(SRCDIR) && autoheader --warnings=all @echo timestamp > $@ config.status: configure @./config.status --recheck include/config.h: include/stamp-h include/stamp-h: include/config.h.in config.status @./config.status include/config.h include/stamp-h $(ALL_CONFIGS): @./config.status $@ # Rules for building all: $(BUILDSUBDIRS) $(ALL_DIRS): dummy @cd $@ && $(MAKE) .PHONY: $(ALL_DIRS) # Rules for dependencies depend: $(ALL_DIRS:%=%/__depend__) dummy .PHONY: $(ALL_DIRS:%=%/__depend__) # Rules for cleaning $(ALL_DIRS:%=%/__clean__): dummy @cd `dirname $@` && $(MAKE) clean clean:: $(ALL_DIRS:%=%/__clean__) $(RM) $(ALL_DIRS:%=%/Makefile) tools/makedep$(EXEEXT) distclean:: clean $(RM) config.* configure.lineno TAGS tags include/config.h include/stamp-h $(ALL_CONFIGS) $(RM) -r autom4te.cache .PHONY: distclean $(ALL_DIRS:%=%/__clean__) # Rules for installing $(INSTALLSUBDIRS:%=%/__install__): dummy @cd `dirname $@` && $(MAKE) install $(INSTALLSUBDIRS:%=%/__install-lib__): dummy @cd `dirname $@` && $(MAKE) install-lib $(INSTALLSUBDIRS:%=%/__install-dev__): dummy @cd `dirname $@` && $(MAKE) install-dev $(INSTALLSUBDIRS:%=%/__uninstall__): dummy @cd `dirname $@` && $(MAKE) uninstall install:: $(INSTALLSUBDIRS:%=%/__install__) dummy install-lib:: $(INSTALLSUBDIRS:%=%/__install-lib__) dummy install-dev:: $(INSTALLSUBDIRS:%=%/__install-dev__) dummy uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__) dummy .PHONY: $(INSTALLSUBDIRS:%=%/__install__) $(INSTALLSUBDIRS:%=%/__uninstall__) \ $(INSTALLSUBDIRS:%=%/__install-lib__) $(INSTALLSUBDIRS:%=%/__install-dev__) # Rules for auto documentation DOCSUBDIRS = $(ALL_DLL_DIRS) $(DOCSUBDIRS:%=%/__man__): dummy @cd `dirname $@` && $(MAKE) man $(DOCSUBDIRS:%=%/__doc_html__): dummy @cd `dirname $@` && $(MAKE) doc-html $(DOCSUBDIRS:%=%/__doc_sgml__): dummy @cd `dirname $@` && $(MAKE) doc-sgml $(DOCSUBDIRS:%=%/__doc_xml__): dummy @cd `dirname $@` && $(MAKE) doc-xml man: $(DOCSUBDIRS:%=%/__man__) doc-html: $(DOCSUBDIRS:%=%/__doc_html__) doc-sgml: $(DOCSUBDIRS:%=%/__doc_sgml__) doc-xml: $(DOCSUBDIRS:%=%/__doc_xml__) manpages htmlpages sgmlpages xmlpages: dummy @cd documentation && $(MAKE) $@ .PHONY: man doc-html doc-sgml doc-xml manpages htmlpages sgmlpages xmlpages \ $(DOCSUBDIRS:%=%/__man__) $(DOCSUBDIRS:%=%/__doc_html__) $(DOCSUBDIRS:%=%/__doc_sgml__) $(DOCSUBDIRS:%=%/__doc_xml__) # Dependencies between directories # dependencies needed to build any dll or program __tooldeps__: libs/port libs/wine libs/wpp $(ALL_TOOL_DIRS) __builddeps__ __buildcrossdeps__: __tooldeps__ include .PHONY: __tooldeps__ __builddeps__ __buildcrossdeps__ loader server: libs/port libs/wine tools fonts: tools include: tools/widl libs/wine $(ALL_TOOL_DIRS): libs/port tools/wmc tools/wrc: tools tools tools/wmc tools/wrc: libs/wine tools/widl tools/wmc tools/wrc: libs/wpp fonts/__install__ fonts/__install-lib__: tools include/__install__ include/__install-dev__: include libs/wine/__install__ libs/wine/__install-lib__ libs/wine/__install-dev__: libs/wine loader/__install__ loader/__install-lib__: libs/port libs/wine tools server/__install__ server/__install-lib__: libs/port libs/wine tools tools/__install__ tools/__install-lib__ tools/__install-dev__: tools tools/widl/__install__ tools/widl/__install-dev__: tools/widl tools/winebuild/__install__ tools/winebuild/__install-dev__: tools/winebuild tools/winedump/__install__ tools/winedump/__install-dev__: tools/winedump tools/winegcc/__install__ tools/winegcc/__install-dev__: tools/winegcc tools/wmc/__install__ tools/wmc/__install-dev__: tools/wmc tools/wrc/__install__ tools/wrc/__install-dev__: tools/wrc tools/__depend__: $(MAKEDEP) $(MAKEDEP): include/config.h tools/Makefile @cd $(TOOLSDIR)/tools && $(MAKE) makedep$(TOOLSEXT) # Misc rules TAGS etags: $(RM) TAGS (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs etags -a tags ctags: $(RM) tags (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs ctags -a # Makefile rules .INIT: Makefile .BEGIN: Makefile .MAKEFILEDEPS: @ALL_MAKEFILE_DEPENDS@ uninstall:: -rmdir $(DESTDIR)$(datadir)/wine $(DESTDIR)$(fakedlldir) $(DESTDIR)$(dlldir)