# Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2021 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

VPATH = @srcdir@
am__is_gnu_make = { \
  if test -z '$(MAKELEVEL)'; then \
    false; \
  elif test -n '$(MAKE_HOST)'; then \
    true; \
  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
    true; \
  else \
    false; \
  fi; \
}
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
	$(am__configure_deps) $(basehead_HEADERS) $(ddkhead_HEADERS) \
	$(gdiplushead_HEADERS) $(glhead_HEADERS) $(idlhead_HEADERS) \
	$(khrhead_HEADERS) $(mingwhelperhead_HEADERS) \
	$(sechead_HEADERS) $(secsyshead_HEADERS) $(syshead_HEADERS) \
	$(wrlhead_HEADERS) $(wrlwrappershead_HEADERS) \
	$(am__DIST_COMMON)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = crt/_mingw.h
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
  for p in $$list; do echo "$$p $$p"; done | \
  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
    if (++n[$$2] == $(am__install_max)) \
      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
    END { for (dir in files) print dir, files[dir] }'
am__base_list = \
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
  test -z "$$files" \
    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
         $(am__cd) "$$dir" && rm -f $$files; }; \
  }
am__installdirs = "$(DESTDIR)$(baseheaddir)" "$(DESTDIR)$(ddkheaddir)" \
	"$(DESTDIR)$(gdiplusheaddir)" "$(DESTDIR)$(glheaddir)" \
	"$(DESTDIR)$(idlheaddir)" "$(DESTDIR)$(khrheaddir)" \
	"$(DESTDIR)$(mingwhelperheaddir)" "$(DESTDIR)$(secheaddir)" \
	"$(DESTDIR)$(secsysheaddir)" "$(DESTDIR)$(sysheaddir)" \
	"$(DESTDIR)$(wrlheaddir)" "$(DESTDIR)$(wrlwrappersheaddir)"
HEADERS = $(basehead_HEADERS) $(ddkhead_HEADERS) \
	$(gdiplushead_HEADERS) $(glhead_HEADERS) $(idlhead_HEADERS) \
	$(khrhead_HEADERS) $(mingwhelperhead_HEADERS) \
	$(sechead_HEADERS) $(secsyshead_HEADERS) $(syshead_HEADERS) \
	$(wrlhead_HEADERS) $(wrlwrappershead_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
	config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates.  Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
  BEGIN { nonempty = 0; } \
  { items[$$0] = 1; nonempty = 1; } \
  END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique.  This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
  list='$(am__tagged_files)'; \
  unique=`for i in $$list; do \
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  done | $(am__uniquify_input)`
AM_RECURSIVE_TARGETS = cscope
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
	$(top_srcdir)/build-aux/config.guess \
	$(top_srcdir)/build-aux/config.sub \
	$(top_srcdir)/build-aux/install-sh \
	$(top_srcdir)/build-aux/missing $(top_srcdir)/crt/_mingw.h.in \
	ChangeLog build-aux/config.guess build-aux/config.sub \
	build-aux/install-sh build-aux/missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
  if test -d "$(distdir)"; then \
    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
      && rm -rf "$(distdir)" \
      || { sleep 5 && rm -rf "$(distdir)"; }; \
  else :; fi
am__post_remove_distdir = $(am__remove_distdir)
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
DIST_TARGETS = dist-gzip
# Exists only to be overridden by the user if desired.
AM_DISTCHECK_DVI_TARGET = dvi
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASEHEAD_LIST = @BASEHEAD_LIST@
CSCOPE = @CSCOPE@
CTAGS = @CTAGS@
CYGPATH_W = @CYGPATH_W@
DDKHEAD_LIST = @DDKHEAD_LIST@
DEFAULT_MSVCRT_VERSION = @DEFAULT_MSVCRT_VERSION@
DEFAULT_WIN32_WINNT = @DEFAULT_WIN32_WINNT@
DEFS = @DEFS@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
ETAGS = @ETAGS@
GDIPLUSHEAD_LIST = @GDIPLUSHEAD_LIST@
GLHEAD_LIST = @GLHEAD_LIST@
IDLHEAD_LIST = @IDLHEAD_LIST@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
KHRHEAD_LIST = @KHRHEAD_LIST@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MINGWHELPERHEAD_LIST = @MINGWHELPERHEAD_LIST@
MKDIR_P = @MKDIR_P@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SECHEAD_LIST = @SECHEAD_LIST@
SECSYSHEAD_LIST = @SECSYSHEAD_LIST@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
SYSHEAD_LIST = @SYSHEAD_LIST@
VERSION = @VERSION@
WIDL = @WIDL@
WRLHEAD_LIST = @WRLHEAD_LIST@
WRLWRAPPERSHEAD_LIST = @WRLWRAPPERSHEAD_LIST@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
am__leading_dot = @am__leading_dot@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
baseheaddir = $(includedir)
sysheaddir = $(baseheaddir)/sys
secheaddir = $(baseheaddir)/sec_api
secsysheaddir = $(baseheaddir)/sec_api/sys
glheaddir = $(baseheaddir)/GL
khrheaddir = $(baseheaddir)/KHR
gdiplusheaddir = $(baseheaddir)/gdiplus
wrlheaddir = $(baseheaddir)/wrl
wrlwrappersheaddir = $(baseheaddir)/wrl/wrappers
mingwhelperheaddir = $(baseheaddir)/psdk_inc
basehead_HEADERS = @BASEHEAD_LIST@
syshead_HEADERS = @SYSHEAD_LIST@
sechead_HEADERS = @SECHEAD_LIST@
secsyshead_HEADERS = @SECSYSHEAD_LIST@
glhead_HEADERS = @GLHEAD_LIST@
khrhead_HEADERS = @KHRHEAD_LIST@
gdiplushead_HEADERS = @GDIPLUSHEAD_LIST@
wrlhead_HEADERS = @WRLHEAD_LIST@
wrlwrappershead_HEADERS = @WRLWRAPPERSHEAD_LIST@
mingwhelperhead_HEADERS = @MINGWHELPERHEAD_LIST@
ddkheaddir = $(baseheaddir)/ddk
idlheaddir = $(baseheaddir)
ddkhead_HEADERS = @DDKHEAD_LIST@
idlhead_HEADERS = @IDLHEAD_LIST@
DISTCHECK_CONFIGURE_FLAGS = --enable-crt --enable-sdk=all --enable-idl
EXTRA_DIST = $(srcdir)/ChangeLog.* include crt ddk tlb
EXTRA_HEADERS = \
  include/*.c \
  include/*.dlg \
  include/*.h \
  include/*.h16 \
  include/*.hxx \
  include/*.idl \
  include/*.inl \
  include/*.rh \
  include/*.ver \
  include/GL/*.h \
  include/psdk_inc/*.h \
  include/gdiplus/*.h \
  include/wrl/*.h \
  include/wrl/wrappers/*.h \
  crt/*.h \
  crt/*.inl \
  crt/sys/*.h \
  crt/sec_api/*.h \
  crt/sec_api/sys/*.h \
  ddk/include/ddk/*.h \
  tlb/*.tlb

@HAVE_WIDL_TRUE@IDL_SRCS = \
@HAVE_WIDL_TRUE@  include/activation.idl \
@HAVE_WIDL_TRUE@  include/activaut.idl \
@HAVE_WIDL_TRUE@  include/activdbg.idl \
@HAVE_WIDL_TRUE@  include/activdbg100.idl \
@HAVE_WIDL_TRUE@  include/activprof.idl \
@HAVE_WIDL_TRUE@  include/activscp.idl \
@HAVE_WIDL_TRUE@  include/adhoc.idl \
@HAVE_WIDL_TRUE@  include/alg.idl \
@HAVE_WIDL_TRUE@  include/amstream.idl \
@HAVE_WIDL_TRUE@  include/amvideo.idl \
@HAVE_WIDL_TRUE@  include/asyncinfo.idl \
@HAVE_WIDL_TRUE@  include/audioclient.idl \
@HAVE_WIDL_TRUE@  include/audioendpoints.idl \
@HAVE_WIDL_TRUE@  include/audiopolicy.idl \
@HAVE_WIDL_TRUE@  include/austream.idl \
@HAVE_WIDL_TRUE@  include/bdaiface.idl \
@HAVE_WIDL_TRUE@  include/bits.idl \
@HAVE_WIDL_TRUE@  include/bits1_5.idl \
@HAVE_WIDL_TRUE@  include/bits2_0.idl \
@HAVE_WIDL_TRUE@  include/bits2_5.idl \
@HAVE_WIDL_TRUE@  include/bits3_0.idl \
@HAVE_WIDL_TRUE@  include/bits5_0.idl \
@HAVE_WIDL_TRUE@  include/comadmin.idl \
@HAVE_WIDL_TRUE@  include/commoncontrols.idl \
@HAVE_WIDL_TRUE@  include/control.idl \
@HAVE_WIDL_TRUE@  include/credentialprovider.idl \
@HAVE_WIDL_TRUE@  include/ctfutb.idl \
@HAVE_WIDL_TRUE@  include/ctxtcall.idl \
@HAVE_WIDL_TRUE@  include/d3d10.idl \
@HAVE_WIDL_TRUE@  include/d3d10_1.idl \
@HAVE_WIDL_TRUE@  include/d3d10effect.idl \
@HAVE_WIDL_TRUE@  include/d3d10sdklayers.idl \
@HAVE_WIDL_TRUE@  include/d3d10shader.idl \
@HAVE_WIDL_TRUE@  include/d3d11.idl \
@HAVE_WIDL_TRUE@  include/d3d11_1.idl \
@HAVE_WIDL_TRUE@  include/d3d11_2.idl \
@HAVE_WIDL_TRUE@  include/d3d11_3.idl \
@HAVE_WIDL_TRUE@  include/d3d11_4.idl \
@HAVE_WIDL_TRUE@  include/d3d11on12.idl \
@HAVE_WIDL_TRUE@  include/d3d11sdklayers.idl \
@HAVE_WIDL_TRUE@  include/d3d12.idl \
@HAVE_WIDL_TRUE@  include/d3d12sdklayers.idl \
@HAVE_WIDL_TRUE@  include/d3d12shader.idl \
@HAVE_WIDL_TRUE@  include/d3d12video.idl \
@HAVE_WIDL_TRUE@  include/d3dcommon.idl \
@HAVE_WIDL_TRUE@  include/dbgprop.idl \
@HAVE_WIDL_TRUE@  include/dcommon.idl \
@HAVE_WIDL_TRUE@  include/dcompanimation.idl \
@HAVE_WIDL_TRUE@  include/ddstream.idl \
@HAVE_WIDL_TRUE@  include/dinputd.idl \
@HAVE_WIDL_TRUE@  include/dimm.idl \
@HAVE_WIDL_TRUE@  include/directmanipulation.idl \
@HAVE_WIDL_TRUE@  include/dispex.idl \
@HAVE_WIDL_TRUE@  include/dmodshow.idl \
@HAVE_WIDL_TRUE@  include/docobj.idl \
@HAVE_WIDL_TRUE@  include/docobjectservice.idl \
@HAVE_WIDL_TRUE@  include/documenttarget.idl \
@HAVE_WIDL_TRUE@  include/devicetopology.idl \
@HAVE_WIDL_TRUE@  include/downloadmgr.idl \
@HAVE_WIDL_TRUE@  include/drmexternals.idl \
@HAVE_WIDL_TRUE@  include/dvdif.idl \
@HAVE_WIDL_TRUE@  include/dwrite.idl \
@HAVE_WIDL_TRUE@  include/dwrite_1.idl \
@HAVE_WIDL_TRUE@  include/dwrite_2.idl \
@HAVE_WIDL_TRUE@  include/dwrite_3.idl \
@HAVE_WIDL_TRUE@  include/dxgi.idl \
@HAVE_WIDL_TRUE@  include/dxgi1_2.idl \
@HAVE_WIDL_TRUE@  include/dxgi1_3.idl \
@HAVE_WIDL_TRUE@  include/dxgi1_4.idl \
@HAVE_WIDL_TRUE@  include/dxgi1_5.idl \
@HAVE_WIDL_TRUE@  include/dxgi1_6.idl \
@HAVE_WIDL_TRUE@  include/dxgicommon.idl \
@HAVE_WIDL_TRUE@  include/dxgidebug.idl \
@HAVE_WIDL_TRUE@  include/dxgiformat.idl \
@HAVE_WIDL_TRUE@  include/dxgitype.idl \
@HAVE_WIDL_TRUE@  include/dxva2api.idl \
@HAVE_WIDL_TRUE@  include/dxvahd.idl \
@HAVE_WIDL_TRUE@  include/endpointvolume.idl \
@HAVE_WIDL_TRUE@  include/eventtoken.idl \
@HAVE_WIDL_TRUE@  include/evr.idl \
@HAVE_WIDL_TRUE@  include/evr9.idl \
@HAVE_WIDL_TRUE@  include/exdisp.idl \
@HAVE_WIDL_TRUE@  include/filter.idl \
@HAVE_WIDL_TRUE@  include/fsrm.idl \
@HAVE_WIDL_TRUE@  include/fsrmenums.idl \
@HAVE_WIDL_TRUE@  include/fsrmquota.idl \
@HAVE_WIDL_TRUE@  include/fsrmreports.idl \
@HAVE_WIDL_TRUE@  include/fsrmscreen.idl \
@HAVE_WIDL_TRUE@  include/fusion.idl \
@HAVE_WIDL_TRUE@  include/fwptypes.idl \
@HAVE_WIDL_TRUE@  include/hstring.idl \
@HAVE_WIDL_TRUE@  include/httprequest.idl \
@HAVE_WIDL_TRUE@  include/icftypes.idl \
@HAVE_WIDL_TRUE@  include/icodecapi.idl \
@HAVE_WIDL_TRUE@  include/iketypes.idl \
@HAVE_WIDL_TRUE@  include/inputpaneinterop.idl \
@HAVE_WIDL_TRUE@  include/inputscope.idl \
@HAVE_WIDL_TRUE@  include/inspectable.idl \
@HAVE_WIDL_TRUE@  include/ivectorchangedeventargs.idl \
@HAVE_WIDL_TRUE@  include/iwscapi.idl \
@HAVE_WIDL_TRUE@  include/locationapi.idl \
@HAVE_WIDL_TRUE@  include/oaidl.idl \
@HAVE_WIDL_TRUE@  include/ocidl.idl \
@HAVE_WIDL_TRUE@  include/comcat.idl \
@HAVE_WIDL_TRUE@  include/mediaobj.idl \
@HAVE_WIDL_TRUE@  include/mfcaptureengine.idl \
@HAVE_WIDL_TRUE@  include/mfd3d12.idl \
@HAVE_WIDL_TRUE@  include/mfidl.idl \
@HAVE_WIDL_TRUE@  include/mfmediacapture.idl \
@HAVE_WIDL_TRUE@  include/mfmediaengine.idl \
@HAVE_WIDL_TRUE@  include/mfobjects.idl \
@HAVE_WIDL_TRUE@  include/mfplay.idl \
@HAVE_WIDL_TRUE@  include/mfreadwrite.idl \
@HAVE_WIDL_TRUE@  include/mftransform.idl \
@HAVE_WIDL_TRUE@  include/mmdeviceapi.idl \
@HAVE_WIDL_TRUE@  include/mpeg2data.idl \
@HAVE_WIDL_TRUE@  include/mpeg2structs.idl \
@HAVE_WIDL_TRUE@  include/mscoree.idl \
@HAVE_WIDL_TRUE@  include/msctf.idl \
@HAVE_WIDL_TRUE@  include/msinkaut.idl \
@HAVE_WIDL_TRUE@  include/mshtml.idl \
@HAVE_WIDL_TRUE@  include/mshtmhst.idl \
@HAVE_WIDL_TRUE@  include/msopc.idl \
@HAVE_WIDL_TRUE@  include/msxml.idl \
@HAVE_WIDL_TRUE@  include/msxml2.idl \
@HAVE_WIDL_TRUE@  include/msxml6.idl \
@HAVE_WIDL_TRUE@  include/napcertrelyingparty.idl \
@HAVE_WIDL_TRUE@  include/napcommon.idl \
@HAVE_WIDL_TRUE@  include/napenforcementclient.idl \
@HAVE_WIDL_TRUE@  include/napmanagement.idl \
@HAVE_WIDL_TRUE@  include/napprotocol.idl \
@HAVE_WIDL_TRUE@  include/napservermanagement.idl \
@HAVE_WIDL_TRUE@  include/napsystemhealthagent.idl \
@HAVE_WIDL_TRUE@  include/napsystemhealthvalidator.idl \
@HAVE_WIDL_TRUE@  include/naptypes.idl \
@HAVE_WIDL_TRUE@  include/netcfgn.idl \
@HAVE_WIDL_TRUE@  include/netcfgx.idl \
@HAVE_WIDL_TRUE@  include/netfw.idl \
@HAVE_WIDL_TRUE@  include/netlistmgr.idl \
@HAVE_WIDL_TRUE@  include/objectarray.idl \
@HAVE_WIDL_TRUE@  include/objidl.idl \
@HAVE_WIDL_TRUE@  include/objidlbase.idl \
@HAVE_WIDL_TRUE@  include/oleidl.idl \
@HAVE_WIDL_TRUE@  include/optary.idl \
@HAVE_WIDL_TRUE@  include/portabledeviceapi.idl \
@HAVE_WIDL_TRUE@  include/portabledevicetypes.idl \
@HAVE_WIDL_TRUE@  include/propidl.idl \
@HAVE_WIDL_TRUE@  include/propsys.idl \
@HAVE_WIDL_TRUE@  include/rdpencomapi.idl \
@HAVE_WIDL_TRUE@  include/regbag.idl \
@HAVE_WIDL_TRUE@  include/sapi51.idl \
@HAVE_WIDL_TRUE@  include/sapi53.idl \
@HAVE_WIDL_TRUE@  include/sapi54.idl \
@HAVE_WIDL_TRUE@  include/sensorsapi.idl \
@HAVE_WIDL_TRUE@  include/servprov.idl \
@HAVE_WIDL_TRUE@  include/shldisp.idl \
@HAVE_WIDL_TRUE@  include/shobjidl.idl \
@HAVE_WIDL_TRUE@  include/shtypes.idl \
@HAVE_WIDL_TRUE@  include/spatialaudioclient.idl \
@HAVE_WIDL_TRUE@  include/spellcheck.idl \
@HAVE_WIDL_TRUE@  include/strmif.idl \
@HAVE_WIDL_TRUE@  include/structuredquerycondition.idl \
@HAVE_WIDL_TRUE@  include/systemmediatransportcontrolsinterop.idl \
@HAVE_WIDL_TRUE@  include/taskschd.idl \
@HAVE_WIDL_TRUE@  include/textstor.idl \
@HAVE_WIDL_TRUE@  include/thumbcache.idl \
@HAVE_WIDL_TRUE@  include/tlbref.idl \
@HAVE_WIDL_TRUE@  include/tlogstg.idl \
@HAVE_WIDL_TRUE@  include/tpcshrd.idl \
@HAVE_WIDL_TRUE@  include/tsvirtualchannels.idl \
@HAVE_WIDL_TRUE@  include/tuner.idl \
@HAVE_WIDL_TRUE@  include/uianimation.idl \
@HAVE_WIDL_TRUE@  include/uiautomationclient.idl \
@HAVE_WIDL_TRUE@  include/uiautomationcore.idl \
@HAVE_WIDL_TRUE@  include/uiviewsettingsinterop.idl \
@HAVE_WIDL_TRUE@  include/unknwn.idl \
@HAVE_WIDL_TRUE@  include/unknwnbase.idl \
@HAVE_WIDL_TRUE@  include/urlhist.idl \
@HAVE_WIDL_TRUE@  include/urlmon.idl \
@HAVE_WIDL_TRUE@  include/vdslun.idl \
@HAVE_WIDL_TRUE@  include/vidcap.idl \
@HAVE_WIDL_TRUE@  include/vsadmin.idl \
@HAVE_WIDL_TRUE@  include/vsbackup.idl \
@HAVE_WIDL_TRUE@  include/vsmgmt.idl \
@HAVE_WIDL_TRUE@  include/vsprov.idl \
@HAVE_WIDL_TRUE@  include/vss.idl \
@HAVE_WIDL_TRUE@  include/vswriter.idl \
@HAVE_WIDL_TRUE@  include/wbemads.idl \
@HAVE_WIDL_TRUE@  include/wbemcli.idl \
@HAVE_WIDL_TRUE@  include/wbemdisp.idl \
@HAVE_WIDL_TRUE@  include/wbemprov.idl \
@HAVE_WIDL_TRUE@  include/wbemtran.idl \
@HAVE_WIDL_TRUE@  include/wdstptmgmt.idl \
@HAVE_WIDL_TRUE@  include/mediaobj.idl \
@HAVE_WIDL_TRUE@  include/medparam.idl \
@HAVE_WIDL_TRUE@  include/mmstream.idl \
@HAVE_WIDL_TRUE@  include/proofofpossessioncookieinfo.idl \
@HAVE_WIDL_TRUE@  include/qedit.idl \
@HAVE_WIDL_TRUE@  include/qnetwork.idl \
@HAVE_WIDL_TRUE@  include/relogger.idl \
@HAVE_WIDL_TRUE@  include/robuffer.idl \
@HAVE_WIDL_TRUE@  include/rtworkq.idl \
@HAVE_WIDL_TRUE@  include/vmr9.idl \
@HAVE_WIDL_TRUE@  include/weakreference.idl \
@HAVE_WIDL_TRUE@  include/wia_lh.idl \
@HAVE_WIDL_TRUE@  include/wia_xp.idl \
@HAVE_WIDL_TRUE@  include/wincodec.idl \
@HAVE_WIDL_TRUE@  include/wincodecsdk.idl \
@HAVE_WIDL_TRUE@  include/wmcontainer.idl \
@HAVE_WIDL_TRUE@  include/wmp.idl \
@HAVE_WIDL_TRUE@  include/wmprealestate.idl \
@HAVE_WIDL_TRUE@  include/wmpservices.idl \
@HAVE_WIDL_TRUE@  include/wmsbuffer.idl \
@HAVE_WIDL_TRUE@  include/wmsdkidl.idl \
@HAVE_WIDL_TRUE@  include/wmsecure.idl \
@HAVE_WIDL_TRUE@  include/wsdattachment.idl \
@HAVE_WIDL_TRUE@  include/wsdbase.idl \
@HAVE_WIDL_TRUE@  include/wsdclient.idl \
@HAVE_WIDL_TRUE@  include/wsddisco.idl \
@HAVE_WIDL_TRUE@  include/wsdhost.idl \
@HAVE_WIDL_TRUE@  include/wsdxml.idl \
@HAVE_WIDL_TRUE@  include/wsmandisp.idl \
@HAVE_WIDL_TRUE@  include/wtypesbase.idl \
@HAVE_WIDL_TRUE@  include/windows.applicationmodel.activation.idl \
@HAVE_WIDL_TRUE@  include/windows.applicationmodel.background.idl \
@HAVE_WIDL_TRUE@  include/windows.applicationmodel.core.idl \
@HAVE_WIDL_TRUE@  include/windows.applicationmodel.datatransfer.dragdrop.core.idl \
@HAVE_WIDL_TRUE@  include/windows.applicationmodel.datatransfer.dragdrop.idl \
@HAVE_WIDL_TRUE@  include/windows.applicationmodel.datatransfer.idl \
@HAVE_WIDL_TRUE@  include/windows.applicationmodel.idl \
@HAVE_WIDL_TRUE@  include/windows.data.json.idl \
@HAVE_WIDL_TRUE@  include/windows.data.xml.dom.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.bluetooth.advertisement.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.bluetooth.genericattributeprofile.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.bluetooth.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.bluetooth.rfcomm.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.enumeration.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.geolocation.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.haptics.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.input.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.power.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.radios.idl \
@HAVE_WIDL_TRUE@  include/windows.devices.usb.idl \
@HAVE_WIDL_TRUE@  include/windows.foundation.idl \
@HAVE_WIDL_TRUE@  include/windows.foundation.collections.idl \
@HAVE_WIDL_TRUE@  include/windows.foundation.metadata.idl \
@HAVE_WIDL_TRUE@  include/windows.foundation.numerics.idl \
@HAVE_WIDL_TRUE@  include/windows.gaming.input.idl \
@HAVE_WIDL_TRUE@  include/windows.gaming.input.custom.idl \
@HAVE_WIDL_TRUE@  include/windows.gaming.input.forcefeedback.idl \
@HAVE_WIDL_TRUE@  include/windows.gaming.ui.idl \
@HAVE_WIDL_TRUE@  include/windows.globalization.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.capture.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.capture.interop.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.directx.direct3d11.interop.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.directx.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.directx.direct3d11.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.display.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.effects.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.holographic.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.idl \
@HAVE_WIDL_TRUE@  include/windows.graphics.imaging.idl \
@HAVE_WIDL_TRUE@  include/windows.management.deployment.idl \
@HAVE_WIDL_TRUE@  include/windows.media.capture.idl \
@HAVE_WIDL_TRUE@  include/windows.media.closedcaptioning.idl \
@HAVE_WIDL_TRUE@  include/windows.media.core.idl \
@HAVE_WIDL_TRUE@  include/windows.media.devices.idl \
@HAVE_WIDL_TRUE@  include/windows.media.effects.idl \
@HAVE_WIDL_TRUE@  include/windows.media.faceanalysis.idl \
@HAVE_WIDL_TRUE@  include/windows.media.idl \
@HAVE_WIDL_TRUE@  include/windows.media.mediaproperties.idl \
@HAVE_WIDL_TRUE@  include/windows.media.playback.idl \
@HAVE_WIDL_TRUE@  include/windows.media.render.idl \
@HAVE_WIDL_TRUE@  include/windows.media.speechrecognition.idl \
@HAVE_WIDL_TRUE@  include/windows.media.speechsynthesis.idl \
@HAVE_WIDL_TRUE@  include/windows.media.transcoding.idl \
@HAVE_WIDL_TRUE@  include/windows.networking.connectivity.idl \
@HAVE_WIDL_TRUE@  include/windows.networking.idl \
@HAVE_WIDL_TRUE@  include/windows.networking.sockets.idl \
@HAVE_WIDL_TRUE@  include/windows.perception.idl \
@HAVE_WIDL_TRUE@  include/windows.perception.spatial.idl \
@HAVE_WIDL_TRUE@  include/windows.perception.spatial.surfaces.idl \
@HAVE_WIDL_TRUE@  include/windows.security.authentication.onlineid.idl \
@HAVE_WIDL_TRUE@  include/windows.security.authorization.appcapabilityaccess.idl \
@HAVE_WIDL_TRUE@  include/windows.security.credentials.idl \
@HAVE_WIDL_TRUE@  include/windows.security.credentials.ui.idl \
@HAVE_WIDL_TRUE@  include/windows.security.cryptography.core.idl \
@HAVE_WIDL_TRUE@  include/windows.security.cryptography.idl \
@HAVE_WIDL_TRUE@  include/windows.security.enterprisedata.idl \
@HAVE_WIDL_TRUE@  include/windows.security.exchangeactivesyncprovisioning.idl \
@HAVE_WIDL_TRUE@  include/windows.security.isolation.idl \
@HAVE_WIDL_TRUE@  include/windows.storage.idl \
@HAVE_WIDL_TRUE@  include/windows.storage.fileproperties.idl \
@HAVE_WIDL_TRUE@  include/windows.storage.search.idl \
@HAVE_WIDL_TRUE@  include/windows.storage.streams.idl \
@HAVE_WIDL_TRUE@  include/windows.system.idl \
@HAVE_WIDL_TRUE@  include/windows.system.power.idl \
@HAVE_WIDL_TRUE@  include/windows.system.profile.idl \
@HAVE_WIDL_TRUE@  include/windows.system.profile.systemmanufacturers.idl \
@HAVE_WIDL_TRUE@  include/windows.system.threading.idl \
@HAVE_WIDL_TRUE@  include/windows.system.userprofile.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.input.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.composition.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.composition.interop.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.core.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.notifications.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.text.core.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.text.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.viewmanagement.core.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.viewmanagement.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.windowmanagement.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.xaml.hosting.desktopwindowxamlsource.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.xaml.idl \
@HAVE_WIDL_TRUE@  include/windows.ui.xaml.interop.idl \
@HAVE_WIDL_TRUE@  include/windowscontracts.idl \
@HAVE_WIDL_TRUE@  include/wmcodecdsp.idl \
@HAVE_WIDL_TRUE@  include/wmdrmsdk.idl \
@HAVE_WIDL_TRUE@  include/wpcapi.idl \
@HAVE_WIDL_TRUE@  include/wtypes.idl \
@HAVE_WIDL_TRUE@  include/wuapi.idl \
@HAVE_WIDL_TRUE@  include/xamlom.idl \
@HAVE_WIDL_TRUE@  include/xapo.idl \
@HAVE_WIDL_TRUE@  include/xaudio2.idl \
@HAVE_WIDL_TRUE@  include/xaudio2fx.idl \
@HAVE_WIDL_TRUE@  include/xmllite.idl \
@HAVE_WIDL_TRUE@  include/xpsdigitalsignature.idl \
@HAVE_WIDL_TRUE@  include/xpsobjectmodel_1.idl \
@HAVE_WIDL_TRUE@  include/xpsrassvc.idl \
@HAVE_WIDL_TRUE@  include/xpsobjectmodel.idl \
@HAVE_WIDL_TRUE@  include/xpsprint.idl

@HAVE_WIDL_TRUE@TLB_SRCS = \
@HAVE_WIDL_TRUE@  tlb/oleacc.dll.idl \
@HAVE_WIDL_TRUE@  tlb/stdole2.idl

@HAVE_WIDL_TRUE@BUILT_SOURCES = $(IDL_SRCS:.idl=.h) $(TLB_SRCS:.idl=.tlb)
all: $(BUILT_SOURCES) config.h
	$(MAKE) $(AM_MAKEFLAGS) all-am

.SUFFIXES:
am--refresh: Makefile
	@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
		&& exit 0; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    echo ' $(SHELL) ./config.status'; \
	    $(SHELL) ./config.status;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	$(SHELL) ./config.status --recheck

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):

config.h: stamp-h1
	@test -f $@ || rm -f stamp-h1
	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1

stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
	@rm -f stamp-h1
	cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
	rm -f stamp-h1
	touch $@

distclean-hdr:
	-rm -f config.h stamp-h1
crt/_mingw.h: $(top_builddir)/config.status $(top_srcdir)/crt/_mingw.h.in
	cd $(top_builddir) && $(SHELL) ./config.status $@
install-baseheadHEADERS: $(basehead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(basehead_HEADERS)'; test -n "$(baseheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(baseheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(baseheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(baseheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(baseheaddir)" || exit $$?; \
	done

uninstall-baseheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(basehead_HEADERS)'; test -n "$(baseheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(baseheaddir)'; $(am__uninstall_files_from_dir)
install-ddkheadHEADERS: $(ddkhead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(ddkhead_HEADERS)'; test -n "$(ddkheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(ddkheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(ddkheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(ddkheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(ddkheaddir)" || exit $$?; \
	done

uninstall-ddkheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(ddkhead_HEADERS)'; test -n "$(ddkheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(ddkheaddir)'; $(am__uninstall_files_from_dir)
install-gdiplusheadHEADERS: $(gdiplushead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(gdiplushead_HEADERS)'; test -n "$(gdiplusheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(gdiplusheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(gdiplusheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(gdiplusheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(gdiplusheaddir)" || exit $$?; \
	done

uninstall-gdiplusheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(gdiplushead_HEADERS)'; test -n "$(gdiplusheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(gdiplusheaddir)'; $(am__uninstall_files_from_dir)
install-glheadHEADERS: $(glhead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(glhead_HEADERS)'; test -n "$(glheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(glheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(glheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(glheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(glheaddir)" || exit $$?; \
	done

uninstall-glheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(glhead_HEADERS)'; test -n "$(glheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(glheaddir)'; $(am__uninstall_files_from_dir)
install-idlheadHEADERS: $(idlhead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(idlhead_HEADERS)'; test -n "$(idlheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(idlheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(idlheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(idlheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(idlheaddir)" || exit $$?; \
	done

uninstall-idlheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(idlhead_HEADERS)'; test -n "$(idlheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(idlheaddir)'; $(am__uninstall_files_from_dir)
install-khrheadHEADERS: $(khrhead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(khrhead_HEADERS)'; test -n "$(khrheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(khrheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(khrheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(khrheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(khrheaddir)" || exit $$?; \
	done

uninstall-khrheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(khrhead_HEADERS)'; test -n "$(khrheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(khrheaddir)'; $(am__uninstall_files_from_dir)
install-mingwhelperheadHEADERS: $(mingwhelperhead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(mingwhelperhead_HEADERS)'; test -n "$(mingwhelperheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(mingwhelperheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(mingwhelperheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(mingwhelperheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(mingwhelperheaddir)" || exit $$?; \
	done

uninstall-mingwhelperheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(mingwhelperhead_HEADERS)'; test -n "$(mingwhelperheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(mingwhelperheaddir)'; $(am__uninstall_files_from_dir)
install-secheadHEADERS: $(sechead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(sechead_HEADERS)'; test -n "$(secheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(secheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(secheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(secheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(secheaddir)" || exit $$?; \
	done

uninstall-secheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(sechead_HEADERS)'; test -n "$(secheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(secheaddir)'; $(am__uninstall_files_from_dir)
install-secsysheadHEADERS: $(secsyshead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(secsyshead_HEADERS)'; test -n "$(secsysheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(secsysheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(secsysheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(secsysheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(secsysheaddir)" || exit $$?; \
	done

uninstall-secsysheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(secsyshead_HEADERS)'; test -n "$(secsysheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(secsysheaddir)'; $(am__uninstall_files_from_dir)
install-sysheadHEADERS: $(syshead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(syshead_HEADERS)'; test -n "$(sysheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(sysheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(sysheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(sysheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(sysheaddir)" || exit $$?; \
	done

uninstall-sysheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(syshead_HEADERS)'; test -n "$(sysheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(sysheaddir)'; $(am__uninstall_files_from_dir)
install-wrlheadHEADERS: $(wrlhead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(wrlhead_HEADERS)'; test -n "$(wrlheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(wrlheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(wrlheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(wrlheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(wrlheaddir)" || exit $$?; \
	done

uninstall-wrlheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(wrlhead_HEADERS)'; test -n "$(wrlheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(wrlheaddir)'; $(am__uninstall_files_from_dir)
install-wrlwrappersheadHEADERS: $(wrlwrappershead_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(wrlwrappershead_HEADERS)'; test -n "$(wrlwrappersheaddir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(wrlwrappersheaddir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(wrlwrappersheaddir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(wrlwrappersheaddir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(wrlwrappersheaddir)" || exit $$?; \
	done

uninstall-wrlwrappersheadHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(wrlwrappershead_HEADERS)'; test -n "$(wrlwrappersheaddir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(wrlwrappersheaddir)'; $(am__uninstall_files_from_dir)

ID: $(am__tagged_files)
	$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	set x; \
	here=`pwd`; \
	$(am__define_uniq_tagged_files); \
	shift; \
	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  if test $$# -gt 0; then \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      "$$@" $$unique; \
	  else \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      $$unique; \
	  fi; \
	fi
ctags: ctags-am

CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	$(am__define_uniq_tagged_files); \
	test -z "$(CTAGS_ARGS)$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$unique

GTAGS:
	here=`$(am__cd) $(top_builddir) && pwd` \
	  && $(am__cd) $(top_srcdir) \
	  && gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
	test ! -s cscope.files \
	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
	-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-am

cscopelist-am: $(am__tagged_files)
	list='$(am__tagged_files)'; \
	case "$(srcdir)" in \
	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
	  *) sdir=$(subdir)/$(srcdir) ;; \
	esac; \
	for i in $$list; do \
	  if test -f "$$i"; then \
	    echo "$(subdir)/$$i"; \
	  else \
	    echo "$$sdir/$$i"; \
	  fi; \
	done >> $(top_builddir)/cscope.files

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) distdir-am

distdir-am: $(DISTFILES)
	$(am__remove_distdir)
	test -d "$(distdir)" || mkdir "$(distdir)"
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
	$(MAKE) $(AM_MAKEFLAGS) \
	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
	  dist-hook
	-test -n "$(am__skip_mode_fix)" \
	|| find "$(distdir)" -type d ! -perm -755 \
		-exec chmod u+rwx,go+rx {} \; -o \
	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
	|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
	$(am__post_remove_distdir)

dist-bzip2: distdir
	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
	$(am__post_remove_distdir)

dist-lzip: distdir
	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
	$(am__post_remove_distdir)

dist-xz: distdir
	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
	$(am__post_remove_distdir)

dist-zstd: distdir
	tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
	$(am__post_remove_distdir)

dist-tarZ: distdir
	@echo WARNING: "Support for distribution archives compressed with" \
		       "legacy program 'compress' is deprecated." >&2
	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
	$(am__post_remove_distdir)

dist-shar: distdir
	@echo WARNING: "Support for shar distribution archives is" \
	               "deprecated." >&2
	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
	$(am__post_remove_distdir)

dist-zip: distdir
	-rm -f $(distdir).zip
	zip -rq $(distdir).zip $(distdir)
	$(am__post_remove_distdir)

dist dist-all:
	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
	$(am__post_remove_distdir)

# This target untars the dist file and tries a VPATH configuration.  Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
	case '$(DIST_ARCHIVES)' in \
	*.tar.gz*) \
	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
	*.tar.bz2*) \
	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
	*.tar.lz*) \
	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
	*.tar.xz*) \
	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
	*.tar.Z*) \
	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
	*.shar.gz*) \
	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
	*.zip*) \
	  unzip $(distdir).zip ;;\
	*.tar.zst*) \
	  zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
	esac
	chmod -R a-w $(distdir)
	chmod u+w $(distdir)
	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
	chmod a-w $(distdir)
	test -d $(distdir)/_build || exit 0; \
	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
	  && am__cwd=`pwd` \
	  && $(am__cd) $(distdir)/_build/sub \
	  && ../../configure \
	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
	    $(DISTCHECK_CONFIGURE_FLAGS) \
	    --srcdir=../.. --prefix="$$dc_install_base" \
	  && $(MAKE) $(AM_MAKEFLAGS) \
	  && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
	  && $(MAKE) $(AM_MAKEFLAGS) check \
	  && $(MAKE) $(AM_MAKEFLAGS) install \
	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
	        distuninstallcheck \
	  && chmod -R a-w "$$dc_install_base" \
	  && ({ \
	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
	  && rm -rf "$$dc_destdir" \
	  && $(MAKE) $(AM_MAKEFLAGS) dist \
	  && rm -rf $(DIST_ARCHIVES) \
	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
	  && cd "$$am__cwd" \
	  || exit 1
	$(am__post_remove_distdir)
	@(echo "$(distdir) archives ready for distribution: "; \
	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
	@test -n '$(distuninstallcheck_dir)' || { \
	  echo 'ERROR: trying to run $@ with an empty' \
	       '$$(distuninstallcheck_dir)' >&2; \
	  exit 1; \
	}; \
	$(am__cd) '$(distuninstallcheck_dir)' || { \
	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
	  exit 1; \
	}; \
	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
	   || { echo "ERROR: files left after uninstall:" ; \
	        if test -n "$(DESTDIR)"; then \
	          echo "  (check DESTDIR support)"; \
	        fi ; \
	        $(distuninstallcheck_listfiles) ; \
	        exit 1; } >&2
distcleancheck: distclean
	@if test '$(srcdir)' = . ; then \
	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
	  exit 1 ; \
	fi
	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
	  || { echo "ERROR: files left in build directory after distclean:" ; \
	       $(distcleancheck_listfiles) ; \
	       exit 1; } >&2
check-am: all-am
check: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(HEADERS) config.h
installdirs:
	for dir in "$(DESTDIR)$(baseheaddir)" "$(DESTDIR)$(ddkheaddir)" "$(DESTDIR)$(gdiplusheaddir)" "$(DESTDIR)$(glheaddir)" "$(DESTDIR)$(idlheaddir)" "$(DESTDIR)$(khrheaddir)" "$(DESTDIR)$(mingwhelperheaddir)" "$(DESTDIR)$(secheaddir)" "$(DESTDIR)$(secsysheaddir)" "$(DESTDIR)$(sysheaddir)" "$(DESTDIR)$(wrlheaddir)" "$(DESTDIR)$(wrlwrappersheaddir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am

clean-am: clean-generic mostlyclean-am

distclean: distclean-am
	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
	-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am: install-baseheadHEADERS install-ddkheadHEADERS \
	install-gdiplusheadHEADERS install-glheadHEADERS \
	install-idlheadHEADERS install-khrheadHEADERS \
	install-mingwhelperheadHEADERS install-secheadHEADERS \
	install-secsysheadHEADERS install-sysheadHEADERS \
	install-wrlheadHEADERS install-wrlwrappersheadHEADERS

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
	-rm -rf $(top_srcdir)/autom4te.cache
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-baseheadHEADERS uninstall-ddkheadHEADERS \
	uninstall-gdiplusheadHEADERS uninstall-glheadHEADERS \
	uninstall-idlheadHEADERS uninstall-khrheadHEADERS \
	uninstall-mingwhelperheadHEADERS uninstall-secheadHEADERS \
	uninstall-secsysheadHEADERS uninstall-sysheadHEADERS \
	uninstall-wrlheadHEADERS uninstall-wrlwrappersheadHEADERS

.MAKE: all check install install-am install-exec install-strip

.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \
	clean-cscope clean-generic cscope cscopelist-am ctags ctags-am \
	dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzip \
	dist-shar dist-tarZ dist-xz dist-zip dist-zstd distcheck \
	distclean distclean-generic distclean-hdr distclean-tags \
	distcleancheck distdir distuninstallcheck dvi dvi-am html \
	html-am info info-am install install-am \
	install-baseheadHEADERS install-data install-data-am \
	install-ddkheadHEADERS install-dvi install-dvi-am install-exec \
	install-exec-am install-gdiplusheadHEADERS \
	install-glheadHEADERS install-html install-html-am \
	install-idlheadHEADERS install-info install-info-am \
	install-khrheadHEADERS install-man \
	install-mingwhelperheadHEADERS install-pdf install-pdf-am \
	install-ps install-ps-am install-secheadHEADERS \
	install-secsysheadHEADERS install-strip install-sysheadHEADERS \
	install-wrlheadHEADERS install-wrlwrappersheadHEADERS \
	installcheck installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
	pdf-am ps ps-am tags tags-am uninstall uninstall-am \
	uninstall-baseheadHEADERS uninstall-ddkheadHEADERS \
	uninstall-gdiplusheadHEADERS uninstall-glheadHEADERS \
	uninstall-idlheadHEADERS uninstall-khrheadHEADERS \
	uninstall-mingwhelperheadHEADERS uninstall-secheadHEADERS \
	uninstall-secsysheadHEADERS uninstall-sysheadHEADERS \
	uninstall-wrlheadHEADERS uninstall-wrlwrappersheadHEADERS

.PRECIOUS: Makefile


dist-hook:
	find $(distdir) -name ".svn" -type d -delete

@HAVE_WIDL_TRUE@%.h: %.idl crt/_mingw.h
@HAVE_WIDL_TRUE@	$(WIDL) -DBOOL=WINBOOL -I$(srcdir)/include -Icrt -I$(srcdir)/crt -h -o $@ $<

@HAVE_WIDL_TRUE@%.tlb: %.idl
@HAVE_WIDL_TRUE@	$(WIDL) -I$(srcdir)/include -L$(srcdir)/tlb -t -o $@ $<

@HAVE_WIDL_TRUE@%_i.c: %.idl crt/_mingw.h
@HAVE_WIDL_TRUE@	$(WIDL) -DBOOL=WINBOOL -I$(srcdir)/include -Icrt -I$(srcdir)/crt -u -o $@ $<

# following headers are not meant to be generated from IDLs, so override default rule
@HAVE_WIDL_TRUE@include/prsht.h: ;
@HAVE_WIDL_TRUE@include/wincrypt.h: ;

# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
