# 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 # Directories TOPSRCDIR = @top_srcdir@ TOPOBJDIR = . SRCDIR = @srcdir@ VPATH = @srcdir@ LIBEXT = @LIBEXT@ MODULE = none PROGRAMS = wine FONTSSUBDIRS = @FONTSSUBDIRS@ # Sub-directories to run make depend/clean into SUBDIRS = \ dlls \ documentation \ fonts \ include \ libs \ loader \ programs \ server \ tools # Sub-directories to install for install-lib INSTALLLIBSUBDIRS = \ $(FONTSSUBDIRS) \ loader \ programs \ server # Sub-directories to install for install-dev INSTALLDEVSUBDIRS = include # Sub-directories to install for both install-lib and install-dev INSTALLBOTHSUBDIRS = dlls libs tools INSTALLSUBDIRS = $(INSTALLDEVSUBDIRS) $(INSTALLLIBSUBDIRS) # Sub-directories to run make test into TESTSUBDIRS = dlls all: Make.rules $(PROGRAMS) @echo "Wine build complete." WINAPI_CHECK_EXTRA_FLAGS = --global INSTALLDIRS = $(DESTDIR)$(datadir)/aclocal @MAKE_RULES@ $(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 wine: $(WINEWRAPPER) $(RM) $@ && $(LN_S) $(WINEWRAPPER) $@ # Installation rules install install-dev:: $(DESTDIR)$(datadir)/aclocal dummy $(INSTALL_DATA) $(SRCDIR)/aclocal.m4 $(DESTDIR)$(datadir)/aclocal/wine.m4 install install-lib:: $(INSTALLLIBSUBDIRS:%=%/__install__) $(INSTALLBOTHSUBDIRS:%=%/__install-lib__) install install-dev:: $(INSTALLDEVSUBDIRS:%=%/__install__) $(INSTALLBOTHSUBDIRS:%=%/__install-dev__) uninstall:: $(INSTALLBOTHSUBDIRS:%=%/__uninstall__) $(RM) $(DESTDIR)$(datadir)/aclocal/wine.m4 -rmdir $(DESTDIR)$(datadir)/wine $(DESTDIR)$(datadir)/aclocal # Dependencies between directories all: $(INSTALLSUBDIRS) $(INSTALLBOTHSUBDIRS) dlls: include libs tools fonts loader server: libs tools programs: dlls include libs tools include: libs tools tools: libs dlls/__install-lib__ dlls/__install-dev__: libs tools include include/__install__: include libs tools libs/__install-lib__ libs/__install-dev__: libs fonts/__install__ loader/__install__ server/__install__: libs tools programs/__install__: libs tools include dlls/__install-lib__ tools/__install-lib__ tools/__install-dev__: tools RECURSE_TARGETS = \ $(SUBDIRS) \ $(SUBDIRS:%=%/__clean__) \ $(SUBDIRS:%=%/__depend__) \ $(SUBDIRS:%=%/__install-dev__) \ $(SUBDIRS:%=%/__install-lib__) \ $(SUBDIRS:%=%/__install__) \ $(SUBDIRS:%=%/__uninstall__) \ $(TESTSUBDIRS:%=%/__crosstest__) \ $(TESTSUBDIRS:%=%/__test__) \ $(TESTSUBDIRS:%=%/__testclean__) depend $(RECURSE_TARGETS): $(MAKEDEP) $(MAKEDEP): include/config.h @cd $(TOOLSDIR)/tools && $(MAKE) makedep # Test rules $(TESTSUBDIRS:%=%/__test__): wine $(TESTSUBDIRS:%=%/__crosstest__): tools include # 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 manpages htmlpages sgmlpages: dummy @cd documentation && $(MAKE) $@ distclean:: clean $(RM) config.* configure.lineno TAGS tags include/config.h include/stamp-h $(RM) -r autom4te.cache .PHONY: manpages htmlpages sgmlpages distclean # Makefile rules ALL_MAKERULES = @ALL_MAKERULES@ ALL_MAKEFILES = @ALL_MAKEFILES@ Makefile $(ALL_MAKERULES) $(ALL_MAKEFILES): config.status @./config.status $@ .INIT: Makefile .BEGIN: Makefile $(RECURSE_TARGETS) $(MAKEDEP): $(ALL_MAKEFILES) distclean:: $(RM) Makefile $(ALL_MAKERULES) $(ALL_MAKEFILES) @ALL_MAKEFILE_DEPENDS@