# Automatically generated by make_progs; DO NOT EDIT!!

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

SUBDIRS = \
	clock \
	cmdlgtst \
	control \
	eject \
	expand \
	explorer \
	hh \
	icinfo \
	iexplore \
	msiexec \
	notepad \
	oleview \
	progman \
	regedit \
	regsvr32 \
	rpcss \
	rundll32 \
	start \
	taskmgr \
	uninstaller \
	view \
	wcmd \
	wineboot \
	winebrowser \
	winecfg \
	wineconsole \
	winedbg \
	winefile \
	winemenubuilder \
	winemine \
	winepath \
	winetest \
	winevdm \
	winhelp \
	winver \
	wordpad

# Sub-directories to run make install into
INSTALLSUBDIRS = \
	clock \
	control \
	eject \
	expand \
	explorer \
	hh \
	icinfo \
	iexplore \
	msiexec \
	notepad \
	oleview \
	progman \
	regedit \
	regsvr32 \
	rpcss \
	rundll32 \
	start \
	taskmgr \
	uninstaller \
	wcmd \
	wineboot \
	winebrowser \
	winecfg \
	wineconsole \
	winedbg \
	winefile \
	winemenubuilder \
	winemine \
	winepath \
	winevdm \
	winhelp \
	winver \
	wordpad

# Programs to install in bin directory
INSTALLPROGS = \
	msiexec \
	notepad \
	progman \
	regedit \
	regsvr32 \
	uninstaller \
	wcmd \
	wineboot \
	winebrowser \
	winecfg \
	wineconsole \
	winedbg \
	winefile \
	winemine \
	winepath \
	winhelp

@MAKE_RULES@

all: wineapploader winelauncher $(SUBDIRS)

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

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

# Rules for installation

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

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

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

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

install-progs: # nothing to do here

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

uninstall::
	-cd $(DESTDIR)$(bindir) && $(RM) wineapploader winelauncher $(INSTALLPROGS)
	-rmdir $(DESTDIR)$(dlldir)

clean::
	$(RM) wineapploader winelauncher

# Rules for testing

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

### Dependencies:
