# 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

# The following variable definitions are copied into all makefiles

prefix          = @prefix@
exec_prefix     = @exec_prefix@
bindir          = @bindir@
libdir          = @libdir@
datarootdir     = @datarootdir@
datadir         = @datadir@
mandir          = @mandir@
includedir      = @includedir@
fontdir         = /usr/share/wine/fonts
dlldir          = ${libdir}
top_srcdir      = @top_srcdir@
top_builddir    = @top_builddir@
srcdir          = @srcdir@
SHELL           = /bin/sh
CC              = @CC@
CXX             = @CXX@
CPPBIN          = @CPPBIN@
CROSSCC         = @CROSSCC@
CFLAGS          = @CFLAGS@
CPPFLAGS        = @CPPFLAGS@
CROSSCFLAGS     = @CROSSCFLAGS@
EXTRACFLAGS     = @EXTRACFLAGS@
MSVCRTFLAGS     = @BUILTINFLAG@
TARGETFLAGS     = @TARGETFLAGS@
UNWINDFLAGS     = @UNWINDFLAGS@
LDEXECFLAGS     = @LDEXECFLAGS@
LIBS            = @LIBS@
BISON           = @BISON@
FLEX            = @FLEX@
EXEEXT          = @EXEEXT@
TOOLSEXT        = @TOOLSEXT@
DLLTOOL         = @DLLTOOL@
AR              = @AR@
RANLIB          = @RANLIB@
STRIP           = @STRIP@
LN_S            = @LN_S@
TOOLSDIR        = @TOOLSDIR@
LD              = @LD@
LDFLAGS         = @LDFLAGS@
DLLFLAGS        = @DLLFLAGS@
PRELINK         = @PRELINK@
FONTFORGE       = @FONTFORGE@
RSVG            = @RSVG@
CONVERT         = @CONVERT@
ICOTOOL         = @ICOTOOL@
MSGFMT          = @MSGFMT@
CROSSTARGET     = @CROSSTARGET@
SUBDIRS         = @SUBDIRS@
RUNTESTFLAGS    = -q -P wine
MAKEDEP         = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
PACKAGE_VERSION = @PACKAGE_VERSION@
SED_CMD         = LC_ALL=C sed -e 's,@bindir\@,${bindir},g' -e 's,@dlldir\@,${dlldir},g' -e 's,@srcdir\@,${srcdir},g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g'
LDRPATH_INSTALL = @LDRPATH_INSTALL@
LDRPATH_LOCAL   = @LDRPATH_LOCAL@
api_manext      = 3w
WINELOADER_PROGRAMS = @WINELOADER_PROGRAMS@
WINELOADER_DEPENDS  = @WINELOADER_DEPENDS@
WINELOADER_LDFLAGS  = @WINELOADER_LDFLAGS@
WINEPRELOADER_LDFLAGS = @WINEPRELOADER_LDFLAGS@
LIBWINE_SHAREDLIB   = @LIBWINE_SHAREDLIB@
LIBWINE_IMPORTLIB   = @LIBWINE_IMPORTLIB@
LIBWINE_LDFLAGS     = @LIBWINE_LDFLAGS@
LIBWINE_DEPENDS     = @LIBWINE_DEPENDS@
DISABLED_SUBDIRS    = @DISABLED_SUBDIRS@
CONFIGURE_TARGETS   = @CONFIGURE_TARGETS@
TOP_INSTALL_LIB     = @TOP_INSTALL_LIB@
TOP_INSTALL_DEV     = @TOP_INSTALL_DEV@
@ALL_VARS_RULES@
@SET_MAKE@

all: wine
	@echo "Wine build complete."

# Rules for re-running configure

config.status: $(srcdir)/configure
	@./config.status --recheck

include/config.h: include/stamp-h
include/stamp-h: $(srcdir)/include/config.h.in config.status
	@./config.status include/config.h include/stamp-h

# Rules for cleaning

distclean:: clean
	rm -rf autom4te.cache documentation/html documentation/api-guide documentation/api-guide-xml documentation/man$(api_manext)

# Rules for API documentation

install-manpages:: manpages
	for i in documentation/man$(api_manext)/*.$(api_manext); do $(top_srcdir)/tools/install-sh -m 644 $(INSTALL_DATA_FLAGS) $$i $(DESTDIR)$(mandir)/$$i; done

.PHONY: install-manpages

# Dependencies between directories

# dependencies needed to build any dll or program
__tooldeps__: libs/wpp
__builddeps__: __tooldeps__ libs/wine include po
.PHONY: depend dummy install install-lib install-dev

dummy:
server: include
libs/port libs/wine libs/wpp: include/config.h

# Misc rules

TAGSFLAGS = --langmap='c:+.idl.l.rh,make:(Make*.in)'

TAGS etags:
	rm -f TAGS
	(test -d .git && git ls-files || find -L $(top_srcdir) -name '*.[ch]' -print) | xargs etags -a $(TAGSFLAGS)

tags ctags:
	rm -f tags
	(test -d .git && git ls-files || find -L $(top_srcdir) -name '*.[ch]' -print) | xargs ctags -a $(TAGSFLAGS)
