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

INSTALLED_INCLUDES = \
	audevcod.h \
	basetsd.h \
	cderr.h \
	cguid.h \
	comcat.h \
	commctrl.h \
	commdlg.h \
	compobj.h \
	cpl.h \
	d3d.h \
	d3dcaps.h \
	d3dtypes.h \
	d3dvec.inl \
	dde.h \
	ddeml.h \
	ddraw.h \
	digitalv.h \
	dinput.h \
	dispdib.h \
	dlgs.h \
	dmo.h \
	dmoreg.h \
	dmort.h \
	docobj.h \
	dplay.h \
	dplobby.h \
	dshow.h \
	dsound.h \
	guiddef.h \
	imagehlp.h \
	imm.h \
	initguid.h \
	instance.h \
	lmcons.h \
	lzexpand.h \
	mapi.h \
	mapicode.h \
	mapidefs.h \
	mciavi.h \
	mcx.h \
	mediaerr.h \
	mediaobj.h \
	minmax.h \
	mmreg.h \
	mmsystem.h \
	msacm.h \
	msacmdlg.h \
	mssip.h \
	msvcrt/conio.h \
	msvcrt/crtdbg.h \
	msvcrt/ctype.h \
	msvcrt/direct.h \
	msvcrt/dos.h \
	msvcrt/eh.h \
	msvcrt/excpt.h \
	msvcrt/fcntl.h \
	msvcrt/io.h \
	msvcrt/locale.h \
	msvcrt/malloc.h \
	msvcrt/mbctype.h \
	msvcrt/mbstring.h \
	msvcrt/process.h \
	msvcrt/search.h \
	msvcrt/setjmp.h \
	msvcrt/share.h \
	msvcrt/stddef.h \
	msvcrt/stdio.h \
	msvcrt/stdlib.h \
	msvcrt/string.h \
	msvcrt/sys/locking.h \
	msvcrt/sys/stat.h \
	msvcrt/sys/timeb.h \
	msvcrt/sys/types.h \
	msvcrt/sys/utime.h \
	msvcrt/time.h \
	msvcrt/wchar.h \
	msvcrt/wctype.h \
	mswsock.h \
	nb30.h \
	nspapi.h \
	ntsecapi.h \
	oaidl.h \
	objbase.h \
	objidl.h \
	ocidl.h \
	ole2.h \
	ole2ver.h \
	oleauto.h \
	olectl.h \
	oledlg.h \
	oleidl.h \
	poppack.h \
	prsht.h \
	psapi.h \
	pshpack1.h \
	pshpack2.h \
	pshpack4.h \
	pshpack8.h \
	ras.h \
	regstr.h \
	richedit.h \
	richole.h \
	rpc.h \
	rpcdce.h \
	rpcdcep.h \
	rpcndr.h \
	rpcnterr.h \
	rpcproxy.h \
	servprov.h \
	setupapi.h \
	shellapi.h \
	shlguid.h \
	shlobj.h \
	shlwapi.h \
	sipbase.h \
	sql.h \
	sqlext.h \
	sqltypes.h \
	storage.h \
	tapi.h \
	tlhelp32.h \
	unknwn.h \
	urlmon.h \
	uuids.h \
	ver.h \
	vfw.h \
	vfwmsgs.h \
	winbase.h \
	wincon.h \
	wincrypt.h \
	windef.h \
	windows.h \
	windowsx.h \
	wine/debug.h \
	wine/exception.h \
	wine/icmpapi.h \
	wine/ipexport.h \
	wine/library.h \
	wine/obj_base.h \
	wine/obj_cache.h \
	wine/obj_channel.h \
	wine/obj_clientserver.h \
	wine/obj_comcat.h \
	wine/obj_commdlgbrowser.h \
	wine/obj_connection.h \
	wine/obj_contextmenu.h \
	wine/obj_control.h \
	wine/obj_dataobject.h \
	wine/obj_dockingwindowframe.h \
	wine/obj_dragdrop.h \
	wine/obj_dragdrophelper.h \
	wine/obj_enumguid.h \
	wine/obj_enumidlist.h \
	wine/obj_errorinfo.h \
	wine/obj_extracticon.h \
	wine/obj_inplace.h \
	wine/obj_marshal.h \
	wine/obj_misc.h \
	wine/obj_moniker.h \
	wine/obj_oleaut.h \
	wine/obj_olefont.h \
	wine/obj_oleobj.h \
	wine/obj_oleundo.h \
	wine/obj_oleview.h \
	wine/obj_picture.h \
	wine/obj_property.h \
	wine/obj_propertystorage.h \
	wine/obj_serviceprovider.h \
	wine/obj_shellbrowser.h \
	wine/obj_shellextinit.h \
	wine/obj_shellfolder.h \
	wine/obj_shelllink.h \
	wine/obj_shellview.h \
	wine/obj_storage.h \
	wine/obj_webbrowser.h \
	wine/unicode.h \
	winerror.h \
	wingdi.h \
	wininet.h \
	winioctl.h \
	winnetwk.h \
	winnls.h \
	winnt.h \
	winreg.h \
	winres.h \
	winresrc.h \
	winsock.h \
	winsock2.h \
	winspool.h \
	winsvc.h \
	winternl.h \
	winuser.h \
	winver.h \
	wnaspi32.h \
	wownt32.h \
	ws2spi.h \
	ws2tcpip.h \
	wshisotp.h \
	wsipx.h \
	wtypes.h \
	zmouse.h

EXTRASUBDIRS = bitmaps msvcrt msvcrt/sys wine

@MAKE_RULES@

install::
	$(MKINSTALLDIRS) $(includedir) $(includedir)/wine $(includedir)/msvcrt $(includedir)/msvcrt/sys
	for f in $(INSTALLED_INCLUDES); do $(INSTALL_DATA) $(SRCDIR)/$$f $(includedir)/$$f; done

# Don't just do a rm -rf on $(includedir) -- don't want to wipe out
# anything extra the user may have put there.
uninstall::
	[ -d $(includedir) ] && cd $(includedir) && $(RM) $(INSTALLED_INCLUDES) || true
	-rmdir $(includedir)/msvcrt/sys $(includedir)/msvcrt $(includedir)/wine $(includedir)

### Dependencies:
