TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
MODULE    = none

SUBDIRS = \
	$(TOPOBJDIR)/debugger \
	avitools \
	clock \
	cmdlgtst \
	control \
	expand \
	notepad \
	osversioncheck \
	progman \
	regapi \
	regedit \
	regsvr32 \
	regtest \
	uninstaller \
	view \
	wcmd \
	wineconsole \
	winefile \
	winemine \
	winepath \
	winetest \
	winhelp \
	winver

# Sub-directories to run make install into
INSTALLSUBDIRS = $(SUBDIRS)

# Programs to install in bin directory
# We don't install everything to avoid polluting /usr/bin too much
INSTALLPROGS = \
	notepad \
	progman \
	regedit \
	regsvr32 \
	uninstaller \
	wcmd \
	wineconsole \
	winedbg \
	winefile \
	winemine \
	winepath \
	winhelp

# Symlinks to apps that we want to run from inside the source tree
SYMLINKS = \
	wineconsole.exe \
	winedbg.exe \
	winetest.exe

@MAKE_RULES@

all: wineapploader winelauncher $(SUBDIRS) $(SYMLINKS:%=%$(DLLEXT))

wineapploader: wineapploader.in
	sed -e 's,@bindir\@,$(bindir),g' $(SRCDIR)/wineapploader.in >$@ || $(RM) $@

winelauncher: winelauncher.in
	sed -e 's,@bindir\@,$(bindir),g' -e 's,@libdir\@,$(libdir),g' -e 's,@dlldir\@,$(dlldir),g' $(SRCDIR)/winelauncher.in >$@ || $(RM) $@

# Rules for installation

.PHONY: install-apploader install-progs install-progs.so $(INSTALLPROGS:%=%/__installprog__)

install-apploader: wineapploader dummy
	$(MKINSTALLDIRS) $(bindir)
	$(INSTALL_SCRIPT) wineapploader $(bindir)/wineapploader

$(INSTALLPROGS:%=%/__installprog__): install-apploader
	$(RM) $(bindir)/`dirname $@` && $(LN) $(bindir)/wineapploader $(bindir)/`dirname $@`

install-progs.so: $(INSTALLPROGS:%=%/__installprog__)
	$(RM) $(bindir)/wineapploader

install-progs: # nothing to do here

install:: winelauncher install-progs$(DLLEXT)
	$(MKINSTALLDIRS) $(bindir)
	$(INSTALL_SCRIPT) winelauncher $(bindir)/winelauncher

uninstall::
	$(RM) $(bindir)/wineapploader $(bindir)/winelauncher $(INSTALLPROGS:%=$(bindir)/%)
	-rmdir $(dlldir)

clean::
	$(RM) wineapploader winelauncher $(SYMLINKS)

# Rules for testing

$(SUBDIRS:%=%/__checklink__): dummy
	@cd `dirname $@` && $(MAKE) checklink

checklink:: $(SUBDIRS:%=%/__checklink__)

check test:: $(SUBDIRS:%=%/__test__)

# Rules for symlinks

wineconsole.exe$(DLLEXT): wineconsole/wineconsole.exe$(DLLEXT)
	$(RM) $@ && $(LN_S) wineconsole/wineconsole.exe$(DLLEXT) $@

winedbg.exe$(DLLEXT): $(TOPOBJDIR)/debugger/winedbg.exe$(DLLEXT)
	$(RM) $@ && $(LN_S) $(TOPOBJDIR)/debugger/winedbg.exe$(DLLEXT) $@

winetest.exe$(DLLEXT): winetest/winetest.exe$(DLLEXT)
	$(RM) $@ && $(LN_S) winetest/winetest.exe$(DLLEXT) $@

wineconsole/wineconsole.exe$(DLLEXT): wineconsole
$(TOPOBJDIR)/debugger/winedbg.exe$(DLLEXT): $(TOPOBJDIR)/debugger
winetest/winetest.exe$(DLLEXT): winetest

### Dependencies:
