blob: 1dd8ef118fd6c676e2f26ad7ac60475901c1e131 [file] [log] [blame]
# 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
# Sub-directories to run make depend/clean into
SUBDIRS = \
dlls \
documentation \
fonts \
include \
libs \
loader \
programs \
server \
tools
# Sub-directories to run make install/uninstall into
INSTALLSUBDIRS = @ALL_TOP_DIRS@
# 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
uninstall::
$(RM) $(DESTDIR)$(datadir)/aclocal/wine.m4
-rmdir $(DESTDIR)$(datadir)/wine $(DESTDIR)$(datadir)/aclocal
# Dependencies between directories
all: $(INSTALLSUBDIRS)
dlls: include libs tools
fonts loader server: libs tools
programs: dlls include libs tools
include: libs tools
tools: libs
dlls/__install__ dlls/__install-lib__ dlls/__install-dev__: libs tools include
fonts/__install__ fonts/__install-lib__: libs tools
include/__install__ include/__install-dev__: include libs tools
libs/__install__ libs/__install-lib__ libs/__install-dev__: libs
loader/__install__ loader/__install-lib__: libs tools
server/__install__ server/__install-lib__: libs tools
programs/__install__: libs tools include dlls/__install__
programs/__install-lib__: libs tools include dlls/__install-lib__
tools/__install__ 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@