#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.65 for Wine 1.1.38.
#
# Report bugs to <wine-devel@winehq.org>.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##

# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
  setopt NO_GLOB_SUBST
else
  case `(set -o) 2>/dev/null` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi


as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='print -r --'
  as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='printf %s\n'
  as_echo_n='printf %s'
else
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
    as_echo_n='/usr/ucb/echo -n'
  else
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
    as_echo_n_body='eval
      arg=$1;
      case $arg in #(
      *"$as_nl"*)
	expr "X$arg" : "X\\(.*\\)$as_nl";
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
      esac;
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
    '
    export as_echo_n_body
    as_echo_n='sh -c $as_echo_n_body as_echo'
  fi
  export as_echo_body
  as_echo='sh -c $as_echo_body as_echo'
fi

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi


# IFS
# We need space, tab and new line, in precisely that order.  Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" ""	$as_nl"

# Find who we are.  Look in the path if we contain no directory separator.
case $0 in #((
  *[\\/]* ) as_myself=$0 ;;
  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  done
IFS=$as_save_IFS

     ;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
  as_myself=$0
fi
if test ! -f "$as_myself"; then
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  exit 1
fi

# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there.  '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '

# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE

# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH

if test "x$CONFIG_SHELL" = x; then
  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '\${1+\"\$@\"}'='\"\$@\"'
  setopt NO_GLOB_SUBST
else
  case \`(set -o) 2>/dev/null\` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi
"
  as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }

exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :

else
  exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1"
  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1"
  if (eval "$as_required") 2>/dev/null; then :
  as_have_required=yes
else
  as_have_required=no
fi
  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :

else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
  as_found=:
  case $as_dir in #(
	 /*)
	   for as_base in sh bash ksh sh5; do
	     # Try only shells that exist, to save several forks.
	     as_shell=$as_dir/$as_base
	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
  CONFIG_SHELL=$as_shell as_have_required=yes
		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
  break 2
fi
fi
	   done;;
       esac
  as_found=false
done
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
  CONFIG_SHELL=$SHELL as_have_required=yes
fi; }
IFS=$as_save_IFS


      if test "x$CONFIG_SHELL" != x; then :
  # We cannot yet assume a decent shell, so we have to provide a
	# neutralization value for shells without unset; and this also
	# works around shells that cannot unset nonexistent variables.
	BASH_ENV=/dev/null
	ENV=/dev/null
	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
	export CONFIG_SHELL
	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
fi

    if test x$as_have_required = xno; then :
  $as_echo "$0: This script requires a shell more modern than all"
  $as_echo "$0: the shells that I found on your system."
  if test x${ZSH_VERSION+set} = xset ; then
    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
  else
    $as_echo "$0: Please tell bug-autoconf@gnu.org and
$0: wine-devel@winehq.org about your system, including any
$0: error possibly output before this message. Then install
$0: a modern shell, or manually run the script under such a
$0: shell if you do have one."
  fi
  exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS

## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
  { eval $1=; unset $1;}
}
as_unset=as_fn_unset

# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
  return $1
} # as_fn_set_status

# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
  set +e
  as_fn_set_status $1
  exit $1
} # as_fn_exit

# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{

  case $as_dir in #(
  -*) as_dir=./$as_dir;;
  esac
  test -d "$as_dir" || eval $as_mkdir_p || {
    as_dirs=
    while :; do
      case $as_dir in #(
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
      *) as_qdir=$as_dir;;
      esac
      as_dirs="'$as_qdir' $as_dirs"
      as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_dir" : 'X\(//\)[^/]' \| \
	 X"$as_dir" : 'X\(//\)$' \| \
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
      test -d "$as_dir" && break
    done
    test -z "$as_dirs" || eval "mkdir $as_dirs"
  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"


} # as_fn_mkdir_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
  eval 'as_fn_append ()
  {
    eval $1+=\$2
  }'
else
  as_fn_append ()
  {
    eval $1=\$$1\$2
  }
fi # as_fn_append

# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
  eval 'as_fn_arith ()
  {
    as_val=$(( $* ))
  }'
else
  as_fn_arith ()
  {
    as_val=`expr "$@" || test $? -eq 1`
  }
fi # as_fn_arith


# as_fn_error ERROR [LINENO LOG_FD]
# ---------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with status $?, using 1 if that was 0.
as_fn_error ()
{
  as_status=$?; test $as_status -eq 0 && as_status=1
  if test "$3"; then
    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
  fi
  $as_echo "$as_me: error: $1" >&2
  as_fn_exit $as_status
} # as_fn_error

if expr a : '\(a\)' >/dev/null 2>&1 &&
   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  as_expr=expr
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  as_dirname=dirname
else
  as_dirname=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`

# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits


  as_lineno_1=$LINENO as_lineno_1a=$LINENO
  as_lineno_2=$LINENO as_lineno_2a=$LINENO
  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
  sed -n '
    p
    /[$]LINENO/=
  ' <$as_myself |
    sed '
      s/[$]LINENO.*/&-/
      t lineno
      b
      :lineno
      N
      :loop
      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
      t loop
      s/-\n.*//
    ' >$as_me.lineno &&
  chmod +x "$as_me.lineno" ||
    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }

  # Don't try to exec as it changes $[0], causing all sort of problems
  # (the dirname of $[0] is not the place where we might find the
  # original and so on.  Autoconf is especially sensitive to this).
  . "./$as_me.lineno"
  # Exit status is that of the last command.
  exit
}

ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
  case `echo 'xy\c'` in
  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  xy)  ECHO_C='\c';;
  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
       ECHO_T='	';;
  esac;;
*)
  ECHO_N='-n';;
esac

rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
  rm -f conf$$.dir/conf$$.file
else
  rm -f conf$$.dir
  mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
  if ln -s conf$$.file conf$$ 2>/dev/null; then
    as_ln_s='ln -s'
    # ... but there are two gotchas:
    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
    # In both cases, we have to default to `cp -p'.
    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
      as_ln_s='cp -p'
  elif ln conf$$.file conf$$ 2>/dev/null; then
    as_ln_s=ln
  else
    as_ln_s='cp -p'
  fi
else
  as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null

if mkdir -p . 2>/dev/null; then
  as_mkdir_p='mkdir -p "$as_dir"'
else
  test -d ./-p && rmdir ./-p
  as_mkdir_p=false
fi

if test -x / >/dev/null 2>&1; then
  as_test_x='test -x'
else
  if ls -dL / >/dev/null 2>&1; then
    as_ls_L_option=L
  else
    as_ls_L_option=
  fi
  as_test_x='
    eval sh -c '\''
      if test -d "$1"; then
	test -d "$1/.";
      else
	case $1 in #(
	-*)set "./$1";;
	esac;
	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
	???[sx]*):;;*)false;;esac;fi
    '\'' sh
  '
fi
as_executable_p=$as_test_x

# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"

# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"


test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1

# Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`

#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=

# Identity of this package.
PACKAGE_NAME='Wine'
PACKAGE_TARNAME='wine'
PACKAGE_VERSION='1.1.38'
PACKAGE_STRING='Wine 1.1.38'
PACKAGE_BUGREPORT='wine-devel@winehq.org'
PACKAGE_URL='http://www.winehq.org'

ac_unique_file="server/atom.c"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
#  include <stdlib.h>
# endif
#endif
#ifdef HAVE_STRING_H
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
#  include <memory.h>
# endif
# include <string.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif"

ac_subst_vars='LTLIBOBJS
LIBOBJS
ALL_PROGRAM_BIN_INSTALL_DIRS
ALL_PROGRAM_DIRS
ALL_TEST_BINARIES
ALL_TEST_DIRS
ALL_INSTALL_DIRS
ALL_IMPORT_LIBS
ALL_STATIC_LIBS
ALL_STATICLIB_DIRS
ALL_TOOL_DIRS
ALL_DLL_DIRS
ALL_TOP_DIRS
ALL_DIRS
ALL_WINETEST_DEPENDS
ALL_MAKEFILE_DEPENDS
ALL_SYMLINKS
ALL_MAKERULES
DEPENDENCIES
LDAPLIBS
LIBPOLL
LIBDL
EXTRA_BINARIES
MAIN_BINARY
SOCKETLIBS
CRTLIBS
TOOLSEXT
LDPATH
BUILTINFLAG
EXTRACFLAGS
LIBKSTAT
LIBMPG123
PNGINCL
FONTCONFIGINCL
CUPSINCL
AUDIOIOLIBS
ALSALIBS
ESDLIBS
ESDINCL
ESDCONFIG
ZLIB
FREETYPEINCL
FREETYPELIBS
ft_devel
LCMSLIBS
RESOLVLIBS
GPHOTO2INCL
GPHOTO2LIBS
gphoto2port_devel
gphoto2_devel
SANEINCL
sane_devel
GNUTLSINCL
HALINCL
XSLTINCL
XML2INCL
XML2LIBS
NASLIBS
X_EXTRA_LIBS
X_LIBS
X_PRE_LIBS
X_CFLAGS
XMKMF
LIBPTHREAD
CROSSTARGET
CROSSTEST
CROSSCC
CARBONLIB
LIBOPENAL
COREAUDIO
DISKARBITRATIONLIB
LDEXECFLAGS
IOKITLIB
COREFOUNDATIONLIB
SECURITYLIB
DLLWRAP
DLLTOOL
LDD
LDRPATH_LOCAL
LDRPATH_INSTALL
IMPLIBEXT
LIBEXT
LDDLLFLAGS
LDSHARED
DLLFLAGS
DLLEXT
CPP
OPENGL_LIBS
XLIB
PRELINK
ICOTOOL
RSVG
PKG_CONFIG
FONTFORGE
LINTFLAGS
LINT
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
LDCONFIG
EGREP
GREP
LN_S
STRIP
RANLIB
ARFLAGS
ac_ct_AR
AR
BISON
FLEX
TOOLSDIR
WOW64_DISABLE
TARGETFLAGS
CPPBIN
ac_ct_CXX
CXXFLAGS
CXX
OBJEXT
EXEEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
SET_MAKE
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
MAINTAINER_MODE
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
ac_subst_files='MAKE_RULES
MAKE_TEST_RULES
MAKE_DLL_RULES
MAKE_IMPLIB_RULES
MAKE_PROG_RULES'
ac_user_opts='
enable_option_checking
enable_win16
enable_win64
enable_tests
enable_maintainer_mode
with_alsa
with_audioio
with_capi
with_cms
with_coreaudio
with_cups
with_curses
with_esd
with_fontconfig
with_freetype
with_gphoto
with_glu
with_gnutls
with_gsm
with_hal
with_jack
with_jpeg
with_ldap
with_mpg123
with_nas
with_openal
with_opengl
with_openssl
with_oss
with_png
with_pthread
with_sane
with_v4l
with_xcomposite
with_xcursor
with_xinerama
with_xinput
with_xml
with_xrandr
with_xrender
with_xshape
with_xshm
with_xslt
with_xxf86vm
with_wine_tools
with_wine64
enable_largefile
with_x
'
      ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CXX
CXXFLAGS
CCC
CPP
XMKMF'


# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE

# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'

ac_prev=
ac_dashdash=
for ac_option
do
  # If the previous option needs an argument, assign it.
  if test -n "$ac_prev"; then
    eval $ac_prev=\$ac_option
    ac_prev=
    continue
  fi

  case $ac_option in
  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
  *)	ac_optarg=yes ;;
  esac

  # Accept the important Cygnus configure options, so we can diagnose typos.

  case $ac_dashdash$ac_option in
  --)
    ac_dashdash=yes ;;

  -bindir | --bindir | --bindi | --bind | --bin | --bi)
    ac_prev=bindir ;;
  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
    bindir=$ac_optarg ;;

  -build | --build | --buil | --bui | --bu)
    ac_prev=build_alias ;;
  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
    build_alias=$ac_optarg ;;

  -cache-file | --cache-file | --cache-fil | --cache-fi \
  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
    ac_prev=cache_file ;;
  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
    cache_file=$ac_optarg ;;

  --config-cache | -C)
    cache_file=config.cache ;;

  -datadir | --datadir | --datadi | --datad)
    ac_prev=datadir ;;
  -datadir=* | --datadir=* | --datadi=* | --datad=*)
    datadir=$ac_optarg ;;

  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
  | --dataroo | --dataro | --datar)
    ac_prev=datarootdir ;;
  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
    datarootdir=$ac_optarg ;;

  -disable-* | --disable-*)
    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
    # Reject names that are not valid shell variable names.
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
      as_fn_error "invalid feature name: $ac_useropt"
    ac_useropt_orig=$ac_useropt
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
    case $ac_user_opts in
      *"
"enable_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval enable_$ac_useropt=no ;;

  -docdir | --docdir | --docdi | --doc | --do)
    ac_prev=docdir ;;
  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
    docdir=$ac_optarg ;;

  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
    ac_prev=dvidir ;;
  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
    dvidir=$ac_optarg ;;

  -enable-* | --enable-*)
    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
    # Reject names that are not valid shell variable names.
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
      as_fn_error "invalid feature name: $ac_useropt"
    ac_useropt_orig=$ac_useropt
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
    case $ac_user_opts in
      *"
"enable_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval enable_$ac_useropt=\$ac_optarg ;;

  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
  | --exec | --exe | --ex)
    ac_prev=exec_prefix ;;
  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
  | --exec=* | --exe=* | --ex=*)
    exec_prefix=$ac_optarg ;;

  -gas | --gas | --ga | --g)
    # Obsolete; use --with-gas.
    with_gas=yes ;;

  -help | --help | --hel | --he | -h)
    ac_init_help=long ;;
  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
    ac_init_help=recursive ;;
  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
    ac_init_help=short ;;

  -host | --host | --hos | --ho)
    ac_prev=host_alias ;;
  -host=* | --host=* | --hos=* | --ho=*)
    host_alias=$ac_optarg ;;

  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
    ac_prev=htmldir ;;
  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
  | --ht=*)
    htmldir=$ac_optarg ;;

  -includedir | --includedir | --includedi | --included | --include \
  | --includ | --inclu | --incl | --inc)
    ac_prev=includedir ;;
  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
  | --includ=* | --inclu=* | --incl=* | --inc=*)
    includedir=$ac_optarg ;;

  -infodir | --infodir | --infodi | --infod | --info | --inf)
    ac_prev=infodir ;;
  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
    infodir=$ac_optarg ;;

  -libdir | --libdir | --libdi | --libd)
    ac_prev=libdir ;;
  -libdir=* | --libdir=* | --libdi=* | --libd=*)
    libdir=$ac_optarg ;;

  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
  | --libexe | --libex | --libe)
    ac_prev=libexecdir ;;
  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
  | --libexe=* | --libex=* | --libe=*)
    libexecdir=$ac_optarg ;;

  -localedir | --localedir | --localedi | --localed | --locale)
    ac_prev=localedir ;;
  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
    localedir=$ac_optarg ;;

  -localstatedir | --localstatedir | --localstatedi | --localstated \
  | --localstate | --localstat | --localsta | --localst | --locals)
    ac_prev=localstatedir ;;
  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
    localstatedir=$ac_optarg ;;

  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
    ac_prev=mandir ;;
  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
    mandir=$ac_optarg ;;

  -nfp | --nfp | --nf)
    # Obsolete; use --without-fp.
    with_fp=no ;;

  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
  | --no-cr | --no-c | -n)
    no_create=yes ;;

  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
    no_recursion=yes ;;

  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
  | --oldin | --oldi | --old | --ol | --o)
    ac_prev=oldincludedir ;;
  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
    oldincludedir=$ac_optarg ;;

  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
    ac_prev=prefix ;;
  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
    prefix=$ac_optarg ;;

  -program-prefix | --program-prefix | --program-prefi | --program-pref \
  | --program-pre | --program-pr | --program-p)
    ac_prev=program_prefix ;;
  -program-prefix=* | --program-prefix=* | --program-prefi=* \
  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
    program_prefix=$ac_optarg ;;

  -program-suffix | --program-suffix | --program-suffi | --program-suff \
  | --program-suf | --program-su | --program-s)
    ac_prev=program_suffix ;;
  -program-suffix=* | --program-suffix=* | --program-suffi=* \
  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
    program_suffix=$ac_optarg ;;

  -program-transform-name | --program-transform-name \
  | --program-transform-nam | --program-transform-na \
  | --program-transform-n | --program-transform- \
  | --program-transform | --program-transfor \
  | --program-transfo | --program-transf \
  | --program-trans | --program-tran \
  | --progr-tra | --program-tr | --program-t)
    ac_prev=program_transform_name ;;
  -program-transform-name=* | --program-transform-name=* \
  | --program-transform-nam=* | --program-transform-na=* \
  | --program-transform-n=* | --program-transform-=* \
  | --program-transform=* | --program-transfor=* \
  | --program-transfo=* | --program-transf=* \
  | --program-trans=* | --program-tran=* \
  | --progr-tra=* | --program-tr=* | --program-t=*)
    program_transform_name=$ac_optarg ;;

  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
    ac_prev=pdfdir ;;
  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
    pdfdir=$ac_optarg ;;

  -psdir | --psdir | --psdi | --psd | --ps)
    ac_prev=psdir ;;
  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
    psdir=$ac_optarg ;;

  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  | -silent | --silent | --silen | --sile | --sil)
    silent=yes ;;

  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
    ac_prev=sbindir ;;
  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
  | --sbi=* | --sb=*)
    sbindir=$ac_optarg ;;

  -sharedstatedir | --sharedstatedir | --sharedstatedi \
  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
  | --sharedst | --shareds | --shared | --share | --shar \
  | --sha | --sh)
    ac_prev=sharedstatedir ;;
  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
  | --sha=* | --sh=*)
    sharedstatedir=$ac_optarg ;;

  -site | --site | --sit)
    ac_prev=site ;;
  -site=* | --site=* | --sit=*)
    site=$ac_optarg ;;

  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
    ac_prev=srcdir ;;
  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
    srcdir=$ac_optarg ;;

  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
  | --syscon | --sysco | --sysc | --sys | --sy)
    ac_prev=sysconfdir ;;
  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
    sysconfdir=$ac_optarg ;;

  -target | --target | --targe | --targ | --tar | --ta | --t)
    ac_prev=target_alias ;;
  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
    target_alias=$ac_optarg ;;

  -v | -verbose | --verbose | --verbos | --verbo | --verb)
    verbose=yes ;;

  -version | --version | --versio | --versi | --vers | -V)
    ac_init_version=: ;;

  -with-* | --with-*)
    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
    # Reject names that are not valid shell variable names.
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
      as_fn_error "invalid package name: $ac_useropt"
    ac_useropt_orig=$ac_useropt
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
    case $ac_user_opts in
      *"
"with_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval with_$ac_useropt=\$ac_optarg ;;

  -without-* | --without-*)
    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
    # Reject names that are not valid shell variable names.
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
      as_fn_error "invalid package name: $ac_useropt"
    ac_useropt_orig=$ac_useropt
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
    case $ac_user_opts in
      *"
"with_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval with_$ac_useropt=no ;;

  --x)
    # Obsolete; use --with-x.
    with_x=yes ;;

  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
  | --x-incl | --x-inc | --x-in | --x-i)
    ac_prev=x_includes ;;
  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
    x_includes=$ac_optarg ;;

  -x-libraries | --x-libraries | --x-librarie | --x-librari \
  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
    ac_prev=x_libraries ;;
  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
    x_libraries=$ac_optarg ;;

  -*) as_fn_error "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information."
    ;;

  *=*)
    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
    # Reject names that are not valid shell variable names.
    case $ac_envvar in #(
      '' | [0-9]* | *[!_$as_cr_alnum]* )
      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
    esac
    eval $ac_envvar=\$ac_optarg
    export $ac_envvar ;;

  *)
    # FIXME: should be removed in autoconf 3.0.
    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
    ;;

  esac
done

if test -n "$ac_prev"; then
  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
  as_fn_error "missing argument to $ac_option"
fi

if test -n "$ac_unrecognized_opts"; then
  case $enable_option_checking in
    no) ;;
    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
  esac
fi

# Check all directory arguments for consistency.
for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
		datadir sysconfdir sharedstatedir localstatedir includedir \
		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
		libdir localedir mandir
do
  eval ac_val=\$$ac_var
  # Remove trailing slashes.
  case $ac_val in
    */ )
      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
      eval $ac_var=\$ac_val;;
  esac
  # Be sure to have absolute directory names.
  case $ac_val in
    [\\/$]* | ?:[\\/]* )  continue;;
    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
  esac
  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
done

# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias

# FIXME: To remove some day.
if test "x$host_alias" != x; then
  if test "x$build_alias" = x; then
    cross_compiling=maybe
    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used." >&2
  elif test "x$build_alias" != "x$host_alias"; then
    cross_compiling=yes
  fi
fi

ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-

test "$silent" = yes && exec 6>/dev/null


ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
  as_fn_error "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
  as_fn_error "pwd does not report name of working directory"


# Find the source files, if location was not specified.
if test -z "$srcdir"; then
  ac_srcdir_defaulted=yes
  # Try the directory containing this script, then the parent directory.
  ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_myself" : 'X\(//\)[^/]' \| \
	 X"$as_myself" : 'X\(//\)$' \| \
	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_myself" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
  srcdir=$ac_confdir
  if test ! -r "$srcdir/$ac_unique_file"; then
    srcdir=..
  fi
else
  ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
	pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
  srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
  eval ac_env_${ac_var}_set=\${${ac_var}+set}
  eval ac_env_${ac_var}_value=\$${ac_var}
  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
  eval ac_cv_env_${ac_var}_value=\$${ac_var}
done

#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
  # Omit some internal or obsolete options to make the list less imposing.
  # This message is too long to be a string in the A/UX 3.1 sh.
  cat <<_ACEOF
\`configure' configures Wine 1.1.38 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print \`checking...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for \`--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or \`..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [$ac_default_prefix]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/wine]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]
_ACEOF

  cat <<\_ACEOF

X features:
  --x-includes=DIR    X include files are in DIR
  --x-libraries=DIR   X library files are in DIR

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi

if test -n "$ac_init_help"; then
  case $ac_init_help in
     short | recursive ) echo "Configuration of Wine 1.1.38:";;
   esac
  cat <<\_ACEOF

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --disable-win16         do not include Win16 support
  --enable-win64          build a Win64 emulator on AMD64 (won't run Win32
                          binaries)
  --disable-tests         do not build the regression tests
  --enable-maintainer-mode
                          enable maintainer-specific build rules
  --disable-largefile     omit support for large files

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --without-alsa          do not use the Alsa sound support
  --without-audioio       do not use the AudioIO sound support
  --without-capi          do not use CAPI (ISDN support)
  --without-cms           do not use CMS (color management support)
  --without-coreaudio     do not use the CoreAudio sound support
  --without-cups          do not use CUPS
  --without-curses        do not use (n)curses
  --without-esd           do not use the EsounD sound support
  --without-fontconfig    do not use fontconfig
  --without-freetype      do not use the FreeType library
  --without-gphoto        do not use gphoto (Digital Camera support)
  --without-glu           do not use the GLU library
  --without-gnutls        do not use GnuTLS (schannel support)
  --without-gsm           do not use libgsm (GSM 06.10 codec support)
  --without-hal           do not use HAL (dynamic device support)
  --without-jack          do not use the Jack sound support
  --without-jpeg          do not use JPEG
  --without-ldap          do not use LDAP
  --without-mpg123        do not use the mpg123 library
  --without-nas           do not use the NAS sound support
  --without-openal        do not use OpenAL
  --without-opengl        do not use OpenGL
  --without-openssl       do not use OpenSSL
  --without-oss           do not use the OSS sound support
  --without-png           do not use PNG
  --without-pthread       do not use the pthread library
  --without-sane          do not use SANE (scanner support)
  --without-v4l           do not use v4l1 (v4l support)
  --without-xcomposite    do not use the Xcomposite extension
  --without-xcursor       do not use the Xcursor extension
  --without-xinerama      do not use Xinerama (multi-monitor support)
  --without-xinput        do not use the Xinput extension
  --without-xml           do not use XML
  --without-xrandr        do not use Xrandr (resolution changes)
  --without-xrender       do not use the Xrender extension
  --without-xshape        do not use the Xshape extension
  --without-xshm          do not use XShm (shared memory extension)
  --without-xslt          do not use XSLT
  --without-xxf86vm       do not use XFree video mode extension
  --with-wine-tools=DIR   use Wine tools from directory DIR
  --with-wine64=DIR       use the 64-bit Wine in DIR for a Wow64 build
  --with-x                use the X Window System

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  CPP         C preprocessor
  XMKMF       Path to xmkmf, Makefile generator for X Window System

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <wine-devel@winehq.org>.
Wine home page: <http://www.winehq.org>.
_ACEOF
ac_status=$?
fi

if test "$ac_init_help" = "recursive"; then
  # If there are subdirs, report their specific --help.
  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
    test -d "$ac_dir" ||
      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
      continue
    ac_builddir=.

case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
  # A ".." for each directory in $ac_dir_suffix.
  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
  case $ac_top_builddir_sub in
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix

case $srcdir in
  .)  # We are building in place.
    ac_srcdir=.
    ac_top_srcdir=$ac_top_builddir_sub
    ac_abs_top_srcdir=$ac_pwd ;;
  [\\/]* | ?:[\\/]* )  # Absolute name.
    ac_srcdir=$srcdir$ac_dir_suffix;
    ac_top_srcdir=$srcdir
    ac_abs_top_srcdir=$srcdir ;;
  *) # Relative name.
    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
    ac_top_srcdir=$ac_top_build_prefix$srcdir
    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix

    cd "$ac_dir" || { ac_status=$?; continue; }
    # Check for guested configure.
    if test -f "$ac_srcdir/configure.gnu"; then
      echo &&
      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
    elif test -f "$ac_srcdir/configure"; then
      echo &&
      $SHELL "$ac_srcdir/configure" --help=recursive
    else
      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
    fi || ac_status=$?
    cd "$ac_pwd" || { ac_status=$?; break; }
  done
fi

test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
  cat <<\_ACEOF
Wine configure 1.1.38
generated by GNU Autoconf 2.65

Copyright (C) 2009 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
  exit
fi

## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##

# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  rm -f conftest.$ac_objext
  if { { ac_try="$ac_compile"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compile") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    grep -v '^ *+' conftest.err >conftest.er1
    cat conftest.er1 >&5
    mv -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && {
	 test -z "$ac_c_werror_flag" ||
	 test ! -s conftest.err
       } && test -s conftest.$ac_objext; then :
  ac_retval=0
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

	ac_retval=1
fi
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
  as_fn_set_status $ac_retval

} # ac_fn_c_try_compile

# ac_fn_cxx_try_compile LINENO
# ----------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_cxx_try_compile ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  rm -f conftest.$ac_objext
  if { { ac_try="$ac_compile"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compile") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    grep -v '^ *+' conftest.err >conftest.er1
    cat conftest.er1 >&5
    mv -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && {
	 test -z "$ac_cxx_werror_flag" ||
	 test ! -s conftest.err
       } && test -s conftest.$ac_objext; then :
  ac_retval=0
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

	ac_retval=1
fi
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
  as_fn_set_status $ac_retval

} # ac_fn_cxx_try_compile

# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_link ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  rm -f conftest.$ac_objext conftest$ac_exeext
  if { { ac_try="$ac_link"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    grep -v '^ *+' conftest.err >conftest.er1
    cat conftest.er1 >&5
    mv -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && {
	 test -z "$ac_c_werror_flag" ||
	 test ! -s conftest.err
       } && test -s conftest$ac_exeext && {
	 test "$cross_compiling" = yes ||
	 $as_test_x conftest$ac_exeext
       }; then :
  ac_retval=0
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

	ac_retval=1
fi
  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
  # interfere with the next link command; also delete a directory that is
  # left behind by Apple's compiler.  We do this before executing the actions.
  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
  as_fn_set_status $ac_retval

} # ac_fn_c_try_link

# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_cpp ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  if { { ac_try="$ac_cpp conftest.$ac_ext"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    grep -v '^ *+' conftest.err >conftest.er1
    cat conftest.er1 >&5
    mv -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } >/dev/null && {
	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
	 test ! -s conftest.err
       }; then :
  ac_retval=0
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

    ac_retval=1
fi
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
  as_fn_set_status $ac_retval

} # ac_fn_c_try_cpp

# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
# the include files in INCLUDES and setting the cache variable VAR
# accordingly.
ac_fn_c_check_header_mongrel ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
else
  # Is the header compilable?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
$as_echo_n "checking $2 usability... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_header_compiler=yes
else
  ac_header_compiler=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
$as_echo "$ac_header_compiler" >&6; }

# Is the header present?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
$as_echo_n "checking $2 presence... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$2>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  ac_header_preproc=yes
else
  ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }

# So?  What about this header?
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
  yes:no: )
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
    ;;
  no:yes:* )
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
( cat <<\_ASBOX
## ------------------------------------ ##
## Report this to wine-devel@winehq.org ##
## ------------------------------------ ##
_ASBOX
     ) | sed "s/^/$as_me: WARNING:     /" >&2
    ;;
esac
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
else
  eval "$3=\$ac_header_compiler"
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
fi
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}

} # ac_fn_c_check_header_mongrel

# ac_fn_c_try_run LINENO
# ----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
# that executables *can* be run.
ac_fn_c_try_run ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  if { { ac_try="$ac_link"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
  { { case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_try") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; }; then :
  ac_retval=0
else
  $as_echo "$as_me: program exited with status $ac_status" >&5
       $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

       ac_retval=$ac_status
fi
  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
  as_fn_set_status $ac_retval

} # ac_fn_c_try_run

# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
# INCLUDES, setting the cache variable VAR accordingly.
ac_fn_c_check_header_compile ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  eval "$3=yes"
else
  eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}

} # ac_fn_c_check_header_compile

# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
#define $2 innocuous_$2

/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char $2 (); below.
    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
    <limits.h> exists even on freestanding compilers.  */

#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif

#undef $2

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char $2 ();
/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined __stub_$2 || defined __stub___$2
choke me
#endif

int
main ()
{
return $2 ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  eval "$3=yes"
else
  eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}

} # ac_fn_c_check_func

# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
# ----------------------------------------------------
# Tries to find if the field MEMBER exists in type AGGR, after including
# INCLUDES, setting cache variable VAR accordingly.
ac_fn_c_check_member ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
$as_echo_n "checking for $2.$3... " >&6; }
if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$5
int
main ()
{
static $2 ac_aggr;
if (ac_aggr.$3)
return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  eval "$4=yes"
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$5
int
main ()
{
static $2 ac_aggr;
if (sizeof ac_aggr.$3)
return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  eval "$4=yes"
else
  eval "$4=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$4
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}

} # ac_fn_c_check_member

# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
# -------------------------------------------
# Tests whether TYPE exists after having included INCLUDES, setting cache
# variable VAR accordingly.
ac_fn_c_check_type ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
else
  eval "$3=no"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
if (sizeof ($2))
	 return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
if (sizeof (($2)))
	    return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

else
  eval "$3=yes"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}

} # ac_fn_c_check_type
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by Wine $as_me 1.1.38, which was
generated by GNU Autoconf 2.65.  Invocation command line was

  $ $0 $@

_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##

hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`

/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`

/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`

_ASUNAME

as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    $as_echo "PATH: $as_dir"
  done
IFS=$as_save_IFS

} >&5

cat >&5 <<_ACEOF


## ----------- ##
## Core tests. ##
## ----------- ##

_ACEOF


# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
  for ac_arg
  do
    case $ac_arg in
    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
    | -silent | --silent | --silen | --sile | --sil)
      continue ;;
    *\'*)
      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
    esac
    case $ac_pass in
    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
    2)
      as_fn_append ac_configure_args1 " '$ac_arg'"
      if test $ac_must_keep_next = true; then
	ac_must_keep_next=false # Got value, back to normal.
      else
	case $ac_arg in
	  *=* | --config-cache | -C | -disable-* | --disable-* \
	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
	  | -with-* | --with-* | -without-* | --without-* | --x)
	    case "$ac_configure_args0 " in
	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
	    esac
	    ;;
	  -* ) ac_must_keep_next=true ;;
	esac
      fi
      as_fn_append ac_configure_args " '$ac_arg'"
      ;;
    esac
  done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}

# When interrupted or exit'd, cleanup temporary files, and complete
# config.log.  We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
  # Save into config.log some information that might help in debugging.
  {
    echo

    cat <<\_ASBOX
## ---------------- ##
## Cache variables. ##
## ---------------- ##
_ASBOX
    echo
    # The following way of writing the cache mishandles newlines in values,
(
  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
    eval ac_val=\$$ac_var
    case $ac_val in #(
    *${as_nl}*)
      case $ac_var in #(
      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      esac
      case $ac_var in #(
      _ | IFS | as_nl) ;; #(
      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
      *) { eval $ac_var=; unset $ac_var;} ;;
      esac ;;
    esac
  done
  (set) 2>&1 |
    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
    *${as_nl}ac_space=\ *)
      sed -n \
	"s/'\''/'\''\\\\'\'''\''/g;
	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
      ;; #(
    *)
      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
      ;;
    esac |
    sort
)
    echo

    cat <<\_ASBOX
## ----------------- ##
## Output variables. ##
## ----------------- ##
_ASBOX
    echo
    for ac_var in $ac_subst_vars
    do
      eval ac_val=\$$ac_var
      case $ac_val in
      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
      esac
      $as_echo "$ac_var='\''$ac_val'\''"
    done | sort
    echo

    if test -n "$ac_subst_files"; then
      cat <<\_ASBOX
## ------------------- ##
## File substitutions. ##
## ------------------- ##
_ASBOX
      echo
      for ac_var in $ac_subst_files
      do
	eval ac_val=\$$ac_var
	case $ac_val in
	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
	esac
	$as_echo "$ac_var='\''$ac_val'\''"
      done | sort
      echo
    fi

    if test -s confdefs.h; then
      cat <<\_ASBOX
## ----------- ##
## confdefs.h. ##
## ----------- ##
_ASBOX
      echo
      cat confdefs.h
      echo
    fi
    test "$ac_signal" != 0 &&
      $as_echo "$as_me: caught signal $ac_signal"
    $as_echo "$as_me: exit $exit_status"
  } >&5
  rm -f core *.core core.conftest.* &&
    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
    exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0

# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h

$as_echo "/* confdefs.h */" > confdefs.h

# Predefined preprocessor variables.

cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_URL "$PACKAGE_URL"
_ACEOF


# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
  ac_site_file1=$CONFIG_SITE
elif test "x$prefix" != xNONE; then
  ac_site_file1=$prefix/share/config.site
  ac_site_file2=$prefix/etc/config.site
else
  ac_site_file1=$ac_default_prefix/share/config.site
  ac_site_file2=$ac_default_prefix/etc/config.site
fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
  test "x$ac_site_file" = xNONE && continue
  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
    sed 's/^/| /' "$ac_site_file" >&5
    . "$ac_site_file"
  fi
done

if test -r "$cache_file"; then
  # Some versions of bash will fail to source /dev/null (special files
  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
    case $cache_file in
      [\\/]* | ?:[\\/]* ) . "$cache_file";;
      *)                      . "./$cache_file";;
    esac
  fi
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
$as_echo "$as_me: creating cache $cache_file" >&6;}
  >$cache_file
fi

# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
  eval ac_old_set=\$ac_cv_env_${ac_var}_set
  eval ac_new_set=\$ac_env_${ac_var}_set
  eval ac_old_val=\$ac_cv_env_${ac_var}_value
  eval ac_new_val=\$ac_env_${ac_var}_value
  case $ac_old_set,$ac_new_set in
    set,)
      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
      ac_cache_corrupted=: ;;
    ,set)
      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
      ac_cache_corrupted=: ;;
    ,);;
    *)
      if test "x$ac_old_val" != "x$ac_new_val"; then
	# differences in whitespace do not lead to failure.
	ac_old_val_w=`echo x $ac_old_val`
	ac_new_val_w=`echo x $ac_new_val`
	if test "$ac_old_val_w" != "$ac_new_val_w"; then
	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
	  ac_cache_corrupted=:
	else
	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
	  eval $ac_var=\$ac_old_val
	fi
	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
      fi;;
  esac
  # Pass precious variables to config.status.
  if test "$ac_new_set" = set; then
    case $ac_new_val in
    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
    *) ac_arg=$ac_var=$ac_new_val ;;
    esac
    case " $ac_configure_args " in
      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
    esac
  fi
done
if $ac_cache_corrupted; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu



ac_config_headers="$ac_config_headers include/config.h"

ac_aux_dir=
for ac_dir in tools "$srcdir"/tools; do
  for ac_t in install-sh install.sh shtool; do
    if test -f "$ac_dir/$ac_t"; then
      ac_aux_dir=$ac_dir
      ac_install_sh="$ac_aux_dir/$ac_t -c"
      break 2
    fi
  done
done
if test -z "$ac_aux_dir"; then
  as_fn_error "cannot find install-sh, install.sh, or shtool in tools \"$srcdir\"/tools" "$LINENO" 5
fi

# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.




# Check whether --enable-win16 was given.
if test "${enable_win16+set}" = set; then :
  enableval=$enable_win16;
fi

# Check whether --enable-win64 was given.
if test "${enable_win64+set}" = set; then :
  enableval=$enable_win64;
fi

# Check whether --enable-tests was given.
if test "${enable_tests+set}" = set; then :
  enableval=$enable_tests;
fi

# Check whether --enable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then :
  enableval=$enable_maintainer_mode;
else
  MAINTAINER_MODE=\#

fi



# Check whether --with-alsa was given.
if test "${with_alsa+set}" = set; then :
  withval=$with_alsa; if test "x$withval" = "xno"; then ac_cv_header_sys_asoundlib_h=no; ac_cv_header_alsa_asoundlib_h=no; fi
fi


# Check whether --with-audioio was given.
if test "${with_audioio+set}" = set; then :
  withval=$with_audioio; if test "x$withval" = "xno"; then ac_cv_header_libaudioio_h=no; fi
fi


# Check whether --with-capi was given.
if test "${with_capi+set}" = set; then :
  withval=$with_capi; if test "x$withval" = "xno"; then ac_cv_header_capi20_h=no; ac_cv_header_linux_capi_h=no; fi
fi


# Check whether --with-cms was given.
if test "${with_cms+set}" = set; then :
  withval=$with_cms; if test "x$withval" = "xno"; then ac_cv_header_lcms_h=no; ac_cv_header_lcms_lcms_h=no; fi
fi


# Check whether --with-coreaudio was given.
if test "${with_coreaudio+set}" = set; then :
  withval=$with_coreaudio; if test "x$withval" = "xno"; then ac_cv_header_CoreAudio_CoreAudio_h=no; fi
fi


# Check whether --with-cups was given.
if test "${with_cups+set}" = set; then :
  withval=$with_cups;
fi


# Check whether --with-curses was given.
if test "${with_curses+set}" = set; then :
  withval=$with_curses; if test "x$withval" = "xno"; then ac_cv_header_ncurses_h=no; ac_cv_header_curses_h=no; fi
fi


# Check whether --with-esd was given.
if test "${with_esd+set}" = set; then :
  withval=$with_esd;
fi


# Check whether --with-fontconfig was given.
if test "${with_fontconfig+set}" = set; then :
  withval=$with_fontconfig; if test "x$withval" = "xno"; then ac_cv_header_fontconfig_fontconfig_h=no; fi
fi


# Check whether --with-freetype was given.
if test "${with_freetype+set}" = set; then :
  withval=$with_freetype;
fi


# Check whether --with-gphoto was given.
if test "${with_gphoto+set}" = set; then :
  withval=$with_gphoto;
fi


# Check whether --with-glu was given.
if test "${with_glu+set}" = set; then :
  withval=$with_glu; if test "x$withval" = "xno"; then ac_cv_header_GL_glu_h=no; fi
fi


# Check whether --with-gnutls was given.
if test "${with_gnutls+set}" = set; then :
  withval=$with_gnutls;
fi


# Check whether --with-gsm was given.
if test "${with_gsm+set}" = set; then :
  withval=$with_gsm; if test "x$withval" = "xno"; then ac_cv_header_gsm_h=no; ac_cv_header_gsm_gsm_h=no; fi
fi


# Check whether --with-hal was given.
if test "${with_hal+set}" = set; then :
  withval=$with_hal;
fi


# Check whether --with-jack was given.
if test "${with_jack+set}" = set; then :
  withval=$with_jack; if test "x$withval" = "xno"; then ac_cv_header_jack_jack_h=no; fi
fi


# Check whether --with-jpeg was given.
if test "${with_jpeg+set}" = set; then :
  withval=$with_jpeg; if test "x$withval" = "xno"; then ac_cv_header_jpeglib_h=no; fi
fi


# Check whether --with-ldap was given.
if test "${with_ldap+set}" = set; then :
  withval=$with_ldap; if test "x$withval" = "xno"; then ac_cv_header_ldap_h=no; ac_cv_header_lber_h=no; fi
fi


# Check whether --with-mpg123 was given.
if test "${with_mpg123+set}" = set; then :
  withval=$with_mpg123; if test "x$withval" = "xno"; then ac_cv_header_mpg123_h=no; fi
fi


# Check whether --with-nas was given.
if test "${with_nas+set}" = set; then :
  withval=$with_nas; if test "x$withval" = "xno"; then ac_cv_header_audio_audiolib_h=no; fi
fi


# Check whether --with-openal was given.
if test "${with_openal+set}" = set; then :
  withval=$with_openal; if test "x$withval" = "xno"; then ac_cv_header_AL_al_h=no; ac_cv_header_OpenAL_al_h=no; fi
fi


# Check whether --with-opengl was given.
if test "${with_opengl+set}" = set; then :
  withval=$with_opengl;
fi


# Check whether --with-openssl was given.
if test "${with_openssl+set}" = set; then :
  withval=$with_openssl; if test "x$withval" = "xno"; then ac_cv_header_openssl_err_h=no; ac_cv_header_openssl_ssl_h=no; fi
fi


# Check whether --with-oss was given.
if test "${with_oss+set}" = set; then :
  withval=$with_oss; if test "x$withval" = "xno"; then ac_cv_header_soundcard_h=no; ac_cv_header_sys_soundcard_h=no; ac_cv_header_machine_soundcard_h=no; fi
fi


# Check whether --with-png was given.
if test "${with_png+set}" = set; then :
  withval=$with_png; if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi
fi


# Check whether --with-pthread was given.
if test "${with_pthread+set}" = set; then :
  withval=$with_pthread; if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi
fi


# Check whether --with-sane was given.
if test "${with_sane+set}" = set; then :
  withval=$with_sane;
fi


# Check whether --with-v4l was given.
if test "${with_v4l+set}" = set; then :
  withval=$with_v4l;
fi


# Check whether --with-xcomposite was given.
if test "${with_xcomposite+set}" = set; then :
  withval=$with_xcomposite; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi
fi


# Check whether --with-xcursor was given.
if test "${with_xcursor+set}" = set; then :
  withval=$with_xcursor; if test "x$withval" = "xno"; then ac_cv_header_X11_Xcursor_Xcursor_h=no; fi
fi


# Check whether --with-xinerama was given.
if test "${with_xinerama+set}" = set; then :
  withval=$with_xinerama; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xinerama_h=no; fi
fi


# Check whether --with-xinput was given.
if test "${with_xinput+set}" = set; then :
  withval=$with_xinput; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XInput_h=no; fi
fi


# Check whether --with-xml was given.
if test "${with_xml+set}" = set; then :
  withval=$with_xml;
fi


# Check whether --with-xrandr was given.
if test "${with_xrandr+set}" = set; then :
  withval=$with_xrandr; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xrandr_h=no; fi
fi


# Check whether --with-xrender was given.
if test "${with_xrender+set}" = set; then :
  withval=$with_xrender; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xrender_h=no; fi
fi


# Check whether --with-xshape was given.
if test "${with_xshape+set}" = set; then :
  withval=$with_xshape; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_shape_h=no; fi
fi


# Check whether --with-xshm was given.
if test "${with_xshm+set}" = set; then :
  withval=$with_xshm; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XShm_h=no; fi
fi


# Check whether --with-xslt was given.
if test "${with_xslt+set}" = set; then :
  withval=$with_xslt;
fi


# Check whether --with-xxf86vm was given.
if test "${with_xxf86vm+set}" = set; then :
  withval=$with_xxf86vm; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; ac_cv_header_X11_extensions_xf86vmproto_h=no; fi
fi



# Check whether --with-wine-tools was given.
if test "${with_wine_tools+set}" = set; then :
  withval=$with_wine_tools;
fi


# Check whether --with-wine64 was given.
if test "${with_wine64+set}" = set; then :
  withval=$with_wine64;
fi


# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
if test "${ac_cv_build+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
if test "${ac_cv_host+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test "x$host_alias" = x; then
  ac_cv_host=$ac_cv_build
else
  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac



case "$srcdir" in
 .) ;;
 *) if test -f "$srcdir/Makefile" -o -f "$srcdir/include/config.h"; then
      as_fn_error "you are building out of the source tree, but the source tree contains object files.
You need to run 'make distclean' in the source tree first." "$LINENO" 5
    fi ;;
esac


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
else
  cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
	@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
  *@@@%%%=?*=@@@%%%*)
    eval ac_cv_prog_make_${ac_make}_set=yes;;
  *)
    eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
  SET_MAKE=
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  SET_MAKE="MAKE=${MAKE-make}"
fi

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_CC="${ac_tool_prefix}gcc"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_CC"; then
  ac_ct_CC=$CC
  # Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_CC"; then
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_CC="gcc"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_CC" = x; then
    CC=""
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    CC=$ac_ct_CC
  fi
else
  CC="$ac_cv_prog_CC"
fi

if test -z "$CC"; then
          if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_CC="${ac_tool_prefix}cc"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  fi
fi
if test -z "$CC"; then
  # Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
  ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
       ac_prog_rejected=yes
       continue
     fi
    ac_cv_prog_CC="cc"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

if test $ac_prog_rejected = yes; then
  # We found a bogon in the path, so make sure we never use it.
  set dummy $ac_cv_prog_CC
  shift
  if test $# != 0; then
    # We chose a different compiler from the bogus one.
    # However, it has the same basename, so the bogon will be chosen
    # first if we set CC to just the basename; use the full file name.
    shift
    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
  fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$CC"; then
  if test -n "$ac_tool_prefix"; then
  for ac_prog in cl.exe
  do
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    test -n "$CC" && break
  done
fi
if test -z "$CC"; then
  ac_ct_CC=$CC
  for ac_prog in cl.exe
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_CC"; then
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_CC="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$ac_ct_CC" && break
done

  if test "x$ac_ct_CC" = x; then
    CC=""
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    CC=$ac_ct_CC
  fi
fi

fi


test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "no acceptable C compiler found in \$PATH
See \`config.log' for more details." "$LINENO" 5; }

# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
  { { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    sed '10a\
... rest of stderr output deleted ...
         10q' conftest.err >conftest.er1
    cat conftest.er1 >&5
  fi
  rm -f conftest.er1 conftest.err
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }
done

cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
$as_echo_n "checking whether the C compiler works... " >&6; }
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`

# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"

ac_rmfiles=
for ac_file in $ac_files
do
  case $ac_file in
    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
  esac
done
rm -f $ac_rmfiles

if { { ac_try="$ac_link_default"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link_default") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then :
  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile.  We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
for ac_file in $ac_files ''
do
  test -f "$ac_file" || continue
  case $ac_file in
    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
	;;
    [ab].out )
	# We found the default executable, but exeext='' is most
	# certainly right.
	break;;
    *.* )
	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
	then :; else
	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
	fi
	# We set ac_cv_exeext here because the later test for it is not
	# safe: cross compilers may not add the suffix if given an `-o'
	# argument, so we may need to know it at that point already.
	# Even if this section looks crufty: it has the advantage of
	# actually working.
	break;;
    * )
	break;;
  esac
done
test "$ac_cv_exeext" = no && ac_cv_exeext=

else
  ac_file=''
fi
if test -z "$ac_file"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ as_fn_set_status 77
as_fn_error "C compiler cannot create executables
See \`config.log' for more details." "$LINENO" 5; }; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
$as_echo_n "checking for C compiler default output file name... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext

rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
$as_echo_n "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then :
  # If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
# `rm'.
for ac_file in conftest.exe conftest conftest.*; do
  test -f "$ac_file" || continue
  case $ac_file in
    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
	  break;;
    * ) break;;
  esac
done
else
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details." "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; }

rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <stdio.h>
int
main ()
{
FILE *f = fopen ("conftest.out", "w");
 return ferror (f) || fclose (f) != 0;

  ;
  return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run.  If not, either
# the compiler is broken, or we cross compile.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
$as_echo_n "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
  { { ac_try="$ac_link"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }
  if { ac_try='./conftest$ac_cv_exeext'
  { { case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_try") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; }; then
    cross_compiling=no
  else
    if test "$cross_compiling" = maybe; then
	cross_compiling=yes
    else
	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details." "$LINENO" 5; }
    fi
  fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
$as_echo "$cross_compiling" >&6; }

rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; }
if test "${ac_cv_objext+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
if { { ac_try="$ac_compile"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compile") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then :
  for ac_file in conftest.o conftest.obj conftest.*; do
  test -f "$ac_file" || continue;
  case $ac_file in
    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
       break;;
  esac
done
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "cannot compute suffix of object files: cannot compile
See \`config.log' for more details." "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
$as_echo "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
if test "${ac_cv_c_compiler_gnu+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
#ifndef __GNUC__
       choke me
#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_compiler_gnu=yes
else
  ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
  GCC=yes
else
  GCC=
fi
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if test "${ac_cv_prog_cc_g+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_save_c_werror_flag=$ac_c_werror_flag
   ac_c_werror_flag=yes
   ac_cv_prog_cc_g=no
   CFLAGS="-g"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_prog_cc_g=yes
else
  CFLAGS=""
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

else
  ac_c_werror_flag=$ac_save_c_werror_flag
	 CFLAGS="-g"
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
$as_echo "$ac_cv_prog_cc_g" >&6; }
if test "$ac_test_CFLAGS" = set; then
  CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
  if test "$GCC" = yes; then
    CFLAGS="-g -O2"
  else
    CFLAGS="-g"
  fi
else
  if test "$GCC" = yes; then
    CFLAGS="-O2"
  else
    CFLAGS=
  fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
if test "${ac_cv_prog_cc_c89+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <stdarg.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
     char **p;
     int i;
{
  return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
  char *s;
  va_list v;
  va_start (v,p);
  s = g (p, va_arg (v,int));
  va_end (v);
  return s;
}

/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
   function prototypes and stuff, but not '\xHH' hex character constants.
   These don't provoke an error unfortunately, instead are silently treated
   as 'x'.  The following induces an error, until -std is added to get
   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
   array size at least.  It's necessary to write '\x00'==0 to get something
   that's true only with -std.  */
int osf4_cc_array ['\x00' == 0 ? 1 : -1];

/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
   inside strings and character constants.  */
#define FOO(x) 'x'
int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];

int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
int argc;
char **argv;
int
main ()
{
return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
  ;
  return 0;
}
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
  CC="$ac_save_CC $ac_arg"
  if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext
  test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC

fi
# AC_CACHE_VAL
case "x$ac_cv_prog_cc_c89" in
  x)
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
$as_echo "none needed" >&6; } ;;
  xno)
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
$as_echo "unsupported" >&6; } ;;
  *)
    CC="$CC $ac_cv_prog_cc_c89"
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
esac
if test "x$ac_cv_prog_cc_c89" != xno; then :

fi

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu

ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test -z "$CXX"; then
  if test -n "$CCC"; then
    CXX=$CCC
  else
    if test -n "$ac_tool_prefix"; then
  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
  do
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CXX+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CXX"; then
  ac_cv_prog_CXX="$CXX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
$as_echo "$CXX" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    test -n "$CXX" && break
  done
fi
if test -z "$CXX"; then
  ac_ct_CXX=$CXX
  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_CXX"; then
  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_CXX="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
$as_echo "$ac_ct_CXX" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$ac_ct_CXX" && break
done

  if test "x$ac_ct_CXX" = x; then
    CXX="g++"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    CXX=$ac_ct_CXX
  fi
fi

  fi
fi
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
  { { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    sed '10a\
... rest of stderr output deleted ...
         10q' conftest.err >conftest.er1
    cat conftest.er1 >&5
  fi
  rm -f conftest.er1 conftest.err
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }
done

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
#ifndef __GNUC__
       choke me
#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
  ac_compiler_gnu=yes
else
  ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_cxx_compiler_gnu=$ac_compiler_gnu

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
  GXX=yes
else
  GXX=
fi
ac_test_CXXFLAGS=${CXXFLAGS+set}
ac_save_CXXFLAGS=$CXXFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
$as_echo_n "checking whether $CXX accepts -g... " >&6; }
if test "${ac_cv_prog_cxx_g+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
   ac_cxx_werror_flag=yes
   ac_cv_prog_cxx_g=no
   CXXFLAGS="-g"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
  ac_cv_prog_cxx_g=yes
else
  CXXFLAGS=""
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :

else
  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
	 CXXFLAGS="-g"
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
  ac_cv_prog_cxx_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
$as_echo "$ac_cv_prog_cxx_g" >&6; }
if test "$ac_test_CXXFLAGS" = set; then
  CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then
  if test "$GXX" = yes; then
    CXXFLAGS="-g -O2"
  else
    CXXFLAGS="-g"
  fi
else
  if test "$GXX" = yes; then
    CXXFLAGS="-O2"
  else
    CXXFLAGS=
  fi
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu

if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}cpp", so it can be a program name with args.
set dummy ${ac_tool_prefix}cpp; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CPPBIN+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CPPBIN"; then
  ac_cv_prog_CPPBIN="$CPPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_CPPBIN="${ac_tool_prefix}cpp"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CPPBIN=$ac_cv_prog_CPPBIN
if test -n "$CPPBIN"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPPBIN" >&5
$as_echo "$CPPBIN" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_CPPBIN"; then
  ac_ct_CPPBIN=$CPPBIN
  # Extract the first word of "cpp", so it can be a program name with args.
set dummy cpp; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CPPBIN+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_CPPBIN"; then
  ac_cv_prog_ac_ct_CPPBIN="$ac_ct_CPPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_CPPBIN="cpp"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_CPPBIN=$ac_cv_prog_ac_ct_CPPBIN
if test -n "$ac_ct_CPPBIN"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CPPBIN" >&5
$as_echo "$ac_ct_CPPBIN" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_CPPBIN" = x; then
    CPPBIN="cpp"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    CPPBIN=$ac_ct_CPPBIN
  fi
else
  CPPBIN="$ac_cv_prog_CPPBIN"
fi


cat >>confdefs.h <<_ACEOF
#define EXEEXT "$ac_exeext"
_ACEOF


case $host in
  *-darwin*)
    if test "x$enable_win64" = "xyes"
    then
      CC="$CC -m64"
      CXX="$CXX -m64"
      LD="${LD:-ld} -arch x86_64"
      AS="${AS:-as} -arch x86_64"
      host_cpu="x86_64"
      notice_platform="64-bit "
      TARGETFLAGS="-m64"

    else
      CC="$CC -m32"
      CXX="$CXX -m32"
      LD="${LD:-ld} -arch i386"
      AS="${AS:-as} -arch i386"
      host_cpu="i386"
      notice_platform="32-bit "
      TARGETFLAGS="-m32"

      enable_win16=${enable_win16:-yes}
    fi
    ;;
  x86_64*)
    if test "x$enable_win64" != "xyes" -a "$cross_compiling" != "yes"
    then
      CC="$CC -m32"
      CXX="$CXX -m32"
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC works" >&5
$as_echo_n "checking whether $CC works... " >&6; }

cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
                      as_fn_error "Cannot build a 32-bit program, you need to install 32-bit development libraries." "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
      LD="${LD:-ld} -m elf_i386"
      AS="${AS:-as} --32"
      host_cpu="i386"
      notice_platform="32-bit "
      TARGETFLAGS="-m32"

      enable_win16=${enable_win16:-yes}
    else
      if test "x${GCC}" = "xyes"
      then
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports __builtin_ms_va_list" >&5
$as_echo_n "checking whether $CC supports __builtin_ms_va_list... " >&6; }
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <stdarg.h>
int
main ()
{
void func(__builtin_ms_va_list *args);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
                           as_fn_error "You need gcc >= 4.4 to build Wine as 64-bit." "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
      fi
      TARGETFLAGS="-m64"

    fi
    ;;
  *-mingw32*|*-cygwin*)
    enable_win16=${enable_win16:-no}
    ;;
  i[3456789]86*)
    enable_win16=${enable_win16:-yes}
    ;;
esac

enable_win16=${enable_win16:-no}

enable_winetest=${enable_winetest:-$enable_tests}

if test -n "$with_wine64"
then
    if test "x$enable_win64" = "xyes"
    then
        as_fn_error "--enable-win64 and --with-wine64 are mutually exclusive.
--enable-win64 should be used in the 64-bit build tree, --with-wine64 in the 32-bit Wow64 build tree." "$LINENO" 5
    fi
    WOW64_DISABLE=\#

    enable_fonts=${enable_fonts:-no}
    enable_include=${enable_include:-no}
    enable_server=${enable_server:-no}
    enable_tools=${enable_tools:-no}
    enable_wineboot=${enable_wineboot:-no}
    enable_winedbg=${enable_winedbg:-no}
    test "x$libdir" != "x\${exec_prefix}/lib" || libdir="\${exec_prefix}/lib32"
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the directory containing the Wine tools" >&5
$as_echo_n "checking for the directory containing the Wine tools... " >&6; }
if test "${wine_cv_toolsdir+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  wine_cv_toolsdir="$with_wine_tools"
   if test -z "$with_wine_tools"; then
     if test "$cross_compiling" = "yes"; then
       as_fn_error "you must use the --with-wine-tools option when cross-compiling." "$LINENO" 5
     elif test -n "$with_wine64"; then
       wine_cv_toolsdir="$with_wine64"
     fi
   fi
   if test -z "$wine_cv_toolsdir"; then
     wine_cv_toolsdir="\$(TOPOBJDIR)"
   elif test -d "$wine_cv_toolsdir/tools/winebuild"; then
     case "$wine_cv_toolsdir" in
       /*) ;;
       *)  wine_cv_toolsdir="\$(TOPOBJDIR)/$wine_cv_toolsdir" ;;
     esac
   else
     as_fn_error "could not find Wine tools in $wine_cv_toolsdir" "$LINENO" 5
   fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wine_cv_toolsdir" >&5
$as_echo "$wine_cv_toolsdir" >&6; }
TOOLSDIR=$wine_cv_toolsdir

if test -n "$host_alias" -a "$host_alias" != "$build_alias"
then
    TARGETFLAGS="-b $host_alias $TARGETFLAGS"

fi

for ac_prog in flex
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_FLEX+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$FLEX"; then
  ac_cv_prog_FLEX="$FLEX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_FLEX="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
FLEX=$ac_cv_prog_FLEX
if test -n "$FLEX"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLEX" >&5
$as_echo "$FLEX" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$FLEX" && break
done
test -n "$FLEX" || FLEX="none"

if test "$FLEX" = "none"
then
  as_fn_error "no suitable flex found. Please install the 'flex' package." "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether flex is recent enough" >&5
$as_echo_n "checking whether flex is recent enough... " >&6; }
cat >conftest.l <<EOF
%top{
#include "prediluvian.h"
}
%%
EOF
if $FLEX -t conftest.l >/dev/null 2>&1
then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  as_fn_error "Your flex version is too old. Please install flex version 2.5.33 or newer." "$LINENO" 5
fi

for ac_prog in bison
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_BISON+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$BISON"; then
  ac_cv_prog_BISON="$BISON" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_BISON="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
BISON=$ac_cv_prog_BISON
if test -n "$BISON"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
$as_echo "$BISON" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$BISON" && break
done
test -n "$BISON" || BISON="none"

if test "$BISON" = "none"
then
  as_fn_error "no suitable bison found. Please install the 'bison' package." "$LINENO" 5
fi

if test -n "$ac_tool_prefix"; then
  for ac_prog in ar gar
  do
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$AR"; then
  ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
$as_echo "$AR" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    test -n "$AR" && break
  done
fi
if test -z "$AR"; then
  ac_ct_AR=$AR
  for ac_prog in ar gar
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_AR"; then
  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_AR="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
$as_echo "$ac_ct_AR" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$ac_ct_AR" && break
done

  if test "x$ac_ct_AR" = x; then
    AR="ar"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    AR=$ac_ct_AR
  fi
fi

ARFLAGS=rc

if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_RANLIB+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$RANLIB"; then
  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
$as_echo "$RANLIB" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_RANLIB"; then
  ac_ct_RANLIB=$RANLIB
  # Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_RANLIB"; then
  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_RANLIB="ranlib"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
$as_echo "$ac_ct_RANLIB" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_RANLIB" = x; then
    RANLIB=":"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    RANLIB=$ac_ct_RANLIB
  fi
else
  RANLIB="$ac_cv_prog_RANLIB"
fi

if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_STRIP+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$STRIP"; then
  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
$as_echo "$STRIP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_STRIP"; then
  ac_ct_STRIP=$STRIP
  # Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_STRIP"; then
  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_STRIP="strip"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
$as_echo "$ac_ct_STRIP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_STRIP" = x; then
    STRIP="strip"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    STRIP=$ac_ct_STRIP
  fi
else
  STRIP="$ac_cv_prog_STRIP"
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
$as_echo_n "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
$as_echo "no, using $LN_S" >&6; }
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
if test "${ac_cv_path_GREP+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -z "$GREP"; then
  ac_path_GREP_found=false
  # Loop through the user's path and test for each of PROGNAME-LIST
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_prog in grep ggrep; do
    for ac_exec_ext in '' $ac_executable_extensions; do
      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
# Check for GNU ac_path_GREP and select it if it is found.
  # Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
*GNU*)
  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
*)
  ac_count=0
  $as_echo_n 0123456789 >"conftest.in"
  while :
  do
    cat "conftest.in" "conftest.in" >"conftest.tmp"
    mv "conftest.tmp" "conftest.in"
    cp "conftest.in" "conftest.nl"
    $as_echo 'GREP' >> "conftest.nl"
    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
    as_fn_arith $ac_count + 1 && ac_count=$as_val
    if test $ac_count -gt ${ac_path_GREP_max-0}; then
      # Best one so far, save it but keep looking for a better one
      ac_cv_path_GREP="$ac_path_GREP"
      ac_path_GREP_max=$ac_count
    fi
    # 10*(2^10) chars as input seems more than enough
    test $ac_count -gt 10 && break
  done
  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac

      $ac_path_GREP_found && break 3
    done
  done
  done
IFS=$as_save_IFS
  if test -z "$ac_cv_path_GREP"; then
    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
  fi
else
  ac_cv_path_GREP=$GREP
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
$as_echo "$ac_cv_path_GREP" >&6; }
 GREP="$ac_cv_path_GREP"


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
if test "${ac_cv_path_EGREP+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
   then ac_cv_path_EGREP="$GREP -E"
   else
     if test -z "$EGREP"; then
  ac_path_EGREP_found=false
  # Loop through the user's path and test for each of PROGNAME-LIST
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_prog in egrep; do
    for ac_exec_ext in '' $ac_executable_extensions; do
      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
# Check for GNU ac_path_EGREP and select it if it is found.
  # Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
  ac_count=0
  $as_echo_n 0123456789 >"conftest.in"
  while :
  do
    cat "conftest.in" "conftest.in" >"conftest.tmp"
    mv "conftest.tmp" "conftest.in"
    cp "conftest.in" "conftest.nl"
    $as_echo 'EGREP' >> "conftest.nl"
    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
    as_fn_arith $ac_count + 1 && ac_count=$as_val
    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
      # Best one so far, save it but keep looking for a better one
      ac_cv_path_EGREP="$ac_path_EGREP"
      ac_path_EGREP_max=$ac_count
    fi
    # 10*(2^10) chars as input seems more than enough
    test $ac_count -gt 10 && break
  done
  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac

      $ac_path_EGREP_found && break 3
    done
  done
  done
IFS=$as_save_IFS
  if test -z "$ac_cv_path_EGREP"; then
    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
  fi
else
  ac_cv_path_EGREP=$EGREP
fi

   fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
$as_echo "$ac_cv_path_EGREP" >&6; }
 EGREP="$ac_cv_path_EGREP"


# Extract the first word of "ldconfig", so it can be a program name with args.
set dummy ldconfig; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_LDCONFIG+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  case $LDCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in /sbin /usr/sbin $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_path_LDCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_path_LDCONFIG" && ac_cv_path_LDCONFIG="true"
  ;;
esac
fi
LDCONFIG=$ac_cv_path_LDCONFIG
if test -n "$LDCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDCONFIG" >&5
$as_echo "$LDCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


# Find a good install program.  We prefer a C program (faster),
# so one script is as good as another.  But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    # Account for people who put trailing slashes in PATH elements.
case $as_dir/ in #((
  ./ | .// | /[cC]/* | \
  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
  /usr/ucb/* ) ;;
  *)
    # OSF1 and SCO ODT 3.0 have their own names for install.
    # Don't use installbsd from OSF since it installs stuff as root
    # by default.
    for ac_prog in ginstall scoinst install; do
      for ac_exec_ext in '' $ac_executable_extensions; do
	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
	  if test $ac_prog = install &&
	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
	    # AIX install.  It has an incompatible calling convention.
	    :
	  elif test $ac_prog = install &&
	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
	    # program-specific install script used by HP pwplus--don't use.
	    :
	  else
	    rm -rf conftest.one conftest.two conftest.dir
	    echo one > conftest.one
	    echo two > conftest.two
	    mkdir conftest.dir
	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
	      test -s conftest.one && test -s conftest.two &&
	      test -s conftest.dir/conftest.one &&
	      test -s conftest.dir/conftest.two
	    then
	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
	      break 3
	    fi
	  fi
	fi
      done
    done
    ;;
esac

  done
IFS=$as_save_IFS

rm -rf conftest.one conftest.two conftest.dir

fi
  if test "${ac_cv_path_install+set}" = set; then
    INSTALL=$ac_cv_path_install
  else
    # As a last resort, use the slow shell script.  Don't cache a
    # value for INSTALL within a source directory, because that will
    # break other packages using the cache if that directory is
    # removed, or if the value is a relative name.
    INSTALL=$ac_install_sh
  fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
$as_echo "$INSTALL" >&6; }

# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'

test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'

test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'

case "$INSTALL" in
  [\\/$]* | ?:[\\/]* ) ;;
  *)  INSTALL="\\\$(TOPSRCDIR)/$INSTALL" ;;
esac

for ac_prog in lclint lint
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_LINT+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$LINT"; then
  ac_cv_prog_LINT="$LINT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_LINT="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
LINT=$ac_cv_prog_LINT
if test -n "$LINT"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINT" >&5
$as_echo "$LINT" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$LINT" && break
done

if test "$LINT" = "lint"
then
  LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
  fi



for ac_prog in fontforge
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_FONTFORGE+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$FONTFORGE"; then
  ac_cv_prog_FONTFORGE="$FONTFORGE" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_FONTFORGE="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
FONTFORGE=$ac_cv_prog_FONTFORGE
if test -n "$FONTFORGE"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTFORGE" >&5
$as_echo "$FONTFORGE" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$FONTFORGE" && break
done
test -n "$FONTFORGE" || FONTFORGE="false"

for ac_prog in pkg-config
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$PKG_CONFIG"; then
  ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_PKG_CONFIG="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
PKG_CONFIG=$ac_cv_prog_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
$as_echo "$PKG_CONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$PKG_CONFIG" && break
done
test -n "$PKG_CONFIG" || PKG_CONFIG="false"

for ac_prog in rsvg
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_RSVG+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$RSVG"; then
  ac_cv_prog_RSVG="$RSVG" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_RSVG="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
RSVG=$ac_cv_prog_RSVG
if test -n "$RSVG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSVG" >&5
$as_echo "$RSVG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$RSVG" && break
done
test -n "$RSVG" || RSVG="false"

for ac_prog in icotool
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ICOTOOL+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ICOTOOL"; then
  ac_cv_prog_ICOTOOL="$ICOTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ICOTOOL="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ICOTOOL=$ac_cv_prog_ICOTOOL
if test -n "$ICOTOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ICOTOOL" >&5
$as_echo "$ICOTOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$ICOTOOL" && break
done
test -n "$ICOTOOL" || ICOTOOL="false"


if test "${enable_maintainer_mode+set}" = set
then
  if test "$FONTFORGE" = "false"; then as_fn_append wine_warnings "|fontforge is missing, fonts can't be rebuilt."; fi
  if test "$RSVG" = "false"; then as_fn_append wine_warnings "|rsvg is missing, icons can't be rebuilt."; fi
  if test "$ICOTOOL" = "false"; then as_fn_append wine_warnings "|icotool is missing, icons can't be rebuilt."; fi
fi

case $host_cpu in
  *i[3456789]86*)
    # Extract the first word of "prelink", so it can be a program name with args.
set dummy prelink; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_PRELINK+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  case $PRELINK in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_PRELINK="$PRELINK" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in /sbin /usr/sbin $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_path_PRELINK="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_path_PRELINK" && ac_cv_path_PRELINK="false"
  ;;
esac
fi
PRELINK=$ac_cv_path_PRELINK
if test -n "$PRELINK"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PRELINK" >&5
$as_echo "$PRELINK" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    ;;
esac


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for i386_set_ldt in -li386" >&5
$as_echo_n "checking for i386_set_ldt in -li386... " >&6; }
if test "${ac_cv_lib_i386_i386_set_ldt+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-li386  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char i386_set_ldt ();
int
main ()
{
return i386_set_ldt ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_i386_i386_set_ldt=yes
else
  ac_cv_lib_i386_i386_set_ldt=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_i386_i386_set_ldt" >&5
$as_echo "$ac_cv_lib_i386_i386_set_ldt" >&6; }
if test "x$ac_cv_lib_i386_i386_set_ldt" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBI386 1
_ACEOF

  LIBS="-li386 $LIBS"

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _oss_ioctl in -lossaudio" >&5
$as_echo_n "checking for _oss_ioctl in -lossaudio... " >&6; }
if test "${ac_cv_lib_ossaudio__oss_ioctl+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lossaudio  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char _oss_ioctl ();
int
main ()
{
return _oss_ioctl ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ossaudio__oss_ioctl=yes
else
  ac_cv_lib_ossaudio__oss_ioctl=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ossaudio__oss_ioctl" >&5
$as_echo "$ac_cv_lib_ossaudio__oss_ioctl" >&6; }
if test "x$ac_cv_lib_ossaudio__oss_ioctl" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBOSSAUDIO 1
_ACEOF

  LIBS="-lossaudio $LIBS"

fi


XLIB=""

OPENGL_LIBS=""



# Check whether --enable-largefile was given.
if test "${enable_largefile+set}" = set; then :
  enableval=$enable_largefile;
fi

if test "$enable_largefile" != no; then

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
if test "${ac_cv_sys_largefile_CC+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_cv_sys_largefile_CC=no
     if test "$GCC" != yes; then
       ac_save_CC=$CC
       while :; do
	 # IRIX 6.2 and later do not support large files by default,
	 # so use the C compiler's -n32 option if that helps.
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
	 if ac_fn_c_try_compile "$LINENO"; then :
  break
fi
rm -f core conftest.err conftest.$ac_objext
	 CC="$CC -n32"
	 if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_largefile_CC=' -n32'; break
fi
rm -f core conftest.err conftest.$ac_objext
	 break
       done
       CC=$ac_save_CC
       rm -f conftest.$ac_ext
    fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
$as_echo "$ac_cv_sys_largefile_CC" >&6; }
  if test "$ac_cv_sys_largefile_CC" != no; then
    CC=$CC$ac_cv_sys_largefile_CC
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  while :; do
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_file_offset_bits=no; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_file_offset_bits=64; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  ac_cv_sys_file_offset_bits=unknown
  break
done
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
case $ac_cv_sys_file_offset_bits in #(
  no | unknown) ;;
  *)
cat >>confdefs.h <<_ACEOF
#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
_ACEOF
;;
esac
rm -rf conftest*
  if test $ac_cv_sys_file_offset_bits = unknown; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
if test "${ac_cv_sys_large_files+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  while :; do
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_large_files=no; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#define _LARGE_FILES 1
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_large_files=1; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  ac_cv_sys_large_files=unknown
  break
done
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
$as_echo "$ac_cv_sys_large_files" >&6; }
case $ac_cv_sys_large_files in #(
  no | unknown) ;;
  *)
cat >>confdefs.h <<_ACEOF
#define _LARGE_FILES $ac_cv_sys_large_files
_ACEOF
;;
esac
rm -rf conftest*
  fi
fi


ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
$as_echo_n "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
  CPP=
fi
if test -z "$CPP"; then
  if test "${ac_cv_prog_CPP+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
      # Double quotes because CPP needs to be expanded
    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
    do
      ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
  # Use a header file that comes with gcc, so configuring glibc
  # with a fresh cross-compiler works.
  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
  # <limits.h> exists even on freestanding compilers.
  # On the NeXT, cc -E runs the code through the compiler's parser,
  # not just through cpp. "Syntax error" is here to catch this case.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
		     Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :

else
  # Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.$ac_ext

  # OK, works on sane cases.  Now check whether nonexistent headers
  # can be detected and how.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  # Broken: success on invalid input.
continue
else
  # Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.$ac_ext

done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
  break
fi

    done
    ac_cv_prog_CPP=$CPP

fi
  CPP=$ac_cv_prog_CPP
else
  ac_cv_prog_CPP=$CPP
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
$as_echo "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
  # Use a header file that comes with gcc, so configuring glibc
  # with a fresh cross-compiler works.
  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
  # <limits.h> exists even on freestanding compilers.
  # On the NeXT, cc -E runs the code through the compiler's parser,
  # not just through cpp. "Syntax error" is here to catch this case.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
		     Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :

else
  # Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.$ac_ext

  # OK, works on sane cases.  Now check whether nonexistent headers
  # can be detected and how.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  # Broken: success on invalid input.
continue
else
  # Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.$ac_ext

done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :

else
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details." "$LINENO" 5; }
fi

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if test "${ac_cv_header_stdc+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <float.h>

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_header_stdc=yes
else
  ac_cv_header_stdc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

if test $ac_cv_header_stdc = yes; then
  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <string.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "memchr" >/dev/null 2>&1; then :

else
  ac_cv_header_stdc=no
fi
rm -f conftest*

fi

if test $ac_cv_header_stdc = yes; then
  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <stdlib.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "free" >/dev/null 2>&1; then :

else
  ac_cv_header_stdc=no
fi
rm -f conftest*

fi

if test $ac_cv_header_stdc = yes; then
  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
  if test "$cross_compiling" = yes; then :
  :
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <ctype.h>
#include <stdlib.h>
#if ((' ' & 0x0FF) == 0x020)
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#else
# define ISLOWER(c) \
		   (('a' <= (c) && (c) <= 'i') \
		     || ('j' <= (c) && (c) <= 'r') \
		     || ('s' <= (c) && (c) <= 'z'))
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
#endif

#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int
main ()
{
  int i;
  for (i = 0; i < 256; i++)
    if (XOR (islower (i), ISLOWER (i))
	|| toupper (i) != TOUPPER (i))
      return 2;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

else
  ac_cv_header_stdc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
$as_echo "$ac_cv_header_stdc" >&6; }
if test $ac_cv_header_stdc = yes; then

$as_echo "#define STDC_HEADERS 1" >>confdefs.h

fi

# On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
		  inttypes.h stdint.h unistd.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


for ac_header in \
	AL/al.h \
	AudioUnit/AudioUnit.h \
	Carbon/Carbon.h \
	CoreAudio/CoreAudio.h \
	DiskArbitration/DiskArbitration.h \
	IOKit/IOKitLib.h \
	IOKit/hid/IOHIDLib.h \
	OpenAL/al.h \
	alias.h \
	alsa/asoundlib.h \
	arpa/inet.h \
	arpa/nameser.h \
	asm/types.h \
	capi20.h \
	curses.h \
	direct.h \
	dirent.h \
	dlfcn.h \
	elf.h \
	float.h \
	fnmatch.h \
	fontconfig/fontconfig.h \
	getopt.h \
	grp.h \
	gsm.h \
	gsm/gsm.h \
	ieeefp.h \
	inet/mib2.h \
	io.h \
	jack/jack.h \
	jpeglib.h \
	kstat.h \
	lber.h \
	lcms.h \
	lcms/lcms.h \
	ldap.h \
	libaudioio.h \
	link.h \
	linux/cdrom.h \
	linux/compiler.h \
	linux/hdreg.h \
	linux/input.h \
	linux/ioctl.h \
	linux/joystick.h \
	linux/major.h \
	linux/param.h \
	linux/serial.h \
	linux/types.h \
	linux/ucdrom.h \
	mach-o/nlist.h \
	mach/mach.h \
	mach/machine.h \
	machine/cpu.h \
	machine/limits.h \
	machine/soundcard.h \
	mntent.h \
	mpg123.h \
	ncurses.h \
	netdb.h \
	netinet/in.h \
	netinet/in_systm.h \
	netinet/tcp.h \
	netinet/tcp_fsm.h \
	openssl/err.h \
	openssl/ssl.h \
	png.h \
	poll.h \
	port.h \
	process.h \
	pthread.h \
	pwd.h \
	regex.h \
	sched.h \
	scsi/scsi.h \
	scsi/scsi_ioctl.h \
	scsi/sg.h \
	soundcard.h \
	stdbool.h \
	stdint.h \
	strings.h \
	stropts.h \
	sys/asoundlib.h \
	sys/cdio.h \
	sys/elf32.h \
	sys/epoll.h \
	sys/errno.h \
	sys/event.h \
	sys/exec_elf.h \
	sys/filio.h \
	sys/inotify.h \
	sys/ioctl.h \
	sys/ipc.h \
	sys/limits.h \
	sys/link.h \
	sys/mman.h \
	sys/modem.h \
	sys/msg.h \
	sys/mtio.h \
	sys/param.h \
	sys/poll.h \
	sys/prctl.h \
	sys/protosw.h \
	sys/ptrace.h \
	sys/resource.h \
	sys/scsiio.h \
	sys/shm.h \
	sys/signal.h \
	sys/socket.h \
	sys/socketvar.h \
	sys/sockio.h \
	sys/soundcard.h \
	sys/statvfs.h \
	sys/strtio.h \
	sys/syscall.h \
	sys/tihdr.h \
	sys/time.h \
	sys/timeout.h \
	sys/times.h \
	sys/uio.h \
	sys/un.h \
	sys/utsname.h \
	sys/vm86.h \
	sys/wait.h \
	syscall.h \
	termios.h \
	unistd.h \
	utime.h \
	valgrind/memcheck.h \
	valgrind/valgrind.h \
	zlib.h

do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
if test "${ac_cv_header_stat_broken+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
#include <sys/stat.h>

#if defined S_ISBLK && defined S_IFDIR
extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
#endif

#if defined S_ISBLK && defined S_IFCHR
extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
#endif

#if defined S_ISLNK && defined S_IFREG
extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
#endif

#if defined S_ISSOCK && defined S_IFREG
extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
#endif

_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_header_stat_broken=no
else
  ac_cv_header_stat_broken=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5
$as_echo "$ac_cv_header_stat_broken" >&6; }
if test $ac_cv_header_stat_broken = yes; then

$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h

fi



for ac_header in sys/mount.h sys/statfs.h sys/sysctl.h sys/user.h sys/vfs.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include <sys/types.h>
     #ifdef HAVE_SYS_PARAM_H
     # include <sys/param.h>
     #endif
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


for ac_header in \
	netinet/ip.h \
	net/if.h \
	net/if_arp.h \
	net/if_dl.h \
	net/if_types.h \
	net/route.h \
	netinet/if_ether.h \
	netinet/if_inarp.h \
	netinet/in_pcb.h \
	netinet/ip_icmp.h \
	netinet/ip_var.h \
	netinet/udp.h \
	netipx/ipx.h \

do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include <sys/types.h>
     #ifdef HAVE_SYS_SOCKET_H
     # include <sys/socket.h>
     #endif
     #ifdef HAVE_SYS_SOCKETVAR_H
     # include <sys/socketvar.h>
     #endif
     #ifdef HAVE_NET_ROUTE_H
     # include <net/route.h>
     #endif
     #ifdef HAVE_NETINET_IN_H
     # include <netinet/in.h>
     #endif
     #ifdef HAVE_NETINET_IN_SYSTM_H
     # include <netinet/in_systm.h>
     #endif
     #ifdef HAVE_NET_IF_H
     # include <net/if.h>
     #endif
     #ifdef HAVE_NETINET_IP_H
     # include <netinet/ip.h>
     #endif
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


for ac_header in netinet/tcp_timer.h netinet/udp_var.h netinet/icmp_var.h netinet/tcp_var.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include <sys/types.h>
     #ifdef HAVE_ALIAS_H
     # include <alias.h>
     #endif
     #ifdef HAVE_SYS_SOCKET_H
     # include <sys/socket.h>
     #endif
     #ifdef HAVE_SYS_SOCKETVAR_H
     # include <sys/socketvar.h>
     #endif
     #ifdef HAVE_SYS_TIMEOUT_H
     # include <sys/timeout.h>
     #endif
     #ifdef HAVE_NETINET_IN_H
     # include <netinet/in.h>
     #endif
     #ifdef HAVE_NETINET_IN_SYSTM_H
     # include <netinet/in_systm.h>
     #endif
     #ifdef HAVE_NETINET_IP_H
     # include <netinet/ip.h>
     #endif
     #ifdef HAVE_NETINET_IP_VAR_H
     # include <netinet/ip_var.h>
     #endif
     #ifdef HAVE_NETINET_IP_ICMP_H
     # include <netinet/ip_icmp.h>
     #endif
     #ifdef HAVE_NETINET_UDP_H
     # include <netinet/udp.h>
     #endif
     #ifdef HAVE_NETINET_TCP_H
     # include <netinet/tcp.h>
     #endif
     #ifdef HAVE_NETINET_TCP_TIMER_H
     #include <netinet/tcp_timer.h>
     #endif
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


for ac_header in linux/ipx.h linux/irda.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include <sys/types.h>
     #ifdef HAVE_ASM_TYPES_H
     # include <asm/types.h>
     #endif
     #ifdef HAVE_SYS_SOCKET_H
     # include <sys/socket.h>
     #endif
     #ifdef HAVE_LINUX_TYPES_H
     # include <linux/types.h>
     #endif
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


for ac_header in mach-o/dyld_images.h
do :
  ac_fn_c_check_header_compile "$LINENO" "mach-o/dyld_images.h" "ac_cv_header_mach_o_dyld_images_h" "#ifdef HAVE_STDBOOL_H
     # include <stdbool.h>
     #endif
     #ifdef HAVE_STDINT_H
     # include <stdint.h>
     #endif
"
if test "x$ac_cv_header_mach_o_dyld_images_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_MACH_O_DYLD_IMAGES_H 1
_ACEOF

fi

done


for ac_header in resolv.h
do :
  ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "#include <sys/types.h>
     #ifdef HAVE_SYS_SOCKET_H
     # include <sys/socket.h>
     #endif
     #ifdef HAVE_NETINET_IN_H
     # include <netinet/in.h>
     #endif
     #ifdef HAVE_ARPA_NAMESER_H
     # include <arpa/nameser.h>
     #endif
"
if test "x$ac_cv_header_resolv_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_RESOLV_H 1
_ACEOF

fi

done


for ac_header in ucontext.h
do :
  ac_fn_c_check_header_compile "$LINENO" "ucontext.h" "ac_cv_header_ucontext_h" "#include <signal.h>
"
if test "x$ac_cv_header_ucontext_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_UCONTEXT_H 1
_ACEOF

fi

done


for ac_header in sys/thr.h
do :
  ac_fn_c_check_header_compile "$LINENO" "sys/thr.h" "ac_cv_header_sys_thr_h" "#include <sys/types.h>
#ifdef HAVE_UCONTEXT_H
#include <ucontext.h>
#endif
"
if test "x$ac_cv_header_sys_thr_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_SYS_THR_H 1
_ACEOF

fi

done


for ac_header in pthread_np.h
do :
  ac_fn_c_check_header_compile "$LINENO" "pthread_np.h" "ac_cv_header_pthread_np_h" "#ifdef HAVE_PTHREAD_H
#include <pthread.h>
#endif
"
if test "x$ac_cv_header_pthread_np_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_PTHREAD_NP_H 1
_ACEOF

fi

done


for ac_header in linux/videodev.h
do :
  ac_fn_c_check_header_compile "$LINENO" "linux/videodev.h" "ac_cv_header_linux_videodev_h" "#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/types.h>
#ifdef HAVE_ASM_TYPES_H
#include <asm/types.h>
#endif
"
if test "x$ac_cv_header_linux_videodev_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LINUX_VIDEODEV_H 1
_ACEOF

fi

done


for ac_header in linux/capi.h
do :
  ac_fn_c_check_header_compile "$LINENO" "linux/capi.h" "ac_cv_header_linux_capi_h" "#define __user
"
if test "x$ac_cv_header_linux_capi_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LINUX_CAPI_H 1
_ACEOF

fi

done



DLLEXT=""

DLLFLAGS="-D_REENTRANT"

LDSHARED=""

LDDLLFLAGS=""

LIBEXT="so"

IMPLIBEXT="def"

LDRPATH_INSTALL=""

LDRPATH_LOCAL=""

STATIC_IMPLIBEXT="def.a"
# Extract the first word of "ldd", so it can be a program name with args.
set dummy ldd; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_LDD+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  case $LDD in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_LDD="$LDD" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="/sbin:/usr/sbin:$PATH"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_path_LDD="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_path_LDD" && ac_cv_path_LDD="true"
  ;;
esac
fi
LDD=$ac_cv_path_LDD
if test -n "$LDD"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDD" >&5
$as_echo "$LDD" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi



case $host_os in
  cygwin*|mingw32*)
    if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$DLLTOOL"; then
  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
$as_echo "$DLLTOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_DLLTOOL"; then
  ac_ct_DLLTOOL=$DLLTOOL
  # Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_DLLTOOL"; then
  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
$as_echo "$ac_ct_DLLTOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_DLLTOOL" = x; then
    DLLTOOL="false"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    DLLTOOL=$ac_ct_DLLTOOL
  fi
else
  DLLTOOL="$ac_cv_prog_DLLTOOL"
fi

    if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}dllwrap", so it can be a program name with args.
set dummy ${ac_tool_prefix}dllwrap; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_DLLWRAP+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$DLLWRAP"; then
  ac_cv_prog_DLLWRAP="$DLLWRAP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_DLLWRAP="${ac_tool_prefix}dllwrap"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
DLLWRAP=$ac_cv_prog_DLLWRAP
if test -n "$DLLWRAP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLWRAP" >&5
$as_echo "$DLLWRAP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_DLLWRAP"; then
  ac_ct_DLLWRAP=$DLLWRAP
  # Extract the first word of "dllwrap", so it can be a program name with args.
set dummy dllwrap; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_DLLWRAP+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_DLLWRAP"; then
  ac_cv_prog_ac_ct_DLLWRAP="$ac_ct_DLLWRAP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ac_ct_DLLWRAP="dllwrap"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ac_ct_DLLWRAP=$ac_cv_prog_ac_ct_DLLWRAP
if test -n "$ac_ct_DLLWRAP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLWRAP" >&5
$as_echo "$ac_ct_DLLWRAP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_DLLWRAP" = x; then
    DLLWRAP="false"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    DLLWRAP=$ac_ct_DLLWRAP
  fi
else
  DLLWRAP="$ac_cv_prog_DLLWRAP"
fi

    if test "$DLLWRAP" = "false"; then
      LIBEXT="a"
    else
            LIBEXT="dll"
    fi
    IMPLIBEXT="a"
    STATIC_IMPLIBEXT="a"
        enable_iphlpapi=${enable_iphlpapi:-no}
    enable_kernel32=${enable_kernel32:-no}
    enable_msvcrt=${enable_msvcrt:-no}
    enable_ntdll=${enable_ntdll:-no}
    enable_ws2_32=${enable_ws2_32:-no}
    enable_loader=${enable_loader:-no}
    enable_server=${enable_server:-no}
        with_x=${with_x:-no}
    with_pthread=${with_pthread:-no}
    ;;
  darwin*|macosx*)
    DLLEXT=".so"
    LIBEXT="dylib"
    DLLFLAGS="$DLLFLAGS -fPIC"
    LDDLLFLAGS="-bundle -multiply_defined suppress"
    LIBWINE_LDFLAGS="-multiply_defined suppress"
    LDSHARED="\$(CC) -dynamiclib"
    STRIP="$STRIP -x"
    LDRPATH_LOCAL="&& install_name_tool -change @executable_path/\`\$(RELPATH) \$(bindir) \$(libdir)\`/libwine.1.dylib @executable_path/\$(TOPOBJDIR)/libs/wine/libwine.1.dylib \$@ || \$(RM) \$@"
        SECURITYLIB="-framework Security -framework CoreFoundation"

    COREFOUNDATIONLIB="-framework CoreFoundation"

    IOKITLIB="-framework IOKit -framework CoreFoundation"

    LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00000000,-segaddr,WINE_SHAREDHEAP,0x7f000000"

    if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes"
    then
                DISKARBITRATIONLIB="-framework DiskArbitration -framework CoreFoundation"

    fi
    if test "$ac_cv_header_CoreAudio_CoreAudio_h" = "yes" -a "$ac_cv_header_AudioUnit_AudioUnit_h" = "yes"
    then
                COREAUDIO="-framework CoreAudio -framework AudioUnit -framework CoreServices -framework AudioToolbox -framework CoreMIDI"

    fi
    if test "$ac_cv_header_OpenAL_al_h" = "yes"
    then
        LIBOPENAL="-framework OpenAL"

        ac_cv_lib_openal_alGetSource3i=yes
    fi
    if test "$ac_cv_header_IOKit_hid_IOHIDLib_h" = "yes"
    then
        ac_save_LIBS="$LIBS"
        LIBS="$LIBS $IOKITLIB"
        for ac_func in IOHIDManagerCreate
do :
  ac_fn_c_check_func "$LINENO" "IOHIDManagerCreate" "ac_cv_func_IOHIDManagerCreate"
if test "x$ac_cv_func_IOHIDManagerCreate" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_IOHIDMANAGERCREATE 1
_ACEOF

fi
done

        LIBS="$ac_save_LIBS"
    fi
    case $host_cpu in
      *powerpc*)
        LDDLLFLAGS="$LDDLLFLAGS -read_only_relocs warning"          ;;
    esac
        if test "$ac_cv_header_Carbon_Carbon_h" = "yes"
    then
        CARBONLIB="-framework Carbon"

        enable_winequartz_drv=${enable_winequartz_drv:-yes}
    fi
        if test "x$enable_win16" = "xyes"
    then
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether 16-bit code can be built correctly" >&5
$as_echo_n "checking whether 16-bit code can be built correctly... " >&6; }
        if test "$cross_compiling" = yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross-compiling, assuming yes" >&5
$as_echo "cross-compiling, assuming yes" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
asm(".text\n"
                                            "bad:\tnop;nop\n"
                                            "good:\tnop;nop\n\t"
                                            ".globl _testfunc\n"
                                            "_testfunc:\tcallw good");
                                        extern void testfunc();
int
main ()
{
unsigned short *p = (unsigned short *)testfunc;
                                        return p[0] != 0xe866 || p[1] != 0xfffa
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
                                       as_fn_error "Xcode 3.x cannot build 16-bit code correctly. Use --disable-win16 if you don't need 16-bit support." "$LINENO" 5
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

    fi
    ;;
  *)
    DLLFLAGS="$DLLFLAGS -fPIC"
    DLLEXT=".so"
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a GNU style ELF dll" >&5
$as_echo_n "checking whether we can build a GNU style ELF dll... " >&6; }
if test "${ac_cv_c_dll_gnuelf+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -shared -Wl,-Bsymbolic"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
void myfunc() {}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_c_dll_gnuelf="yes"
else
  ac_cv_c_dll_gnuelf="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_dll_gnuelf" >&5
$as_echo "$ac_cv_c_dll_gnuelf" >&6; }
    if test "$ac_cv_c_dll_gnuelf" = "yes"
    then
      LDSHARED="\$(CC) -shared"
      LDDLLFLAGS="-shared -Wl,-Bsymbolic"
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -shared -Wl,-soname,confest.so.1" >&5
$as_echo_n "checking whether the compiler supports -fPIC -shared -Wl,-soname,confest.so.1... " >&6; }
if test "${ac_cv_cflags__fPIC__shared__Wl__soname_confest_so_1+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,confest.so.1"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__fPIC__shared__Wl__soname_confest_so_1=yes
else
  ac_cv_cflags__fPIC__shared__Wl__soname_confest_so_1=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fPIC__shared__Wl__soname_confest_so_1" >&5
$as_echo "$ac_cv_cflags__fPIC__shared__Wl__soname_confest_so_1" >&6; }
if test $ac_cv_cflags__fPIC__shared__Wl__soname_confest_so_1 = yes; then :
  LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -shared -Wl,-h,confest.so.1" >&5
$as_echo_n "checking whether the compiler supports -fPIC -shared -Wl,-h,confest.so.1... " >&6; }
if test "${ac_cv_cflags__fPIC__shared__Wl__h_confest_so_1+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -shared -Wl,-h,confest.so.1"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__fPIC__shared__Wl__h_confest_so_1=yes
else
  ac_cv_cflags__fPIC__shared__Wl__h_confest_so_1=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fPIC__shared__Wl__h_confest_so_1" >&5
$as_echo "$ac_cv_cflags__fPIC__shared__Wl__h_confest_so_1" >&6; }
if test $ac_cv_cflags__fPIC__shared__Wl__h_confest_so_1 = yes; then :
  LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-h,%)"
fi
fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -shared -Wl,-Bsymbolic,-z,defs" >&5
$as_echo_n "checking whether the compiler supports -fPIC -shared -Wl,-Bsymbolic,-z,defs... " >&6; }
if test "${ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__z_defs+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -shared -Wl,-Bsymbolic,-z,defs"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__z_defs=yes
else
  ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__z_defs=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__z_defs" >&5
$as_echo "$ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__z_defs" >&6; }
if test $ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__z_defs = yes; then :
  LDDLLFLAGS="$LDDLLFLAGS,-z,defs"
fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini" >&5
$as_echo_n "checking whether the compiler supports -fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini... " >&6; }
if test "${ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__init___wine_spec_init__fini___wine_spec_fini+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__init___wine_spec_init__fini___wine_spec_fini=yes
else
  ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__init___wine_spec_init__fini___wine_spec_fini=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__init___wine_spec_init__fini___wine_spec_fini" >&5
$as_echo "$ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__init___wine_spec_init__fini___wine_spec_fini" >&6; }
if test $ac_cv_cflags__fPIC__shared__Wl__Bsymbolic__init___wine_spec_init__fini___wine_spec_fini = yes; then :
  LDDLLFLAGS="$LDDLLFLAGS,-init,__wine_spec_init,-fini,__wine_spec_fini"
fi

      echo '{ global: *; };' >conftest.map
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -shared -Wl,--version-script=conftest.map" >&5
$as_echo_n "checking whether the compiler supports -fPIC -shared -Wl,--version-script=conftest.map... " >&6; }
if test "${ac_cv_cflags__fPIC__shared__Wl___version_script_conftest_map+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -shared -Wl,--version-script=conftest.map"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__fPIC__shared__Wl___version_script_conftest_map=yes
else
  ac_cv_cflags__fPIC__shared__Wl___version_script_conftest_map=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fPIC__shared__Wl___version_script_conftest_map" >&5
$as_echo "$ac_cv_cflags__fPIC__shared__Wl___version_script_conftest_map" >&6; }
if test $ac_cv_cflags__fPIC__shared__Wl___version_script_conftest_map = yes; then :
  LDSHARED="$LDSHARED \$(VERSCRIPT:%=-Wl,--version-script=%)"
fi
      rm -f conftest.map

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--export-dynamic" >&5
$as_echo_n "checking whether the compiler supports -fPIC -Wl,--export-dynamic... " >&6; }
if test "${ac_cv_cflags__fPIC__Wl___export_dynamic+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -Wl,--export-dynamic"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__fPIC__Wl___export_dynamic=yes
else
  ac_cv_cflags__fPIC__Wl___export_dynamic=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fPIC__Wl___export_dynamic" >&5
$as_echo "$ac_cv_cflags__fPIC__Wl___export_dynamic" >&6; }
if test $ac_cv_cflags__fPIC__Wl___export_dynamic = yes; then :
  LDEXECFLAGS="-Wl,--export-dynamic"

fi

      as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,--rpath,\\$ORIGIN/../lib" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5
$as_echo_n "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... " >&6; }
if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -Wl,--rpath,\$ORIGIN/../lib"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  eval "$as_ac_var=yes"
else
  eval "$as_ac_var=no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
eval ac_res=\$$as_ac_var
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_ac_var'};$as_echo "$as_val"'` = yes; then :
  LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
                       LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"
else
  as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5
$as_echo_n "checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib... " >&6; }
if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -Wl,-R,\$ORIGIN/../lib"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  eval "$as_ac_var=yes"
else
  eval "$as_ac_var=no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
eval ac_res=\$$as_ac_var
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_ac_var'};$as_echo "$as_val"'` = yes; then :
  LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
                            LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"
fi
fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,--enable-new-dtags" >&5
$as_echo_n "checking whether the compiler supports -Wl,--enable-new-dtags... " >&6; }
if test "${ac_cv_cflags__Wl___enable_new_dtags+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -Wl,--enable-new-dtags"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__Wl___enable_new_dtags=yes
else
  ac_cv_cflags__Wl___enable_new_dtags=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wl___enable_new_dtags" >&5
$as_echo "$ac_cv_cflags__Wl___enable_new_dtags" >&6; }
if test $ac_cv_cflags__Wl___enable_new_dtags = yes; then :
  LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"
fi

      case $host_cpu in
        *i[3456789]86* | x86_64)
          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,--section-start,.interp=0x7bf00400" >&5
$as_echo_n "checking whether the compiler supports -Wl,--section-start,.interp=0x7bf00400... " >&6; }
if test "${ac_cv_cflags__Wl___section_start__interp_0x7bf00400+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -Wl,--section-start,.interp=0x7bf00400"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__Wl___section_start__interp_0x7bf00400=yes
else
  ac_cv_cflags__Wl___section_start__interp_0x7bf00400=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wl___section_start__interp_0x7bf00400" >&5
$as_echo "$ac_cv_cflags__Wl___section_start__interp_0x7bf00400" >&6; }
if test $ac_cv_cflags__Wl___section_start__interp_0x7bf00400 = yes; then :
  LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400"
fi
          ;;
      esac

    else
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a UnixWare (Solaris) dll" >&5
$as_echo_n "checking whether we can build a UnixWare (Solaris) dll... " >&6; }
if test "${ac_cv_c_dll_unixware+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
void myfunc() {}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_c_dll_unixware="yes"
else
  ac_cv_c_dll_unixware="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_dll_unixware" >&5
$as_echo "$ac_cv_c_dll_unixware" >&6; }
      if test "$ac_cv_c_dll_unixware" = "yes"
      then
        LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
        LDDLLFLAGS="-Wl,-G,-B,symbolic"

      else
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build an HP-UX dll" >&5
$as_echo_n "checking whether we can build an HP-UX dll... " >&6; }
if test "${ac_cv_c_dll_hpux+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -shared"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
void myfunc() {}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_c_dll_hpux="yes"
else
  ac_cv_c_dll_hpux="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_dll_hpux" >&5
$as_echo "$ac_cv_c_dll_hpux" >&6; }
        if test "$ac_cv_c_dll_hpux" = "yes"
        then
          LIBEXT="sl"
          DLLEXT=".sl"
          LDDLLFLAGS="-shared -fPIC"
          LDSHARED="\$(CC) -shared"
        fi
      fi
    fi
    ;;
esac

enable_winequartz_drv=${enable_winequartz_drv:-no}

if test "$LIBEXT" = "a"; then
  as_fn_error "could not find a way to build shared libraries.
It is currently not possible to build Wine without shared library
(.so) support to allow transparent switch between .so and .dll files.
If you are using Linux, you will need a newer binutils.
" "$LINENO" 5
fi

if test "$cross_compiling" = "no" -a "$LIBEXT" != "dll"
then
    case "$host_cpu" in
  i[3456789]86*)
    ac_prefix_list="i686-pc-mingw32-gcc i586-pc-mingw32-gcc i486-pc-mingw32-gcc i386-pc-mingw32-gcc i686-mingw32msvc-gcc i586-mingw32msvc-gcc i486-mingw32msvc-gcc i386-mingw32msvc-gcc i686-mingw32-gcc i586-mingw32-gcc i486-mingw32-gcc i386-mingw32-gcc " ;;
  x86_64)
    ac_prefix_list="x86_64-pc-mingw32-gcc x86_64-w64-mingw32-gcc " ;;
  *)
    ac_prefix_list="" ;;
esac
for ac_prog in $ac_prefix_list
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CROSSCC+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$CROSSCC"; then
  ac_cv_prog_CROSSCC="$CROSSCC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_CROSSCC="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
CROSSCC=$ac_cv_prog_CROSSCC
if test -n "$CROSSCC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CROSSCC" >&5
$as_echo "$CROSSCC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$CROSSCC" && break
done
test -n "$CROSSCC" || CROSSCC="false"

    if test "$CROSSCC" != "false"
    then
        CROSSTEST="\$(CROSSTEST)"

        set x $CROSSCC
        shift
        target=""
        while test $# -ge 1
        do
            case "$1" in
              *-gcc) target=`expr "$1" : '\(.*\)-gcc'` ;;
            esac
            shift
        done
        if test -n "$target"
        then
            CROSSTARGET="$target"

        fi
    fi
fi


if test "$ac_cv_header_pthread_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5
$as_echo_n "checking for pthread_create in -lpthread... " >&6; }
if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char pthread_create ();
int
main ()
{
return pthread_create ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_pthread_pthread_create=yes
else
  ac_cv_lib_pthread_pthread_create=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5
$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; }
if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then :
  LIBPTHREAD="-lpthread"

fi

fi
if test "x$LIBPTHREAD" = "x"; then :
  case "x$with_pthread" in
  xno) ;;
  *)   as_fn_error "pthread ${notice_platform}development files not found.
Wine cannot support threads without libpthread.
Use the --without-pthread option if you really want this." "$LINENO" 5 ;;
esac
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
$as_echo_n "checking for X... " >&6; }


# Check whether --with-x was given.
if test "${with_x+set}" = set; then :
  withval=$with_x;
fi

# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
if test "x$with_x" = xno; then
  # The user explicitly disabled X.
  have_x=disabled
else
  case $x_includes,$x_libraries in #(
    *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  # One or both of the vars are not set, and there is no cached value.
ac_x_includes=no ac_x_libraries=no
rm -f -r conftest.dir
if mkdir conftest.dir; then
  cd conftest.dir
  cat >Imakefile <<'_ACEOF'
incroot:
	@echo incroot='${INCROOT}'
usrlibdir:
	@echo usrlibdir='${USRLIBDIR}'
libdir:
	@echo libdir='${LIBDIR}'
_ACEOF
  if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
    # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
    for ac_var in incroot usrlibdir libdir; do
      eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
    done
    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
    for ac_extension in a so sl dylib la dll; do
      if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
	 test -f "$ac_im_libdir/libX11.$ac_extension"; then
	ac_im_usrlibdir=$ac_im_libdir; break
      fi
    done
    # Screen out bogus values from the imake configuration.  They are
    # bogus both because they are the default anyway, and because
    # using them would break gcc on systems where it needs fixed includes.
    case $ac_im_incroot in
	/usr/include) ac_x_includes= ;;
	*) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
    esac
    case $ac_im_usrlibdir in
	/usr/lib | /usr/lib64 | /lib | /lib64) ;;
	*) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
    esac
  fi
  cd ..
  rm -f -r conftest.dir
fi

# Standard set of common directories for X headers.
# Check X11 before X11Rn because it is often a symlink to the current release.
ac_x_header_dirs='
/usr/X11/include
/usr/X11R7/include
/usr/X11R6/include
/usr/X11R5/include
/usr/X11R4/include

/usr/include/X11
/usr/include/X11R7
/usr/include/X11R6
/usr/include/X11R5
/usr/include/X11R4

/usr/local/X11/include
/usr/local/X11R7/include
/usr/local/X11R6/include
/usr/local/X11R5/include
/usr/local/X11R4/include

/usr/local/include/X11
/usr/local/include/X11R7
/usr/local/include/X11R6
/usr/local/include/X11R5
/usr/local/include/X11R4

/usr/X386/include
/usr/x386/include
/usr/XFree86/include/X11

/usr/include
/usr/local/include
/usr/unsupported/include
/usr/athena/include
/usr/local/x11r5/include
/usr/lpp/Xamples/include

/usr/openwin/include
/usr/openwin/share/include'

if test "$ac_x_includes" = no; then
  # Guess where to find include files, by looking for Xlib.h.
  # First, try using that file with no special directory specified.
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <X11/Xlib.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  # We can compile using X headers with no special include directory.
ac_x_includes=
else
  for ac_dir in $ac_x_header_dirs; do
  if test -r "$ac_dir/X11/Xlib.h"; then
    ac_x_includes=$ac_dir
    break
  fi
done
fi
rm -f conftest.err conftest.$ac_ext
fi # $ac_x_includes = no

if test "$ac_x_libraries" = no; then
  # Check for the libraries.
  # See if we find them without any special options.
  # Don't add to $LIBS permanently.
  ac_save_LIBS=$LIBS
  LIBS="-lX11 $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <X11/Xlib.h>
int
main ()
{
XrmInitialize ()
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  LIBS=$ac_save_LIBS
# We can link X programs with no special library path.
ac_x_libraries=
else
  LIBS=$ac_save_LIBS
for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
do
  # Don't even attempt the hair of trying to link an X program!
  for ac_extension in a so sl dylib la dll; do
    if test -r "$ac_dir/libX11.$ac_extension"; then
      ac_x_libraries=$ac_dir
      break 2
    fi
  done
done
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi # $ac_x_libraries = no

case $ac_x_includes,$ac_x_libraries in #(
  no,* | *,no | *\'*)
    # Didn't find X, or a directory has "'" in its name.
    ac_cv_have_x="have_x=no";; #(
  *)
    # Record where we found X for the cache.
    ac_cv_have_x="have_x=yes\
	ac_x_includes='$ac_x_includes'\
	ac_x_libraries='$ac_x_libraries'"
esac
fi
;; #(
    *) have_x=yes;;
  esac
  eval "$ac_cv_have_x"
fi # $with_x != no

if test "$have_x" != yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
$as_echo "$have_x" >&6; }
  no_x=yes
else
  # If each of the values was on the command line, it overrides each guess.
  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
  # Update the cache value to reflect the command line values.
  ac_cv_have_x="have_x=yes\
	ac_x_includes='$x_includes'\
	ac_x_libraries='$x_libraries'"
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
fi

if test "$no_x" = yes; then
  # Not all programs may use this symbol, but it does not hurt to define it.

$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h

  X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
else
  if test -n "$x_includes"; then
    X_CFLAGS="$X_CFLAGS -I$x_includes"
  fi

  # It would also be nice to do this for all -L options, not just this one.
  if test -n "$x_libraries"; then
    X_LIBS="$X_LIBS -L$x_libraries"
    # For Solaris; some versions of Sun CC require a space after -R and
    # others require no space.  Words are not sufficient . . . .
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
$as_echo_n "checking whether -R must be followed by a space... " >&6; }
    ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
    ac_xsave_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
       X_LIBS="$X_LIBS -R$x_libraries"
else
  LIBS="$ac_xsave_LIBS -R $x_libraries"
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	  X_LIBS="$X_LIBS -R $x_libraries"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
$as_echo "neither works" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
    ac_c_werror_flag=$ac_xsave_c_werror_flag
    LIBS=$ac_xsave_LIBS
  fi

  # Check for system-dependent libraries X programs must link with.
  # Do this before checking for the system-independent R6 libraries
  # (-lICE), since we may need -lsocket or whatever for X linking.

  if test "$ISC" = yes; then
    X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
  else
    # Martyn Johnson says this is needed for Ultrix, if the X
    # libraries were built with DECnet support.  And Karl Berry says
    # the Alpha needs dnet_stub (dnet does not exist).
    ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XOpenDisplay ();
int
main ()
{
return XOpenDisplay ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char dnet_ntoa ();
int
main ()
{
return dnet_ntoa ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dnet_dnet_ntoa=yes
else
  ac_cv_lib_dnet_dnet_ntoa=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
fi

    if test $ac_cv_lib_dnet_dnet_ntoa = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet_stub  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char dnet_ntoa ();
int
main ()
{
return dnet_ntoa ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dnet_stub_dnet_ntoa=yes
else
  ac_cv_lib_dnet_stub_dnet_ntoa=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
fi

    fi
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
    LIBS="$ac_xsave_LIBS"

    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
    # to get the SysV transport functions.
    # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
    # needs -lnsl.
    # The nsl library prevents programs from opening the X display
    # on Irix 5.2, according to T.E. Dickey.
    # The functions gethostbyname, getservbyname, and inet_addr are
    # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
    ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
if test "x$ac_cv_func_gethostbyname" = x""yes; then :

fi

    if test $ac_cv_func_gethostbyname = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lnsl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gethostbyname ();
int
main ()
{
return gethostbyname ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_nsl_gethostbyname=yes
else
  ac_cv_lib_nsl_gethostbyname=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
fi

      if test $ac_cv_lib_nsl_gethostbyname = no; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gethostbyname ();
int
main ()
{
return gethostbyname ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_bsd_gethostbyname=yes
else
  ac_cv_lib_bsd_gethostbyname=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
fi

      fi
    fi

    # lieder@skyler.mavd.honeywell.com says without -lsocket,
    # socket/setsockopt and other routines are undefined under SCO ODT
    # 2.0.  But -lsocket is broken on IRIX 5.2 (and is not necessary
    # on later versions), says Simon Leinen: it contains gethostby*
    # variants that don't use the name server (or something).  -lsocket
    # must be given before -lnsl if both are needed.  We assume that
    # if connect needs -lnsl, so does gethostbyname.
    ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
if test "x$ac_cv_func_connect" = x""yes; then :

fi

    if test $ac_cv_func_connect = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
$as_echo_n "checking for connect in -lsocket... " >&6; }
if test "${ac_cv_lib_socket_connect+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char connect ();
int
main ()
{
return connect ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_connect=yes
else
  ac_cv_lib_socket_connect=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
$as_echo "$ac_cv_lib_socket_connect" >&6; }
if test "x$ac_cv_lib_socket_connect" = x""yes; then :
  X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
fi

    fi

    # Guillermo Gomez says -lposix is necessary on A/UX.
    ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
if test "x$ac_cv_func_remove" = x""yes; then :

fi

    if test $ac_cv_func_remove = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
$as_echo_n "checking for remove in -lposix... " >&6; }
if test "${ac_cv_lib_posix_remove+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lposix  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char remove ();
int
main ()
{
return remove ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_posix_remove=yes
else
  ac_cv_lib_posix_remove=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
$as_echo "$ac_cv_lib_posix_remove" >&6; }
if test "x$ac_cv_lib_posix_remove" = x""yes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
fi

    fi

    # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
    ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
if test "x$ac_cv_func_shmat" = x""yes; then :

fi

    if test $ac_cv_func_shmat = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
$as_echo_n "checking for shmat in -lipc... " >&6; }
if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lipc  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char shmat ();
int
main ()
{
return shmat ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ipc_shmat=yes
else
  ac_cv_lib_ipc_shmat=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
  X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
fi

    fi
  fi

  # Check for libraries that X11R6 Xt/Xaw programs need.
  ac_save_LDFLAGS=$LDFLAGS
  test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
  # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
  # check for ICE first), but we must link in the order -lSM -lICE or
  # we get undefined symbols.  So assume we have SM if we have ICE.
  # These have to be linked with before -lX11, unlike the other
  # libraries we check for below, so use a different variable.
  # John Interrante, Karl Berry
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char IceConnectionNumber ();
int
main ()
{
return IceConnectionNumber ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ICE_IceConnectionNumber=yes
else
  ac_cv_lib_ICE_IceConnectionNumber=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
  X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
fi

  LDFLAGS=$ac_save_LDFLAGS

fi


if test "$have_x" = "yes"
then
    XLIB="-lX11"
    ac_save_CPPFLAGS="$CPPFLAGS"
    CPPFLAGS="$CPPFLAGS $X_CFLAGS"

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lX11" >&5
$as_echo_n "checking for -lX11... " >&6; }
if test "${ac_cv_lib_soname_X11+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lX11 $X_LIBS $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XCreateWindow ();
int
main ()
{
return XCreateWindow ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_X11=`otool -L conftest$ac_exeext | grep "libX11\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libX11\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_X11=`$ac_cv_path_LDD conftest$ac_exeext | grep "libX11\\.$LIBEXT" | sed -e "s/^.*\(libX11\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_X11" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_X11" >&5
$as_echo "$ac_cv_lib_soname_X11" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBX11 "$ac_cv_lib_soname_X11"
_ACEOF


fi
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lXext" >&5
$as_echo_n "checking for -lXext... " >&6; }
if test "${ac_cv_lib_soname_Xext+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lXext $X_LIBS -lX11 $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XextCreateExtension ();
int
main ()
{
return XextCreateExtension ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_Xext=`otool -L conftest$ac_exeext | grep "libXext\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXext\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_Xext=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXext\\.$LIBEXT" | sed -e "s/^.*\(libXext\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_Xext" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_Xext" >&5
$as_echo "$ac_cv_lib_soname_Xext" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXEXT "$ac_cv_lib_soname_Xext"
_ACEOF

       XLIB="-lXext $XLIB"
fi

        for ac_header in X11/Xlib.h \
                      X11/XKBlib.h \
                      X11/Xutil.h \
                      X11/Xcursor/Xcursor.h \
                      X11/extensions/shape.h \
                      X11/extensions/XInput.h \
                      X11/extensions/XShm.h \
                      X11/extensions/Xcomposite.h \
                      X11/extensions/Xinerama.h \
                      X11/extensions/Xrandr.h \
                      X11/extensions/Xrender.h \
                      X11/extensions/xf86vmode.h \
                      X11/extensions/xf86vmproto.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_X11_XLIB_H
# include <X11/Xlib.h>
#endif
#ifdef HAVE_X11_XUTIL_H
# include <X11/Xutil.h>
#endif
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


                if test "$ac_cv_header_X11_XKBlib_h" = "yes"
        then
              { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XkbQueryExtension in -lX11" >&5
$as_echo_n "checking for XkbQueryExtension in -lX11... " >&6; }
if test "${ac_cv_lib_X11_XkbQueryExtension+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lX11 $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XkbQueryExtension ();
int
main ()
{
return XkbQueryExtension ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_X11_XkbQueryExtension=yes
else
  ac_cv_lib_X11_XkbQueryExtension=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_XkbQueryExtension" >&5
$as_echo "$ac_cv_lib_X11_XkbQueryExtension" >&6; }
if test "x$ac_cv_lib_X11_XkbQueryExtension" = x""yes; then :

$as_echo "#define HAVE_XKB 1" >>confdefs.h

fi

        fi

                if test "$ac_cv_header_X11_Xcursor_Xcursor_h" = "yes"
        then
            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lXcursor" >&5
$as_echo_n "checking for -lXcursor... " >&6; }
if test "${ac_cv_lib_soname_Xcursor+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lXcursor $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XcursorImageLoadCursor ();
int
main ()
{
return XcursorImageLoadCursor ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_Xcursor=`otool -L conftest$ac_exeext | grep "libXcursor\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXcursor\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_Xcursor=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXcursor\\.$LIBEXT" | sed -e "s/^.*\(libXcursor\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_Xcursor" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_Xcursor" >&5
$as_echo "$ac_cv_lib_soname_Xcursor" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXCURSOR "$ac_cv_lib_soname_Xcursor"
_ACEOF


fi
        fi
        if test "x$ac_cv_lib_soname_Xcursor" = "x"; then :
  case "x$with_xcursor" in
  x)   as_fn_append wine_notices "|libxcursor ${notice_platform}development files not found, the Xcursor extension won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libxcursor ${notice_platform}development files not found, the Xcursor extension won't be supported.
This is an error since --with-xcursor was requested." "$LINENO" 5 ;;
esac
fi

                if test "$ac_cv_header_X11_extensions_XInput_h" = "yes"
        then
            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lXi" >&5
$as_echo_n "checking for -lXi... " >&6; }
if test "${ac_cv_lib_soname_Xi+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lXi $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XOpenDevice ();
int
main ()
{
return XOpenDevice ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_Xi=`otool -L conftest$ac_exeext | grep "libXi\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXi\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_Xi=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXi\\.$LIBEXT" | sed -e "s/^.*\(libXi\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_Xi" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_Xi" >&5
$as_echo "$ac_cv_lib_soname_Xi" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXI "$ac_cv_lib_soname_Xi"
_ACEOF


fi
        fi
        if test "x$ac_cv_lib_soname_Xi" = "x"; then :
  case "x$with_xinput" in
  x)   as_fn_append wine_notices "|libxi ${notice_platform}development files not found, the Xinput extension won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libxi ${notice_platform}development files not found, the Xinput extension won't be supported.
This is an error since --with-xinput was requested." "$LINENO" 5 ;;
esac
fi

                if test "$ac_cv_header_X11_extensions_XShm_h" = "yes"
        then
              { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmQueryExtension in -lXext" >&5
$as_echo_n "checking for XShmQueryExtension in -lXext... " >&6; }
if test "${ac_cv_lib_Xext_XShmQueryExtension+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lXext $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XShmQueryExtension ();
int
main ()
{
return XShmQueryExtension ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_Xext_XShmQueryExtension=yes
else
  ac_cv_lib_Xext_XShmQueryExtension=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShmQueryExtension" >&5
$as_echo "$ac_cv_lib_Xext_XShmQueryExtension" >&6; }
if test "x$ac_cv_lib_Xext_XShmQueryExtension" = x""yes; then :

$as_echo "#define HAVE_LIBXXSHM 1" >>confdefs.h

fi

        fi
        if test "$ac_cv_lib_Xext_XShmQueryExtension" != "yes"; then :
  case "x$with_xshm" in
  x)   as_fn_append wine_notices "|XShm ${notice_platform}development files not found, X Shared Memory won't be supported." ;;
  xno) ;;
  *)   as_fn_error "XShm ${notice_platform}development files not found, X Shared Memory won't be supported.
This is an error since --with-xshm was requested." "$LINENO" 5 ;;
esac
fi

                if test "$ac_cv_header_X11_extensions_shape_h" = "yes"
        then
              { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShapeQueryExtension in -lXext" >&5
$as_echo_n "checking for XShapeQueryExtension in -lXext... " >&6; }
if test "${ac_cv_lib_Xext_XShapeQueryExtension+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lXext $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XShapeQueryExtension ();
int
main ()
{
return XShapeQueryExtension ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_Xext_XShapeQueryExtension=yes
else
  ac_cv_lib_Xext_XShapeQueryExtension=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShapeQueryExtension" >&5
$as_echo "$ac_cv_lib_Xext_XShapeQueryExtension" >&6; }
if test "x$ac_cv_lib_Xext_XShapeQueryExtension" = x""yes; then :

$as_echo "#define HAVE_LIBXSHAPE 1" >>confdefs.h

fi

        fi
        if test "$ac_cv_lib_Xext_XShapeQueryExtension" != "yes"; then :
  case "x$with_xshape" in
  x)   as_fn_append wine_notices "|XShape ${notice_platform}development files not found, XShape won't be supported." ;;
  xno) ;;
  *)   as_fn_error "XShape ${notice_platform}development files not found, XShape won't be supported.
This is an error since --with-xshape was requested." "$LINENO" 5 ;;
esac
fi

                if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes" -o "$ac_cv_header_X11_extensions_xf86vmproto_h" = "yes"
        then
            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lXxf86vm" >&5
$as_echo_n "checking for -lXxf86vm... " >&6; }
if test "${ac_cv_lib_soname_Xxf86vm+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lXxf86vm $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XF86VidModeQueryExtension ();
int
main ()
{
return XF86VidModeQueryExtension ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_Xxf86vm=`otool -L conftest$ac_exeext | grep "libXxf86vm\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXxf86vm\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_Xxf86vm=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXxf86vm\\.$LIBEXT" | sed -e "s/^.*\(libXxf86vm\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_Xxf86vm" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_Xxf86vm" >&5
$as_echo "$ac_cv_lib_soname_Xxf86vm" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXXF86VM "$ac_cv_lib_soname_Xxf86vm"
_ACEOF


fi
        fi
        if test "x$ac_cv_lib_soname_Xxf86vm" = "x"; then :
  case "x$with_xxf86vm" in
  x)   as_fn_append wine_notices "|libXxf86vm ${notice_platform}development files not found, XFree86 Vidmode won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libXxf86vm ${notice_platform}development files not found, XFree86 Vidmode won't be supported.
This is an error since --with-xxf86vm was requested." "$LINENO" 5 ;;
esac
fi

                if test "$ac_cv_header_X11_extensions_Xrender_h" = "yes" -a "x$ac_cv_lib_soname_X11" != "x" -a "x$ac_cv_lib_soname_Xext" != "x"
        then
            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lXrender" >&5
$as_echo_n "checking for -lXrender... " >&6; }
if test "${ac_cv_lib_soname_Xrender+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lXrender $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XRenderQueryExtension ();
int
main ()
{
return XRenderQueryExtension ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_Xrender=`otool -L conftest$ac_exeext | grep "libXrender\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXrender\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_Xrender=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXrender\\.$LIBEXT" | sed -e "s/^.*\(libXrender\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_Xrender" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_Xrender" >&5
$as_echo "$ac_cv_lib_soname_Xrender" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXRENDER "$ac_cv_lib_soname_Xrender"
_ACEOF

       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRenderSetPictureTransform in -lXrender" >&5
$as_echo_n "checking for XRenderSetPictureTransform in -lXrender... " >&6; }
if test "${ac_cv_lib_Xrender_XRenderSetPictureTransform+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lXrender $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XRenderSetPictureTransform ();
int
main ()
{
return XRenderSetPictureTransform ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_Xrender_XRenderSetPictureTransform=yes
else
  ac_cv_lib_Xrender_XRenderSetPictureTransform=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xrender_XRenderSetPictureTransform" >&5
$as_echo "$ac_cv_lib_Xrender_XRenderSetPictureTransform" >&6; }
if test "x$ac_cv_lib_Xrender_XRenderSetPictureTransform" = x""yes; then :

$as_echo "#define HAVE_XRENDERSETPICTURETRANSFORM 1" >>confdefs.h

fi

fi

        fi
        if test "x$ac_cv_lib_soname_Xrender" = "x"; then :
  case "x$with_xrender" in
  x)   as_fn_append wine_warnings "|libxrender ${notice_platform}development files not found, XRender won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libxrender ${notice_platform}development files not found, XRender won't be supported.
This is an error since --with-xrender was requested." "$LINENO" 5 ;;
esac
fi

                if test "$ac_cv_header_X11_extensions_Xrandr_h" = "yes" -a "x$ac_cv_lib_soname_Xrender" != "x"
        then
                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <X11/Xlib.h>
#include <X11/extensions/Xrandr.h>
int
main ()
{
static typeof(XRRSetScreenConfigAndRate) * func;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lXrandr" >&5
$as_echo_n "checking for -lXrandr... " >&6; }
if test "${ac_cv_lib_soname_Xrandr+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lXrandr $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XRRQueryExtension ();
int
main ()
{
return XRRQueryExtension ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_Xrandr=`otool -L conftest$ac_exeext | grep "libXrandr\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXrandr\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_Xrandr=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXrandr\\.$LIBEXT" | sed -e "s/^.*\(libXrandr\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_Xrandr" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_Xrandr" >&5
$as_echo "$ac_cv_lib_soname_Xrandr" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXRANDR "$ac_cv_lib_soname_Xrandr"
_ACEOF


fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
        fi
        if test "x$ac_cv_lib_soname_Xrandr" = "x"; then :
  case "x$with_xrandr" in
  x)   as_fn_append wine_notices "|libxrandr ${notice_platform}development files not found, XRandr won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libxrandr ${notice_platform}development files not found, XRandr won't be supported.
This is an error since --with-xrandr was requested." "$LINENO" 5 ;;
esac
fi

                if test "$ac_cv_header_X11_extensions_Xinerama_h" = "yes"
        then
                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <X11/Xlib.h>
#include <X11/extensions/Xinerama.h>
int
main ()
{
static typeof(XineramaQueryScreens) * func;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lXinerama" >&5
$as_echo_n "checking for -lXinerama... " >&6; }
if test "${ac_cv_lib_soname_Xinerama+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lXinerama $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XineramaQueryScreens ();
int
main ()
{
return XineramaQueryScreens ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_Xinerama=`otool -L conftest$ac_exeext | grep "libXinerama\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXinerama\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_Xinerama=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXinerama\\.$LIBEXT" | sed -e "s/^.*\(libXinerama\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_Xinerama" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_Xinerama" >&5
$as_echo "$ac_cv_lib_soname_Xinerama" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXINERAMA "$ac_cv_lib_soname_Xinerama"
_ACEOF


fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
        fi
        if test "x$ac_cv_lib_soname_Xinerama" = "x"; then :
  case "x$with_xinerama" in
  x)   as_fn_append wine_notices "|libxinerama ${notice_platform}development files not found, multi-monitor setups won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libxinerama ${notice_platform}development files not found, multi-monitor setups won't be supported.
This is an error since --with-xinerama was requested." "$LINENO" 5 ;;
esac
fi

                if test "$ac_cv_header_X11_extensions_Xcomposite_h" = "yes"
        then
            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lXcomposite" >&5
$as_echo_n "checking for -lXcomposite... " >&6; }
if test "${ac_cv_lib_soname_Xcomposite+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lXcomposite $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XCompositeRedirectWindow ();
int
main ()
{
return XCompositeRedirectWindow ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_Xcomposite=`otool -L conftest$ac_exeext | grep "libXcomposite\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXcomposite\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_Xcomposite=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXcomposite\\.$LIBEXT" | sed -e "s/^.*\(libXcomposite\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_Xcomposite" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_Xcomposite" >&5
$as_echo "$ac_cv_lib_soname_Xcomposite" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXCOMPOSITE "$ac_cv_lib_soname_Xcomposite"
_ACEOF


fi
        fi
        if test "x$ac_cv_lib_soname_Xcomposite" = "x"; then :
  case "x$with_xcomposite" in
  x)   as_fn_append wine_notices "|libxcomposite ${notice_platform}development files not found, Xcomposite won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libxcomposite ${notice_platform}development files not found, Xcomposite won't be supported.
This is an error since --with-xcomposite was requested." "$LINENO" 5 ;;
esac
fi

                ac_fn_c_check_member "$LINENO" "XICCallback" "callback" "ac_cv_member_XICCallback_callback" "#ifdef HAVE_X11_XLIB_H
#include <X11/Xlib.h>
#endif
"
if test "x$ac_cv_member_XICCallback_callback" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_XICCALLBACK_CALLBACK 1
_ACEOF


fi



        opengl_msg=""
    if test "x$with_opengl" != "xno"
    then
	for ac_header in GL/gl.h GL/glx.h GL/glu.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_GL_GLX_H
# include <GL/glx.h>
#endif
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

	if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
	then
	    	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for up-to-date OpenGL version" >&5
$as_echo_n "checking for up-to-date OpenGL version... " >&6; }
if test "${wine_cv_opengl_header_version_OK+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <GL/gl.h>
int
main ()
{
GLenum test = GL_UNSIGNED_SHORT_5_6_5;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  wine_cv_opengl_header_version_OK="yes"
else
  wine_cv_opengl_header_version_OK="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wine_cv_opengl_header_version_OK" >&5
$as_echo "$wine_cv_opengl_header_version_OK" >&6; }

	    if test "$wine_cv_opengl_header_version_OK" = "yes"
            then
				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lGL" >&5
$as_echo_n "checking for -lGL... " >&6; }
if test "${ac_cv_lib_soname_GL+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lGL $X_LIBS $XLIB -lm $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char glXCreateContext ();
int
main ()
{
return glXCreateContext ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_GL=`otool -L conftest$ac_exeext | grep "libGL\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libGL\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_GL=`$ac_cv_path_LDD conftest$ac_exeext | grep "libGL\\.$LIBEXT" | sed -e "s/^.*\(libGL\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_GL" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lGL" >&5
$as_echo_n "checking for -lGL... " >&6; }
if test "${ac_cv_lib_soname_GL+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lGL $X_LIBS $XLIB -lm $X_EXTRA_LIBS -dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char glXCreateContext ();
int
main ()
{
return glXCreateContext ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_GL=`otool -L conftest$ac_exeext | grep "libGL\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libGL\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_GL=`$ac_cv_path_LDD conftest$ac_exeext | grep "libGL\\.$LIBEXT" | sed -e "s/^.*\(libGL\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_GL" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
       if test -f /usr/X11R6/lib/libGL.a
	                            then
		                        opengl_msg="/usr/X11R6/lib/libGL.a is present on your system.
This probably prevents linking to OpenGL. Try deleting the file and restarting configure."
	                            else
	                                opengl_msg="No OpenGL library found on this system."
	                            fi
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_GL" >&5
$as_echo "$ac_cv_lib_soname_GL" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBGL "$ac_cv_lib_soname_GL"
_ACEOF

       OPENGL_LIBS="-Xlinker -dylib_file -Xlinker /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -lGL"

$as_echo "#define HAVE_OPENGL 1" >>confdefs.h

fi
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_GL" >&5
$as_echo "$ac_cv_lib_soname_GL" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBGL "$ac_cv_lib_soname_GL"
_ACEOF

       OPENGL_LIBS="-lGL"

$as_echo "#define HAVE_OPENGL 1" >>confdefs.h

fi
                 if test "$ac_cv_header_GL_glu_h" = "yes"
                 then
                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lGLU" >&5
$as_echo_n "checking for -lGLU... " >&6; }
if test "${ac_cv_lib_soname_GLU+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lGLU $OPENGL_LIBS $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gluLookAt ();
int
main ()
{
return gluLookAt ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_GLU=`otool -L conftest$ac_exeext | grep "libGLU\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libGLU\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_GLU=`$ac_cv_path_LDD conftest$ac_exeext | grep "libGLU\\.$LIBEXT" | sed -e "s/^.*\(libGLU\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_GLU" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_GLU" >&5
$as_echo "$ac_cv_lib_soname_GLU" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBGLU "$ac_cv_lib_soname_GLU"
_ACEOF


fi
                 fi
                 if test "x$ac_cv_lib_soname_GLU" = "x"; then :
  case "x$with_glu" in
  x)   as_fn_append wine_notices "|libGLU ${notice_platform}development files not found, GLU won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libGLU ${notice_platform}development files not found, GLU won't be supported.
This is an error since --with-glu was requested." "$LINENO" 5 ;;
esac
fi
             else
                 opengl_msg="Old Mesa headers detected. Consider upgrading your Mesa libraries."
	     fi
         else
             opengl_msg="OpenGL development headers not found."
	 fi
         test -n "$opengl_msg" && enable_opengl32=${enable_opengl32:-no}
         test "x$ac_cv_lib_soname_GLU" = "x" && enable_glu32=${enable_glu32:-no}
    else
         enable_opengl32=${enable_opengl32:-no}
         enable_glu32=${enable_glu32:-no}
    fi
    if test -n "$opengl_msg"; then :
  case "x$with_opengl" in
  x)   as_fn_append wine_warnings "|$opengl_msg
OpenGL and Direct3D won't be supported." ;;
  xno) ;;
  *)   as_fn_error "$opengl_msg
OpenGL and Direct3D won't be supported.
This is an error since --with-opengl was requested." "$LINENO" 5 ;;
esac
fi

        NASLIBS=""

    for ac_header in audio/audiolib.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "audio/audiolib.h" "ac_cv_header_audio_audiolib_h" "$ac_includes_default"
if test "x$ac_cv_header_audio_audiolib_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_AUDIO_AUDIOLIB_H 1
_ACEOF
 for ac_header in audio/soundlib.h
do :
  ac_fn_c_check_header_compile "$LINENO" "audio/soundlib.h" "ac_cv_header_audio_soundlib_h" "#include <audio/audiolib.h>
"
if test "x$ac_cv_header_audio_soundlib_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_AUDIO_SOUNDLIB_H 1
_ACEOF

fi

done

          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AuCreateFlow in -laudio" >&5
$as_echo_n "checking for AuCreateFlow in -laudio... " >&6; }
if test "${ac_cv_lib_audio_AuCreateFlow+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-laudio -lXt $X_LIBS $XLIB $X_EXTRA_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char AuCreateFlow ();
int
main ()
{
return AuCreateFlow ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_audio_AuCreateFlow=yes
else
  ac_cv_lib_audio_AuCreateFlow=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audio_AuCreateFlow" >&5
$as_echo "$ac_cv_lib_audio_AuCreateFlow" >&6; }
if test "x$ac_cv_lib_audio_AuCreateFlow" = x""yes; then :

$as_echo "#define HAVE_NAS 1" >>confdefs.h

                        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XauGetBestAuthByAddr in -lXau" >&5
$as_echo_n "checking for XauGetBestAuthByAddr in -lXau... " >&6; }
if test "${ac_cv_lib_Xau_XauGetBestAuthByAddr+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lXau $X_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char XauGetBestAuthByAddr ();
int
main ()
{
return XauGetBestAuthByAddr ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_Xau_XauGetBestAuthByAddr=yes
else
  ac_cv_lib_Xau_XauGetBestAuthByAddr=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xau_XauGetBestAuthByAddr" >&5
$as_echo "$ac_cv_lib_Xau_XauGetBestAuthByAddr" >&6; }
if test "x$ac_cv_lib_Xau_XauGetBestAuthByAddr" = x""yes; then :
  NASLIBS="-lXau -laudio -lXt $X_LIBS $XLIB $X_EXTRA_LIBS"
else
  NASLIBS="-laudio -lXt $X_LIBS $XLIB $X_EXTRA_LIBS"
fi


fi

fi

done


    CPPFLAGS="$ac_save_CPPFLAGS"
else
    XLIB=""
    X_CFLAGS=""
    X_LIBS=""
    enable_winex11_drv=${enable_winex11_drv:-no}
    enable_opengl32=${enable_opengl32:-no}
    enable_glu32=${enable_glu32:-no}
fi
if test "x$XLIB" = "x"; then :
  case "x$with_x" in
  xno) ;;
  *)   as_fn_error "X ${notice_platform}development files not found. Wine will be built
without X support, which probably isn't what you want. You will need to install
${notice_platform}development packages of Xlib/Xfree86 at the very least.
Use the --without-x option if you really want this." "$LINENO" 5 ;;
esac
fi


XML2LIBS=""

XML2INCL=""

XSLTINCL=""

if test "x$with_xml" != "xno"
then
    ac_save_CPPFLAGS="$CPPFLAGS"
    if test "$PKG_CONFIG" != "false"
    then
        ac_xml_libs="`$PKG_CONFIG --libs libxml-2.0 2>/dev/null`"
        ac_xml_cflags="`$PKG_CONFIG --cflags libxml-2.0 2>/dev/null`"
    else
        ac_xml_libs="`xml2-config --libs 2>/dev/null`"
        ac_xml_cflags="`xml2-config --cflags  2>/dev/null`"
    fi
    CPPFLAGS="$CPPFLAGS $ac_xml_cflags"
    for ac_header in libxml/parser.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default"
if test "x$ac_cv_header_libxml_parser_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBXML_PARSER_H 1
_ACEOF
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlParseMemory in -lxml2" >&5
$as_echo_n "checking for xmlParseMemory in -lxml2... " >&6; }
if test "${ac_cv_lib_xml2_xmlParseMemory+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lxml2 $ac_xml_libs $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char xmlParseMemory ();
int
main ()
{
return xmlParseMemory ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_xml2_xmlParseMemory=yes
else
  ac_cv_lib_xml2_xmlParseMemory=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_xmlParseMemory" >&5
$as_echo "$ac_cv_lib_xml2_xmlParseMemory" >&6; }
if test "x$ac_cv_lib_xml2_xmlParseMemory" = x""yes; then :

$as_echo "#define HAVE_LIBXML2 1" >>confdefs.h

                 XML2LIBS="$ac_xml_libs"
                 XML2INCL="$ac_xml_cflags"
fi

             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlReadMemory in -lxml2" >&5
$as_echo_n "checking for xmlReadMemory in -lxml2... " >&6; }
if test "${ac_cv_lib_xml2_xmlReadMemory+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lxml2 $ac_xml_libs $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char xmlReadMemory ();
int
main ()
{
return xmlReadMemory ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_xml2_xmlReadMemory=yes
else
  ac_cv_lib_xml2_xmlReadMemory=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_xmlReadMemory" >&5
$as_echo "$ac_cv_lib_xml2_xmlReadMemory" >&6; }
if test "x$ac_cv_lib_xml2_xmlReadMemory" = x""yes; then :

$as_echo "#define HAVE_XMLREADMEMORY 1" >>confdefs.h

fi

             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlNewDocPI in -lxml2" >&5
$as_echo_n "checking for xmlNewDocPI in -lxml2... " >&6; }
if test "${ac_cv_lib_xml2_xmlNewDocPI+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lxml2 $ac_xml_libs $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char xmlNewDocPI ();
int
main ()
{
return xmlNewDocPI ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_xml2_xmlNewDocPI=yes
else
  ac_cv_lib_xml2_xmlNewDocPI=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_xmlNewDocPI" >&5
$as_echo "$ac_cv_lib_xml2_xmlNewDocPI" >&6; }
if test "x$ac_cv_lib_xml2_xmlNewDocPI" = x""yes; then :

$as_echo "#define HAVE_XMLNEWDOCPI 1" >>confdefs.h

fi


fi

done

    CPPFLAGS="$ac_save_CPPFLAGS"
fi
if test "$ac_cv_lib_xml2_xmlParseMemory" != "yes"; then :
  case "x$with_xml" in
  x)   as_fn_append wine_warnings "|libxml2 ${notice_platform}development files not found, XML won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libxml2 ${notice_platform}development files not found, XML won't be supported.
This is an error since --with-xml was requested." "$LINENO" 5 ;;
esac
fi

if test "x$with_xslt" != "xno"
then
    if test "$PKG_CONFIG" != "false"
    then
        ac_xslt_libs="`$PKG_CONFIG --libs libxslt 2>/dev/null`"
        ac_xslt_cflags="`$PKG_CONFIG --cflags libxslt 2>/dev/null`"
    else
        ac_xslt_libs="`xslt-config --libs 2>/dev/null`"
        ac_xslt_cflags="`xslt-config --cflags 2>/dev/null`"
    fi
    ac_save_CPPFLAGS="$CPPFLAGS"
    CPPFLAGS="$CPPFLAGS $ac_xslt_cflags"
    for ac_header in libxslt/pattern.h libxslt/transform.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_LIBXSLT_PATTERN_H
# include <libxslt/pattern.h>
#endif
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

    CPPFLAGS="$ac_save_CPPFLAGS"
    if test "$ac_cv_header_libxslt_transform_h" = "yes"
    then
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lxslt" >&5
$as_echo_n "checking for -lxslt... " >&6; }
if test "${ac_cv_lib_soname_xslt+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lxslt $ac_xslt_libs $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char xsltCompilePattern ();
int
main ()
{
return xsltCompilePattern ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_xslt=`otool -L conftest$ac_exeext | grep "libxslt\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libxslt\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_xslt=`$ac_cv_path_LDD conftest$ac_exeext | grep "libxslt\\.$LIBEXT" | sed -e "s/^.*\(libxslt\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_xslt" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_xslt" >&5
$as_echo "$ac_cv_lib_soname_xslt" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBXSLT "$ac_cv_lib_soname_xslt"
_ACEOF

       XSLTINCL="$ac_xslt_cflags"
fi
    fi
fi
if test "x$ac_cv_lib_soname_xslt" = "x"; then :
  case "x$with_xslt" in
  x)   as_fn_append wine_warnings "|libxslt ${notice_platform}development files not found, xslt won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libxslt ${notice_platform}development files not found, xslt won't be supported.
This is an error since --with-xslt was requested." "$LINENO" 5 ;;
esac
fi

HALINCL=""

if test "x$with_hal" != "xno"
then
    ac_save_CPPFLAGS="$CPPFLAGS"
    if test "$PKG_CONFIG" != "false"
    then
        ac_hal_libs="`$PKG_CONFIG --libs hal 2>/dev/null`"
        ac_hal_cflags="`$PKG_CONFIG --cflags hal 2>/dev/null`"
        CPPFLAGS="$CPPFLAGS $ac_hal_cflags"
    fi
    for ac_header in dbus/dbus.h hal/libhal.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

    if test "$ac_cv_header_dbus_dbus_h" = "yes" -a "$ac_cv_header_hal_libhal_h" = "yes"
    then
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbus_connection_close in -ldbus-1" >&5
$as_echo_n "checking for dbus_connection_close in -ldbus-1... " >&6; }
if test "${ac_cv_lib_dbus_1_dbus_connection_close+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldbus-1 $ac_hal_libs $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char dbus_connection_close ();
int
main ()
{
return dbus_connection_close ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dbus_1_dbus_connection_close=yes
else
  ac_cv_lib_dbus_1_dbus_connection_close=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dbus_1_dbus_connection_close" >&5
$as_echo "$ac_cv_lib_dbus_1_dbus_connection_close" >&6; }
if test "x$ac_cv_lib_dbus_1_dbus_connection_close" = x""yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lhal" >&5
$as_echo_n "checking for -lhal... " >&6; }
if test "${ac_cv_lib_soname_hal+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lhal $ac_hal_libs $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char libhal_ctx_new ();
int
main ()
{
return libhal_ctx_new ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_hal=`otool -L conftest$ac_exeext | grep "libhal\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libhal\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_hal=`$ac_cv_path_LDD conftest$ac_exeext | grep "libhal\\.$LIBEXT" | sed -e "s/^.*\(libhal\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_hal" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_hal" >&5
$as_echo "$ac_cv_lib_soname_hal" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBHAL "$ac_cv_lib_soname_hal"
_ACEOF

       HALINCL="$ac_hal_cflags"
fi
fi

    fi
    CPPFLAGS="$ac_save_CPPFLAGS"
fi
if test "x$ac_cv_lib_soname_hal" = "x"; then :
  case "x$with_hal" in
  x)   as_fn_append wine_notices "|libhal/libdbus ${notice_platform}development files not found, no dynamic device support." ;;
  xno) ;;
  *)   as_fn_error "libhal/libdbus ${notice_platform}development files not found, no dynamic device support.
This is an error since --with-hal was requested." "$LINENO" 5 ;;
esac
fi

if test "x$with_gnutls" != "xno"
then
    ac_save_CPPFLAGS="$CPPFLAGS"
    if test "$PKG_CONFIG" != "false"
    then
        ac_gnutls_libs="`$PKG_CONFIG --libs gnutls 2>/dev/null`"
        ac_gnutls_cflags="`$PKG_CONFIG --cflags gnutls 2>/dev/null`"
        CPPFLAGS="$CPPFLAGS $ac_gnutls_cflags"
    fi
    ac_fn_c_check_header_mongrel "$LINENO" "gnutls/gnutls.h" "ac_cv_header_gnutls_gnutls_h" "$ac_includes_default"
if test "x$ac_cv_header_gnutls_gnutls_h" = x""yes; then :
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <gnutls/gnutls.h>
int
main ()
{
typeof(gnutls_mac_get_key_size) *pfunc;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lgnutls" >&5
$as_echo_n "checking for -lgnutls... " >&6; }
if test "${ac_cv_lib_soname_gnutls+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lgnutls $ac_gnutls_libs $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gnutls_global_init ();
int
main ()
{
return gnutls_global_init ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_gnutls=`otool -L conftest$ac_exeext | grep "libgnutls\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libgnutls\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_gnutls=`$ac_cv_path_LDD conftest$ac_exeext | grep "libgnutls\\.$LIBEXT" | sed -e "s/^.*\(libgnutls\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_gnutls" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_gnutls" >&5
$as_echo "$ac_cv_lib_soname_gnutls" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBGNUTLS "$ac_cv_lib_soname_gnutls"
_ACEOF

       GNUTLSINCL="$ac_gnutls_cflags"

fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi


    CPPFLAGS="$ac_save_CPPFLAGS"
fi
if test "x$ac_cv_lib_soname_gnutls" = "x"; then :
  case "x$with_gnutls" in
  x)   as_fn_append wine_notices "|libgnutls ${notice_platform}development files not found, no schannel support." ;;
  xno) ;;
  *)   as_fn_error "libgnutls ${notice_platform}development files not found, no schannel support.
This is an error since --with-gnutls was requested." "$LINENO" 5 ;;
esac
fi

CURSESLIBS=""
if test "$ac_cv_header_ncurses_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lncurses" >&5
$as_echo_n "checking for -lncurses... " >&6; }
if test "${ac_cv_lib_soname_ncurses+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lncurses  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char waddch ();
int
main ()
{
return waddch ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_ncurses=`otool -L conftest$ac_exeext | grep "libncurses\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libncurses\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_ncurses=`$ac_cv_path_LDD conftest$ac_exeext | grep "libncurses\\.$LIBEXT" | sed -e "s/^.*\(libncurses\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_ncurses" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_ncurses" >&5
$as_echo "$ac_cv_lib_soname_ncurses" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBNCURSES "$ac_cv_lib_soname_ncurses"
_ACEOF

       CURSESLIBS="-lncurses"
fi
elif test "$ac_cv_header_curses_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lcurses" >&5
$as_echo_n "checking for -lcurses... " >&6; }
if test "${ac_cv_lib_soname_curses+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lcurses  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char waddch ();
int
main ()
{
return waddch ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_curses=`otool -L conftest$ac_exeext | grep "libcurses\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libcurses\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_curses=`$ac_cv_path_LDD conftest$ac_exeext | grep "libcurses\\.$LIBEXT" | sed -e "s/^.*\(libcurses\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_curses" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_curses" >&5
$as_echo "$ac_cv_lib_soname_curses" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBCURSES "$ac_cv_lib_soname_curses"
_ACEOF

       CURSESLIBS="-lcurses"
fi
fi
ac_save_LIBS="$LIBS"
LIBS="$LIBS $CURSESLIBS"
for ac_func in mousemask
do :
  ac_fn_c_check_func "$LINENO" "mousemask" "ac_cv_func_mousemask"
if test "x$ac_cv_func_mousemask" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_MOUSEMASK 1
_ACEOF

fi
done

LIBS="$ac_save_LIBS"
if test "x$ac_cv_lib_soname_curses$ac_cv_lib_soname_ncurses" = "x"; then :
  case "x$with_curses" in
  x)   as_fn_append wine_notices "|lib(n)curses ${notice_platform}development files not found, curses won't be supported." ;;
  xno) ;;
  *)   as_fn_error "lib(n)curses ${notice_platform}development files not found, curses won't be supported.
This is an error since --with-curses was requested." "$LINENO" 5 ;;
esac
fi

if test "x$with_sane" != "xno"
then
    ac_save_CPPFLAGS="$CPPFLAGS"
    # Extract the first word of "sane-config", so it can be a program name with args.
set dummy sane-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_sane_devel+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$sane_devel"; then
  ac_cv_prog_sane_devel="$sane_devel" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_sane_devel="sane-config"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_prog_sane_devel" && ac_cv_prog_sane_devel="no"
fi
fi
sane_devel=$ac_cv_prog_sane_devel
if test -n "$sane_devel"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $sane_devel" >&5
$as_echo "$sane_devel" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    if test "$sane_devel" != "no"
    then
        ac_sane_incl="`$sane_devel --cflags`"
        ac_sane_libs="`$sane_devel --ldflags`"
        CPPFLAGS="$CPPFLAGS $ac_sane_incl"
    fi
    ac_fn_c_check_header_mongrel "$LINENO" "sane/sane.h" "ac_cv_header_sane_sane_h" "$ac_includes_default"
if test "x$ac_cv_header_sane_sane_h" = x""yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lsane" >&5
$as_echo_n "checking for -lsane... " >&6; }
if test "${ac_cv_lib_soname_sane+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lsane $ac_sane_libs $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char sane_init ();
int
main ()
{
return sane_init ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_sane=`otool -L conftest$ac_exeext | grep "libsane\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libsane\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_sane=`$ac_cv_path_LDD conftest$ac_exeext | grep "libsane\\.$LIBEXT" | sed -e "s/^.*\(libsane\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_sane" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_sane" >&5
$as_echo "$ac_cv_lib_soname_sane" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBSANE "$ac_cv_lib_soname_sane"
_ACEOF

       SANEINCL="$ac_sane_incl"

fi
fi


    CPPFLAGS="$ac_save_CPPFLAGS"
fi
if test "x$ac_cv_lib_soname_sane" = "x"; then :
  case "x$with_sane" in
  x)   as_fn_append wine_notices "|libsane ${notice_platform}development files not found, scanners won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libsane ${notice_platform}development files not found, scanners won't be supported.
This is an error since --with-sane was requested." "$LINENO" 5 ;;
esac
fi

if test "x$with_v4l" != "xno"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lv4l1" >&5
$as_echo_n "checking for -lv4l1... " >&6; }
if test "${ac_cv_lib_soname_v4l1+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lv4l1  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char v4l1_open ();
int
main ()
{
return v4l1_open ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_v4l1=`otool -L conftest$ac_exeext | grep "libv4l1\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libv4l1\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_v4l1=`$ac_cv_path_LDD conftest$ac_exeext | grep "libv4l1\\.$LIBEXT" | sed -e "s/^.*\(libv4l1\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_v4l1" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_v4l1" >&5
$as_echo "$ac_cv_lib_soname_v4l1" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBV4L1 "$ac_cv_lib_soname_v4l1"
_ACEOF


fi
fi
if test "x$ac_cv_lib_soname_v4l1" = "x"; then :
  case "x$with_v4l" in
  x)   as_fn_append wine_notices "|libv4l ${notice_platform}development files not found." ;;
  xno) ;;
  *)   as_fn_error "libv4l ${notice_platform}development files not found.
This is an error since --with-v4l was requested." "$LINENO" 5 ;;
esac
fi

if test "x$with_gphoto" != "xno"
then
    ac_save_CPPFLAGS="$CPPFLAGS"
    # Extract the first word of "gphoto2-config", so it can be a program name with args.
set dummy gphoto2-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_gphoto2_devel+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$gphoto2_devel"; then
  ac_cv_prog_gphoto2_devel="$gphoto2_devel" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_gphoto2_devel="gphoto2-config"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_prog_gphoto2_devel" && ac_cv_prog_gphoto2_devel="no"
fi
fi
gphoto2_devel=$ac_cv_prog_gphoto2_devel
if test -n "$gphoto2_devel"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gphoto2_devel" >&5
$as_echo "$gphoto2_devel" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    # Extract the first word of "gphoto2-port-config", so it can be a program name with args.
set dummy gphoto2-port-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_gphoto2port_devel+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$gphoto2port_devel"; then
  ac_cv_prog_gphoto2port_devel="$gphoto2port_devel" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_gphoto2port_devel="gphoto2-port-config"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_prog_gphoto2port_devel" && ac_cv_prog_gphoto2port_devel="no"
fi
fi
gphoto2port_devel=$ac_cv_prog_gphoto2port_devel
if test -n "$gphoto2port_devel"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gphoto2port_devel" >&5
$as_echo "$gphoto2port_devel" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    if test "$gphoto2_devel" != "no" -a "$gphoto2port_devel" != "no"
    then
        ac_gphoto2_incl="`$gphoto2_devel --cflags` `$gphoto2port_devel --cflags`"
        ac_gphoto2_libs=""
        for i in `$gphoto2_devel --libs` `$gphoto2port_devel --libs`
        do
            case "$i" in
            -L/usr/lib|-L/usr/lib64) ;;
            -L*|-l*) ac_gphoto2_libs="$ac_gphoto2_libs $i";;
            esac
        done
        CPPFLAGS="$CPPFLAGS $ac_gphoto2_incl"
    fi
    ac_gphoto2_libs=${ac_gphoto2_libs:-"-lgphoto2"}
    ac_fn_c_check_header_mongrel "$LINENO" "gphoto2-camera.h" "ac_cv_header_gphoto2_camera_h" "$ac_includes_default"
if test "x$ac_cv_header_gphoto2_camera_h" = x""yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gp_camera_new in -lgphoto2" >&5
$as_echo_n "checking for gp_camera_new in -lgphoto2... " >&6; }
if test "${ac_cv_lib_gphoto2_gp_camera_new+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lgphoto2 $ac_gphoto2_libs $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gp_camera_new ();
int
main ()
{
return gp_camera_new ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_gphoto2_gp_camera_new=yes
else
  ac_cv_lib_gphoto2_gp_camera_new=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gphoto2_gp_camera_new" >&5
$as_echo "$ac_cv_lib_gphoto2_gp_camera_new" >&6; }
if test "x$ac_cv_lib_gphoto2_gp_camera_new" = x""yes; then :

$as_echo "#define HAVE_GPHOTO2 1" >>confdefs.h

                                   GPHOTO2LIBS="$ac_gphoto2_libs"

                                   GPHOTO2INCL="$ac_gphoto2_incl"

fi

fi


    CPPFLAGS="$ac_save_CPPFLAGS"
fi
if test "$ac_cv_lib_gphoto2_gp_camera_new" != "yes"; then :
  case "x$with_gphoto" in
  x)   as_fn_append wine_notices "|libgphoto2 ${notice_platform}development files not found, digital cameras won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libgphoto2 ${notice_platform}development files not found, digital cameras won't be supported.
This is an error since --with-gphoto was requested." "$LINENO" 5 ;;
esac
fi


RESOLVLIBS=""

if test "$ac_cv_header_resolv_h" = "yes"
then
    ac_save_LIBS="$LIBS"
    LIBS="$LIBS -lresolv"
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#include <resolv.h>
int
main ()
{
res_init();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

$as_echo "#define HAVE_RESOLV 1" >>confdefs.h

         RESOLVLIBS="-lresolv"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
    LIBS="$ac_save_LIBS"
fi

LCMSLIBS=""

if test "$ac_cv_header_lcms_h" = "yes" -o "$ac_cv_header_lcms_lcms_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cmsOpenProfileFromFile in -llcms" >&5
$as_echo_n "checking for cmsOpenProfileFromFile in -llcms... " >&6; }
if test "${ac_cv_lib_lcms_cmsOpenProfileFromFile+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-llcms  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char cmsOpenProfileFromFile ();
int
main ()
{
return cmsOpenProfileFromFile ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_lcms_cmsOpenProfileFromFile=yes
else
  ac_cv_lib_lcms_cmsOpenProfileFromFile=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lcms_cmsOpenProfileFromFile" >&5
$as_echo "$ac_cv_lib_lcms_cmsOpenProfileFromFile" >&6; }
if test "x$ac_cv_lib_lcms_cmsOpenProfileFromFile" = x""yes; then :

$as_echo "#define HAVE_LCMS 1" >>confdefs.h

         LCMSLIBS="-llcms"
fi

fi
if test "$ac_cv_lib_lcms_cmsOpenProfileFromFile" != "yes"; then :
  case "x$with_cms" in
  x)   as_fn_append wine_notices "|liblcms ${notice_platform}development files not found, Color Management won't be supported." ;;
  xno) ;;
  *)   as_fn_error "liblcms ${notice_platform}development files not found, Color Management won't be supported.
This is an error since --with-cms was requested." "$LINENO" 5 ;;
esac
fi

if test "x$with_freetype" != "xno"
then
    for ac_prog in freetype-config freetype2-config
do
  # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ft_devel+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ft_devel"; then
  ac_cv_prog_ft_devel="$ft_devel" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_prog_ft_devel="$ac_prog"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

fi
fi
ft_devel=$ac_cv_prog_ft_devel
if test -n "$ft_devel"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ft_devel" >&5
$as_echo "$ft_devel" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$ft_devel" && break
done
test -n "$ft_devel" || ft_devel="no"

    if test "$ft_devel" != "no"
    then
        ac_freetype_incl=`$ft_devel --cflags`
        ac_freetype_libs=`$ft_devel --libs`
    fi
    ac_freetype_libs=${ac_freetype_libs:-"-lfreetype"}
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfreetype" >&5
$as_echo_n "checking for -lfreetype... " >&6; }
if test "${ac_cv_lib_soname_freetype+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lfreetype $ac_freetype_libs $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char FT_Init_FreeType ();
int
main ()
{
return FT_Init_FreeType ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_freetype=`otool -L conftest$ac_exeext | grep "libfreetype\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libfreetype\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_freetype=`$ac_cv_path_LDD conftest$ac_exeext | grep "libfreetype\\.$LIBEXT" | sed -e "s/^.*\(libfreetype\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_freetype" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
       ft_lib=no
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_freetype" >&5
$as_echo "$ac_cv_lib_soname_freetype" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBFREETYPE "$ac_cv_lib_soname_freetype"
_ACEOF

       ft_lib=yes
fi
    if test "$ft_lib" = "yes"
    then
	ac_save_CPPFLAGS="$CPPFLAGS"
	CPPFLAGS="$ac_freetype_incl $CPPFLAGS"
	for ac_header in ft2build.h \
                         freetype/freetype.h \
                         freetype/ftglyph.h \
                         freetype/fttypes.h \
                         freetype/tttables.h \
                         freetype/ftsnames.h \
                         freetype/ttnameid.h \
                         freetype/ftoutln.h \
                         freetype/ftwinfnt.h \
                         freetype/ftmodapi.h \
                         freetype/ftlcdfil.h \
                         freetype/internal/sfnt.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_FT2BUILD_H
                          # include <ft2build.h>
                          #endif
"
eval as_val=\$$as_ac_Header
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <ft2build.h>
                    #include <freetype/fttrigon.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :

$as_echo "#define HAVE_FREETYPE_FTTRIGON_H 1" >>confdefs.h

                    wine_cv_fttrigon=yes
else
  wine_cv_fttrigon=no
fi
rm -f conftest.err conftest.$ac_ext
        ac_fn_c_check_type "$LINENO" "FT_TrueTypeEngineType" "ac_cv_type_FT_TrueTypeEngineType" "#include <freetype/ftmodapi.h>
"
if test "x$ac_cv_type_FT_TrueTypeEngineType" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_FT_TRUETYPEENGINETYPE 1
_ACEOF


fi

        ac_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS $ac_freetype_libs"
        for ac_func in FT_Load_Sfnt_Table
do :
  ac_fn_c_check_func "$LINENO" "FT_Load_Sfnt_Table" "ac_cv_func_FT_Load_Sfnt_Table"
if test "x$ac_cv_func_FT_Load_Sfnt_Table" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_FT_LOAD_SFNT_TABLE 1
_ACEOF

fi
done

        CFLAGS="$ac_save_CFLAGS"
	CPPFLAGS="$ac_save_CPPFLAGS"
		if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
	then

$as_echo "#define HAVE_FREETYPE 1" >>confdefs.h

            FREETYPELIBS="$ac_freetype_libs"

            FREETYPEINCL="$ac_freetype_incl"

	fi
    fi
fi
if test "x$FREETYPELIBS" = "x"; then :
  case "x$with_freetype" in
  xno) ;;
  *)   as_fn_error "FreeType ${notice_platform}development files not found. Fonts will not be built.
Use the --without-freetype option if you really want this." "$LINENO" 5 ;;
esac
fi
test "x$FREETYPELIBS" = "x" && enable_fonts=${enable_fonts:-no}

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for parport header/ppdev.h" >&5
$as_echo_n "checking for parport header/ppdev.h... " >&6; }
if test "${ac_cv_c_ppdev+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <linux/ppdev.h>
int
main ()
{
ioctl (1,PPCLAIM,0)
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_ppdev="yes"
else
  ac_cv_c_ppdev="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_ppdev" >&5
$as_echo "$ac_cv_c_ppdev" >&6; }
if test "$ac_cv_c_ppdev" = "yes"
then

$as_echo "#define HAVE_PPDEV 1" >>confdefs.h

fi

ac_wine_check_funcs_save_LIBS="$LIBS"
LIBS="$LIBS $LIBPTHREAD"
for ac_func in \
        pthread_attr_get_np \
        pthread_getattr_np \
        pthread_get_stackaddr_np \
        pthread_get_stacksize_np
do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
eval as_val=\$$as_ac_var
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

LIBS="$ac_wine_check_funcs_save_LIBS"

if test "$ac_cv_header_zlib_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5
$as_echo_n "checking for inflate in -lz... " >&6; }
if test "${ac_cv_lib_z_inflate+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lz  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char inflate ();
int
main ()
{
return inflate ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_z_inflate=yes
else
  ac_cv_lib_z_inflate=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflate" >&5
$as_echo "$ac_cv_lib_z_inflate" >&6; }
if test "x$ac_cv_lib_z_inflate" = x""yes; then :

$as_echo "#define HAVE_ZLIB 1" >>confdefs.h

                            ZLIB="-lz"

fi

fi

if test "x$with_esd" != xno
then
    save_CFLAGS="$CFLAGS"
    # Extract the first word of "esd-config", so it can be a program name with args.
set dummy esd-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_ESDCONFIG+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  case $ESDCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_ESDCONFIG="$ESDCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
    ac_cv_path_ESDCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  test -z "$ac_cv_path_ESDCONFIG" && ac_cv_path_ESDCONFIG="no"
  ;;
esac
fi
ESDCONFIG=$ac_cv_path_ESDCONFIG
if test -n "$ESDCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ESDCONFIG" >&5
$as_echo "$ESDCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    if test "x$ESDCONFIG" != "xno"
    then
        ac_esd_incl=""
        for i in `$ESDCONFIG --cflags`
        do
            case "$i" in
                -I*) ac_esd_incl="$ac_esd_incl $i";;
            esac
        done
        ac_esd_libs=`$ESDCONFIG --libs`
        CFLAGS="$CFLAGS $ac_esd_incl"
    fi
    ac_esd_libs=${ac_esd_libs:-"-lesd"}
    ac_fn_c_check_header_mongrel "$LINENO" "esd.h" "ac_cv_header_esd_h" "$ac_includes_default"
if test "x$ac_cv_header_esd_h" = x""yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for esd_open_sound in -lesd" >&5
$as_echo_n "checking for esd_open_sound in -lesd... " >&6; }
if test "${ac_cv_lib_esd_esd_open_sound+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lesd $ac_esd_libs $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char esd_open_sound ();
int
main ()
{
return esd_open_sound ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_esd_esd_open_sound=yes
else
  ac_cv_lib_esd_esd_open_sound=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_esd_esd_open_sound" >&5
$as_echo "$ac_cv_lib_esd_esd_open_sound" >&6; }
if test "x$ac_cv_lib_esd_esd_open_sound" = x""yes; then :
  ESDINCL="$ac_esd_incl"

             ESDLIBS="$ac_esd_libs"


$as_echo "#define HAVE_ESD 1" >>confdefs.h

fi

fi


    CFLAGS="$save_CFLAGS"
fi

ALSALIBS=""

if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_pcm_hw_params_get_access in -lasound" >&5
$as_echo_n "checking for snd_pcm_hw_params_get_access in -lasound... " >&6; }
if test "${ac_cv_lib_asound_snd_pcm_hw_params_get_access+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lasound  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char snd_pcm_hw_params_get_access ();
int
main ()
{
return snd_pcm_hw_params_get_access ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_asound_snd_pcm_hw_params_get_access=yes
else
  ac_cv_lib_asound_snd_pcm_hw_params_get_access=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_pcm_hw_params_get_access" >&5
$as_echo "$ac_cv_lib_asound_snd_pcm_hw_params_get_access" >&6; }
if test "x$ac_cv_lib_asound_snd_pcm_hw_params_get_access" = x""yes; then :
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifdef HAVE_ALSA_ASOUNDLIB_H
#include <alsa/asoundlib.h>
#elif defined(HAVE_SYS_ASOUNDLIB_H)
#include <sys/asoundlib.h>
#endif
int
main ()
{
int ret = snd_pcm_hw_params_get_access(NULL, NULL)
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_ALSA 1" >>confdefs.h

                         ALSALIBS="-lasound"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi

fi

AUDIOIOLIBS=""

if test "$ac_cv_header_libaudioio_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AudioIOGetVersion in -laudioio" >&5
$as_echo_n "checking for AudioIOGetVersion in -laudioio... " >&6; }
if test "${ac_cv_lib_audioio_AudioIOGetVersion+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-laudioio  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char AudioIOGetVersion ();
int
main ()
{
return AudioIOGetVersion ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_audioio_AudioIOGetVersion=yes
else
  ac_cv_lib_audioio_AudioIOGetVersion=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audioio_AudioIOGetVersion" >&5
$as_echo "$ac_cv_lib_audioio_AudioIOGetVersion" >&6; }
if test "x$ac_cv_lib_audioio_AudioIOGetVersion" = x""yes; then :
  AUDIOIOLIBS="-laudioio"

$as_echo "#define HAVE_LIBAUDIOIO 1" >>confdefs.h

fi

fi


if test "$ac_cv_header_capi20_h" = "yes" -a "$ac_cv_header_linux_capi_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lcapi20" >&5
$as_echo_n "checking for -lcapi20... " >&6; }
if test "${ac_cv_lib_soname_capi20+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lcapi20  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char capi20_register ();
int
main ()
{
return capi20_register ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_capi20=`otool -L conftest$ac_exeext | grep "libcapi20\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libcapi20\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_capi20=`$ac_cv_path_LDD conftest$ac_exeext | grep "libcapi20\\.$LIBEXT" | sed -e "s/^.*\(libcapi20\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_capi20" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_capi20" >&5
$as_echo "$ac_cv_lib_soname_capi20" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBCAPI20 "$ac_cv_lib_soname_capi20"
_ACEOF


fi
fi
if test "x$ac_cv_lib_soname_capi20" = "x"; then :
  case "x$with_capi" in
  x)   as_fn_append wine_notices "|libcapi20 ${notice_platform}development files not found, ISDN won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libcapi20 ${notice_platform}development files not found, ISDN won't be supported.
This is an error since --with-capi was requested." "$LINENO" 5 ;;
esac
fi

CUPSINCL=""

if test "x$with_cups" != "xno"
then
    ac_save_CPPFLAGS="$CPPFLAGS"
    ac_cups_cflags=`cups-config --cflags 2>/dev/null`
    ac_cups_libs=`cups-config --ldflags 2>/dev/null`
    CPPFLAGS="$CPPFLAGS $ac_cups_cflags"
    for ac_header in cups/cups.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "cups/cups.h" "ac_cv_header_cups_cups_h" "$ac_includes_default"
if test "x$ac_cv_header_cups_cups_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_CUPS_CUPS_H 1
_ACEOF
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lcups" >&5
$as_echo_n "checking for -lcups... " >&6; }
if test "${ac_cv_lib_soname_cups+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lcups $ac_cups_libs $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char cupsGetDefault ();
int
main ()
{
return cupsGetDefault ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_cups=`otool -L conftest$ac_exeext | grep "libcups\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libcups\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_cups=`$ac_cv_path_LDD conftest$ac_exeext | grep "libcups\\.$LIBEXT" | sed -e "s/^.*\(libcups\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_cups" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_cups" >&5
$as_echo "$ac_cv_lib_soname_cups" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBCUPS "$ac_cv_lib_soname_cups"
_ACEOF

       CUPSINCL="$ac_cups_cflags"
fi
fi

done

    CPPFLAGS="$ac_save_CPPFLAGS"
fi
if test "x$ac_cv_lib_soname_cups" = "x"; then :
  case "x$with_cups" in
  x)   as_fn_append wine_notices "|libcups ${notice_platform}development files not found, CUPS won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libcups ${notice_platform}development files not found, CUPS won't be supported.
This is an error since --with-cups was requested." "$LINENO" 5 ;;
esac
fi

if test "$ac_cv_header_jack_jack_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -ljack" >&5
$as_echo_n "checking for -ljack... " >&6; }
if test "${ac_cv_lib_soname_jack+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-ljack  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char jack_client_new ();
int
main ()
{
return jack_client_new ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_jack=`otool -L conftest$ac_exeext | grep "libjack-*[0-9.]*\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libjack-*[0-9.]*\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_jack=`$ac_cv_path_LDD conftest$ac_exeext | grep "libjack-*[0-9.]*\\.$LIBEXT" | sed -e "s/^.*\(libjack-*[0-9.]*\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_jack" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_jack" >&5
$as_echo "$ac_cv_lib_soname_jack" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBJACK "$ac_cv_lib_soname_jack"
_ACEOF


fi
fi

if test "$ac_cv_header_fontconfig_fontconfig_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfontconfig" >&5
$as_echo_n "checking for -lfontconfig... " >&6; }
if test "${ac_cv_lib_soname_fontconfig+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lfontconfig  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char FcInit ();
int
main ()
{
return FcInit ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_fontconfig=`otool -L conftest$ac_exeext | grep "libfontconfig\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libfontconfig\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_fontconfig=`$ac_cv_path_LDD conftest$ac_exeext | grep "libfontconfig\\.$LIBEXT" | sed -e "s/^.*\(libfontconfig\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_fontconfig" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_fontconfig" >&5
$as_echo "$ac_cv_lib_soname_fontconfig" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBFONTCONFIG "$ac_cv_lib_soname_fontconfig"
_ACEOF


fi
elif test -n "$X_CFLAGS" -a "x$with_fontconfig" != "xno"
then
        ac_save_CPPFLAGS="$CPPFLAGS"
    CPPFLAGS="$CPPFLAGS $X_CFLAGS"
    $as_unset ac_cv_header_fontconfig_fontconfig_h
    for ac_header in fontconfig/fontconfig.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "fontconfig/fontconfig.h" "ac_cv_header_fontconfig_fontconfig_h" "$ac_includes_default"
if test "x$ac_cv_header_fontconfig_fontconfig_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_FONTCONFIG_FONTCONFIG_H 1
_ACEOF

fi

done

    CPPFLAGS="$ac_save_CPPFLAGS"
    if test "$ac_cv_header_fontconfig_fontconfig_h" = "yes"
    then
        FONTCONFIGINCL="$X_CFLAGS"

        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfontconfig" >&5
$as_echo_n "checking for -lfontconfig... " >&6; }
if test "${ac_cv_lib_soname_fontconfig+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lfontconfig $X_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char FcInit ();
int
main ()
{
return FcInit ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_fontconfig=`otool -L conftest$ac_exeext | grep "libfontconfig\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libfontconfig\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_fontconfig=`$ac_cv_path_LDD conftest$ac_exeext | grep "libfontconfig\\.$LIBEXT" | sed -e "s/^.*\(libfontconfig\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_fontconfig" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_fontconfig" >&5
$as_echo "$ac_cv_lib_soname_fontconfig" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBFONTCONFIG "$ac_cv_lib_soname_fontconfig"
_ACEOF


fi
    fi
fi
if test "x$ac_cv_lib_soname_fontconfig" = "x"; then :
  case "x$with_fontconfig" in
  x)   as_fn_append wine_notices "|fontconfig ${notice_platform}development files not found, fontconfig won't be supported." ;;
  xno) ;;
  *)   as_fn_error "fontconfig ${notice_platform}development files not found, fontconfig won't be supported.
This is an error since --with-fontconfig was requested." "$LINENO" 5 ;;
esac
fi

if test "$ac_cv_header_openssl_err_h" = "yes" -a "$ac_cv_header_openssl_ssl_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lssl" >&5
$as_echo_n "checking for -lssl... " >&6; }
if test "${ac_cv_lib_soname_ssl+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lssl  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char SSL_library_init ();
int
main ()
{
return SSL_library_init ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_ssl=`otool -L conftest$ac_exeext | grep "libssl\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libssl\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_ssl=`$ac_cv_path_LDD conftest$ac_exeext | grep "libssl\\.$LIBEXT" | sed -e "s/^.*\(libssl\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_ssl" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_ssl" >&5
$as_echo "$ac_cv_lib_soname_ssl" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBSSL "$ac_cv_lib_soname_ssl"
_ACEOF


fi
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lcrypto" >&5
$as_echo_n "checking for -lcrypto... " >&6; }
if test "${ac_cv_lib_soname_crypto+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lcrypto  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char BIO_new_socket ();
int
main ()
{
return BIO_new_socket ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_crypto=`otool -L conftest$ac_exeext | grep "libcrypto\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libcrypto\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_crypto=`$ac_cv_path_LDD conftest$ac_exeext | grep "libcrypto\\.$LIBEXT" | sed -e "s/^.*\(libcrypto\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_crypto" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_crypto" >&5
$as_echo "$ac_cv_lib_soname_crypto" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBCRYPTO "$ac_cv_lib_soname_crypto"
_ACEOF


fi
fi
if test "x$ac_cv_lib_soname_ssl" = "x" -o "x$ac_cv_lib_soname_crypto" = "x"; then :
  case "x$with_openssl" in
  x)   as_fn_append wine_warnings "|OpenSSL ${notice_platform}development files not found, SSL won't be supported." ;;
  xno) ;;
  *)   as_fn_error "OpenSSL ${notice_platform}development files not found, SSL won't be supported.
This is an error since --with-openssl was requested." "$LINENO" 5 ;;
esac
fi

if test "$ac_cv_header_gsm_h" = "yes" -o "$ac_cv_header_gsm_gsm_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lgsm" >&5
$as_echo_n "checking for -lgsm... " >&6; }
if test "${ac_cv_lib_soname_gsm+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lgsm  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gsm_create ();
int
main ()
{
return gsm_create ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_gsm=`otool -L conftest$ac_exeext | grep "libgsm\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libgsm\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_gsm=`$ac_cv_path_LDD conftest$ac_exeext | grep "libgsm\\.$LIBEXT" | sed -e "s/^.*\(libgsm\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_gsm" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_gsm" >&5
$as_echo "$ac_cv_lib_soname_gsm" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBGSM "$ac_cv_lib_soname_gsm"
_ACEOF


fi
fi
if test "x$ac_cv_lib_soname_gsm" = "x"; then :
  case "x$with_gsm" in
  x)   as_fn_append wine_notices "|libgsm ${notice_platform}development files not found, gsm 06.10 codec won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libgsm ${notice_platform}development files not found, gsm 06.10 codec won't be supported.
This is an error since --with-gsm was requested." "$LINENO" 5 ;;
esac
fi

if test "$ac_cv_header_jpeglib_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -ljpeg" >&5
$as_echo_n "checking for -ljpeg... " >&6; }
if test "${ac_cv_lib_soname_jpeg+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-ljpeg  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char jpeg_start_decompress ();
int
main ()
{
return jpeg_start_decompress ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_jpeg=`otool -L conftest$ac_exeext | grep "libjpeg\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libjpeg\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_jpeg=`$ac_cv_path_LDD conftest$ac_exeext | grep "libjpeg\\.$LIBEXT" | sed -e "s/^.*\(libjpeg\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_jpeg" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_jpeg" >&5
$as_echo "$ac_cv_lib_soname_jpeg" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBJPEG "$ac_cv_lib_soname_jpeg"
_ACEOF


fi
fi
if test "x$ac_cv_lib_soname_jpeg" = "x"; then :
  case "x$with_jpeg" in
  x)   as_fn_append wine_warnings "|libjpeg ${notice_platform}development files not found, JPEG won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libjpeg ${notice_platform}development files not found, JPEG won't be supported.
This is an error since --with-jpeg was requested." "$LINENO" 5 ;;
esac
fi

if test "$ac_cv_header_png_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lpng" >&5
$as_echo_n "checking for -lpng... " >&6; }
if test "${ac_cv_lib_soname_png+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lpng -lm -lz $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char png_create_read_struct ();
int
main ()
{
return png_create_read_struct ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_png=`otool -L conftest$ac_exeext | grep "libpng[0-9]*\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libpng[0-9]*\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_png=`$ac_cv_path_LDD conftest$ac_exeext | grep "libpng[0-9]*\\.$LIBEXT" | sed -e "s/^.*\(libpng[0-9]*\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_png" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_png" >&5
$as_echo "$ac_cv_lib_soname_png" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBPNG "$ac_cv_lib_soname_png"
_ACEOF


fi
elif test -n "$X_CFLAGS" -a "x$with_png" != "xno"
then
        ac_save_CPPFLAGS="$CPPFLAGS"
    CPPFLAGS="$CPPFLAGS $X_CFLAGS"
    $as_unset ac_cv_header_png_h
    for ac_header in png.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default"
if test "x$ac_cv_header_png_h" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_PNG_H 1
_ACEOF

fi

done

    CPPFLAGS="$ac_save_CPPFLAGS"
    if test "$ac_cv_header_png_h" = "yes"
    then
        PNGINCL="$X_CFLAGS"

        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lpng" >&5
$as_echo_n "checking for -lpng... " >&6; }
if test "${ac_cv_lib_soname_png+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lpng $X_LIBS -lm -lz $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char png_create_read_struct ();
int
main ()
{
return png_create_read_struct ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_png=`otool -L conftest$ac_exeext | grep "libpng[0-9]*\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libpng[0-9]*\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_png=`$ac_cv_path_LDD conftest$ac_exeext | grep "libpng[0-9]*\\.$LIBEXT" | sed -e "s/^.*\(libpng[0-9]*\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_png" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_png" >&5
$as_echo "$ac_cv_lib_soname_png" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBPNG "$ac_cv_lib_soname_png"
_ACEOF


fi
    fi
fi
if test "x$ac_cv_lib_soname_png" = "x"; then :
  case "x$with_png" in
  x)   as_fn_append wine_warnings "|libpng ${notice_platform}development files not found, PNG won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libpng ${notice_platform}development files not found, PNG won't be supported.
This is an error since --with-png was requested." "$LINENO" 5 ;;
esac
fi

if test "$ac_cv_header_mpg123_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpg123_feed in -lmpg123" >&5
$as_echo_n "checking for mpg123_feed in -lmpg123... " >&6; }
if test "${ac_cv_lib_mpg123_mpg123_feed+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lmpg123  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char mpg123_feed ();
int
main ()
{
return mpg123_feed ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_mpg123_mpg123_feed=yes
else
  ac_cv_lib_mpg123_mpg123_feed=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpg123_mpg123_feed" >&5
$as_echo "$ac_cv_lib_mpg123_mpg123_feed" >&6; }
if test "x$ac_cv_lib_mpg123_mpg123_feed" = x""yes; then :
  LIBMPG123="-lmpg123"

fi

fi
if test "x$ac_cv_lib_mpg123_mpg123_feed" != xyes; then :
  case "x$with_mpg123" in
  x)   as_fn_append wine_notices "|libmpg123 ${notice_platform}development files not found (or too old), mp3 codec won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libmpg123 ${notice_platform}development files not found (or too old), mp3 codec won't be supported.
This is an error since --with-mpg123 was requested." "$LINENO" 5 ;;
esac
fi
test "x$ac_cv_lib_mpg123_mpg123_feed" = xyes || enable_winemp3_acm=${enable_winemp3_acm:-no}

if test "$ac_cv_header_AL_al_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alGetSource3i in -lopenal" >&5
$as_echo_n "checking for alGetSource3i in -lopenal... " >&6; }
if test "${ac_cv_lib_openal_alGetSource3i+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lopenal  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char alGetSource3i ();
int
main ()
{
return alGetSource3i ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_openal_alGetSource3i=yes
else
  ac_cv_lib_openal_alGetSource3i=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_openal_alGetSource3i" >&5
$as_echo "$ac_cv_lib_openal_alGetSource3i" >&6; }
if test "x$ac_cv_lib_openal_alGetSource3i" = x""yes; then :
  LIBOPENAL="-lopenal"

fi

fi
if test "x$ac_cv_lib_openal_alGetSource3i" != xyes; then :
  case "x$with_openal" in
  x)   as_fn_append wine_notices "|libopenal ${notice_platform}development files not found (or too old), OpenAL won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libopenal ${notice_platform}development files not found (or too old), OpenAL won't be supported.
This is an error since --with-openal was requested." "$LINENO" 5 ;;
esac
fi
test "x$ac_cv_lib_openal_alGetSource3i" = xyes || enable_openal32=${enable_openal32:-no}

if test "$ac_cv_header_kstat_h" = "yes"
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kstat_open in -lkstat" >&5
$as_echo_n "checking for kstat_open in -lkstat... " >&6; }
if test "${ac_cv_lib_kstat_kstat_open+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkstat  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char kstat_open ();
int
main ()
{
return kstat_open ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_kstat_kstat_open=yes
else
  ac_cv_lib_kstat_kstat_open=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kstat_kstat_open" >&5
$as_echo "$ac_cv_lib_kstat_kstat_open" >&6; }
if test "x$ac_cv_lib_kstat_kstat_open" = x""yes; then :

$as_echo "#define HAVE_LIBKSTAT 1" >>confdefs.h

                  LIBKSTAT="-lkstat"

fi

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lodbc" >&5
$as_echo_n "checking for -lodbc... " >&6; }
if test "${ac_cv_lib_soname_odbc+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_soname_save_LIBS=$LIBS
LIBS="-lodbc  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char SQLConnect ();
int
main ()
{
return SQLConnect ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  case "$LIBEXT" in
    dll) ;;
    dylib) ac_cv_lib_soname_odbc=`otool -L conftest$ac_exeext | grep "libodbc\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libodbc\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
    *) ac_cv_lib_soname_odbc=`$ac_cv_path_LDD conftest$ac_exeext | grep "libodbc\\.$LIBEXT" | sed -e "s/^.*\(libodbc\.$LIBEXT[^	 ]*\).*$/\1/"';2,$d'` ;;
  esac
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_soname_save_LIBS
fi
if test "x$ac_cv_lib_soname_odbc" = "x"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
       cat >>confdefs.h <<_ACEOF
#define SONAME_LIBODBC "libodbc.$LIBEXT"
_ACEOF

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_odbc" >&5
$as_echo "$ac_cv_lib_soname_odbc" >&6; }

cat >>confdefs.h <<_ACEOF
#define SONAME_LIBODBC "$ac_cv_lib_soname_odbc"
_ACEOF


fi

if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \
        "$ac_cv_header_sys_soundcard_h" != "yes" -a \
        "$ac_cv_header_machine_soundcard_h" != "yes" -a \
        "$ac_cv_header_soundcard_h" != "yes" -a \
        "x$with_alsa$with_audioio$with_coreaudio$with_nas$with_esd$with_jack$with_oss" != xnonononononono
then
    as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent."
fi


EXTRACFLAGS=""

if test "x${GCC}" = "xyes"
then
  EXTRACFLAGS="-Wall -pipe"

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc strength-reduce bug" >&5
$as_echo_n "checking for gcc strength-reduce bug... " >&6; }
if test "${ac_cv_c_gcc_strength_bug+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_c_gcc_strength_bug="yes"
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int L[4] = {0,1,2,3};
int
main ()
{
static int Array[3];
  unsigned int B = 3;
  int i;
  for(i=0; i<B; i++) Array[i] = i - 3;
  for(i=0; i<4 - 1; i++) L[i] = L[i + 1];
  L[i] = 4;
  return (Array[1] != -2 || L[2] != 3)
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_c_gcc_strength_bug="no"
else
  ac_cv_c_gcc_strength_bug="yes"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_gcc_strength_bug" >&5
$as_echo "$ac_cv_c_gcc_strength_bug" >&6; }
  if test "$ac_cv_c_gcc_strength_bug" = "yes"
  then
    EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce"
  fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fno-builtin" >&5
$as_echo_n "checking whether the compiler supports -fno-builtin... " >&6; }
if test "${ac_cv_cflags__fno_builtin+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fno-builtin"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__fno_builtin=yes
else
  ac_cv_cflags__fno_builtin=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fno_builtin" >&5
$as_echo "$ac_cv_cflags__fno_builtin" >&6; }
if test $ac_cv_cflags__fno_builtin = yes; then :
  BUILTINFLAG="-fno-builtin"

fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fno-strict-aliasing" >&5
$as_echo_n "checking whether the compiler supports -fno-strict-aliasing... " >&6; }
if test "${ac_cv_cflags__fno_strict_aliasing+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -fno-strict-aliasing"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__fno_strict_aliasing=yes
else
  ac_cv_cflags__fno_strict_aliasing=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fno_strict_aliasing" >&5
$as_echo "$ac_cv_cflags__fno_strict_aliasing" >&6; }
if test $ac_cv_cflags__fno_strict_aliasing = yes; then :
  EXTRACFLAGS="$EXTRACFLAGS -fno-strict-aliasing"
fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wdeclaration-after-statement" >&5
$as_echo_n "checking whether the compiler supports -Wdeclaration-after-statement... " >&6; }
if test "${ac_cv_cflags__Wdeclaration_after_statement+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -Wdeclaration-after-statement"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__Wdeclaration_after_statement=yes
else
  ac_cv_cflags__Wdeclaration_after_statement=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wdeclaration_after_statement" >&5
$as_echo "$ac_cv_cflags__Wdeclaration_after_statement" >&6; }
if test $ac_cv_cflags__Wdeclaration_after_statement = yes; then :
  EXTRACFLAGS="$EXTRACFLAGS -Wdeclaration-after-statement"
fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wstrict-prototypes" >&5
$as_echo_n "checking whether the compiler supports -Wstrict-prototypes... " >&6; }
if test "${ac_cv_cflags__Wstrict_prototypes+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -Wstrict-prototypes"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__Wstrict_prototypes=yes
else
  ac_cv_cflags__Wstrict_prototypes=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wstrict_prototypes" >&5
$as_echo "$ac_cv_cflags__Wstrict_prototypes" >&6; }
if test $ac_cv_cflags__Wstrict_prototypes = yes; then :
  EXTRACFLAGS="$EXTRACFLAGS -Wstrict-prototypes"
fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wtype-limits" >&5
$as_echo_n "checking whether the compiler supports -Wtype-limits... " >&6; }
if test "${ac_cv_cflags__Wtype_limits+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -Wtype-limits"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__Wtype_limits=yes
else
  ac_cv_cflags__Wtype_limits=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wtype_limits" >&5
$as_echo "$ac_cv_cflags__Wtype_limits" >&6; }
if test $ac_cv_cflags__Wtype_limits = yes; then :
  EXTRACFLAGS="$EXTRACFLAGS -Wtype-limits"
fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wwrite-strings" >&5
$as_echo_n "checking whether the compiler supports -Wwrite-strings... " >&6; }
if test "${ac_cv_cflags__Wwrite_strings+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -Wwrite-strings"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__Wwrite_strings=yes
else
  ac_cv_cflags__Wwrite_strings=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wwrite_strings" >&5
$as_echo "$ac_cv_cflags__Wwrite_strings" >&6; }
if test $ac_cv_cflags__Wwrite_strings = yes; then :
  EXTRACFLAGS="$EXTRACFLAGS -Wwrite-strings"
fi

    saved_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS -Wpointer-arith -Werror"
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken string.h that generates warnings" >&5
$as_echo_n "checking for broken string.h that generates warnings... " >&6; }
if test "${ac_cv_c_string_h_warnings+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <string.h>
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_string_h_warnings=no
else
  ac_cv_c_string_h_warnings=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_string_h_warnings" >&5
$as_echo "$ac_cv_c_string_h_warnings" >&6; }
  CFLAGS="$saved_CFLAGS"
  if test "$ac_cv_c_string_h_warnings" = "no"
  then
    EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
  fi

    if test "${enable_maintainer_mode+set}" = set
  then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Werror" >&5
$as_echo_n "checking whether the compiler supports -Werror... " >&6; }
if test "${ac_cv_cflags__Werror+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -Werror"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int main(int argc, char *argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_cflags__Werror=yes
else
  ac_cv_cflags__Werror=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Werror" >&5
$as_echo "$ac_cv_cflags__Werror" >&6; }
if test $ac_cv_cflags__Werror = yes; then :
  EXTRACFLAGS="$EXTRACFLAGS -Werror"
fi
  fi

    saved_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS -Werror"
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ms_hook_prologue attribute" >&5
$as_echo_n "checking for ms_hook_prologue attribute... " >&6; }
if test "${ac_cv_have_ms_hook_prologue+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int __attribute__((__ms_hook_prologue__)) test(void) { return 0; }
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_have_ms_hook_prologue="yes"
else
  ac_cv_have_ms_hook_prologue="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_ms_hook_prologue" >&5
$as_echo "$ac_cv_have_ms_hook_prologue" >&6; }
  CFLAGS="$saved_CFLAGS"
  if test "$ac_cv_have_ms_hook_prologue" = "yes"
  then

$as_echo "#define DECLSPEC_HOTPATCH __attribute__((__ms_hook_prologue__))" >>confdefs.h

  else
      $as_echo "#define DECLSPEC_HOTPATCH /* */" >>confdefs.h

  fi
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether external symbols need an underscore prefix" >&5
$as_echo_n "checking whether external symbols need an underscore prefix... " >&6; }
if test "${ac_cv_c_extern_prefix+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
extern int ac_test;
int
main ()
{
asm(".globl _ac_test\n_ac_test:\t.long 0"); if (ac_test) return 1
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_c_extern_prefix="yes"
else
  ac_cv_c_extern_prefix="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_extern_prefix" >&5
$as_echo "$ac_cv_c_extern_prefix" >&6; }

case $host_cpu in
  *i[3456789]86*)
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether external symbols need stdcall decoration" >&5
$as_echo_n "checking whether external symbols need stdcall decoration... " >&6; }
if test "${ac_cv_c_stdcall_suffix+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef _MSC_VER
#define __stdcall __attribute__((__stdcall__))
#endif
int __stdcall ac_test(int i) { return i; }
int
main ()
{
asm("jmp _ac_test@4"); if (ac_test(1)) return 1
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_c_stdcall_suffix="yes"
else
  ac_cv_c_stdcall_suffix="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stdcall_suffix" >&5
$as_echo "$ac_cv_c_stdcall_suffix" >&6; } ;;
  *) ac_cv_c_stdcall_suffix="no" ;;
esac


if test "$ac_cv_c_extern_prefix" = "yes"
then
    $as_echo "#define __ASM_NAME(name) \"_\" name" >>confdefs.h

    asm_name_prefix="_"
else
    $as_echo "#define __ASM_NAME(name) name" >>confdefs.h

    asm_name_prefix=""
fi


if test "$ac_cv_c_stdcall_suffix" = "yes"
then
    $as_echo "#define __ASM_STDCALL(args) \"@\" #args" >>confdefs.h

else
    $as_echo "#define __ASM_STDCALL(args) \"\"" >>confdefs.h

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to define a function in assembly code" >&5
$as_echo_n "checking how to define a function in assembly code... " >&6; }
if test "${ac_cv_asm_func_def+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
asm("\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0");
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_asm_func_def=".def"
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
asm("\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0");
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_asm_func_def=".type @function"
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
asm("\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0");
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_asm_func_def=".type 2"
else
  ac_cv_asm_func_def="unknown"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_asm_func_def" >&5
$as_echo "$ac_cv_asm_func_def" >&6; }


case "$ac_cv_asm_func_def" in
  ".def")
     $as_echo "#define __ASM_FUNC(name) \".def \" __ASM_NAME(name) \"; .scl 2; .type 32; .endef\"" >>confdefs.h

     asm_func_header=".def $asm_name_prefix\" #name suffix \"; .scl 2; .type 32; .endef" ;;
  ".type @function")
     $as_echo "#define __ASM_FUNC(name) \".type \" __ASM_NAME(name) \",@function\"" >>confdefs.h

     asm_func_header=".type $asm_name_prefix\" #name suffix \",@function" ;;
  ".type 2")
     $as_echo "#define __ASM_FUNC(name) \".type \" __ASM_NAME(name) \",2\"" >>confdefs.h

     asm_func_header=".type $asm_name_prefix\" #name suffix \",2" ;;
  *)
     $as_echo "#define __ASM_FUNC(name) \"\"" >>confdefs.h

     asm_func_header="" ;;
esac

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether asm() works outside of functions" >&5
$as_echo_n "checking whether asm() works outside of functions... " >&6; }
if test "${ac_cv_c_asm_outside_funcs+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
asm(".text\n\t.long 0");
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_asm_outside_funcs="yes"
else
  ac_cv_c_asm_outside_funcs="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_asm_outside_funcs" >&5
$as_echo "$ac_cv_c_asm_outside_funcs" >&6; }

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether .previous is supported in assembly code" >&5
$as_echo_n "checking whether .previous is supported in assembly code... " >&6; }
if test "${ac_cv_c_dot_previous+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
asm(".text\nac_test:\t.long 0\n\t.previous");
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_c_dot_previous="yes"
else
  ac_cv_c_dot_previous="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_dot_previous" >&5
$as_echo "$ac_cv_c_dot_previous" >&6; }

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether CFI directives are supported in assembly code" >&5
$as_echo_n "checking whether CFI directives are supported in assembly code... " >&6; }
if test "${ac_cv_c_cfi_support+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
asm(".text\nac_test:\t.cfi_startproc\n\t.long 0\n\t.cfi_endproc");
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_cfi_support="yes"
else
  ac_cv_c_cfi_support="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_cfi_support" >&5
$as_echo "$ac_cv_c_cfi_support" >&6; }

asm_func_header=".globl $asm_name_prefix\" #name suffix \"\\n\\t$asm_func_header\\n$asm_name_prefix\" #name suffix \":\\n\\t"
asm_func_trailer=""
if test "$ac_cv_c_dot_previous" = "yes"
then
   asm_func_trailer="\\n\\t.previous"
fi
if test "$ac_cv_c_cfi_support" = "yes"
then
   asm_func_header="$asm_func_header.cfi_startproc\\n\\t"
   asm_func_trailer="\\n\\t.cfi_endproc$asm_func_trailer"

$as_echo "#define __ASM_CFI(str) str" >>confdefs.h

else
   $as_echo "#define __ASM_CFI(str) \"\"" >>confdefs.h

fi

asm_func_code="$asm_func_header\" code \"$asm_func_trailer"


if test "$ac_cv_c_asm_outside_funcs" = "yes"
then
    cat >>confdefs.h <<_ACEOF
#define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t$asm_func_code");
_ACEOF

else
    cat >>confdefs.h <<_ACEOF
#define __ASM_DEFINE_FUNC(name,suffix,code) void __asm_dummy_##name(void) { asm(".text\n\t.align 4\n\t$asm_func_code"); }
_ACEOF

fi

$as_echo "#define __ASM_GLOBAL_FUNC(name,code) __ASM_DEFINE_FUNC(name,\"\",code)" >>confdefs.h


$as_echo "#define __ASM_STDCALL_FUNC(name,args,code) __ASM_DEFINE_FUNC(name,__ASM_STDCALL(args),code)" >>confdefs.h



LDPATH=""

case $build_os in
  cygwin*|mingw32*)
    TOOLSEXT=".exe"

    LDPATH="PATH=\"\$(TOOLSDIR)/libs/wine:\$\$PATH\""
    ;;
  darwin*|macosx*)
    ;;
  *)
    LDPATH="LD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/wine:\$\$LD_LIBRARY_PATH\""
    ;;
esac

case $host_os in
  mingw32*)
    CRTLIBS="-lmsvcrt"

    SOCKETLIBS="-L\$(TOPOBJDIR)/dlls/ws2_32 -lws2_32"

    ;;
esac

MAIN_BINARY="wine"

test -z "$with_wine64" || MAIN_BINARY="wine32"

case $host_cpu in
  *i[3456789]86*)
    case $host_os in
      linux*)
        EXTRA_BINARIES="wine-preloader"
 ;;
    esac
    ;;
esac


ac_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $BUILTINFLAG"
for ac_func in \
	_pclose \
	_popen \
	_snprintf \
	_spawnvp \
	_strdup \
	_stricmp \
	_strnicmp \
	_strtoi64 \
	_strtoui64 \
	_vsnprintf \
	asctime_r \
	chsize \
	dlopen \
	epoll_create \
	ffs \
	finite \
	fnmatch \
	fork \
	fpclass \
	fstatfs \
	fstatvfs \
	ftruncate \
	futimes \
	futimesat \
	getdirentries \
	getopt_long \
	getpagesize \
	getpwuid \
	gettid \
	gettimeofday \
	getuid \
	kqueue \
	lstat \
	memmove \
	mmap \
	pclose \
	pipe2 \
	poll \
	popen \
	port_create \
	prctl \
	pread \
	pwrite \
	readdir \
	readlink \
	sched_setaffinity \
	sched_yield \
	select \
	setproctitle \
	setrlimit \
	settimeofday \
	sigaltstack \
	sigprocmask \
	snprintf \
	spawnvp \
	statfs \
	statvfs \
	strcasecmp \
	strdup \
	strerror \
	strncasecmp \
	strtold \
	strtoll \
	strtoull \
	symlink \
	tcgetattr \
	thr_kill2 \
	timegm \
	usleep \
	vsnprintf \
	wait4 \
	waitpid \

do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
eval as_val=\$$as_ac_var
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

CFLAGS="$ac_save_CFLAGS"

if test "$ac_cv_func_dlopen" = no
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
$as_echo_n "checking for dlopen in -ldl... " >&6; }
if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char dlopen ();
int
main ()
{
return dlopen ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dl_dlopen=yes
else
  ac_cv_lib_dl_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
  $as_echo "#define HAVE_DLOPEN 1" >>confdefs.h
 LIBDL="-ldl"

fi

fi
ac_wine_check_funcs_save_LIBS="$LIBS"
LIBS="$LIBS $LIBDL"
for ac_func in dladdr
do :
  ac_fn_c_check_func "$LINENO" "dladdr" "ac_cv_func_dladdr"
if test "x$ac_cv_func_dladdr" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_DLADDR 1
_ACEOF

fi
done

LIBS="$ac_wine_check_funcs_save_LIBS"

if test "$ac_cv_func_poll" = no
then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for poll in -lpoll" >&5
$as_echo_n "checking for poll in -lpoll... " >&6; }
if test "${ac_cv_lib_poll_poll+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lpoll  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char poll ();
int
main ()
{
return poll ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_poll_poll=yes
else
  ac_cv_lib_poll_poll=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_poll_poll" >&5
$as_echo "$ac_cv_lib_poll_poll" >&6; }
if test "x$ac_cv_lib_poll_poll" = x""yes; then :
  $as_echo "#define HAVE_POLL 1" >>confdefs.h
 LIBPOLL="-lpoll"

fi

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
$as_echo_n "checking for library containing gethostbyname... " >&6; }
if test "${ac_cv_search_gethostbyname+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char gethostbyname ();
int
main ()
{
return gethostbyname ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' nsl; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_gethostbyname=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if test "${ac_cv_search_gethostbyname+set}" = set; then :
  break
fi
done
if test "${ac_cv_search_gethostbyname+set}" = set; then :

else
  ac_cv_search_gethostbyname=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5
$as_echo "$ac_cv_search_gethostbyname" >&6; }
ac_res=$ac_cv_search_gethostbyname
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5
$as_echo_n "checking for library containing connect... " >&6; }
if test "${ac_cv_search_connect+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char connect ();
int
main ()
{
return connect ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' socket; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_connect=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if test "${ac_cv_search_connect+set}" = set; then :
  break
fi
done
if test "${ac_cv_search_connect+set}" = set; then :

else
  ac_cv_search_connect=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5
$as_echo "$ac_cv_search_connect" >&6; }
ac_res=$ac_cv_search_connect
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_aton" >&5
$as_echo_n "checking for library containing inet_aton... " >&6; }
if test "${ac_cv_search_inet_aton+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char inet_aton ();
int
main ()
{
return inet_aton ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' resolv; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_inet_aton=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if test "${ac_cv_search_inet_aton+set}" = set; then :
  break
fi
done
if test "${ac_cv_search_inet_aton+set}" = set; then :

else
  ac_cv_search_inet_aton=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_aton" >&5
$as_echo "$ac_cv_search_inet_aton" >&6; }
ac_res=$ac_cv_search_inet_aton
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


for ac_func in \
	getaddrinfo \
	getnameinfo \
	getnetbyname \
	getprotobyname \
	getprotobynumber \
	getservbyport \
	inet_network \
	inet_ntop \
	inet_pton \
	sendmsg \
	socketpair \

do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
eval as_val=\$$as_ac_var
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done


LDAPLIBS=""

if test "$ac_cv_header_ldap_h" = "yes" -a "$ac_cv_header_lber_h" = "yes"
then
    ac_fn_c_check_type "$LINENO" "LDAPSortKey" "ac_cv_type_LDAPSortKey" "#include <ldap.h>
"
if test "x$ac_cv_type_LDAPSortKey" = x""yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_initialize in -lldap_r" >&5
$as_echo_n "checking for ldap_initialize in -lldap_r... " >&6; }
if test "${ac_cv_lib_ldap_r_ldap_initialize+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lldap_r $LIBPTHREAD $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char ldap_initialize ();
int
main ()
{
return ldap_initialize ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ldap_r_ldap_initialize=yes
else
  ac_cv_lib_ldap_r_ldap_initialize=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldap_r_ldap_initialize" >&5
$as_echo "$ac_cv_lib_ldap_r_ldap_initialize" >&6; }
if test "x$ac_cv_lib_ldap_r_ldap_initialize" = x""yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ber_init in -llber" >&5
$as_echo_n "checking for ber_init in -llber... " >&6; }
if test "${ac_cv_lib_lber_ber_init+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-llber $LIBPTHREAD $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char ber_init ();
int
main ()
{
return ber_init ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_lber_ber_init=yes
else
  ac_cv_lib_lber_ber_init=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lber_ber_init" >&5
$as_echo "$ac_cv_lib_lber_ber_init" >&6; }
if test "x$ac_cv_lib_lber_ber_init" = x""yes; then :

$as_echo "#define HAVE_LDAP 1" >>confdefs.h

                 LDAPLIBS="-lldap_r -llber"
fi

fi

fi

    ac_wine_check_funcs_save_LIBS="$LIBS"
LIBS="$LIBS $LDAPLIBS $LIBPTHREAD"
for ac_func in \
	ldap_count_references \
	ldap_first_reference \
	ldap_next_reference \
	ldap_parse_reference \
	ldap_parse_sort_control \
	ldap_parse_sortresponse_control \
	ldap_parse_vlv_control \
	ldap_parse_vlvresponse_control
do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
eval as_val=\$$as_ac_var
   if test "x$as_val" = x""yes; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

LIBS="$ac_wine_check_funcs_save_LIBS"
fi
if test "x$LDAPLIBS" = "x"; then :
  case "x$with_ldap" in
  x)   as_fn_append wine_notices "|libldap (OpenLDAP) ${notice_platform}development files not found, LDAP won't be supported." ;;
  xno) ;;
  *)   as_fn_error "libldap (OpenLDAP) ${notice_platform}development files not found, LDAP won't be supported.
This is an error since --with-ldap was requested." "$LINENO" 5 ;;
esac
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir takes only one argument" >&5
$as_echo_n "checking whether mkdir takes only one argument... " >&6; }
if test "${wine_cv_one_arg_mkdir+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/stat.h>
int
main ()
{
mkdir("foo");
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  wine_cv_one_arg_mkdir=yes
else
  wine_cv_one_arg_mkdir=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wine_cv_one_arg_mkdir" >&5
$as_echo "$wine_cv_one_arg_mkdir" >&6; }
if test "$wine_cv_one_arg_mkdir" = "yes"
then

$as_echo "#define HAVE_ONE_ARG_MKDIR 1" >>confdefs.h

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
if test "${ac_cv_c_const+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
/* FIXME: Include the comments suggested by Paul. */
#ifndef __cplusplus
  /* Ultrix mips cc rejects this.  */
  typedef int charset[2];
  const charset cs;
  /* SunOS 4.1.1 cc rejects this.  */
  char const *const *pcpcc;
  char **ppc;
  /* NEC SVR4.0.2 mips cc rejects this.  */
  struct point {int x, y;};
  static struct point const zero = {0,0};
  /* AIX XL C 1.02.0.0 rejects this.
     It does not let you subtract one const X* pointer from another in
     an arm of an if-expression whose if-part is not a constant
     expression */
  const char *g = "string";
  pcpcc = &g + (g ? g-g : 0);
  /* HPUX 7.0 cc rejects these. */
  ++pcpcc;
  ppc = (char**) pcpcc;
  pcpcc = (char const *const *) ppc;
  { /* SCO 3.2v4 cc rejects this.  */
    char *t;
    char const *s = 0 ? (char *) 0 : (char const *) 0;

    *t++ = 0;
    if (s) return 0;
  }
  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
    int x[] = {25, 17};
    const int *foo = &x[0];
    ++foo;
  }
  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
    typedef const int *iptr;
    iptr p = 0;
    ++p;
  }
  { /* AIX XL C 1.02.0.0 rejects this saying
       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
    struct s { int j; const int *ap[3]; };
    struct s *b; b->j = 5;
  }
  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
    const int foo = 10;
    if (!foo) return 0;
  }
  return !cs[0] && !zero.x;
#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_const=yes
else
  ac_cv_c_const=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
$as_echo "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then

$as_echo "#define const /**/" >>confdefs.h

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
$as_echo_n "checking for inline... " >&6; }
if test "${ac_cv_c_inline+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __cplusplus
typedef int foo_t;
static $ac_kw foo_t static_foo () {return 0; }
$ac_kw foo_t foo () {return 0; }
#endif

_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_inline=$ac_kw
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  test "$ac_cv_c_inline" != no && break
done

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
$as_echo "$ac_cv_c_inline" >&6; }

case $ac_cv_c_inline in
  inline | yes) ;;
  *)
    case $ac_cv_c_inline in
      no) ac_val=;;
      *) ac_val=$ac_cv_c_inline;;
    esac
    cat >>confdefs.h <<_ACEOF
#ifndef __cplusplus
#define inline $ac_val
#endif
_ACEOF
    ;;
esac

ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
if test "x$ac_cv_type_mode_t" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_MODE_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
if test "x$ac_cv_type_off_t" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_OFF_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
if test "x$ac_cv_type_pid_t" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PID_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_SIZE_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
if test "x$ac_cv_type_ssize_t" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_SSIZE_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
if test "x$ac_cv_type_long_long" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_LONG_LONG 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "fsblkcnt_t" "ac_cv_type_fsblkcnt_t" "$ac_includes_default"
if test "x$ac_cv_type_fsblkcnt_t" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_FSBLKCNT_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "fsfilcnt_t" "ac_cv_type_fsfilcnt_t" "$ac_includes_default"
if test "x$ac_cv_type_fsfilcnt_t" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_FSFILCNT_T 1
_ACEOF


fi

ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "#include <sys/types.h>
#include <signal.h>
"
if test "x$ac_cv_type_sigset_t" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_SIGSET_T 1
_ACEOF


fi

ac_fn_c_check_type "$LINENO" "request_sense" "ac_cv_type_request_sense" "#include <linux/cdrom.h>
"
if test "x$ac_cv_type_request_sense" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_REQUEST_SENSE 1
_ACEOF


fi


ac_fn_c_check_type "$LINENO" "struct xinpgen" "ac_cv_type_struct_xinpgen" "#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_SYS_SOCKETVAR_H
#include <sys/socketvar.h>
#endif
#ifdef HAVE_NET_ROUTE_H
#include <net/route.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif
#ifdef HAVE_NETINET_IP_H
#include <netinet/ip.h>
#endif
#ifdef HAVE_NETINET_IN_PCB_H
#include <netinet/in_pcb.h>
#endif
"
if test "x$ac_cv_type_struct_xinpgen" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_XINPGEN 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "struct ff_effect" "direction" "ac_cv_member_struct_ff_effect_direction" "#ifdef HAVE_LINUX_INPUT_H
#include <linux/input.h>
#endif
"
if test "x$ac_cv_member_struct_ff_effect_direction" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_FF_EFFECT_DIRECTION 1
_ACEOF


fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigaddset" >&5
$as_echo_n "checking for sigaddset... " >&6; }
if test "${wine_cv_have_sigaddset+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <signal.h>
int
main ()
{
sigset_t set; sigaddset(&set,SIGTERM);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  wine_cv_have_sigaddset=yes
else
  wine_cv_have_sigaddset=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wine_cv_have_sigaddset" >&5
$as_echo "$wine_cv_have_sigaddset" >&6; }
if test "$wine_cv_have_sigaddset" = "yes"
then

$as_echo "#define HAVE_SIGADDSET 1" >>confdefs.h

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use re-entrant gethostbyname_r Linux style" >&5
$as_echo_n "checking whether we can use re-entrant gethostbyname_r Linux style... " >&6; }
if test "${wine_cv_linux_gethostbyname_r_6+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <netdb.h>
int
main ()
{

    char *name=0;
    struct hostent he;
    struct hostent *result;
    char *buf=0;
    int bufsize=0;
    int res,errnr;
    char *addr=0;
    int addrlen=0;
    int addrtype=0;
    res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
    res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  wine_cv_linux_gethostbyname_r_6=yes
else
  wine_cv_linux_gethostbyname_r_6=no

fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wine_cv_linux_gethostbyname_r_6" >&5
$as_echo "$wine_cv_linux_gethostbyname_r_6" >&6; }
   if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
   then

$as_echo "#define HAVE_LINUX_GETHOSTBYNAME_R_6 1" >>confdefs.h

   fi

if test "$ac_cv_header_linux_joystick_h" = "yes"
then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linux/joystick.h uses the Linux 2.2+ API" >&5
$as_echo_n "checking whether linux/joystick.h uses the Linux 2.2+ API... " >&6; }
if test "${wine_cv_linux_joystick_22_api+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

	#include <sys/ioctl.h>
	#include <sys/types.h>
	#include <linux/joystick.h>

	struct js_event blub;
	#if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
	#error "no 2.2 header"
	#endif

int
main ()
{
/*empty*/
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  wine_cv_linux_joystick_22_api=yes
else
  wine_cv_linux_joystick_22_api=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wine_cv_linux_joystick_22_api" >&5
$as_echo "$wine_cv_linux_joystick_22_api" >&6; }
   if test "$wine_cv_linux_joystick_22_api" = "yes"
   then

$as_echo "#define HAVE_LINUX_22_JOYSTICK_API 1" >>confdefs.h

   fi
fi


ac_fn_c_check_member "$LINENO" "struct statfs" "f_bfree" "ac_cv_member_struct_statfs_f_bfree" "#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
# include <sys/mount.h>
#endif
#ifdef HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_STATFS_H
# include <sys/statfs.h>
#endif
"
if test "x$ac_cv_member_struct_statfs_f_bfree" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STATFS_F_BFREE 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct statfs" "f_bavail" "ac_cv_member_struct_statfs_f_bavail" "#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
# include <sys/mount.h>
#endif
#ifdef HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_STATFS_H
# include <sys/statfs.h>
#endif
"
if test "x$ac_cv_member_struct_statfs_f_bavail" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STATFS_F_BAVAIL 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct statfs" "f_frsize" "ac_cv_member_struct_statfs_f_frsize" "#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
# include <sys/mount.h>
#endif
#ifdef HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_STATFS_H
# include <sys/statfs.h>
#endif
"
if test "x$ac_cv_member_struct_statfs_f_frsize" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STATFS_F_FRSIZE 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct statfs" "f_ffree" "ac_cv_member_struct_statfs_f_ffree" "#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
# include <sys/mount.h>
#endif
#ifdef HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_STATFS_H
# include <sys/statfs.h>
#endif
"
if test "x$ac_cv_member_struct_statfs_f_ffree" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STATFS_F_FFREE 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct statfs" "f_favail" "ac_cv_member_struct_statfs_f_favail" "#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
# include <sys/mount.h>
#endif
#ifdef HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_STATFS_H
# include <sys/statfs.h>
#endif
"
if test "x$ac_cv_member_struct_statfs_f_favail" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STATFS_F_FAVAIL 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct statfs" "f_namelen" "ac_cv_member_struct_statfs_f_namelen" "#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
# include <sys/mount.h>
#endif
#ifdef HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_STATFS_H
# include <sys/statfs.h>
#endif
"
if test "x$ac_cv_member_struct_statfs_f_namelen" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STATFS_F_NAMELEN 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "struct statvfs" "f_blocks" "ac_cv_member_struct_statvfs_f_blocks" "#ifdef HAVE_SYS_STATVFS_H
#include <sys/statvfs.h>
#endif
"
if test "x$ac_cv_member_struct_statvfs_f_blocks" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STATVFS_F_BLOCKS 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "struct msghdr" "msg_accrights" "ac_cv_member_struct_msghdr_msg_accrights" "#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
#endif
"
if test "x$ac_cv_member_struct_msghdr_msg_accrights" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_MSGHDR_MSG_ACCRIGHTS 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
#endif
"
if test "x$ac_cv_member_struct_sockaddr_sa_len" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_SOCKADDR_SA_LEN 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct sockaddr_un" "sun_len" "ac_cv_member_struct_sockaddr_un_sun_len" "#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
#endif
"
if test "x$ac_cv_member_struct_sockaddr_un_sun_len" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "scsireq_t" "cmd" "ac_cv_member_scsireq_t_cmd" "#include <sys/types.h>
#ifdef HAVE_SCSI_SG_H
#include <scsi/sg.h>
#endif
"
if test "x$ac_cv_member_scsireq_t_cmd" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_SCSIREQ_T_CMD 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "sg_io_hdr_t" "interface_id" "ac_cv_member_sg_io_hdr_t_interface_id" "#include <sys/types.h>
#ifdef HAVE_SCSI_SG_H
#include <scsi/sg.h>
#endif
"
if test "x$ac_cv_member_sg_io_hdr_t_interface_id" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_SG_IO_HDR_T_INTERFACE_ID 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "siginfo_t" "si_fd" "ac_cv_member_siginfo_t_si_fd" "#include <signal.h>
"
if test "x$ac_cv_member_siginfo_t_si_fd" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_SIGINFO_T_SI_FD 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "struct mtget" "mt_blksiz" "ac_cv_member_struct_mtget_mt_blksiz" "#include <sys/types.h>
#ifdef HAVE_SYS_MTIO_H
#include <sys/mtio.h>
#endif
"
if test "x$ac_cv_member_struct_mtget_mt_blksiz" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_MTGET_MT_BLKSIZ 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct mtget" "mt_gstat" "ac_cv_member_struct_mtget_mt_gstat" "#include <sys/types.h>
#ifdef HAVE_SYS_MTIO_H
#include <sys/mtio.h>
#endif
"
if test "x$ac_cv_member_struct_mtget_mt_gstat" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_MTGET_MT_GSTAT 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct mtget" "mt_blkno" "ac_cv_member_struct_mtget_mt_blkno" "#include <sys/types.h>
#ifdef HAVE_SYS_MTIO_H
#include <sys/mtio.h>
#endif
"
if test "x$ac_cv_member_struct_mtget_mt_blkno" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_MTGET_MT_BLKNO 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "struct option" "name" "ac_cv_member_struct_option_name" "#ifdef HAVE_GETOPT_H
#include <getopt.h>
#endif
"
if test "x$ac_cv_member_struct_option_name" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_OPTION_NAME 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default"
if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STAT_ST_BLOCKS 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct stat" "st_mtim" "ac_cv_member_struct_stat_st_mtim" "$ac_includes_default"
if test "x$ac_cv_member_struct_stat_st_mtim" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STAT_ST_MTIM 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct stat" "st_ctim" "ac_cv_member_struct_stat_st_ctim" "$ac_includes_default"
if test "x$ac_cv_member_struct_stat_st_ctim" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STAT_ST_CTIM 1
_ACEOF


fi
ac_fn_c_check_member "$LINENO" "struct stat" "st_atim" "ac_cv_member_struct_stat_st_atim" "$ac_includes_default"
if test "x$ac_cv_member_struct_stat_st_atim" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STAT_ST_ATIM 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "struct sockaddr_in6" "sin6_scope_id" "ac_cv_member_struct_sockaddr_in6_sin6_scope_id" "#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
"
if test "x$ac_cv_member_struct_sockaddr_in6_sin6_scope_id" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "ns_msg" "_msg_ptr" "ac_cv_member_ns_msg__msg_ptr" "#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
"
if test "x$ac_cv_member_ns_msg__msg_ptr" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_NS_MSG__MSG_PTR 1
_ACEOF


fi


ac_fn_c_check_member "$LINENO" "struct icmpstat" "icps_outhist" "ac_cv_member_struct_icmpstat_icps_outhist" "#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_ALIAS_H
#include <alias.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_SYS_SOCKETVAR_H
#include <sys/socketvar.h>
#endif
#ifdef HAVE_SYS_TIMEOUT_H
#include <sys/timeout.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif
#ifdef HAVE_NETINET_IP_H
#include <netinet/ip.h>
#endif
#ifdef HAVE_NETINET_IP_VAR_H
#include <netinet/ip_var.h>
#endif
#ifdef HAVE_NETINET_IP_ICMP_H
#include <netinet/ip_icmp.h>
#endif
#ifdef HAVE_NETINET_ICMP_VAR
#include <netinet/icmp_var.h>
#endif
"
if test "x$ac_cv_member_struct_icmpstat_icps_outhist" = x""yes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_ICMPSTAT_ICPS_OUTHIST 1
_ACEOF


fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for timezone variable" >&5
$as_echo_n "checking for timezone variable... " >&6; }
if test "${ac_cv_have_timezone+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <time.h>
int
main ()
{
timezone = 1
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_have_timezone="yes"
else
  ac_cv_have_timezone="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_timezone" >&5
$as_echo "$ac_cv_have_timezone" >&6; }
if test "$ac_cv_have_timezone" = "yes"
then

$as_echo "#define HAVE_TIMEZONE 1" >>confdefs.h

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for daylight variable" >&5
$as_echo_n "checking for daylight variable... " >&6; }
if test "${ac_cv_have_daylight+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <time.h>
int
main ()
{
daylight = 1
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_have_daylight="yes"
else
  ac_cv_have_daylight="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_daylight" >&5
$as_echo "$ac_cv_have_daylight" >&6; }
if test "$ac_cv_have_daylight" = "yes"
then

$as_echo "#define HAVE_DAYLIGHT 1" >>confdefs.h

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf" >&5
$as_echo_n "checking for isinf... " >&6; }
if test "${ac_cv_have_isinf+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <math.h>
int
main ()
{
float f = 0.0; int i=isinf(f)
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_have_isinf="yes"
else
  ac_cv_have_isinf="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_isinf" >&5
$as_echo "$ac_cv_have_isinf" >&6; }
if test "$ac_cv_have_isinf" = "yes"
then

$as_echo "#define HAVE_ISINF 1" >>confdefs.h

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan" >&5
$as_echo_n "checking for isnan... " >&6; }
if test "${ac_cv_have_isnan+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <math.h>
int
main ()
{
float f = 0.0; int i=isnan(f)
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_have_isnan="yes"
else
  ac_cv_have_isnan="no"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_isnan" >&5
$as_echo "$ac_cv_have_isnan" >&6; }
if test "$ac_cv_have_isnan" = "yes"
then

$as_echo "#define HAVE_ISNAN 1" >>confdefs.h

fi


case $host_cpu in
  *i[3456789]86*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to define __i386__" >&5
$as_echo_n "checking whether we need to define __i386__... " >&6; }
if test "${ac_cv_cpp_def___i386__+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __i386__
yes
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  ac_cv_cpp_def___i386__=yes
else
  ac_cv_cpp_def___i386__=no
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cpp_def___i386__" >&5
$as_echo "$ac_cv_cpp_def___i386__" >&6; }
if test $ac_cv_cpp_def___i386__ = yes; then :
  CFLAGS="$CFLAGS -D__i386__"
  LINTFLAGS="$LINTFLAGS -D__i386__"
fi ;;
  *x86_64*)         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to define __x86_64__" >&5
$as_echo_n "checking whether we need to define __x86_64__... " >&6; }
if test "${ac_cv_cpp_def___x86_64__+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __x86_64__
yes
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  ac_cv_cpp_def___x86_64__=yes
else
  ac_cv_cpp_def___x86_64__=no
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cpp_def___x86_64__" >&5
$as_echo "$ac_cv_cpp_def___x86_64__" >&6; }
if test $ac_cv_cpp_def___x86_64__ = yes; then :
  CFLAGS="$CFLAGS -D__x86_64__"
  LINTFLAGS="$LINTFLAGS -D__x86_64__"
fi ;;
  *alpha*)          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to define __ALPHA__" >&5
$as_echo_n "checking whether we need to define __ALPHA__... " >&6; }
if test "${ac_cv_cpp_def___ALPHA__+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __ALPHA__
yes
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  ac_cv_cpp_def___ALPHA__=yes
else
  ac_cv_cpp_def___ALPHA__=no
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cpp_def___ALPHA__" >&5
$as_echo "$ac_cv_cpp_def___ALPHA__" >&6; }
if test $ac_cv_cpp_def___ALPHA__ = yes; then :
  CFLAGS="$CFLAGS -D__ALPHA__"
  LINTFLAGS="$LINTFLAGS -D__ALPHA__"
fi ;;
  *sparc*)          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to define __sparc__" >&5
$as_echo_n "checking whether we need to define __sparc__... " >&6; }
if test "${ac_cv_cpp_def___sparc__+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __sparc__
yes
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  ac_cv_cpp_def___sparc__=yes
else
  ac_cv_cpp_def___sparc__=no
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cpp_def___sparc__" >&5
$as_echo "$ac_cv_cpp_def___sparc__" >&6; }
if test $ac_cv_cpp_def___sparc__ = yes; then :
  CFLAGS="$CFLAGS -D__sparc__"
  LINTFLAGS="$LINTFLAGS -D__sparc__"
fi ;;
  *powerpc*)        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to define __powerpc__" >&5
$as_echo_n "checking whether we need to define __powerpc__... " >&6; }
if test "${ac_cv_cpp_def___powerpc__+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __powerpc__
yes
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  ac_cv_cpp_def___powerpc__=yes
else
  ac_cv_cpp_def___powerpc__=no
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cpp_def___powerpc__" >&5
$as_echo "$ac_cv_cpp_def___powerpc__" >&6; }
if test $ac_cv_cpp_def___powerpc__ = yes; then :
  CFLAGS="$CFLAGS -D__powerpc__"
  LINTFLAGS="$LINTFLAGS -D__powerpc__"
fi ;;
esac

case $host_vendor in
  *sun*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to define __sun__" >&5
$as_echo_n "checking whether we need to define __sun__... " >&6; }
if test "${ac_cv_cpp_def___sun__+set}" = set; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __sun__
yes
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  ac_cv_cpp_def___sun__=yes
else
  ac_cv_cpp_def___sun__=no
fi
rm -f conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cpp_def___sun__" >&5
$as_echo "$ac_cv_cpp_def___sun__" >&6; }
if test $ac_cv_cpp_def___sun__ = yes; then :
  CFLAGS="$CFLAGS -D__sun__"
  LINTFLAGS="$LINTFLAGS -D__sun__"
fi ;;
esac


DEPENDENCIES="### Dependencies:

.INIT: Makefile
.BEGIN: Makefile
.MAKEFILEDEPS:
Makefile: dummy
	-\$(MAKEDEP) \$(MAKEDEPFLAGS) -C\$(SRCDIR) -S\$(TOPSRCDIR) -T\$(TOPOBJDIR) \$(EXTRAINCL) \$(DEPEND_SRCS)

\$(OBJS) \$(CROSSOBJS): \$(IDL_GEN_HEADERS) \$(BISON_SRCS:.y=.tab.h)
\$(IDL_GEN_C_SRCS:.c=.o): \$(IDL_GEN_C_SRCS)
\$(RC_SRCS:.rc=.res): \$(IDL_TLB_SRCS:.idl=.tlb)
\$(LEX_SRCS:.l=.yy.o): \$(LEX_SRCS:.l=.yy.c)
\$(BISON_SRCS:.y=.tab.o): \$(BISON_SRCS:.y=.tab.c)"


ALL_MAKERULES=""

ALL_SYMLINKS=""

ALL_MAKEFILE_DEPENDS="# Makefile dependencies"

ALL_WINETEST_DEPENDS="# Test binaries"


ALL_DIRS=""

ALL_TOP_DIRS=""

ALL_DLL_DIRS=""

ALL_TOOL_DIRS=""

ALL_STATICLIB_DIRS=""

ALL_STATIC_LIBS=""

ALL_IMPORT_LIBS=""

ALL_INSTALL_DIRS=""

ALL_TEST_DIRS=""

ALL_TEST_BINARIES=""

ALL_PROGRAM_DIRS=""

ALL_PROGRAM_BIN_INSTALL_DIRS=""




ac_config_commands="$ac_config_commands include/stamp-h"


wine_fn_append_file ()
{
    as_fn_append $1 " \\$as_nl	$2"
}
wine_fn_append_rule ()
{
    as_fn_append $1 "$as_nl$2"
}
ac_config_links="$ac_config_links dlls/wineps.drv/generic.ppd:dlls/wineps.drv/generic.ppd"
test "$srcdir" = "." || wine_fn_append_file ALL_SYMLINKS "dlls/wineps.drv/generic.ppd"
ac_config_links="$ac_config_links fonts/marlett.ttf:fonts/marlett.ttf"
test "$srcdir" = "." || wine_fn_append_file ALL_SYMLINKS "fonts/marlett.ttf"
ac_config_links="$ac_config_links fonts/symbol.ttf:fonts/symbol.ttf"
test "$srcdir" = "." || wine_fn_append_file ALL_SYMLINKS "fonts/symbol.ttf"
ac_config_links="$ac_config_links fonts/tahoma.ttf:fonts/tahoma.ttf"
test "$srcdir" = "." || wine_fn_append_file ALL_SYMLINKS "fonts/tahoma.ttf"
ac_config_links="$ac_config_links fonts/tahomabd.ttf:fonts/tahomabd.ttf"
test "$srcdir" = "." || wine_fn_append_file ALL_SYMLINKS "fonts/tahomabd.ttf"
ac_config_links="$ac_config_links wine:tools/winewrapper"
wine_fn_append_file ALL_SYMLINKS "wine"

ac_config_commands="$ac_config_commands dlls/gdi32/enhmfdrv"

ac_config_commands="$ac_config_commands dlls/gdi32/mfdrv"

ac_config_commands="$ac_config_commands dlls/kernel32/nls"

ac_config_commands="$ac_config_commands dlls/user32/resources"

ac_config_commands="$ac_config_commands dlls/wineps.drv/data"

ac_config_commands="$ac_config_commands include/wine"


wine_fn_append_file ALL_MAKERULES "Make.rules"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "Make.rules: Make.rules.in config.status"
MAKE_RULES=Make.rules
ac_config_files="$ac_config_files Make.rules"

wine_fn_append_file ALL_MAKERULES "Maketest.rules"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "Maketest.rules: Maketest.rules.in Make.rules config.status"
MAKE_TEST_RULES=Maketest.rules
ac_config_files="$ac_config_files Maketest.rules"

wine_fn_append_file ALL_MAKERULES "dlls/Makedll.rules"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/Makedll.rules: dlls/Makedll.rules.in Make.rules config.status"
MAKE_DLL_RULES=dlls/Makedll.rules
ac_config_files="$ac_config_files dlls/Makedll.rules"

wine_fn_append_file ALL_MAKERULES "dlls/Makeimplib.rules"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/Makeimplib.rules: dlls/Makeimplib.rules.in Make.rules config.status"
MAKE_IMPLIB_RULES=dlls/Makeimplib.rules
ac_config_files="$ac_config_files dlls/Makeimplib.rules"

wine_fn_append_file ALL_MAKERULES "programs/Makeprog.rules"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/Makeprog.rules: programs/Makeprog.rules.in Make.rules config.status"
MAKE_PROG_RULES=programs/Makeprog.rules
ac_config_files="$ac_config_files programs/Makeprog.rules"




wine_fn_append_rule ALL_MAKEFILE_DEPENDS "Makefile: Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/acledit dlls/acledit/__install__ dlls/acledit/__install-lib__ dlls/acledit/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/acledit"
test "x$enable_acledit" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/acledit"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/acledit/%) dlls/acledit: dlls/acledit/Makefile \$(MAKEDEP)
dlls/acledit/Makefile: dlls/acledit/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/acledit/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/aclui/libaclui.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/aclui/libaclui.$IMPLIBEXT dlls/aclui/libaclui.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/aclui/libaclui.$IMPLIBEXT dlls/aclui/libaclui.cross.a: dlls/aclui/aclui.spec dlls/aclui/Makefile
	@cd dlls/aclui && \$(MAKE) \`basename \$@\`
dlls/aclui dlls/aclui/__install__ dlls/aclui/__install-lib__ dlls/aclui/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/aclui"
test "x$enable_aclui" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/aclui"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/aclui/%) dlls/aclui: dlls/aclui/Makefile \$(MAKEDEP)
dlls/aclui/Makefile: dlls/aclui/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/aclui/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/activeds/libactiveds.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/activeds/libactiveds.$IMPLIBEXT dlls/activeds/libactiveds.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/activeds/libactiveds.$IMPLIBEXT dlls/activeds/libactiveds.cross.a: dlls/activeds/activeds.spec dlls/activeds/Makefile
	@cd dlls/activeds && \$(MAKE) \`basename \$@\`
dlls/activeds dlls/activeds/__install__ dlls/activeds/__install-lib__ dlls/activeds/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/activeds"
test "x$enable_activeds" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/activeds"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/activeds/%) dlls/activeds: dlls/activeds/Makefile \$(MAKEDEP)
dlls/activeds/Makefile: dlls/activeds/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/activeds/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/actxprxy dlls/actxprxy/__install__ dlls/actxprxy/__install-lib__ dlls/actxprxy/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/actxprxy"
test "x$enable_actxprxy" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/actxprxy"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/actxprxy/%) dlls/actxprxy: dlls/actxprxy/Makefile \$(MAKEDEP)
dlls/actxprxy/Makefile: dlls/actxprxy/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/actxprxy/Makefile"

wine_fn_append_file ALL_STATIC_LIBS "dlls/adsiid/libadsiid.a"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/adsiid: tools/widl tools/winebuild tools/winegcc include
dlls/adsiid/__install__ dlls/adsiid/__install-dev__: dlls/adsiid
dlls/adsiid/libadsiid.cross.a: dlls/adsiid/Makefile tools/widl tools/winebuild tools/winegcc include dummy
	@cd dlls/adsiid && \$(MAKE) \`basename \$@\`"
wine_fn_append_file ALL_DIRS "dlls/adsiid"
test "x$enable_adsiid" != xno && wine_fn_append_file ALL_STATICLIB_DIRS "dlls/adsiid"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/adsiid/%) dlls/adsiid: dlls/adsiid/Makefile \$(MAKEDEP)
dlls/adsiid/Makefile: dlls/adsiid/Makefile.in dlls/Makeimplib.rules config.status"
ac_config_files="$ac_config_files dlls/adsiid/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/advapi32/libadvapi32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/advapi32/libadvapi32.$IMPLIBEXT dlls/advapi32/libadvapi32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/advapi32/libadvapi32.$IMPLIBEXT dlls/advapi32/libadvapi32.cross.a: dlls/advapi32/advapi32.spec dlls/advapi32/Makefile
	@cd dlls/advapi32 && \$(MAKE) \`basename \$@\`
dlls/advapi32 dlls/advapi32/__install__ dlls/advapi32/__install-lib__ dlls/advapi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/advapi32"
test "x$enable_advapi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/advapi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/advapi32/%) dlls/advapi32: dlls/advapi32/Makefile \$(MAKEDEP)
dlls/advapi32/Makefile: dlls/advapi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/advapi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/advapi32/tests: __builddeps__
dlls/advapi32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "advapi32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "advapi32_test.exe: \$(TOPOBJDIR)/dlls/advapi32/tests/advapi32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/advapi32/tests/advapi32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
advapi32_test.rc:
	echo \"advapi32_test.exe TESTRES \\\"advapi32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
advapi32_test.res: advapi32_test.rc advapi32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/advapi32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/advapi32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/advapi32/tests/%) dlls/advapi32/tests: dlls/advapi32/tests/Makefile \$(MAKEDEP)
dlls/advapi32/tests/Makefile: dlls/advapi32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/advapi32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/advpack/libadvpack.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/advpack/libadvpack.$IMPLIBEXT dlls/advpack/libadvpack.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/advpack/libadvpack.$IMPLIBEXT dlls/advpack/libadvpack.cross.a: dlls/advpack/advpack.spec dlls/advpack/Makefile
	@cd dlls/advpack && \$(MAKE) \`basename \$@\`
dlls/advpack dlls/advpack/__install__ dlls/advpack/__install-lib__ dlls/advpack/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/advpack"
test "x$enable_advpack" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/advpack"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/advpack/%) dlls/advpack: dlls/advpack/Makefile \$(MAKEDEP)
dlls/advpack/Makefile: dlls/advpack/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/advpack/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/advpack/tests: __builddeps__
dlls/advpack/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "advpack_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "advpack_test.exe: \$(TOPOBJDIR)/dlls/advpack/tests/advpack_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/advpack/tests/advpack_test.exe$DLLEXT \$@ && \$(STRIP) \$@
advpack_test.rc:
	echo \"advpack_test.exe TESTRES \\\"advpack_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
advpack_test.res: advpack_test.rc advpack_test.exe"
wine_fn_append_file ALL_DIRS "dlls/advpack/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/advpack/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/advpack/tests/%) dlls/advpack/tests: dlls/advpack/tests/Makefile \$(MAKEDEP)
dlls/advpack/tests/Makefile: dlls/advpack/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/advpack/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/amstream dlls/amstream/__install__ dlls/amstream/__install-lib__ dlls/amstream/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/amstream"
test "x$enable_amstream" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/amstream"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/amstream/%) dlls/amstream: dlls/amstream/Makefile \$(MAKEDEP)
dlls/amstream/Makefile: dlls/amstream/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/amstream/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/amstream/tests: __builddeps__
dlls/amstream/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "amstream_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "amstream_test.exe: \$(TOPOBJDIR)/dlls/amstream/tests/amstream_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/amstream/tests/amstream_test.exe$DLLEXT \$@ && \$(STRIP) \$@
amstream_test.rc:
	echo \"amstream_test.exe TESTRES \\\"amstream_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
amstream_test.res: amstream_test.rc amstream_test.exe"
wine_fn_append_file ALL_DIRS "dlls/amstream/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/amstream/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/amstream/tests/%) dlls/amstream/tests: dlls/amstream/tests/Makefile \$(MAKEDEP)
dlls/amstream/tests/Makefile: dlls/amstream/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/amstream/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/appwiz.cpl dlls/appwiz.cpl/__install__ dlls/appwiz.cpl/__install-lib__ dlls/appwiz.cpl/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/appwiz.cpl"
test "x$enable_appwiz_cpl" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/appwiz.cpl"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/appwiz.cpl/%) dlls/appwiz.cpl: dlls/appwiz.cpl/Makefile \$(MAKEDEP)
dlls/appwiz.cpl/Makefile: dlls/appwiz.cpl/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/appwiz.cpl/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/atl/libatl.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/atl/libatl.$IMPLIBEXT dlls/atl/libatl.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/atl/libatl.$IMPLIBEXT dlls/atl/libatl.cross.a: dlls/atl/atl.spec dlls/atl/Makefile
	@cd dlls/atl && \$(MAKE) \`basename \$@\`
dlls/atl dlls/atl/__install__ dlls/atl/__install-lib__ dlls/atl/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/atl"
test "x$enable_atl" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/atl"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/atl/%) dlls/atl: dlls/atl/Makefile \$(MAKEDEP)
dlls/atl/Makefile: dlls/atl/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/atl/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/authz dlls/authz/__install__ dlls/authz/__install-lib__ dlls/authz/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/authz"
test "x$enable_authz" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/authz"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/authz/%) dlls/authz: dlls/authz/Makefile \$(MAKEDEP)
dlls/authz/Makefile: dlls/authz/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/authz/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/avicap32/libavicap32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/avicap32/libavicap32.$IMPLIBEXT dlls/avicap32/libavicap32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/avicap32/libavicap32.$IMPLIBEXT dlls/avicap32/libavicap32.cross.a: dlls/avicap32/avicap32.spec dlls/avicap32/Makefile
	@cd dlls/avicap32 && \$(MAKE) \`basename \$@\`
dlls/avicap32 dlls/avicap32/__install__ dlls/avicap32/__install-lib__ dlls/avicap32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/avicap32"
test "x$enable_avicap32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/avicap32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/avicap32/%) dlls/avicap32: dlls/avicap32/Makefile \$(MAKEDEP)
dlls/avicap32/Makefile: dlls/avicap32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/avicap32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/avifil32/libavifil32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/avifil32/libavifil32.$IMPLIBEXT dlls/avifil32/libavifil32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/avifil32/libavifil32.$IMPLIBEXT dlls/avifil32/libavifil32.cross.a: dlls/avifil32/avifil32.spec dlls/avifil32/Makefile
	@cd dlls/avifil32 && \$(MAKE) \`basename \$@\`
dlls/avifil32 dlls/avifil32/__install__ dlls/avifil32/__install-lib__ dlls/avifil32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/avifil32"
test "x$enable_avifil32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/avifil32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/avifil32/%) dlls/avifil32: dlls/avifil32/Makefile \$(MAKEDEP)
dlls/avifil32/Makefile: dlls/avifil32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/avifil32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/avifil32/tests: __builddeps__
dlls/avifil32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "avifil32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "avifil32_test.exe: \$(TOPOBJDIR)/dlls/avifil32/tests/avifil32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/avifil32/tests/avifil32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
avifil32_test.rc:
	echo \"avifil32_test.exe TESTRES \\\"avifil32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
avifil32_test.res: avifil32_test.rc avifil32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/avifil32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/avifil32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/avifil32/tests/%) dlls/avifil32/tests: dlls/avifil32/tests/Makefile \$(MAKEDEP)
dlls/avifil32/tests/Makefile: dlls/avifil32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/avifil32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/avifile.dll16 dlls/avifile.dll16/__install__ dlls/avifile.dll16/__install-lib__ dlls/avifile.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/avifile.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/avifile.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/avifile.dll16/%) dlls/avifile.dll16: dlls/avifile.dll16/Makefile \$(MAKEDEP)
dlls/avifile.dll16/Makefile: dlls/avifile.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/avifile.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/avrt/libavrt.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/avrt/libavrt.$IMPLIBEXT dlls/avrt/libavrt.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/avrt/libavrt.$IMPLIBEXT dlls/avrt/libavrt.cross.a: dlls/avrt/avrt.spec dlls/avrt/Makefile
	@cd dlls/avrt && \$(MAKE) \`basename \$@\`
dlls/avrt dlls/avrt/__install__ dlls/avrt/__install-lib__ dlls/avrt/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/avrt"
test "x$enable_avrt" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/avrt"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/avrt/%) dlls/avrt: dlls/avrt/Makefile \$(MAKEDEP)
dlls/avrt/Makefile: dlls/avrt/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/avrt/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/bcrypt dlls/bcrypt/__install__ dlls/bcrypt/__install-lib__ dlls/bcrypt/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/bcrypt"
test "x$enable_bcrypt" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/bcrypt"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/bcrypt/%) dlls/bcrypt: dlls/bcrypt/Makefile \$(MAKEDEP)
dlls/bcrypt/Makefile: dlls/bcrypt/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/bcrypt/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/browseui dlls/browseui/__install__ dlls/browseui/__install-lib__ dlls/browseui/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/browseui"
test "x$enable_browseui" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/browseui"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/browseui/%) dlls/browseui: dlls/browseui/Makefile \$(MAKEDEP)
dlls/browseui/Makefile: dlls/browseui/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/browseui/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/browseui/tests: __builddeps__
dlls/browseui/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "browseui_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "browseui_test.exe: \$(TOPOBJDIR)/dlls/browseui/tests/browseui_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/browseui/tests/browseui_test.exe$DLLEXT \$@ && \$(STRIP) \$@
browseui_test.rc:
	echo \"browseui_test.exe TESTRES \\\"browseui_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
browseui_test.res: browseui_test.rc browseui_test.exe"
wine_fn_append_file ALL_DIRS "dlls/browseui/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/browseui/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/browseui/tests/%) dlls/browseui/tests: dlls/browseui/tests/Makefile \$(MAKEDEP)
dlls/browseui/tests/Makefile: dlls/browseui/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/browseui/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/cabinet/libcabinet.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cabinet/libcabinet.$IMPLIBEXT dlls/cabinet/libcabinet.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/cabinet/libcabinet.$IMPLIBEXT dlls/cabinet/libcabinet.cross.a: dlls/cabinet/cabinet.spec dlls/cabinet/Makefile
	@cd dlls/cabinet && \$(MAKE) \`basename \$@\`
dlls/cabinet dlls/cabinet/__install__ dlls/cabinet/__install-lib__ dlls/cabinet/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/cabinet"
test "x$enable_cabinet" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/cabinet"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cabinet/%) dlls/cabinet: dlls/cabinet/Makefile \$(MAKEDEP)
dlls/cabinet/Makefile: dlls/cabinet/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/cabinet/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cabinet/tests: __builddeps__
dlls/cabinet/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "cabinet_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "cabinet_test.exe: \$(TOPOBJDIR)/dlls/cabinet/tests/cabinet_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/cabinet/tests/cabinet_test.exe$DLLEXT \$@ && \$(STRIP) \$@
cabinet_test.rc:
	echo \"cabinet_test.exe TESTRES \\\"cabinet_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
cabinet_test.res: cabinet_test.rc cabinet_test.exe"
wine_fn_append_file ALL_DIRS "dlls/cabinet/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/cabinet/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cabinet/tests/%) dlls/cabinet/tests: dlls/cabinet/tests/Makefile \$(MAKEDEP)
dlls/cabinet/tests/Makefile: dlls/cabinet/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/cabinet/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/capi2032/libcapi2032.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/capi2032/libcapi2032.$IMPLIBEXT dlls/capi2032/libcapi2032.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/capi2032/libcapi2032.$IMPLIBEXT dlls/capi2032/libcapi2032.cross.a: dlls/capi2032/capi2032.spec dlls/capi2032/Makefile
	@cd dlls/capi2032 && \$(MAKE) \`basename \$@\`
dlls/capi2032 dlls/capi2032/__install__ dlls/capi2032/__install-lib__ dlls/capi2032/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/capi2032"
test "x$enable_capi2032" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/capi2032"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/capi2032/%) dlls/capi2032: dlls/capi2032/Makefile \$(MAKEDEP)
dlls/capi2032/Makefile: dlls/capi2032/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/capi2032/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/cards/libcards.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cards/libcards.$IMPLIBEXT dlls/cards/libcards.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/cards/libcards.$IMPLIBEXT dlls/cards/libcards.cross.a: dlls/cards/cards.spec dlls/cards/Makefile
	@cd dlls/cards && \$(MAKE) \`basename \$@\`
dlls/cards dlls/cards/__install__ dlls/cards/__install-lib__ dlls/cards/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/cards"
test "x$enable_cards" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/cards"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cards/%) dlls/cards: dlls/cards/Makefile \$(MAKEDEP)
dlls/cards/Makefile: dlls/cards/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/cards/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/cfgmgr32/libcfgmgr32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cfgmgr32/libcfgmgr32.$IMPLIBEXT dlls/cfgmgr32/libcfgmgr32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/cfgmgr32/libcfgmgr32.$IMPLIBEXT dlls/cfgmgr32/libcfgmgr32.cross.a: dlls/cfgmgr32/cfgmgr32.spec dlls/cfgmgr32/Makefile
	@cd dlls/cfgmgr32 && \$(MAKE) \`basename \$@\`
dlls/cfgmgr32 dlls/cfgmgr32/__install__ dlls/cfgmgr32/__install-lib__ dlls/cfgmgr32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/cfgmgr32"
test "x$enable_cfgmgr32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/cfgmgr32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cfgmgr32/%) dlls/cfgmgr32: dlls/cfgmgr32/Makefile \$(MAKEDEP)
dlls/cfgmgr32/Makefile: dlls/cfgmgr32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/cfgmgr32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/clusapi/libclusapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/clusapi/libclusapi.$IMPLIBEXT dlls/clusapi/libclusapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/clusapi/libclusapi.$IMPLIBEXT dlls/clusapi/libclusapi.cross.a: dlls/clusapi/clusapi.spec dlls/clusapi/Makefile
	@cd dlls/clusapi && \$(MAKE) \`basename \$@\`
dlls/clusapi dlls/clusapi/__install__ dlls/clusapi/__install-lib__ dlls/clusapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/clusapi"
test "x$enable_clusapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/clusapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/clusapi/%) dlls/clusapi: dlls/clusapi/Makefile \$(MAKEDEP)
dlls/clusapi/Makefile: dlls/clusapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/clusapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/comcat dlls/comcat/__install__ dlls/comcat/__install-lib__ dlls/comcat/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/comcat"
test "x$enable_comcat" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/comcat"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/comcat/%) dlls/comcat: dlls/comcat/Makefile \$(MAKEDEP)
dlls/comcat/Makefile: dlls/comcat/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/comcat/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/comcat/tests: __builddeps__
dlls/comcat/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "comcat_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "comcat_test.exe: \$(TOPOBJDIR)/dlls/comcat/tests/comcat_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/comcat/tests/comcat_test.exe$DLLEXT \$@ && \$(STRIP) \$@
comcat_test.rc:
	echo \"comcat_test.exe TESTRES \\\"comcat_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
comcat_test.res: comcat_test.rc comcat_test.exe"
wine_fn_append_file ALL_DIRS "dlls/comcat/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/comcat/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/comcat/tests/%) dlls/comcat/tests: dlls/comcat/tests/Makefile \$(MAKEDEP)
dlls/comcat/tests/Makefile: dlls/comcat/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/comcat/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/comctl32/libcomctl32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/comctl32/libcomctl32.$IMPLIBEXT dlls/comctl32/libcomctl32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/comctl32/libcomctl32.$IMPLIBEXT dlls/comctl32/libcomctl32.cross.a: dlls/comctl32/comctl32.spec dlls/comctl32/Makefile
	@cd dlls/comctl32 && \$(MAKE) \`basename \$@\`
dlls/comctl32 dlls/comctl32/__install__ dlls/comctl32/__install-lib__ dlls/comctl32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/comctl32"
test "x$enable_comctl32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/comctl32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/comctl32/%) dlls/comctl32: dlls/comctl32/Makefile \$(MAKEDEP)
dlls/comctl32/Makefile: dlls/comctl32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/comctl32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/comctl32/tests: __builddeps__
dlls/comctl32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "comctl32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "comctl32_test.exe: \$(TOPOBJDIR)/dlls/comctl32/tests/comctl32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/comctl32/tests/comctl32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
comctl32_test.rc:
	echo \"comctl32_test.exe TESTRES \\\"comctl32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
comctl32_test.res: comctl32_test.rc comctl32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/comctl32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/comctl32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/comctl32/tests/%) dlls/comctl32/tests: dlls/comctl32/tests/Makefile \$(MAKEDEP)
dlls/comctl32/tests/Makefile: dlls/comctl32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/comctl32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/comdlg32/libcomdlg32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/comdlg32/libcomdlg32.$IMPLIBEXT dlls/comdlg32/libcomdlg32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/comdlg32/libcomdlg32.$IMPLIBEXT dlls/comdlg32/libcomdlg32.cross.a: dlls/comdlg32/comdlg32.spec dlls/comdlg32/Makefile
	@cd dlls/comdlg32 && \$(MAKE) \`basename \$@\`
dlls/comdlg32 dlls/comdlg32/__install__ dlls/comdlg32/__install-lib__ dlls/comdlg32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/comdlg32"
test "x$enable_comdlg32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/comdlg32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/comdlg32/%) dlls/comdlg32: dlls/comdlg32/Makefile \$(MAKEDEP)
dlls/comdlg32/Makefile: dlls/comdlg32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/comdlg32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/comdlg32/tests: __builddeps__
dlls/comdlg32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "comdlg32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "comdlg32_test.exe: \$(TOPOBJDIR)/dlls/comdlg32/tests/comdlg32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/comdlg32/tests/comdlg32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
comdlg32_test.rc:
	echo \"comdlg32_test.exe TESTRES \\\"comdlg32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
comdlg32_test.res: comdlg32_test.rc comdlg32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/comdlg32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/comdlg32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/comdlg32/tests/%) dlls/comdlg32/tests: dlls/comdlg32/tests/Makefile \$(MAKEDEP)
dlls/comdlg32/tests/Makefile: dlls/comdlg32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/comdlg32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/comm.drv16 dlls/comm.drv16/__install__ dlls/comm.drv16/__install-lib__ dlls/comm.drv16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/comm.drv16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/comm.drv16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/comm.drv16/%) dlls/comm.drv16: dlls/comm.drv16/Makefile \$(MAKEDEP)
dlls/comm.drv16/Makefile: dlls/comm.drv16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/comm.drv16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/commdlg.dll16 dlls/commdlg.dll16/__install__ dlls/commdlg.dll16/__install-lib__ dlls/commdlg.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/commdlg.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/commdlg.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/commdlg.dll16/%) dlls/commdlg.dll16: dlls/commdlg.dll16/Makefile \$(MAKEDEP)
dlls/commdlg.dll16/Makefile: dlls/commdlg.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/commdlg.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/compobj.dll16 dlls/compobj.dll16/__install__ dlls/compobj.dll16/__install-lib__ dlls/compobj.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/compobj.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/compobj.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/compobj.dll16/%) dlls/compobj.dll16: dlls/compobj.dll16/Makefile \$(MAKEDEP)
dlls/compobj.dll16/Makefile: dlls/compobj.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/compobj.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/compstui/libcompstui.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/compstui/libcompstui.$IMPLIBEXT dlls/compstui/libcompstui.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/compstui/libcompstui.$IMPLIBEXT dlls/compstui/libcompstui.cross.a: dlls/compstui/compstui.spec dlls/compstui/Makefile
	@cd dlls/compstui && \$(MAKE) \`basename \$@\`
dlls/compstui dlls/compstui/__install__ dlls/compstui/__install-lib__ dlls/compstui/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/compstui"
test "x$enable_compstui" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/compstui"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/compstui/%) dlls/compstui: dlls/compstui/Makefile \$(MAKEDEP)
dlls/compstui/Makefile: dlls/compstui/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/compstui/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/credui/libcredui.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/credui/libcredui.$IMPLIBEXT dlls/credui/libcredui.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/credui/libcredui.$IMPLIBEXT dlls/credui/libcredui.cross.a: dlls/credui/credui.spec dlls/credui/Makefile
	@cd dlls/credui && \$(MAKE) \`basename \$@\`
dlls/credui dlls/credui/__install__ dlls/credui/__install-lib__ dlls/credui/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/credui"
test "x$enable_credui" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/credui"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/credui/%) dlls/credui: dlls/credui/Makefile \$(MAKEDEP)
dlls/credui/Makefile: dlls/credui/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/credui/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/credui/tests: __builddeps__
dlls/credui/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "credui_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "credui_test.exe: \$(TOPOBJDIR)/dlls/credui/tests/credui_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/credui/tests/credui_test.exe$DLLEXT \$@ && \$(STRIP) \$@
credui_test.rc:
	echo \"credui_test.exe TESTRES \\\"credui_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
credui_test.res: credui_test.rc credui_test.exe"
wine_fn_append_file ALL_DIRS "dlls/credui/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/credui/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/credui/tests/%) dlls/credui/tests: dlls/credui/tests/Makefile \$(MAKEDEP)
dlls/credui/tests/Makefile: dlls/credui/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/credui/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/crtdll/libcrtdll.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/crtdll/libcrtdll.$IMPLIBEXT dlls/crtdll/libcrtdll.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/crtdll/libcrtdll.$IMPLIBEXT dlls/crtdll/libcrtdll.cross.a: dlls/crtdll/crtdll.spec dlls/crtdll/Makefile
	@cd dlls/crtdll && \$(MAKE) \`basename \$@\`
dlls/crtdll dlls/crtdll/__install__ dlls/crtdll/__install-lib__ dlls/crtdll/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/crtdll"
test "x$enable_crtdll" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/crtdll"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/crtdll/%) dlls/crtdll: dlls/crtdll/Makefile \$(MAKEDEP)
dlls/crtdll/Makefile: dlls/crtdll/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/crtdll/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/crypt32/libcrypt32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/crypt32/libcrypt32.$IMPLIBEXT dlls/crypt32/libcrypt32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/crypt32/libcrypt32.$IMPLIBEXT dlls/crypt32/libcrypt32.cross.a: dlls/crypt32/crypt32.spec dlls/crypt32/Makefile
	@cd dlls/crypt32 && \$(MAKE) \`basename \$@\`
dlls/crypt32 dlls/crypt32/__install__ dlls/crypt32/__install-lib__ dlls/crypt32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/crypt32"
test "x$enable_crypt32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/crypt32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/crypt32/%) dlls/crypt32: dlls/crypt32/Makefile \$(MAKEDEP)
dlls/crypt32/Makefile: dlls/crypt32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/crypt32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/crypt32/tests: __builddeps__
dlls/crypt32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "crypt32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "crypt32_test.exe: \$(TOPOBJDIR)/dlls/crypt32/tests/crypt32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/crypt32/tests/crypt32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
crypt32_test.rc:
	echo \"crypt32_test.exe TESTRES \\\"crypt32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
crypt32_test.res: crypt32_test.rc crypt32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/crypt32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/crypt32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/crypt32/tests/%) dlls/crypt32/tests: dlls/crypt32/tests/Makefile \$(MAKEDEP)
dlls/crypt32/tests/Makefile: dlls/crypt32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/crypt32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cryptdlg dlls/cryptdlg/__install__ dlls/cryptdlg/__install-lib__ dlls/cryptdlg/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/cryptdlg"
test "x$enable_cryptdlg" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/cryptdlg"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cryptdlg/%) dlls/cryptdlg: dlls/cryptdlg/Makefile \$(MAKEDEP)
dlls/cryptdlg/Makefile: dlls/cryptdlg/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/cryptdlg/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/cryptdll/libcryptdll.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cryptdll/libcryptdll.$IMPLIBEXT dlls/cryptdll/libcryptdll.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/cryptdll/libcryptdll.$IMPLIBEXT dlls/cryptdll/libcryptdll.cross.a: dlls/cryptdll/cryptdll.spec dlls/cryptdll/Makefile
	@cd dlls/cryptdll && \$(MAKE) \`basename \$@\`
dlls/cryptdll dlls/cryptdll/__install__ dlls/cryptdll/__install-lib__ dlls/cryptdll/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/cryptdll"
test "x$enable_cryptdll" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/cryptdll"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cryptdll/%) dlls/cryptdll: dlls/cryptdll/Makefile \$(MAKEDEP)
dlls/cryptdll/Makefile: dlls/cryptdll/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/cryptdll/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/cryptnet/libcryptnet.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cryptnet/libcryptnet.$IMPLIBEXT dlls/cryptnet/libcryptnet.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/cryptnet/libcryptnet.$IMPLIBEXT dlls/cryptnet/libcryptnet.cross.a: dlls/cryptnet/cryptnet.spec dlls/cryptnet/Makefile
	@cd dlls/cryptnet && \$(MAKE) \`basename \$@\`
dlls/cryptnet dlls/cryptnet/__install__ dlls/cryptnet/__install-lib__ dlls/cryptnet/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/cryptnet"
test "x$enable_cryptnet" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/cryptnet"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cryptnet/%) dlls/cryptnet: dlls/cryptnet/Makefile \$(MAKEDEP)
dlls/cryptnet/Makefile: dlls/cryptnet/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/cryptnet/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cryptnet/tests: __builddeps__
dlls/cryptnet/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "cryptnet_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "cryptnet_test.exe: \$(TOPOBJDIR)/dlls/cryptnet/tests/cryptnet_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/cryptnet/tests/cryptnet_test.exe$DLLEXT \$@ && \$(STRIP) \$@
cryptnet_test.rc:
	echo \"cryptnet_test.exe TESTRES \\\"cryptnet_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
cryptnet_test.res: cryptnet_test.rc cryptnet_test.exe"
wine_fn_append_file ALL_DIRS "dlls/cryptnet/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/cryptnet/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cryptnet/tests/%) dlls/cryptnet/tests: dlls/cryptnet/tests/Makefile \$(MAKEDEP)
dlls/cryptnet/tests/Makefile: dlls/cryptnet/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/cryptnet/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/cryptui/libcryptui.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cryptui/libcryptui.$IMPLIBEXT dlls/cryptui/libcryptui.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/cryptui/libcryptui.$IMPLIBEXT dlls/cryptui/libcryptui.cross.a: dlls/cryptui/cryptui.spec dlls/cryptui/Makefile
	@cd dlls/cryptui && \$(MAKE) \`basename \$@\`
dlls/cryptui dlls/cryptui/__install__ dlls/cryptui/__install-lib__ dlls/cryptui/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/cryptui"
test "x$enable_cryptui" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/cryptui"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cryptui/%) dlls/cryptui: dlls/cryptui/Makefile \$(MAKEDEP)
dlls/cryptui/Makefile: dlls/cryptui/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/cryptui/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/cryptui/tests: __builddeps__
dlls/cryptui/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "cryptui_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "cryptui_test.exe: \$(TOPOBJDIR)/dlls/cryptui/tests/cryptui_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/cryptui/tests/cryptui_test.exe$DLLEXT \$@ && \$(STRIP) \$@
cryptui_test.rc:
	echo \"cryptui_test.exe TESTRES \\\"cryptui_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
cryptui_test.res: cryptui_test.rc cryptui_test.exe"
wine_fn_append_file ALL_DIRS "dlls/cryptui/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/cryptui/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/cryptui/tests/%) dlls/cryptui/tests: dlls/cryptui/tests/Makefile \$(MAKEDEP)
dlls/cryptui/tests/Makefile: dlls/cryptui/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/cryptui/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ctapi32 dlls/ctapi32/__install__ dlls/ctapi32/__install-lib__ dlls/ctapi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ctapi32"
test "x$enable_ctapi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ctapi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ctapi32/%) dlls/ctapi32: dlls/ctapi32/Makefile \$(MAKEDEP)
dlls/ctapi32/Makefile: dlls/ctapi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ctapi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ctl3d.dll16 dlls/ctl3d.dll16/__install__ dlls/ctl3d.dll16/__install-lib__ dlls/ctl3d.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ctl3d.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ctl3d.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ctl3d.dll16/%) dlls/ctl3d.dll16: dlls/ctl3d.dll16/Makefile \$(MAKEDEP)
dlls/ctl3d.dll16/Makefile: dlls/ctl3d.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ctl3d.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/ctl3d32/libctl3d32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ctl3d32/libctl3d32.$IMPLIBEXT dlls/ctl3d32/libctl3d32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/ctl3d32/libctl3d32.$IMPLIBEXT dlls/ctl3d32/libctl3d32.cross.a: dlls/ctl3d32/ctl3d32.spec dlls/ctl3d32/Makefile
	@cd dlls/ctl3d32 && \$(MAKE) \`basename \$@\`
dlls/ctl3d32 dlls/ctl3d32/__install__ dlls/ctl3d32/__install-lib__ dlls/ctl3d32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ctl3d32"
test "x$enable_ctl3d32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ctl3d32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ctl3d32/%) dlls/ctl3d32: dlls/ctl3d32/Makefile \$(MAKEDEP)
dlls/ctl3d32/Makefile: dlls/ctl3d32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ctl3d32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ctl3dv2.dll16 dlls/ctl3dv2.dll16/__install__ dlls/ctl3dv2.dll16/__install-lib__ dlls/ctl3dv2.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ctl3dv2.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ctl3dv2.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ctl3dv2.dll16/%) dlls/ctl3dv2.dll16: dlls/ctl3dv2.dll16/Makefile \$(MAKEDEP)
dlls/ctl3dv2.dll16/Makefile: dlls/ctl3dv2.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ctl3dv2.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/d3d10/libd3d10.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3d10/libd3d10.$IMPLIBEXT dlls/d3d10/libd3d10.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/d3d10/libd3d10.$IMPLIBEXT dlls/d3d10/libd3d10.cross.a: dlls/d3d10/d3d10.spec dlls/d3d10/Makefile
	@cd dlls/d3d10 && \$(MAKE) \`basename \$@\`
dlls/d3d10 dlls/d3d10/__install__ dlls/d3d10/__install-lib__ dlls/d3d10/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3d10"
test "x$enable_d3d10" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3d10"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3d10/%) dlls/d3d10: dlls/d3d10/Makefile \$(MAKEDEP)
dlls/d3d10/Makefile: dlls/d3d10/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3d10/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3d10/tests: __builddeps__
dlls/d3d10/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "d3d10_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "d3d10_test.exe: \$(TOPOBJDIR)/dlls/d3d10/tests/d3d10_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/d3d10/tests/d3d10_test.exe$DLLEXT \$@ && \$(STRIP) \$@
d3d10_test.rc:
	echo \"d3d10_test.exe TESTRES \\\"d3d10_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
d3d10_test.res: d3d10_test.rc d3d10_test.exe"
wine_fn_append_file ALL_DIRS "dlls/d3d10/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/d3d10/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3d10/tests/%) dlls/d3d10/tests: dlls/d3d10/tests/Makefile \$(MAKEDEP)
dlls/d3d10/tests/Makefile: dlls/d3d10/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/d3d10/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/d3d10core/libd3d10core.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3d10core/libd3d10core.$IMPLIBEXT dlls/d3d10core/libd3d10core.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/d3d10core/libd3d10core.$IMPLIBEXT dlls/d3d10core/libd3d10core.cross.a: dlls/d3d10core/d3d10core.spec dlls/d3d10core/Makefile
	@cd dlls/d3d10core && \$(MAKE) \`basename \$@\`
dlls/d3d10core dlls/d3d10core/__install__ dlls/d3d10core/__install-lib__ dlls/d3d10core/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3d10core"
test "x$enable_d3d10core" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3d10core"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3d10core/%) dlls/d3d10core: dlls/d3d10core/Makefile \$(MAKEDEP)
dlls/d3d10core/Makefile: dlls/d3d10core/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3d10core/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3d10core/tests: __builddeps__
dlls/d3d10core/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "d3d10core_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "d3d10core_test.exe: \$(TOPOBJDIR)/dlls/d3d10core/tests/d3d10core_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/d3d10core/tests/d3d10core_test.exe$DLLEXT \$@ && \$(STRIP) \$@
d3d10core_test.rc:
	echo \"d3d10core_test.exe TESTRES \\\"d3d10core_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
d3d10core_test.res: d3d10core_test.rc d3d10core_test.exe"
wine_fn_append_file ALL_DIRS "dlls/d3d10core/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/d3d10core/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3d10core/tests/%) dlls/d3d10core/tests: dlls/d3d10core/tests/Makefile \$(MAKEDEP)
dlls/d3d10core/tests/Makefile: dlls/d3d10core/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/d3d10core/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/d3d8/libd3d8.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3d8/libd3d8.$IMPLIBEXT dlls/d3d8/libd3d8.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/d3d8/libd3d8.$IMPLIBEXT dlls/d3d8/libd3d8.cross.a: dlls/d3d8/d3d8.spec dlls/d3d8/Makefile
	@cd dlls/d3d8 && \$(MAKE) \`basename \$@\`
dlls/d3d8 dlls/d3d8/__install__ dlls/d3d8/__install-lib__ dlls/d3d8/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3d8"
test "x$enable_d3d8" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3d8"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3d8/%) dlls/d3d8: dlls/d3d8/Makefile \$(MAKEDEP)
dlls/d3d8/Makefile: dlls/d3d8/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3d8/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3d8/tests: __builddeps__
dlls/d3d8/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "d3d8_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "d3d8_test.exe: \$(TOPOBJDIR)/dlls/d3d8/tests/d3d8_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/d3d8/tests/d3d8_test.exe$DLLEXT \$@ && \$(STRIP) \$@
d3d8_test.rc:
	echo \"d3d8_test.exe TESTRES \\\"d3d8_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
d3d8_test.res: d3d8_test.rc d3d8_test.exe"
wine_fn_append_file ALL_DIRS "dlls/d3d8/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/d3d8/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3d8/tests/%) dlls/d3d8/tests: dlls/d3d8/tests/Makefile \$(MAKEDEP)
dlls/d3d8/tests/Makefile: dlls/d3d8/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/d3d8/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/d3d9/libd3d9.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3d9/libd3d9.$IMPLIBEXT dlls/d3d9/libd3d9.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/d3d9/libd3d9.$IMPLIBEXT dlls/d3d9/libd3d9.cross.a: dlls/d3d9/d3d9.spec dlls/d3d9/Makefile
	@cd dlls/d3d9 && \$(MAKE) \`basename \$@\`
dlls/d3d9 dlls/d3d9/__install__ dlls/d3d9/__install-lib__ dlls/d3d9/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3d9"
test "x$enable_d3d9" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3d9"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3d9/%) dlls/d3d9: dlls/d3d9/Makefile \$(MAKEDEP)
dlls/d3d9/Makefile: dlls/d3d9/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3d9/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3d9/tests: __builddeps__
dlls/d3d9/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "d3d9_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "d3d9_test.exe: \$(TOPOBJDIR)/dlls/d3d9/tests/d3d9_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/d3d9/tests/d3d9_test.exe$DLLEXT \$@ && \$(STRIP) \$@
d3d9_test.rc:
	echo \"d3d9_test.exe TESTRES \\\"d3d9_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
d3d9_test.res: d3d9_test.rc d3d9_test.exe"
wine_fn_append_file ALL_DIRS "dlls/d3d9/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/d3d9/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3d9/tests/%) dlls/d3d9/tests: dlls/d3d9/tests/Makefile \$(MAKEDEP)
dlls/d3d9/tests/Makefile: dlls/d3d9/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/d3d9/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/d3dim/libd3dim.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dim/libd3dim.$IMPLIBEXT dlls/d3dim/libd3dim.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/d3dim/libd3dim.$IMPLIBEXT dlls/d3dim/libd3dim.cross.a: dlls/d3dim/d3dim.spec dlls/d3dim/Makefile
	@cd dlls/d3dim && \$(MAKE) \`basename \$@\`
dlls/d3dim dlls/d3dim/__install__ dlls/d3dim/__install-lib__ dlls/d3dim/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dim"
test "x$enable_d3dim" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dim"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dim/%) dlls/d3dim: dlls/d3dim/Makefile \$(MAKEDEP)
dlls/d3dim/Makefile: dlls/d3dim/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dim/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/d3drm/libd3drm.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3drm/libd3drm.$IMPLIBEXT dlls/d3drm/libd3drm.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/d3drm/libd3drm.$IMPLIBEXT dlls/d3drm/libd3drm.cross.a: dlls/d3drm/d3drm.spec dlls/d3drm/Makefile
	@cd dlls/d3drm && \$(MAKE) \`basename \$@\`
dlls/d3drm dlls/d3drm/__install__ dlls/d3drm/__install-lib__ dlls/d3drm/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3drm"
test "x$enable_d3drm" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3drm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3drm/%) dlls/d3drm: dlls/d3drm/Makefile \$(MAKEDEP)
dlls/d3drm/Makefile: dlls/d3drm/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3drm/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3drm/tests: __builddeps__
dlls/d3drm/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "d3drm_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "d3drm_test.exe: \$(TOPOBJDIR)/dlls/d3drm/tests/d3drm_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/d3drm/tests/d3drm_test.exe$DLLEXT \$@ && \$(STRIP) \$@
d3drm_test.rc:
	echo \"d3drm_test.exe TESTRES \\\"d3drm_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
d3drm_test.res: d3drm_test.rc d3drm_test.exe"
wine_fn_append_file ALL_DIRS "dlls/d3drm/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/d3drm/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3drm/tests/%) dlls/d3drm/tests: dlls/d3drm/tests/Makefile \$(MAKEDEP)
dlls/d3drm/tests/Makefile: dlls/d3drm/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/d3drm/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_24 dlls/d3dx9_24/__install__ dlls/d3dx9_24/__install-lib__ dlls/d3dx9_24/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_24"
test "x$enable_d3dx9_24" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_24"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_24/%) dlls/d3dx9_24: dlls/d3dx9_24/Makefile \$(MAKEDEP)
dlls/d3dx9_24/Makefile: dlls/d3dx9_24/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_24/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_25 dlls/d3dx9_25/__install__ dlls/d3dx9_25/__install-lib__ dlls/d3dx9_25/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_25"
test "x$enable_d3dx9_25" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_25"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_25/%) dlls/d3dx9_25: dlls/d3dx9_25/Makefile \$(MAKEDEP)
dlls/d3dx9_25/Makefile: dlls/d3dx9_25/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_25/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_26 dlls/d3dx9_26/__install__ dlls/d3dx9_26/__install-lib__ dlls/d3dx9_26/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_26"
test "x$enable_d3dx9_26" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_26"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_26/%) dlls/d3dx9_26: dlls/d3dx9_26/Makefile \$(MAKEDEP)
dlls/d3dx9_26/Makefile: dlls/d3dx9_26/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_26/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_27 dlls/d3dx9_27/__install__ dlls/d3dx9_27/__install-lib__ dlls/d3dx9_27/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_27"
test "x$enable_d3dx9_27" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_27"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_27/%) dlls/d3dx9_27: dlls/d3dx9_27/Makefile \$(MAKEDEP)
dlls/d3dx9_27/Makefile: dlls/d3dx9_27/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_27/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_28 dlls/d3dx9_28/__install__ dlls/d3dx9_28/__install-lib__ dlls/d3dx9_28/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_28"
test "x$enable_d3dx9_28" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_28"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_28/%) dlls/d3dx9_28: dlls/d3dx9_28/Makefile \$(MAKEDEP)
dlls/d3dx9_28/Makefile: dlls/d3dx9_28/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_28/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_29 dlls/d3dx9_29/__install__ dlls/d3dx9_29/__install-lib__ dlls/d3dx9_29/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_29"
test "x$enable_d3dx9_29" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_29"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_29/%) dlls/d3dx9_29: dlls/d3dx9_29/Makefile \$(MAKEDEP)
dlls/d3dx9_29/Makefile: dlls/d3dx9_29/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_29/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_30 dlls/d3dx9_30/__install__ dlls/d3dx9_30/__install-lib__ dlls/d3dx9_30/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_30"
test "x$enable_d3dx9_30" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_30"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_30/%) dlls/d3dx9_30: dlls/d3dx9_30/Makefile \$(MAKEDEP)
dlls/d3dx9_30/Makefile: dlls/d3dx9_30/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_30/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_31 dlls/d3dx9_31/__install__ dlls/d3dx9_31/__install-lib__ dlls/d3dx9_31/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_31"
test "x$enable_d3dx9_31" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_31"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_31/%) dlls/d3dx9_31: dlls/d3dx9_31/Makefile \$(MAKEDEP)
dlls/d3dx9_31/Makefile: dlls/d3dx9_31/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_31/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_32 dlls/d3dx9_32/__install__ dlls/d3dx9_32/__install-lib__ dlls/d3dx9_32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_32"
test "x$enable_d3dx9_32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_32/%) dlls/d3dx9_32: dlls/d3dx9_32/Makefile \$(MAKEDEP)
dlls/d3dx9_32/Makefile: dlls/d3dx9_32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_33 dlls/d3dx9_33/__install__ dlls/d3dx9_33/__install-lib__ dlls/d3dx9_33/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_33"
test "x$enable_d3dx9_33" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_33"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_33/%) dlls/d3dx9_33: dlls/d3dx9_33/Makefile \$(MAKEDEP)
dlls/d3dx9_33/Makefile: dlls/d3dx9_33/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_33/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_34 dlls/d3dx9_34/__install__ dlls/d3dx9_34/__install-lib__ dlls/d3dx9_34/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_34"
test "x$enable_d3dx9_34" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_34"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_34/%) dlls/d3dx9_34: dlls/d3dx9_34/Makefile \$(MAKEDEP)
dlls/d3dx9_34/Makefile: dlls/d3dx9_34/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_34/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_35 dlls/d3dx9_35/__install__ dlls/d3dx9_35/__install-lib__ dlls/d3dx9_35/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_35"
test "x$enable_d3dx9_35" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_35"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_35/%) dlls/d3dx9_35: dlls/d3dx9_35/Makefile \$(MAKEDEP)
dlls/d3dx9_35/Makefile: dlls/d3dx9_35/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_35/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/d3dx9_36/libd3dx9.$IMPLIBEXT" && wine_fn_append_file ALL_IMPORT_LIBS "dlls/libd3dx9.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_36/libd3dx9.$IMPLIBEXT dlls/d3dx9_36/libd3dx9.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/libd3dx9.$IMPLIBEXT: dlls/d3dx9_36/libd3dx9.$IMPLIBEXT
	\$(RM) \$@ && \$(LN_S) d3dx9_36/libd3dx9.$IMPLIBEXT \$@
dlls/libd3dx9.cross.a: dlls/d3dx9_36/libd3dx9.cross.a
	\$(RM) \$@ && \$(LN_S) d3dx9_36/libd3dx9.cross.a \$@
clean::
	\$(RM) dlls/libd3dx9.$IMPLIBEXT
dlls/d3dx9_36/libd3dx9.$IMPLIBEXT dlls/d3dx9_36/libd3dx9.cross.a: dlls/d3dx9_36/d3dx9_36.spec dlls/d3dx9_36/Makefile
	@cd dlls/d3dx9_36 && \$(MAKE) \`basename \$@\`
dlls/d3dx9_36 dlls/d3dx9_36/__install__ dlls/d3dx9_36/__install-lib__ dlls/d3dx9_36/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_36"
test "x$enable_d3dx9_36" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_36"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_36/%) dlls/d3dx9_36: dlls/d3dx9_36/Makefile \$(MAKEDEP)
dlls/d3dx9_36/Makefile: dlls/d3dx9_36/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_36/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_36/tests: __builddeps__
dlls/d3dx9_36/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "d3dx9_36_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "d3dx9_36_test.exe: \$(TOPOBJDIR)/dlls/d3dx9_36/tests/d3dx9_36_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/d3dx9_36/tests/d3dx9_36_test.exe$DLLEXT \$@ && \$(STRIP) \$@
d3dx9_36_test.rc:
	echo \"d3dx9_36_test.exe TESTRES \\\"d3dx9_36_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
d3dx9_36_test.res: d3dx9_36_test.rc d3dx9_36_test.exe"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_36/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/d3dx9_36/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_36/tests/%) dlls/d3dx9_36/tests: dlls/d3dx9_36/tests/Makefile \$(MAKEDEP)
dlls/d3dx9_36/tests/Makefile: dlls/d3dx9_36/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_36/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_37 dlls/d3dx9_37/__install__ dlls/d3dx9_37/__install-lib__ dlls/d3dx9_37/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_37"
test "x$enable_d3dx9_37" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_37"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_37/%) dlls/d3dx9_37: dlls/d3dx9_37/Makefile \$(MAKEDEP)
dlls/d3dx9_37/Makefile: dlls/d3dx9_37/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_37/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_38 dlls/d3dx9_38/__install__ dlls/d3dx9_38/__install-lib__ dlls/d3dx9_38/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_38"
test "x$enable_d3dx9_38" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_38"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_38/%) dlls/d3dx9_38: dlls/d3dx9_38/Makefile \$(MAKEDEP)
dlls/d3dx9_38/Makefile: dlls/d3dx9_38/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_38/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_39 dlls/d3dx9_39/__install__ dlls/d3dx9_39/__install-lib__ dlls/d3dx9_39/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_39"
test "x$enable_d3dx9_39" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_39"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_39/%) dlls/d3dx9_39: dlls/d3dx9_39/Makefile \$(MAKEDEP)
dlls/d3dx9_39/Makefile: dlls/d3dx9_39/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_39/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_40 dlls/d3dx9_40/__install__ dlls/d3dx9_40/__install-lib__ dlls/d3dx9_40/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_40"
test "x$enable_d3dx9_40" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_40"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_40/%) dlls/d3dx9_40: dlls/d3dx9_40/Makefile \$(MAKEDEP)
dlls/d3dx9_40/Makefile: dlls/d3dx9_40/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_40/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_41 dlls/d3dx9_41/__install__ dlls/d3dx9_41/__install-lib__ dlls/d3dx9_41/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_41"
test "x$enable_d3dx9_41" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_41"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_41/%) dlls/d3dx9_41: dlls/d3dx9_41/Makefile \$(MAKEDEP)
dlls/d3dx9_41/Makefile: dlls/d3dx9_41/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_41/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dx9_42 dlls/d3dx9_42/__install__ dlls/d3dx9_42/__install-lib__ dlls/d3dx9_42/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dx9_42"
test "x$enable_d3dx9_42" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dx9_42"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dx9_42/%) dlls/d3dx9_42: dlls/d3dx9_42/Makefile \$(MAKEDEP)
dlls/d3dx9_42/Makefile: dlls/d3dx9_42/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dx9_42/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/d3dxof/libd3dxof.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dxof/libd3dxof.$IMPLIBEXT dlls/d3dxof/libd3dxof.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/d3dxof/libd3dxof.$IMPLIBEXT dlls/d3dxof/libd3dxof.cross.a: dlls/d3dxof/d3dxof.spec dlls/d3dxof/Makefile
	@cd dlls/d3dxof && \$(MAKE) \`basename \$@\`
dlls/d3dxof dlls/d3dxof/__install__ dlls/d3dxof/__install-lib__ dlls/d3dxof/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/d3dxof"
test "x$enable_d3dxof" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/d3dxof"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dxof/%) dlls/d3dxof: dlls/d3dxof/Makefile \$(MAKEDEP)
dlls/d3dxof/Makefile: dlls/d3dxof/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/d3dxof/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/d3dxof/tests: __builddeps__
dlls/d3dxof/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "d3dxof_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "d3dxof_test.exe: \$(TOPOBJDIR)/dlls/d3dxof/tests/d3dxof_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/d3dxof/tests/d3dxof_test.exe$DLLEXT \$@ && \$(STRIP) \$@
d3dxof_test.rc:
	echo \"d3dxof_test.exe TESTRES \\\"d3dxof_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
d3dxof_test.res: d3dxof_test.rc d3dxof_test.exe"
wine_fn_append_file ALL_DIRS "dlls/d3dxof/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/d3dxof/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/d3dxof/tests/%) dlls/d3dxof/tests: dlls/d3dxof/tests/Makefile \$(MAKEDEP)
dlls/d3dxof/tests/Makefile: dlls/d3dxof/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/d3dxof/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dbghelp/libdbghelp.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dbghelp/libdbghelp.$IMPLIBEXT dlls/dbghelp/libdbghelp.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dbghelp/libdbghelp.$IMPLIBEXT dlls/dbghelp/libdbghelp.cross.a: dlls/dbghelp/dbghelp.spec dlls/dbghelp/Makefile
	@cd dlls/dbghelp && \$(MAKE) \`basename \$@\`
dlls/dbghelp dlls/dbghelp/__install__ dlls/dbghelp/__install-lib__ dlls/dbghelp/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dbghelp"
test "x$enable_dbghelp" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dbghelp"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dbghelp/%) dlls/dbghelp: dlls/dbghelp/Makefile \$(MAKEDEP)
dlls/dbghelp/Makefile: dlls/dbghelp/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dbghelp/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dciman32/libdciman32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dciman32/libdciman32.$IMPLIBEXT dlls/dciman32/libdciman32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dciman32/libdciman32.$IMPLIBEXT dlls/dciman32/libdciman32.cross.a: dlls/dciman32/dciman32.spec dlls/dciman32/Makefile
	@cd dlls/dciman32 && \$(MAKE) \`basename \$@\`
dlls/dciman32 dlls/dciman32/__install__ dlls/dciman32/__install-lib__ dlls/dciman32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dciman32"
test "x$enable_dciman32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dciman32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dciman32/%) dlls/dciman32: dlls/dciman32/Makefile \$(MAKEDEP)
dlls/dciman32/Makefile: dlls/dciman32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dciman32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ddeml.dll16 dlls/ddeml.dll16/__install__ dlls/ddeml.dll16/__install-lib__ dlls/ddeml.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ddeml.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ddeml.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ddeml.dll16/%) dlls/ddeml.dll16: dlls/ddeml.dll16/Makefile \$(MAKEDEP)
dlls/ddeml.dll16/Makefile: dlls/ddeml.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ddeml.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/ddraw/libddraw.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ddraw/libddraw.$IMPLIBEXT dlls/ddraw/libddraw.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/ddraw/libddraw.$IMPLIBEXT dlls/ddraw/libddraw.cross.a: dlls/ddraw/ddraw.spec dlls/ddraw/Makefile
	@cd dlls/ddraw && \$(MAKE) \`basename \$@\`
dlls/ddraw dlls/ddraw/__install__ dlls/ddraw/__install-lib__ dlls/ddraw/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ddraw"
test "x$enable_ddraw" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ddraw"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ddraw/%) dlls/ddraw: dlls/ddraw/Makefile \$(MAKEDEP)
dlls/ddraw/Makefile: dlls/ddraw/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ddraw/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ddraw/tests: __builddeps__
dlls/ddraw/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "ddraw_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "ddraw_test.exe: \$(TOPOBJDIR)/dlls/ddraw/tests/ddraw_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/ddraw/tests/ddraw_test.exe$DLLEXT \$@ && \$(STRIP) \$@
ddraw_test.rc:
	echo \"ddraw_test.exe TESTRES \\\"ddraw_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
ddraw_test.res: ddraw_test.rc ddraw_test.exe"
wine_fn_append_file ALL_DIRS "dlls/ddraw/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/ddraw/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ddraw/tests/%) dlls/ddraw/tests: dlls/ddraw/tests/Makefile \$(MAKEDEP)
dlls/ddraw/tests/Makefile: dlls/ddraw/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/ddraw/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ddrawex dlls/ddrawex/__install__ dlls/ddrawex/__install-lib__ dlls/ddrawex/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ddrawex"
test "x$enable_ddrawex" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ddrawex"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ddrawex/%) dlls/ddrawex: dlls/ddrawex/Makefile \$(MAKEDEP)
dlls/ddrawex/Makefile: dlls/ddrawex/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ddrawex/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ddrawex/tests: __builddeps__
dlls/ddrawex/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "ddrawex_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "ddrawex_test.exe: \$(TOPOBJDIR)/dlls/ddrawex/tests/ddrawex_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/ddrawex/tests/ddrawex_test.exe$DLLEXT \$@ && \$(STRIP) \$@
ddrawex_test.rc:
	echo \"ddrawex_test.exe TESTRES \\\"ddrawex_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
ddrawex_test.res: ddrawex_test.rc ddrawex_test.exe"
wine_fn_append_file ALL_DIRS "dlls/ddrawex/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/ddrawex/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ddrawex/tests/%) dlls/ddrawex/tests: dlls/ddrawex/tests/Makefile \$(MAKEDEP)
dlls/ddrawex/tests/Makefile: dlls/ddrawex/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/ddrawex/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/devenum dlls/devenum/__install__ dlls/devenum/__install-lib__ dlls/devenum/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/devenum"
test "x$enable_devenum" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/devenum"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/devenum/%) dlls/devenum: dlls/devenum/Makefile \$(MAKEDEP)
dlls/devenum/Makefile: dlls/devenum/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/devenum/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dinput/libdinput.$IMPLIBEXT" && wine_fn_append_file ALL_IMPORT_LIBS "dlls/dinput/libdinput.$STATIC_IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dinput/libdinput.$IMPLIBEXT dlls/dinput/libdinput.$STATIC_IMPLIBEXT dlls/dinput/libdinput.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dinput/libdinput.def: dlls/dinput/dinput.spec dlls/dinput/Makefile
	@cd dlls/dinput && \$(MAKE) \`basename \$@\`
dlls/dinput/libdinput.$STATIC_IMPLIBEXT dlls/dinput/libdinput.cross.a: dlls/dinput/Makefile dummy
	@cd dlls/dinput && \$(MAKE) \`basename \$@\`
dlls/dinput dlls/dinput/__install__ dlls/dinput/__install-lib__ dlls/dinput/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dinput"
test "x$enable_dinput" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dinput"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dinput/%) dlls/dinput: dlls/dinput/Makefile \$(MAKEDEP)
dlls/dinput/Makefile: dlls/dinput/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dinput/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dinput/tests: __builddeps__
dlls/dinput/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "dinput_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "dinput_test.exe: \$(TOPOBJDIR)/dlls/dinput/tests/dinput_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/dinput/tests/dinput_test.exe$DLLEXT \$@ && \$(STRIP) \$@
dinput_test.rc:
	echo \"dinput_test.exe TESTRES \\\"dinput_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
dinput_test.res: dinput_test.rc dinput_test.exe"
wine_fn_append_file ALL_DIRS "dlls/dinput/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/dinput/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dinput/tests/%) dlls/dinput/tests: dlls/dinput/tests/Makefile \$(MAKEDEP)
dlls/dinput/tests/Makefile: dlls/dinput/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/dinput/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dinput8/libdinput8.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dinput8/libdinput8.$IMPLIBEXT dlls/dinput8/libdinput8.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dinput8/libdinput8.$IMPLIBEXT dlls/dinput8/libdinput8.cross.a: dlls/dinput8/dinput8.spec dlls/dinput8/Makefile
	@cd dlls/dinput8 && \$(MAKE) \`basename \$@\`
dlls/dinput8 dlls/dinput8/__install__ dlls/dinput8/__install-lib__ dlls/dinput8/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dinput8"
test "x$enable_dinput8" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dinput8"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dinput8/%) dlls/dinput8: dlls/dinput8/Makefile \$(MAKEDEP)
dlls/dinput8/Makefile: dlls/dinput8/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dinput8/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dispdib.dll16 dlls/dispdib.dll16/__install__ dlls/dispdib.dll16/__install-lib__ dlls/dispdib.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dispdib.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dispdib.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dispdib.dll16/%) dlls/dispdib.dll16: dlls/dispdib.dll16/Makefile \$(MAKEDEP)
dlls/dispdib.dll16/Makefile: dlls/dispdib.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dispdib.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/display.drv16 dlls/display.drv16/__install__ dlls/display.drv16/__install-lib__ dlls/display.drv16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/display.drv16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/display.drv16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/display.drv16/%) dlls/display.drv16: dlls/display.drv16/Makefile \$(MAKEDEP)
dlls/display.drv16/Makefile: dlls/display.drv16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/display.drv16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmband dlls/dmband/__install__ dlls/dmband/__install-lib__ dlls/dmband/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmband"
test "x$enable_dmband" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmband"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmband/%) dlls/dmband: dlls/dmband/Makefile \$(MAKEDEP)
dlls/dmband/Makefile: dlls/dmband/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmband/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmcompos dlls/dmcompos/__install__ dlls/dmcompos/__install-lib__ dlls/dmcompos/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmcompos"
test "x$enable_dmcompos" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmcompos"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmcompos/%) dlls/dmcompos: dlls/dmcompos/Makefile \$(MAKEDEP)
dlls/dmcompos/Makefile: dlls/dmcompos/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmcompos/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmime dlls/dmime/__install__ dlls/dmime/__install-lib__ dlls/dmime/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmime"
test "x$enable_dmime" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmime"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmime/%) dlls/dmime: dlls/dmime/Makefile \$(MAKEDEP)
dlls/dmime/Makefile: dlls/dmime/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmime/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmloader dlls/dmloader/__install__ dlls/dmloader/__install-lib__ dlls/dmloader/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmloader"
test "x$enable_dmloader" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmloader"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmloader/%) dlls/dmloader: dlls/dmloader/Makefile \$(MAKEDEP)
dlls/dmloader/Makefile: dlls/dmloader/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmloader/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmloader/tests: __builddeps__
dlls/dmloader/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "dmloader_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "dmloader_test.exe: \$(TOPOBJDIR)/dlls/dmloader/tests/dmloader_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/dmloader/tests/dmloader_test.exe$DLLEXT \$@ && \$(STRIP) \$@
dmloader_test.rc:
	echo \"dmloader_test.exe TESTRES \\\"dmloader_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
dmloader_test.res: dmloader_test.rc dmloader_test.exe"
wine_fn_append_file ALL_DIRS "dlls/dmloader/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/dmloader/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmloader/tests/%) dlls/dmloader/tests: dlls/dmloader/tests/Makefile \$(MAKEDEP)
dlls/dmloader/tests/Makefile: dlls/dmloader/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/dmloader/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmscript dlls/dmscript/__install__ dlls/dmscript/__install-lib__ dlls/dmscript/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmscript"
test "x$enable_dmscript" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmscript"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmscript/%) dlls/dmscript: dlls/dmscript/Makefile \$(MAKEDEP)
dlls/dmscript/Makefile: dlls/dmscript/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmscript/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmstyle dlls/dmstyle/__install__ dlls/dmstyle/__install-lib__ dlls/dmstyle/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmstyle"
test "x$enable_dmstyle" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmstyle"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmstyle/%) dlls/dmstyle: dlls/dmstyle/Makefile \$(MAKEDEP)
dlls/dmstyle/Makefile: dlls/dmstyle/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmstyle/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmsynth dlls/dmsynth/__install__ dlls/dmsynth/__install-lib__ dlls/dmsynth/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmsynth"
test "x$enable_dmsynth" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmsynth"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmsynth/%) dlls/dmsynth: dlls/dmsynth/Makefile \$(MAKEDEP)
dlls/dmsynth/Makefile: dlls/dmsynth/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmsynth/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmusic dlls/dmusic/__install__ dlls/dmusic/__install-lib__ dlls/dmusic/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmusic"
test "x$enable_dmusic" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmusic"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmusic/%) dlls/dmusic: dlls/dmusic/Makefile \$(MAKEDEP)
dlls/dmusic/Makefile: dlls/dmusic/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmusic/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dmusic32/libdmusic32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dmusic32/libdmusic32.$IMPLIBEXT dlls/dmusic32/libdmusic32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dmusic32/libdmusic32.$IMPLIBEXT dlls/dmusic32/libdmusic32.cross.a: dlls/dmusic32/dmusic32.spec dlls/dmusic32/Makefile
	@cd dlls/dmusic32 && \$(MAKE) \`basename \$@\`
dlls/dmusic32 dlls/dmusic32/__install__ dlls/dmusic32/__install-lib__ dlls/dmusic32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dmusic32"
test "x$enable_dmusic32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dmusic32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dmusic32/%) dlls/dmusic32: dlls/dmusic32/Makefile \$(MAKEDEP)
dlls/dmusic32/Makefile: dlls/dmusic32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dmusic32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dnsapi/libdnsapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dnsapi/libdnsapi.$IMPLIBEXT dlls/dnsapi/libdnsapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dnsapi/libdnsapi.$IMPLIBEXT dlls/dnsapi/libdnsapi.cross.a: dlls/dnsapi/dnsapi.spec dlls/dnsapi/Makefile
	@cd dlls/dnsapi && \$(MAKE) \`basename \$@\`
dlls/dnsapi dlls/dnsapi/__install__ dlls/dnsapi/__install-lib__ dlls/dnsapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dnsapi"
test "x$enable_dnsapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dnsapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dnsapi/%) dlls/dnsapi: dlls/dnsapi/Makefile \$(MAKEDEP)
dlls/dnsapi/Makefile: dlls/dnsapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dnsapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dnsapi/tests: __builddeps__
dlls/dnsapi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "dnsapi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "dnsapi_test.exe: \$(TOPOBJDIR)/dlls/dnsapi/tests/dnsapi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/dnsapi/tests/dnsapi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
dnsapi_test.rc:
	echo \"dnsapi_test.exe TESTRES \\\"dnsapi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
dnsapi_test.res: dnsapi_test.rc dnsapi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/dnsapi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/dnsapi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dnsapi/tests/%) dlls/dnsapi/tests: dlls/dnsapi/tests/Makefile \$(MAKEDEP)
dlls/dnsapi/tests/Makefile: dlls/dnsapi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/dnsapi/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dplay/libdplay.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dplay/libdplay.$IMPLIBEXT dlls/dplay/libdplay.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dplay/libdplay.$IMPLIBEXT dlls/dplay/libdplay.cross.a: dlls/dplay/dplay.spec dlls/dplay/Makefile
	@cd dlls/dplay && \$(MAKE) \`basename \$@\`
dlls/dplay dlls/dplay/__install__ dlls/dplay/__install-lib__ dlls/dplay/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dplay"
test "x$enable_dplay" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dplay"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dplay/%) dlls/dplay: dlls/dplay/Makefile \$(MAKEDEP)
dlls/dplay/Makefile: dlls/dplay/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dplay/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dplayx/libdplayx.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dplayx/libdplayx.$IMPLIBEXT dlls/dplayx/libdplayx.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dplayx/libdplayx.$IMPLIBEXT dlls/dplayx/libdplayx.cross.a: dlls/dplayx/dplayx.spec dlls/dplayx/Makefile
	@cd dlls/dplayx && \$(MAKE) \`basename \$@\`
dlls/dplayx dlls/dplayx/__install__ dlls/dplayx/__install-lib__ dlls/dplayx/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dplayx"
test "x$enable_dplayx" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dplayx"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dplayx/%) dlls/dplayx: dlls/dplayx/Makefile \$(MAKEDEP)
dlls/dplayx/Makefile: dlls/dplayx/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dplayx/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dplayx/tests: __builddeps__
dlls/dplayx/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "dplayx_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "dplayx_test.exe: \$(TOPOBJDIR)/dlls/dplayx/tests/dplayx_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/dplayx/tests/dplayx_test.exe$DLLEXT \$@ && \$(STRIP) \$@
dplayx_test.rc:
	echo \"dplayx_test.exe TESTRES \\\"dplayx_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
dplayx_test.res: dplayx_test.rc dplayx_test.exe"
wine_fn_append_file ALL_DIRS "dlls/dplayx/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/dplayx/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dplayx/tests/%) dlls/dplayx/tests: dlls/dplayx/tests/Makefile \$(MAKEDEP)
dlls/dplayx/tests/Makefile: dlls/dplayx/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/dplayx/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dpnaddr dlls/dpnaddr/__install__ dlls/dpnaddr/__install-lib__ dlls/dpnaddr/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dpnaddr"
test "x$enable_dpnaddr" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dpnaddr"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dpnaddr/%) dlls/dpnaddr: dlls/dpnaddr/Makefile \$(MAKEDEP)
dlls/dpnaddr/Makefile: dlls/dpnaddr/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dpnaddr/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dpnet/libdpnet.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dpnet/libdpnet.$IMPLIBEXT dlls/dpnet/libdpnet.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dpnet/libdpnet.$IMPLIBEXT dlls/dpnet/libdpnet.cross.a: dlls/dpnet/dpnet.spec dlls/dpnet/Makefile
	@cd dlls/dpnet && \$(MAKE) \`basename \$@\`
dlls/dpnet dlls/dpnet/__install__ dlls/dpnet/__install-lib__ dlls/dpnet/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dpnet"
test "x$enable_dpnet" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dpnet"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dpnet/%) dlls/dpnet: dlls/dpnet/Makefile \$(MAKEDEP)
dlls/dpnet/Makefile: dlls/dpnet/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dpnet/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dpnhpast dlls/dpnhpast/__install__ dlls/dpnhpast/__install-lib__ dlls/dpnhpast/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dpnhpast"
test "x$enable_dpnhpast" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dpnhpast"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dpnhpast/%) dlls/dpnhpast: dlls/dpnhpast/Makefile \$(MAKEDEP)
dlls/dpnhpast/Makefile: dlls/dpnhpast/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dpnhpast/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dpnlobby dlls/dpnlobby/__install__ dlls/dpnlobby/__install-lib__ dlls/dpnlobby/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dpnlobby"
test "x$enable_dpnlobby" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dpnlobby"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dpnlobby/%) dlls/dpnlobby: dlls/dpnlobby/Makefile \$(MAKEDEP)
dlls/dpnlobby/Makefile: dlls/dpnlobby/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dpnlobby/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dpwsockx dlls/dpwsockx/__install__ dlls/dpwsockx/__install-lib__ dlls/dpwsockx/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dpwsockx"
test "x$enable_dpwsockx" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dpwsockx"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dpwsockx/%) dlls/dpwsockx: dlls/dpwsockx/Makefile \$(MAKEDEP)
dlls/dpwsockx/Makefile: dlls/dpwsockx/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dpwsockx/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/drmclien dlls/drmclien/__install__ dlls/drmclien/__install-lib__ dlls/drmclien/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/drmclien"
test "x$enable_drmclien" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/drmclien"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/drmclien/%) dlls/drmclien: dlls/drmclien/Makefile \$(MAKEDEP)
dlls/drmclien/Makefile: dlls/drmclien/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/drmclien/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dsound/libdsound.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dsound/libdsound.$IMPLIBEXT dlls/dsound/libdsound.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dsound/libdsound.$IMPLIBEXT dlls/dsound/libdsound.cross.a: dlls/dsound/dsound.spec dlls/dsound/Makefile
	@cd dlls/dsound && \$(MAKE) \`basename \$@\`
dlls/dsound dlls/dsound/__install__ dlls/dsound/__install-lib__ dlls/dsound/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dsound"
test "x$enable_dsound" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dsound"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dsound/%) dlls/dsound: dlls/dsound/Makefile \$(MAKEDEP)
dlls/dsound/Makefile: dlls/dsound/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dsound/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dsound/tests: __builddeps__
dlls/dsound/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "dsound_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "dsound_test.exe: \$(TOPOBJDIR)/dlls/dsound/tests/dsound_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/dsound/tests/dsound_test.exe$DLLEXT \$@ && \$(STRIP) \$@
dsound_test.rc:
	echo \"dsound_test.exe TESTRES \\\"dsound_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
dsound_test.res: dsound_test.rc dsound_test.exe"
wine_fn_append_file ALL_DIRS "dlls/dsound/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/dsound/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dsound/tests/%) dlls/dsound/tests: dlls/dsound/tests/Makefile \$(MAKEDEP)
dlls/dsound/tests/Makefile: dlls/dsound/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/dsound/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dssenh dlls/dssenh/__install__ dlls/dssenh/__install-lib__ dlls/dssenh/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dssenh"
test "x$enable_dssenh" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dssenh"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dssenh/%) dlls/dssenh: dlls/dssenh/Makefile \$(MAKEDEP)
dlls/dssenh/Makefile: dlls/dssenh/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dssenh/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dswave dlls/dswave/__install__ dlls/dswave/__install-lib__ dlls/dswave/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dswave"
test "x$enable_dswave" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dswave"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dswave/%) dlls/dswave: dlls/dswave/Makefile \$(MAKEDEP)
dlls/dswave/Makefile: dlls/dswave/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dswave/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dwmapi/libdwmapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dwmapi/libdwmapi.$IMPLIBEXT dlls/dwmapi/libdwmapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dwmapi/libdwmapi.$IMPLIBEXT dlls/dwmapi/libdwmapi.cross.a: dlls/dwmapi/dwmapi.spec dlls/dwmapi/Makefile
	@cd dlls/dwmapi && \$(MAKE) \`basename \$@\`
dlls/dwmapi dlls/dwmapi/__install__ dlls/dwmapi/__install-lib__ dlls/dwmapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dwmapi"
test "x$enable_dwmapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dwmapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dwmapi/%) dlls/dwmapi: dlls/dwmapi/Makefile \$(MAKEDEP)
dlls/dwmapi/Makefile: dlls/dwmapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dwmapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dxdiagn dlls/dxdiagn/__install__ dlls/dxdiagn/__install-lib__ dlls/dxdiagn/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dxdiagn"
test "x$enable_dxdiagn" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dxdiagn"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dxdiagn/%) dlls/dxdiagn: dlls/dxdiagn/Makefile \$(MAKEDEP)
dlls/dxdiagn/Makefile: dlls/dxdiagn/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dxdiagn/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dxdiagn/tests: __builddeps__
dlls/dxdiagn/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "dxdiagn_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "dxdiagn_test.exe: \$(TOPOBJDIR)/dlls/dxdiagn/tests/dxdiagn_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/dxdiagn/tests/dxdiagn_test.exe$DLLEXT \$@ && \$(STRIP) \$@
dxdiagn_test.rc:
	echo \"dxdiagn_test.exe TESTRES \\\"dxdiagn_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
dxdiagn_test.res: dxdiagn_test.rc dxdiagn_test.exe"
wine_fn_append_file ALL_DIRS "dlls/dxdiagn/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/dxdiagn/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dxdiagn/tests/%) dlls/dxdiagn/tests: dlls/dxdiagn/tests/Makefile \$(MAKEDEP)
dlls/dxdiagn/tests/Makefile: dlls/dxdiagn/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/dxdiagn/tests/Makefile"

wine_fn_append_file ALL_STATIC_LIBS "dlls/dxerr8/libdxerr8.a"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dxerr8: tools/widl tools/winebuild tools/winegcc include
dlls/dxerr8/__install__ dlls/dxerr8/__install-dev__: dlls/dxerr8
dlls/dxerr8/libdxerr8.cross.a: dlls/dxerr8/Makefile tools/widl tools/winebuild tools/winegcc include dummy
	@cd dlls/dxerr8 && \$(MAKE) \`basename \$@\`"
wine_fn_append_file ALL_DIRS "dlls/dxerr8"
test "x$enable_dxerr8" != xno && wine_fn_append_file ALL_STATICLIB_DIRS "dlls/dxerr8"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dxerr8/%) dlls/dxerr8: dlls/dxerr8/Makefile \$(MAKEDEP)
dlls/dxerr8/Makefile: dlls/dxerr8/Makefile.in dlls/Makeimplib.rules config.status"
ac_config_files="$ac_config_files dlls/dxerr8/Makefile"

wine_fn_append_file ALL_STATIC_LIBS "dlls/dxerr9/libdxerr9.a"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dxerr9: tools/widl tools/winebuild tools/winegcc include
dlls/dxerr9/__install__ dlls/dxerr9/__install-dev__: dlls/dxerr9
dlls/dxerr9/libdxerr9.cross.a: dlls/dxerr9/Makefile tools/widl tools/winebuild tools/winegcc include dummy
	@cd dlls/dxerr9 && \$(MAKE) \`basename \$@\`"
wine_fn_append_file ALL_DIRS "dlls/dxerr9"
test "x$enable_dxerr9" != xno && wine_fn_append_file ALL_STATICLIB_DIRS "dlls/dxerr9"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dxerr9/%) dlls/dxerr9: dlls/dxerr9/Makefile \$(MAKEDEP)
dlls/dxerr9/Makefile: dlls/dxerr9/Makefile.in dlls/Makeimplib.rules config.status"
ac_config_files="$ac_config_files dlls/dxerr9/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/dxgi/libdxgi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dxgi/libdxgi.$IMPLIBEXT dlls/dxgi/libdxgi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/dxgi/libdxgi.$IMPLIBEXT dlls/dxgi/libdxgi.cross.a: dlls/dxgi/dxgi.spec dlls/dxgi/Makefile
	@cd dlls/dxgi && \$(MAKE) \`basename \$@\`
dlls/dxgi dlls/dxgi/__install__ dlls/dxgi/__install-lib__ dlls/dxgi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/dxgi"
test "x$enable_dxgi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dxgi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dxgi/%) dlls/dxgi: dlls/dxgi/Makefile \$(MAKEDEP)
dlls/dxgi/Makefile: dlls/dxgi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/dxgi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dxgi/tests: __builddeps__
dlls/dxgi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "dxgi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "dxgi_test.exe: \$(TOPOBJDIR)/dlls/dxgi/tests/dxgi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/dxgi/tests/dxgi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
dxgi_test.rc:
	echo \"dxgi_test.exe TESTRES \\\"dxgi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
dxgi_test.res: dxgi_test.rc dxgi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/dxgi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/dxgi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dxgi/tests/%) dlls/dxgi/tests: dlls/dxgi/tests/Makefile \$(MAKEDEP)
dlls/dxgi/tests/Makefile: dlls/dxgi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/dxgi/tests/Makefile"

wine_fn_append_file ALL_STATIC_LIBS "dlls/dxguid/libdxguid.a"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dxguid: tools/widl tools/winebuild tools/winegcc include
dlls/dxguid/__install__ dlls/dxguid/__install-dev__: dlls/dxguid
dlls/dxguid/libdxguid.cross.a: dlls/dxguid/Makefile tools/widl tools/winebuild tools/winegcc include dummy
	@cd dlls/dxguid && \$(MAKE) \`basename \$@\`"
wine_fn_append_file ALL_DIRS "dlls/dxguid"
test "x$enable_dxguid" != xno && wine_fn_append_file ALL_STATICLIB_DIRS "dlls/dxguid"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/dxguid/%) dlls/dxguid: dlls/dxguid/Makefile \$(MAKEDEP)
dlls/dxguid/Makefile: dlls/dxguid/Makefile.in dlls/Makeimplib.rules config.status"
ac_config_files="$ac_config_files dlls/dxguid/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/faultrep dlls/faultrep/__install__ dlls/faultrep/__install-lib__ dlls/faultrep/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/faultrep"
test "x$enable_faultrep" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/faultrep"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/faultrep/%) dlls/faultrep: dlls/faultrep/Makefile \$(MAKEDEP)
dlls/faultrep/Makefile: dlls/faultrep/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/faultrep/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/fltlib dlls/fltlib/__install__ dlls/fltlib/__install-lib__ dlls/fltlib/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/fltlib"
test "x$enable_fltlib" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/fltlib"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/fltlib/%) dlls/fltlib: dlls/fltlib/Makefile \$(MAKEDEP)
dlls/fltlib/Makefile: dlls/fltlib/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/fltlib/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/fusion dlls/fusion/__install__ dlls/fusion/__install-lib__ dlls/fusion/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/fusion"
test "x$enable_fusion" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/fusion"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/fusion/%) dlls/fusion: dlls/fusion/Makefile \$(MAKEDEP)
dlls/fusion/Makefile: dlls/fusion/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/fusion/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/fusion/tests: __builddeps__
dlls/fusion/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "fusion_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "fusion_test.exe: \$(TOPOBJDIR)/dlls/fusion/tests/fusion_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/fusion/tests/fusion_test.exe$DLLEXT \$@ && \$(STRIP) \$@
fusion_test.rc:
	echo \"fusion_test.exe TESTRES \\\"fusion_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
fusion_test.res: fusion_test.rc fusion_test.exe"
wine_fn_append_file ALL_DIRS "dlls/fusion/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/fusion/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/fusion/tests/%) dlls/fusion/tests: dlls/fusion/tests/Makefile \$(MAKEDEP)
dlls/fusion/tests/Makefile: dlls/fusion/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/fusion/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/fwpuclnt dlls/fwpuclnt/__install__ dlls/fwpuclnt/__install-lib__ dlls/fwpuclnt/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/fwpuclnt"
test "x$enable_fwpuclnt" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/fwpuclnt"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/fwpuclnt/%) dlls/fwpuclnt: dlls/fwpuclnt/Makefile \$(MAKEDEP)
dlls/fwpuclnt/Makefile: dlls/fwpuclnt/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/fwpuclnt/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/gdi.exe16 dlls/gdi.exe16/__install__ dlls/gdi.exe16/__install-lib__ dlls/gdi.exe16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/gdi.exe16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/gdi.exe16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/gdi.exe16/%) dlls/gdi.exe16: dlls/gdi.exe16/Makefile \$(MAKEDEP)
dlls/gdi.exe16/Makefile: dlls/gdi.exe16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/gdi.exe16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/gdi32/libgdi32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/gdi32/libgdi32.$IMPLIBEXT dlls/gdi32/libgdi32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/gdi32/libgdi32.$IMPLIBEXT dlls/gdi32/libgdi32.cross.a: dlls/gdi32/gdi32.spec dlls/gdi32/Makefile
	@cd dlls/gdi32 && \$(MAKE) \`basename \$@\`
dlls/gdi32 dlls/gdi32/__install__ dlls/gdi32/__install-lib__ dlls/gdi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/gdi32"
test "x$enable_gdi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/gdi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/gdi32/%) dlls/gdi32: dlls/gdi32/Makefile \$(MAKEDEP)
dlls/gdi32/Makefile: dlls/gdi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/gdi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/gdi32/tests: __builddeps__
dlls/gdi32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "gdi32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "gdi32_test.exe: \$(TOPOBJDIR)/dlls/gdi32/tests/gdi32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/gdi32/tests/gdi32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
gdi32_test.rc:
	echo \"gdi32_test.exe TESTRES \\\"gdi32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
gdi32_test.res: gdi32_test.rc gdi32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/gdi32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/gdi32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/gdi32/tests/%) dlls/gdi32/tests: dlls/gdi32/tests/Makefile \$(MAKEDEP)
dlls/gdi32/tests/Makefile: dlls/gdi32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/gdi32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/gdiplus/libgdiplus.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/gdiplus/libgdiplus.$IMPLIBEXT dlls/gdiplus/libgdiplus.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/gdiplus/libgdiplus.$IMPLIBEXT dlls/gdiplus/libgdiplus.cross.a: dlls/gdiplus/gdiplus.spec dlls/gdiplus/Makefile
	@cd dlls/gdiplus && \$(MAKE) \`basename \$@\`
dlls/gdiplus dlls/gdiplus/__install__ dlls/gdiplus/__install-lib__ dlls/gdiplus/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/gdiplus"
test "x$enable_gdiplus" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/gdiplus"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/gdiplus/%) dlls/gdiplus: dlls/gdiplus/Makefile \$(MAKEDEP)
dlls/gdiplus/Makefile: dlls/gdiplus/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/gdiplus/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/gdiplus/tests: __builddeps__
dlls/gdiplus/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "gdiplus_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "gdiplus_test.exe: \$(TOPOBJDIR)/dlls/gdiplus/tests/gdiplus_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/gdiplus/tests/gdiplus_test.exe$DLLEXT \$@ && \$(STRIP) \$@
gdiplus_test.rc:
	echo \"gdiplus_test.exe TESTRES \\\"gdiplus_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
gdiplus_test.res: gdiplus_test.rc gdiplus_test.exe"
wine_fn_append_file ALL_DIRS "dlls/gdiplus/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/gdiplus/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/gdiplus/tests/%) dlls/gdiplus/tests: dlls/gdiplus/tests/Makefile \$(MAKEDEP)
dlls/gdiplus/tests/Makefile: dlls/gdiplus/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/gdiplus/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/glu32/libglu32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/glu32/libglu32.$IMPLIBEXT dlls/glu32/libglu32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/glu32/libglu32.$IMPLIBEXT dlls/glu32/libglu32.cross.a: dlls/glu32/glu32.spec dlls/glu32/Makefile
	@cd dlls/glu32 && \$(MAKE) \`basename \$@\`
dlls/glu32 dlls/glu32/__install__ dlls/glu32/__install-lib__ dlls/glu32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/glu32"
test "x$enable_glu32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/glu32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/glu32/%) dlls/glu32: dlls/glu32/Makefile \$(MAKEDEP)
dlls/glu32/Makefile: dlls/glu32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/glu32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/gphoto2.ds dlls/gphoto2.ds/__install__ dlls/gphoto2.ds/__install-lib__ dlls/gphoto2.ds/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/gphoto2.ds"
test "x$enable_gphoto2_ds" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/gphoto2.ds"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/gphoto2.ds/%) dlls/gphoto2.ds: dlls/gphoto2.ds/Makefile \$(MAKEDEP)
dlls/gphoto2.ds/Makefile: dlls/gphoto2.ds/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/gphoto2.ds/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/gpkcsp dlls/gpkcsp/__install__ dlls/gpkcsp/__install-lib__ dlls/gpkcsp/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/gpkcsp"
test "x$enable_gpkcsp" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/gpkcsp"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/gpkcsp/%) dlls/gpkcsp: dlls/gpkcsp/Makefile \$(MAKEDEP)
dlls/gpkcsp/Makefile: dlls/gpkcsp/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/gpkcsp/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/hal dlls/hal/__install__ dlls/hal/__install-lib__ dlls/hal/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/hal"
test "x$enable_hal" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/hal"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/hal/%) dlls/hal: dlls/hal/Makefile \$(MAKEDEP)
dlls/hal/Makefile: dlls/hal/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/hal/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/hhctrl.ocx dlls/hhctrl.ocx/__install__ dlls/hhctrl.ocx/__install-lib__ dlls/hhctrl.ocx/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/hhctrl.ocx"
test "x$enable_hhctrl_ocx" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/hhctrl.ocx"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/hhctrl.ocx/%) dlls/hhctrl.ocx: dlls/hhctrl.ocx/Makefile \$(MAKEDEP)
dlls/hhctrl.ocx/Makefile: dlls/hhctrl.ocx/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/hhctrl.ocx/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/hid/libhid.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/hid/libhid.$IMPLIBEXT dlls/hid/libhid.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/hid/libhid.$IMPLIBEXT dlls/hid/libhid.cross.a: dlls/hid/hid.spec dlls/hid/Makefile
	@cd dlls/hid && \$(MAKE) \`basename \$@\`
dlls/hid dlls/hid/__install__ dlls/hid/__install-lib__ dlls/hid/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/hid"
test "x$enable_hid" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/hid"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/hid/%) dlls/hid: dlls/hid/Makefile \$(MAKEDEP)
dlls/hid/Makefile: dlls/hid/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/hid/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/hlink/libhlink.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/hlink/libhlink.$IMPLIBEXT dlls/hlink/libhlink.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/hlink/libhlink.$IMPLIBEXT dlls/hlink/libhlink.cross.a: dlls/hlink/hlink.spec dlls/hlink/Makefile
	@cd dlls/hlink && \$(MAKE) \`basename \$@\`
dlls/hlink dlls/hlink/__install__ dlls/hlink/__install-lib__ dlls/hlink/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/hlink"
test "x$enable_hlink" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/hlink"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/hlink/%) dlls/hlink: dlls/hlink/Makefile \$(MAKEDEP)
dlls/hlink/Makefile: dlls/hlink/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/hlink/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/hlink/tests: __builddeps__
dlls/hlink/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "hlink_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "hlink_test.exe: \$(TOPOBJDIR)/dlls/hlink/tests/hlink_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/hlink/tests/hlink_test.exe$DLLEXT \$@ && \$(STRIP) \$@
hlink_test.rc:
	echo \"hlink_test.exe TESTRES \\\"hlink_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
hlink_test.res: hlink_test.rc hlink_test.exe"
wine_fn_append_file ALL_DIRS "dlls/hlink/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/hlink/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/hlink/tests/%) dlls/hlink/tests: dlls/hlink/tests/Makefile \$(MAKEDEP)
dlls/hlink/tests/Makefile: dlls/hlink/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/hlink/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/hnetcfg dlls/hnetcfg/__install__ dlls/hnetcfg/__install-lib__ dlls/hnetcfg/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/hnetcfg"
test "x$enable_hnetcfg" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/hnetcfg"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/hnetcfg/%) dlls/hnetcfg: dlls/hnetcfg/Makefile \$(MAKEDEP)
dlls/hnetcfg/Makefile: dlls/hnetcfg/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/hnetcfg/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/httpapi dlls/httpapi/__install__ dlls/httpapi/__install-lib__ dlls/httpapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/httpapi"
test "x$enable_httpapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/httpapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/httpapi/%) dlls/httpapi: dlls/httpapi/Makefile \$(MAKEDEP)
dlls/httpapi/Makefile: dlls/httpapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/httpapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/iccvid dlls/iccvid/__install__ dlls/iccvid/__install-lib__ dlls/iccvid/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/iccvid"
test "x$enable_iccvid" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/iccvid"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/iccvid/%) dlls/iccvid: dlls/iccvid/Makefile \$(MAKEDEP)
dlls/iccvid/Makefile: dlls/iccvid/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/iccvid/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/icmp dlls/icmp/__install__ dlls/icmp/__install-lib__ dlls/icmp/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/icmp"
test "x$enable_icmp" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/icmp"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/icmp/%) dlls/icmp: dlls/icmp/Makefile \$(MAKEDEP)
dlls/icmp/Makefile: dlls/icmp/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/icmp/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ifsmgr.vxd dlls/ifsmgr.vxd/__install__ dlls/ifsmgr.vxd/__install-lib__ dlls/ifsmgr.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ifsmgr.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ifsmgr.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ifsmgr.vxd/%) dlls/ifsmgr.vxd: dlls/ifsmgr.vxd/Makefile \$(MAKEDEP)
dlls/ifsmgr.vxd/Makefile: dlls/ifsmgr.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ifsmgr.vxd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/imaadp32.acm dlls/imaadp32.acm/__install__ dlls/imaadp32.acm/__install-lib__ dlls/imaadp32.acm/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/imaadp32.acm"
test "x$enable_imaadp32_acm" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/imaadp32.acm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/imaadp32.acm/%) dlls/imaadp32.acm: dlls/imaadp32.acm/Makefile \$(MAKEDEP)
dlls/imaadp32.acm/Makefile: dlls/imaadp32.acm/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/imaadp32.acm/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/imagehlp/libimagehlp.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/imagehlp/libimagehlp.$IMPLIBEXT dlls/imagehlp/libimagehlp.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/imagehlp/libimagehlp.$IMPLIBEXT dlls/imagehlp/libimagehlp.cross.a: dlls/imagehlp/imagehlp.spec dlls/imagehlp/Makefile
	@cd dlls/imagehlp && \$(MAKE) \`basename \$@\`
dlls/imagehlp dlls/imagehlp/__install__ dlls/imagehlp/__install-lib__ dlls/imagehlp/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/imagehlp"
test "x$enable_imagehlp" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/imagehlp"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/imagehlp/%) dlls/imagehlp: dlls/imagehlp/Makefile \$(MAKEDEP)
dlls/imagehlp/Makefile: dlls/imagehlp/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/imagehlp/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/imagehlp/tests: __builddeps__
dlls/imagehlp/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "imagehlp_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "imagehlp_test.exe: \$(TOPOBJDIR)/dlls/imagehlp/tests/imagehlp_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/imagehlp/tests/imagehlp_test.exe$DLLEXT \$@ && \$(STRIP) \$@
imagehlp_test.rc:
	echo \"imagehlp_test.exe TESTRES \\\"imagehlp_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
imagehlp_test.res: imagehlp_test.rc imagehlp_test.exe"
wine_fn_append_file ALL_DIRS "dlls/imagehlp/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/imagehlp/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/imagehlp/tests/%) dlls/imagehlp/tests: dlls/imagehlp/tests/Makefile \$(MAKEDEP)
dlls/imagehlp/tests/Makefile: dlls/imagehlp/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/imagehlp/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/imm.dll16 dlls/imm.dll16/__install__ dlls/imm.dll16/__install-lib__ dlls/imm.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/imm.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/imm.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/imm.dll16/%) dlls/imm.dll16: dlls/imm.dll16/Makefile \$(MAKEDEP)
dlls/imm.dll16/Makefile: dlls/imm.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/imm.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/imm32/libimm32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/imm32/libimm32.$IMPLIBEXT dlls/imm32/libimm32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/imm32/libimm32.$IMPLIBEXT dlls/imm32/libimm32.cross.a: dlls/imm32/imm32.spec dlls/imm32/Makefile
	@cd dlls/imm32 && \$(MAKE) \`basename \$@\`
dlls/imm32 dlls/imm32/__install__ dlls/imm32/__install-lib__ dlls/imm32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/imm32"
test "x$enable_imm32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/imm32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/imm32/%) dlls/imm32: dlls/imm32/Makefile \$(MAKEDEP)
dlls/imm32/Makefile: dlls/imm32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/imm32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/imm32/tests: __builddeps__
dlls/imm32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "imm32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "imm32_test.exe: \$(TOPOBJDIR)/dlls/imm32/tests/imm32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/imm32/tests/imm32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
imm32_test.rc:
	echo \"imm32_test.exe TESTRES \\\"imm32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
imm32_test.res: imm32_test.rc imm32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/imm32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/imm32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/imm32/tests/%) dlls/imm32/tests: dlls/imm32/tests/Makefile \$(MAKEDEP)
dlls/imm32/tests/Makefile: dlls/imm32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/imm32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/inetcomm/libinetcomm.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/inetcomm/libinetcomm.$IMPLIBEXT dlls/inetcomm/libinetcomm.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/inetcomm/libinetcomm.$IMPLIBEXT dlls/inetcomm/libinetcomm.cross.a: dlls/inetcomm/inetcomm.spec dlls/inetcomm/Makefile
	@cd dlls/inetcomm && \$(MAKE) \`basename \$@\`
dlls/inetcomm dlls/inetcomm/__install__ dlls/inetcomm/__install-lib__ dlls/inetcomm/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/inetcomm"
test "x$enable_inetcomm" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/inetcomm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/inetcomm/%) dlls/inetcomm: dlls/inetcomm/Makefile \$(MAKEDEP)
dlls/inetcomm/Makefile: dlls/inetcomm/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/inetcomm/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/inetcomm/tests: __builddeps__
dlls/inetcomm/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "inetcomm_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "inetcomm_test.exe: \$(TOPOBJDIR)/dlls/inetcomm/tests/inetcomm_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/inetcomm/tests/inetcomm_test.exe$DLLEXT \$@ && \$(STRIP) \$@
inetcomm_test.rc:
	echo \"inetcomm_test.exe TESTRES \\\"inetcomm_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
inetcomm_test.res: inetcomm_test.rc inetcomm_test.exe"
wine_fn_append_file ALL_DIRS "dlls/inetcomm/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/inetcomm/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/inetcomm/tests/%) dlls/inetcomm/tests: dlls/inetcomm/tests/Makefile \$(MAKEDEP)
dlls/inetcomm/tests/Makefile: dlls/inetcomm/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/inetcomm/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/inetmib1 dlls/inetmib1/__install__ dlls/inetmib1/__install-lib__ dlls/inetmib1/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/inetmib1"
test "x$enable_inetmib1" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/inetmib1"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/inetmib1/%) dlls/inetmib1: dlls/inetmib1/Makefile \$(MAKEDEP)
dlls/inetmib1/Makefile: dlls/inetmib1/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/inetmib1/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/inetmib1/tests: __builddeps__
dlls/inetmib1/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "inetmib1_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "inetmib1_test.exe: \$(TOPOBJDIR)/dlls/inetmib1/tests/inetmib1_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/inetmib1/tests/inetmib1_test.exe$DLLEXT \$@ && \$(STRIP) \$@
inetmib1_test.rc:
	echo \"inetmib1_test.exe TESTRES \\\"inetmib1_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
inetmib1_test.res: inetmib1_test.rc inetmib1_test.exe"
wine_fn_append_file ALL_DIRS "dlls/inetmib1/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/inetmib1/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/inetmib1/tests/%) dlls/inetmib1/tests: dlls/inetmib1/tests/Makefile \$(MAKEDEP)
dlls/inetmib1/tests/Makefile: dlls/inetmib1/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/inetmib1/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/infosoft dlls/infosoft/__install__ dlls/infosoft/__install-lib__ dlls/infosoft/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/infosoft"
test "x$enable_infosoft" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/infosoft"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/infosoft/%) dlls/infosoft: dlls/infosoft/Makefile \$(MAKEDEP)
dlls/infosoft/Makefile: dlls/infosoft/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/infosoft/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/infosoft/tests: __builddeps__
dlls/infosoft/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "infosoft_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "infosoft_test.exe: \$(TOPOBJDIR)/dlls/infosoft/tests/infosoft_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/infosoft/tests/infosoft_test.exe$DLLEXT \$@ && \$(STRIP) \$@
infosoft_test.rc:
	echo \"infosoft_test.exe TESTRES \\\"infosoft_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
infosoft_test.res: infosoft_test.rc infosoft_test.exe"
wine_fn_append_file ALL_DIRS "dlls/infosoft/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/infosoft/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/infosoft/tests/%) dlls/infosoft/tests: dlls/infosoft/tests/Makefile \$(MAKEDEP)
dlls/infosoft/tests/Makefile: dlls/infosoft/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/infosoft/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/initpki dlls/initpki/__install__ dlls/initpki/__install-lib__ dlls/initpki/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/initpki"
test "x$enable_initpki" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/initpki"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/initpki/%) dlls/initpki: dlls/initpki/Makefile \$(MAKEDEP)
dlls/initpki/Makefile: dlls/initpki/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/initpki/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/inkobj dlls/inkobj/__install__ dlls/inkobj/__install-lib__ dlls/inkobj/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/inkobj"
test "x$enable_inkobj" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/inkobj"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/inkobj/%) dlls/inkobj: dlls/inkobj/Makefile \$(MAKEDEP)
dlls/inkobj/Makefile: dlls/inkobj/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/inkobj/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/inseng dlls/inseng/__install__ dlls/inseng/__install-lib__ dlls/inseng/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/inseng"
test "x$enable_inseng" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/inseng"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/inseng/%) dlls/inseng: dlls/inseng/Makefile \$(MAKEDEP)
dlls/inseng/Makefile: dlls/inseng/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/inseng/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/iphlpapi/libiphlpapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/iphlpapi/libiphlpapi.$IMPLIBEXT dlls/iphlpapi/libiphlpapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/iphlpapi/libiphlpapi.$IMPLIBEXT dlls/iphlpapi/libiphlpapi.cross.a: dlls/iphlpapi/iphlpapi.spec dlls/iphlpapi/Makefile
	@cd dlls/iphlpapi && \$(MAKE) \`basename \$@\`
dlls/iphlpapi dlls/iphlpapi/__install__ dlls/iphlpapi/__install-lib__ dlls/iphlpapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/iphlpapi"
test "x$enable_iphlpapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/iphlpapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/iphlpapi/%) dlls/iphlpapi: dlls/iphlpapi/Makefile \$(MAKEDEP)
dlls/iphlpapi/Makefile: dlls/iphlpapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/iphlpapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/iphlpapi/tests: __builddeps__
dlls/iphlpapi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "iphlpapi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "iphlpapi_test.exe: \$(TOPOBJDIR)/dlls/iphlpapi/tests/iphlpapi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/iphlpapi/tests/iphlpapi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
iphlpapi_test.rc:
	echo \"iphlpapi_test.exe TESTRES \\\"iphlpapi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
iphlpapi_test.res: iphlpapi_test.rc iphlpapi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/iphlpapi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/iphlpapi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/iphlpapi/tests/%) dlls/iphlpapi/tests: dlls/iphlpapi/tests/Makefile \$(MAKEDEP)
dlls/iphlpapi/tests/Makefile: dlls/iphlpapi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/iphlpapi/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/itircl dlls/itircl/__install__ dlls/itircl/__install-lib__ dlls/itircl/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/itircl"
test "x$enable_itircl" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/itircl"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/itircl/%) dlls/itircl: dlls/itircl/Makefile \$(MAKEDEP)
dlls/itircl/Makefile: dlls/itircl/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/itircl/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/itss dlls/itss/__install__ dlls/itss/__install-lib__ dlls/itss/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/itss"
test "x$enable_itss" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/itss"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/itss/%) dlls/itss: dlls/itss/Makefile \$(MAKEDEP)
dlls/itss/Makefile: dlls/itss/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/itss/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/itss/tests: __builddeps__
dlls/itss/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "itss_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "itss_test.exe: \$(TOPOBJDIR)/dlls/itss/tests/itss_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/itss/tests/itss_test.exe$DLLEXT \$@ && \$(STRIP) \$@
itss_test.rc:
	echo \"itss_test.exe TESTRES \\\"itss_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
itss_test.res: itss_test.rc itss_test.exe"
wine_fn_append_file ALL_DIRS "dlls/itss/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/itss/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/itss/tests/%) dlls/itss/tests: dlls/itss/tests/Makefile \$(MAKEDEP)
dlls/itss/tests/Makefile: dlls/itss/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/itss/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/jscript dlls/jscript/__install__ dlls/jscript/__install-lib__ dlls/jscript/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/jscript"
test "x$enable_jscript" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/jscript"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/jscript/%) dlls/jscript: dlls/jscript/Makefile \$(MAKEDEP)
dlls/jscript/Makefile: dlls/jscript/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/jscript/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/jscript/tests: __builddeps__
dlls/jscript/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "jscript_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "jscript_test.exe: \$(TOPOBJDIR)/dlls/jscript/tests/jscript_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/jscript/tests/jscript_test.exe$DLLEXT \$@ && \$(STRIP) \$@
jscript_test.rc:
	echo \"jscript_test.exe TESTRES \\\"jscript_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
jscript_test.res: jscript_test.rc jscript_test.exe"
wine_fn_append_file ALL_DIRS "dlls/jscript/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/jscript/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/jscript/tests/%) dlls/jscript/tests: dlls/jscript/tests/Makefile \$(MAKEDEP)
dlls/jscript/tests/Makefile: dlls/jscript/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/jscript/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/kernel32/libkernel32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/kernel32/libkernel32.$IMPLIBEXT dlls/kernel32/libkernel32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/kernel32/libkernel32.$IMPLIBEXT dlls/kernel32/libkernel32.cross.a: dlls/kernel32/kernel32.spec dlls/kernel32/Makefile
	@cd dlls/kernel32 && \$(MAKE) \`basename \$@\`
dlls/kernel32 dlls/kernel32/__install__ dlls/kernel32/__install-lib__ dlls/kernel32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/kernel32"
test "x$enable_kernel32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/kernel32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/kernel32/%) dlls/kernel32: dlls/kernel32/Makefile \$(MAKEDEP)
dlls/kernel32/Makefile: dlls/kernel32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/kernel32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/kernel32/tests: __builddeps__
dlls/kernel32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "kernel32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "kernel32_test.exe: \$(TOPOBJDIR)/dlls/kernel32/tests/kernel32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/kernel32/tests/kernel32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
kernel32_test.rc:
	echo \"kernel32_test.exe TESTRES \\\"kernel32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
kernel32_test.res: kernel32_test.rc kernel32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/kernel32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/kernel32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/kernel32/tests/%) dlls/kernel32/tests: dlls/kernel32/tests/Makefile \$(MAKEDEP)
dlls/kernel32/tests/Makefile: dlls/kernel32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/kernel32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/keyboard.drv16 dlls/keyboard.drv16/__install__ dlls/keyboard.drv16/__install-lib__ dlls/keyboard.drv16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/keyboard.drv16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/keyboard.drv16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/keyboard.drv16/%) dlls/keyboard.drv16: dlls/keyboard.drv16/Makefile \$(MAKEDEP)
dlls/keyboard.drv16/Makefile: dlls/keyboard.drv16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/keyboard.drv16/Makefile"

test "x$enable_win16" != xno && wine_fn_append_file ALL_IMPORT_LIBS "dlls/krnl386.exe16/libkernel.$IMPLIBEXT" && wine_fn_append_file ALL_IMPORT_LIBS "dlls/libkernel.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/krnl386.exe16/libkernel.$IMPLIBEXT dlls/krnl386.exe16/libkernel.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/libkernel.$IMPLIBEXT: dlls/krnl386.exe16/libkernel.$IMPLIBEXT
	\$(RM) \$@ && \$(LN_S) krnl386.exe16/libkernel.$IMPLIBEXT \$@
dlls/libkernel.cross.a: dlls/krnl386.exe16/libkernel.cross.a
	\$(RM) \$@ && \$(LN_S) krnl386.exe16/libkernel.cross.a \$@
clean::
	\$(RM) dlls/libkernel.$IMPLIBEXT
dlls/krnl386.exe16/libkernel.$IMPLIBEXT dlls/krnl386.exe16/libkernel.cross.a: dlls/krnl386.exe16/krnl386.exe16.spec dlls/krnl386.exe16/Makefile
	@cd dlls/krnl386.exe16 && \$(MAKE) \`basename \$@\`
dlls/krnl386.exe16 dlls/krnl386.exe16/__install__ dlls/krnl386.exe16/__install-lib__ dlls/krnl386.exe16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/krnl386.exe16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/krnl386.exe16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/krnl386.exe16/%) dlls/krnl386.exe16: dlls/krnl386.exe16/Makefile \$(MAKEDEP)
dlls/krnl386.exe16/Makefile: dlls/krnl386.exe16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/krnl386.exe16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/loadperf/libloadperf.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/loadperf/libloadperf.$IMPLIBEXT dlls/loadperf/libloadperf.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/loadperf/libloadperf.$IMPLIBEXT dlls/loadperf/libloadperf.cross.a: dlls/loadperf/loadperf.spec dlls/loadperf/Makefile
	@cd dlls/loadperf && \$(MAKE) \`basename \$@\`
dlls/loadperf dlls/loadperf/__install__ dlls/loadperf/__install-lib__ dlls/loadperf/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/loadperf"
test "x$enable_loadperf" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/loadperf"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/loadperf/%) dlls/loadperf: dlls/loadperf/Makefile \$(MAKEDEP)
dlls/loadperf/Makefile: dlls/loadperf/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/loadperf/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/localspl dlls/localspl/__install__ dlls/localspl/__install-lib__ dlls/localspl/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/localspl"
test "x$enable_localspl" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/localspl"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/localspl/%) dlls/localspl: dlls/localspl/Makefile \$(MAKEDEP)
dlls/localspl/Makefile: dlls/localspl/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/localspl/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/localspl/tests: __builddeps__
dlls/localspl/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "localspl_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "localspl_test.exe: \$(TOPOBJDIR)/dlls/localspl/tests/localspl_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/localspl/tests/localspl_test.exe$DLLEXT \$@ && \$(STRIP) \$@
localspl_test.rc:
	echo \"localspl_test.exe TESTRES \\\"localspl_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
localspl_test.res: localspl_test.rc localspl_test.exe"
wine_fn_append_file ALL_DIRS "dlls/localspl/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/localspl/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/localspl/tests/%) dlls/localspl/tests: dlls/localspl/tests/Makefile \$(MAKEDEP)
dlls/localspl/tests/Makefile: dlls/localspl/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/localspl/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/localui dlls/localui/__install__ dlls/localui/__install-lib__ dlls/localui/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/localui"
test "x$enable_localui" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/localui"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/localui/%) dlls/localui: dlls/localui/Makefile \$(MAKEDEP)
dlls/localui/Makefile: dlls/localui/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/localui/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/localui/tests: __builddeps__
dlls/localui/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "localui_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "localui_test.exe: \$(TOPOBJDIR)/dlls/localui/tests/localui_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/localui/tests/localui_test.exe$DLLEXT \$@ && \$(STRIP) \$@
localui_test.rc:
	echo \"localui_test.exe TESTRES \\\"localui_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
localui_test.res: localui_test.rc localui_test.exe"
wine_fn_append_file ALL_DIRS "dlls/localui/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/localui/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/localui/tests/%) dlls/localui/tests: dlls/localui/tests/Makefile \$(MAKEDEP)
dlls/localui/tests/Makefile: dlls/localui/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/localui/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/lz32/liblz32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/lz32/liblz32.$IMPLIBEXT dlls/lz32/liblz32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/lz32/liblz32.$IMPLIBEXT dlls/lz32/liblz32.cross.a: dlls/lz32/lz32.spec dlls/lz32/Makefile
	@cd dlls/lz32 && \$(MAKE) \`basename \$@\`
dlls/lz32 dlls/lz32/__install__ dlls/lz32/__install-lib__ dlls/lz32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/lz32"
test "x$enable_lz32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/lz32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/lz32/%) dlls/lz32: dlls/lz32/Makefile \$(MAKEDEP)
dlls/lz32/Makefile: dlls/lz32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/lz32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/lz32/tests: __builddeps__
dlls/lz32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "lz32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "lz32_test.exe: \$(TOPOBJDIR)/dlls/lz32/tests/lz32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/lz32/tests/lz32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
lz32_test.rc:
	echo \"lz32_test.exe TESTRES \\\"lz32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
lz32_test.res: lz32_test.rc lz32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/lz32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/lz32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/lz32/tests/%) dlls/lz32/tests: dlls/lz32/tests/Makefile \$(MAKEDEP)
dlls/lz32/tests/Makefile: dlls/lz32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/lz32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/lzexpand.dll16 dlls/lzexpand.dll16/__install__ dlls/lzexpand.dll16/__install-lib__ dlls/lzexpand.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/lzexpand.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/lzexpand.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/lzexpand.dll16/%) dlls/lzexpand.dll16: dlls/lzexpand.dll16/Makefile \$(MAKEDEP)
dlls/lzexpand.dll16/Makefile: dlls/lzexpand.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/lzexpand.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/mapi32/libmapi32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mapi32/libmapi32.$IMPLIBEXT dlls/mapi32/libmapi32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/mapi32/libmapi32.$IMPLIBEXT dlls/mapi32/libmapi32.cross.a: dlls/mapi32/mapi32.spec dlls/mapi32/Makefile
	@cd dlls/mapi32 && \$(MAKE) \`basename \$@\`
dlls/mapi32 dlls/mapi32/__install__ dlls/mapi32/__install-lib__ dlls/mapi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mapi32"
test "x$enable_mapi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mapi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mapi32/%) dlls/mapi32: dlls/mapi32/Makefile \$(MAKEDEP)
dlls/mapi32/Makefile: dlls/mapi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mapi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mapi32/tests: __builddeps__
dlls/mapi32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "mapi32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "mapi32_test.exe: \$(TOPOBJDIR)/dlls/mapi32/tests/mapi32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/mapi32/tests/mapi32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
mapi32_test.rc:
	echo \"mapi32_test.exe TESTRES \\\"mapi32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
mapi32_test.res: mapi32_test.rc mapi32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/mapi32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/mapi32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mapi32/tests/%) dlls/mapi32/tests: dlls/mapi32/tests/Makefile \$(MAKEDEP)
dlls/mapi32/tests/Makefile: dlls/mapi32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/mapi32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mapistub dlls/mapistub/__install__ dlls/mapistub/__install-lib__ dlls/mapistub/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mapistub"
test "x$enable_mapistub" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mapistub"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mapistub/%) dlls/mapistub: dlls/mapistub/Makefile \$(MAKEDEP)
dlls/mapistub/Makefile: dlls/mapistub/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mapistub/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mciavi32 dlls/mciavi32/__install__ dlls/mciavi32/__install-lib__ dlls/mciavi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mciavi32"
test "x$enable_mciavi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mciavi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mciavi32/%) dlls/mciavi32: dlls/mciavi32/Makefile \$(MAKEDEP)
dlls/mciavi32/Makefile: dlls/mciavi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mciavi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mcicda dlls/mcicda/__install__ dlls/mcicda/__install-lib__ dlls/mcicda/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mcicda"
test "x$enable_mcicda" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mcicda"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mcicda/%) dlls/mcicda: dlls/mcicda/Makefile \$(MAKEDEP)
dlls/mcicda/Makefile: dlls/mcicda/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mcicda/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mciqtz32 dlls/mciqtz32/__install__ dlls/mciqtz32/__install-lib__ dlls/mciqtz32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mciqtz32"
test "x$enable_mciqtz32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mciqtz32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mciqtz32/%) dlls/mciqtz32: dlls/mciqtz32/Makefile \$(MAKEDEP)
dlls/mciqtz32/Makefile: dlls/mciqtz32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mciqtz32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mciseq dlls/mciseq/__install__ dlls/mciseq/__install-lib__ dlls/mciseq/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mciseq"
test "x$enable_mciseq" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mciseq"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mciseq/%) dlls/mciseq: dlls/mciseq/Makefile \$(MAKEDEP)
dlls/mciseq/Makefile: dlls/mciseq/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mciseq/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mciwave dlls/mciwave/__install__ dlls/mciwave/__install-lib__ dlls/mciwave/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mciwave"
test "x$enable_mciwave" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mciwave"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mciwave/%) dlls/mciwave: dlls/mciwave/Makefile \$(MAKEDEP)
dlls/mciwave/Makefile: dlls/mciwave/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mciwave/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/midimap dlls/midimap/__install__ dlls/midimap/__install-lib__ dlls/midimap/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/midimap"
test "x$enable_midimap" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/midimap"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/midimap/%) dlls/midimap: dlls/midimap/Makefile \$(MAKEDEP)
dlls/midimap/Makefile: dlls/midimap/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/midimap/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/mlang/libmlang.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mlang/libmlang.$IMPLIBEXT dlls/mlang/libmlang.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/mlang/libmlang.$IMPLIBEXT dlls/mlang/libmlang.cross.a: dlls/mlang/mlang.spec dlls/mlang/Makefile
	@cd dlls/mlang && \$(MAKE) \`basename \$@\`
dlls/mlang dlls/mlang/__install__ dlls/mlang/__install-lib__ dlls/mlang/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mlang"
test "x$enable_mlang" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mlang"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mlang/%) dlls/mlang: dlls/mlang/Makefile \$(MAKEDEP)
dlls/mlang/Makefile: dlls/mlang/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mlang/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mlang/tests: __builddeps__
dlls/mlang/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "mlang_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "mlang_test.exe: \$(TOPOBJDIR)/dlls/mlang/tests/mlang_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/mlang/tests/mlang_test.exe$DLLEXT \$@ && \$(STRIP) \$@
mlang_test.rc:
	echo \"mlang_test.exe TESTRES \\\"mlang_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
mlang_test.res: mlang_test.rc mlang_test.exe"
wine_fn_append_file ALL_DIRS "dlls/mlang/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/mlang/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mlang/tests/%) dlls/mlang/tests: dlls/mlang/tests/Makefile \$(MAKEDEP)
dlls/mlang/tests/Makefile: dlls/mlang/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/mlang/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mmdevapi dlls/mmdevapi/__install__ dlls/mmdevapi/__install-lib__ dlls/mmdevapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mmdevapi"
test "x$enable_mmdevapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mmdevapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mmdevapi/%) dlls/mmdevapi: dlls/mmdevapi/Makefile \$(MAKEDEP)
dlls/mmdevapi/Makefile: dlls/mmdevapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mmdevapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mmdevapi/tests: __builddeps__
dlls/mmdevapi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "mmdevapi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "mmdevapi_test.exe: \$(TOPOBJDIR)/dlls/mmdevapi/tests/mmdevapi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/mmdevapi/tests/mmdevapi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
mmdevapi_test.rc:
	echo \"mmdevapi_test.exe TESTRES \\\"mmdevapi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
mmdevapi_test.res: mmdevapi_test.rc mmdevapi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/mmdevapi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/mmdevapi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mmdevapi/tests/%) dlls/mmdevapi/tests: dlls/mmdevapi/tests/Makefile \$(MAKEDEP)
dlls/mmdevapi/tests/Makefile: dlls/mmdevapi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/mmdevapi/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mmdevldr.vxd dlls/mmdevldr.vxd/__install__ dlls/mmdevldr.vxd/__install-lib__ dlls/mmdevldr.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mmdevldr.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mmdevldr.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mmdevldr.vxd/%) dlls/mmdevldr.vxd: dlls/mmdevldr.vxd/Makefile \$(MAKEDEP)
dlls/mmdevldr.vxd/Makefile: dlls/mmdevldr.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mmdevldr.vxd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mmsystem.dll16 dlls/mmsystem.dll16/__install__ dlls/mmsystem.dll16/__install-lib__ dlls/mmsystem.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mmsystem.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mmsystem.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mmsystem.dll16/%) dlls/mmsystem.dll16: dlls/mmsystem.dll16/Makefile \$(MAKEDEP)
dlls/mmsystem.dll16/Makefile: dlls/mmsystem.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mmsystem.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/monodebg.vxd dlls/monodebg.vxd/__install__ dlls/monodebg.vxd/__install-lib__ dlls/monodebg.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/monodebg.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/monodebg.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/monodebg.vxd/%) dlls/monodebg.vxd: dlls/monodebg.vxd/Makefile \$(MAKEDEP)
dlls/monodebg.vxd/Makefile: dlls/monodebg.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/monodebg.vxd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mountmgr.sys dlls/mountmgr.sys/__install__ dlls/mountmgr.sys/__install-lib__ dlls/mountmgr.sys/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mountmgr.sys"
test "x$enable_mountmgr_sys" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mountmgr.sys"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mountmgr.sys/%) dlls/mountmgr.sys: dlls/mountmgr.sys/Makefile \$(MAKEDEP)
dlls/mountmgr.sys/Makefile: dlls/mountmgr.sys/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mountmgr.sys/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mouse.drv16 dlls/mouse.drv16/__install__ dlls/mouse.drv16/__install-lib__ dlls/mouse.drv16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mouse.drv16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mouse.drv16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mouse.drv16/%) dlls/mouse.drv16: dlls/mouse.drv16/Makefile \$(MAKEDEP)
dlls/mouse.drv16/Makefile: dlls/mouse.drv16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mouse.drv16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/mpr/libmpr.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mpr/libmpr.$IMPLIBEXT dlls/mpr/libmpr.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/mpr/libmpr.$IMPLIBEXT dlls/mpr/libmpr.cross.a: dlls/mpr/mpr.spec dlls/mpr/Makefile
	@cd dlls/mpr && \$(MAKE) \`basename \$@\`
dlls/mpr dlls/mpr/__install__ dlls/mpr/__install-lib__ dlls/mpr/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mpr"
test "x$enable_mpr" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mpr"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mpr/%) dlls/mpr: dlls/mpr/Makefile \$(MAKEDEP)
dlls/mpr/Makefile: dlls/mpr/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mpr/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/mprapi/libmprapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mprapi/libmprapi.$IMPLIBEXT dlls/mprapi/libmprapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/mprapi/libmprapi.$IMPLIBEXT dlls/mprapi/libmprapi.cross.a: dlls/mprapi/mprapi.spec dlls/mprapi/Makefile
	@cd dlls/mprapi && \$(MAKE) \`basename \$@\`
dlls/mprapi dlls/mprapi/__install__ dlls/mprapi/__install-lib__ dlls/mprapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mprapi"
test "x$enable_mprapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mprapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mprapi/%) dlls/mprapi: dlls/mprapi/Makefile \$(MAKEDEP)
dlls/mprapi/Makefile: dlls/mprapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mprapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msacm.dll16 dlls/msacm.dll16/__install__ dlls/msacm.dll16/__install-lib__ dlls/msacm.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msacm.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msacm.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msacm.dll16/%) dlls/msacm.dll16: dlls/msacm.dll16/Makefile \$(MAKEDEP)
dlls/msacm.dll16/Makefile: dlls/msacm.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msacm.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msacm32.drv dlls/msacm32.drv/__install__ dlls/msacm32.drv/__install-lib__ dlls/msacm32.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msacm32.drv"
test "x$enable_msacm32_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msacm32.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msacm32.drv/%) dlls/msacm32.drv: dlls/msacm32.drv/Makefile \$(MAKEDEP)
dlls/msacm32.drv/Makefile: dlls/msacm32.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msacm32.drv/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msacm32/libmsacm32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msacm32/libmsacm32.$IMPLIBEXT dlls/msacm32/libmsacm32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msacm32/libmsacm32.$IMPLIBEXT dlls/msacm32/libmsacm32.cross.a: dlls/msacm32/msacm32.spec dlls/msacm32/Makefile
	@cd dlls/msacm32 && \$(MAKE) \`basename \$@\`
dlls/msacm32 dlls/msacm32/__install__ dlls/msacm32/__install-lib__ dlls/msacm32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msacm32"
test "x$enable_msacm32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msacm32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msacm32/%) dlls/msacm32: dlls/msacm32/Makefile \$(MAKEDEP)
dlls/msacm32/Makefile: dlls/msacm32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msacm32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msacm32/tests: __builddeps__
dlls/msacm32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "msacm32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "msacm32_test.exe: \$(TOPOBJDIR)/dlls/msacm32/tests/msacm32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/msacm32/tests/msacm32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
msacm32_test.rc:
	echo \"msacm32_test.exe TESTRES \\\"msacm32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
msacm32_test.res: msacm32_test.rc msacm32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/msacm32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/msacm32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msacm32/tests/%) dlls/msacm32/tests: dlls/msacm32/tests/Makefile \$(MAKEDEP)
dlls/msacm32/tests/Makefile: dlls/msacm32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/msacm32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msadp32.acm dlls/msadp32.acm/__install__ dlls/msadp32.acm/__install-lib__ dlls/msadp32.acm/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msadp32.acm"
test "x$enable_msadp32_acm" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msadp32.acm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msadp32.acm/%) dlls/msadp32.acm: dlls/msadp32.acm/Makefile \$(MAKEDEP)
dlls/msadp32.acm/Makefile: dlls/msadp32.acm/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msadp32.acm/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mscat32 dlls/mscat32/__install__ dlls/mscat32/__install-lib__ dlls/mscat32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mscat32"
test "x$enable_mscat32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mscat32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mscat32/%) dlls/mscat32: dlls/mscat32/Makefile \$(MAKEDEP)
dlls/mscat32/Makefile: dlls/mscat32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mscat32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/mscms/libmscms.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mscms/libmscms.$IMPLIBEXT dlls/mscms/libmscms.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/mscms/libmscms.$IMPLIBEXT dlls/mscms/libmscms.cross.a: dlls/mscms/mscms.spec dlls/mscms/Makefile
	@cd dlls/mscms && \$(MAKE) \`basename \$@\`
dlls/mscms dlls/mscms/__install__ dlls/mscms/__install-lib__ dlls/mscms/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mscms"
test "x$enable_mscms" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mscms"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mscms/%) dlls/mscms: dlls/mscms/Makefile \$(MAKEDEP)
dlls/mscms/Makefile: dlls/mscms/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mscms/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mscms/tests: __builddeps__
dlls/mscms/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "mscms_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "mscms_test.exe: \$(TOPOBJDIR)/dlls/mscms/tests/mscms_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/mscms/tests/mscms_test.exe$DLLEXT \$@ && \$(STRIP) \$@
mscms_test.rc:
	echo \"mscms_test.exe TESTRES \\\"mscms_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
mscms_test.res: mscms_test.rc mscms_test.exe"
wine_fn_append_file ALL_DIRS "dlls/mscms/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/mscms/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mscms/tests/%) dlls/mscms/tests: dlls/mscms/tests/Makefile \$(MAKEDEP)
dlls/mscms/tests/Makefile: dlls/mscms/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/mscms/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mscoree dlls/mscoree/__install__ dlls/mscoree/__install-lib__ dlls/mscoree/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mscoree"
test "x$enable_mscoree" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mscoree"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mscoree/%) dlls/mscoree: dlls/mscoree/Makefile \$(MAKEDEP)
dlls/mscoree/Makefile: dlls/mscoree/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mscoree/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msctf dlls/msctf/__install__ dlls/msctf/__install-lib__ dlls/msctf/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msctf"
test "x$enable_msctf" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msctf"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msctf/%) dlls/msctf: dlls/msctf/Makefile \$(MAKEDEP)
dlls/msctf/Makefile: dlls/msctf/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msctf/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msctf/tests: __builddeps__
dlls/msctf/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "msctf_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "msctf_test.exe: \$(TOPOBJDIR)/dlls/msctf/tests/msctf_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/msctf/tests/msctf_test.exe$DLLEXT \$@ && \$(STRIP) \$@
msctf_test.rc:
	echo \"msctf_test.exe TESTRES \\\"msctf_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
msctf_test.res: msctf_test.rc msctf_test.exe"
wine_fn_append_file ALL_DIRS "dlls/msctf/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/msctf/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msctf/tests/%) dlls/msctf/tests: dlls/msctf/tests/Makefile \$(MAKEDEP)
dlls/msctf/tests/Makefile: dlls/msctf/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/msctf/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msdaps dlls/msdaps/__install__ dlls/msdaps/__install-lib__ dlls/msdaps/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msdaps"
test "x$enable_msdaps" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msdaps"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msdaps/%) dlls/msdaps: dlls/msdaps/Makefile \$(MAKEDEP)
dlls/msdaps/Makefile: dlls/msdaps/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msdaps/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msdmo/libmsdmo.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msdmo/libmsdmo.$IMPLIBEXT dlls/msdmo/libmsdmo.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msdmo/libmsdmo.$IMPLIBEXT dlls/msdmo/libmsdmo.cross.a: dlls/msdmo/msdmo.spec dlls/msdmo/Makefile
	@cd dlls/msdmo && \$(MAKE) \`basename \$@\`
dlls/msdmo dlls/msdmo/__install__ dlls/msdmo/__install-lib__ dlls/msdmo/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msdmo"
test "x$enable_msdmo" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msdmo"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msdmo/%) dlls/msdmo: dlls/msdmo/Makefile \$(MAKEDEP)
dlls/msdmo/Makefile: dlls/msdmo/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msdmo/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msftedit dlls/msftedit/__install__ dlls/msftedit/__install-lib__ dlls/msftedit/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msftedit"
test "x$enable_msftedit" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msftedit"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msftedit/%) dlls/msftedit: dlls/msftedit/Makefile \$(MAKEDEP)
dlls/msftedit/Makefile: dlls/msftedit/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msftedit/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msg711.acm dlls/msg711.acm/__install__ dlls/msg711.acm/__install-lib__ dlls/msg711.acm/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msg711.acm"
test "x$enable_msg711_acm" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msg711.acm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msg711.acm/%) dlls/msg711.acm: dlls/msg711.acm/Makefile \$(MAKEDEP)
dlls/msg711.acm/Makefile: dlls/msg711.acm/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msg711.acm/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msgsm32.acm dlls/msgsm32.acm/__install__ dlls/msgsm32.acm/__install-lib__ dlls/msgsm32.acm/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msgsm32.acm"
test "x$enable_msgsm32_acm" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msgsm32.acm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msgsm32.acm/%) dlls/msgsm32.acm: dlls/msgsm32.acm/Makefile \$(MAKEDEP)
dlls/msgsm32.acm/Makefile: dlls/msgsm32.acm/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msgsm32.acm/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mshtml.tlb dlls/mshtml.tlb/__install__ dlls/mshtml.tlb/__install-lib__ dlls/mshtml.tlb/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mshtml.tlb"
test "x$enable_mshtml_tlb" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mshtml.tlb"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mshtml.tlb/%) dlls/mshtml.tlb: dlls/mshtml.tlb/Makefile \$(MAKEDEP)
dlls/mshtml.tlb/Makefile: dlls/mshtml.tlb/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mshtml.tlb/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/mshtml/libmshtml.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mshtml/libmshtml.$IMPLIBEXT dlls/mshtml/libmshtml.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/mshtml/libmshtml.$IMPLIBEXT dlls/mshtml/libmshtml.cross.a: dlls/mshtml/mshtml.spec dlls/mshtml/Makefile
	@cd dlls/mshtml && \$(MAKE) \`basename \$@\`
dlls/mshtml dlls/mshtml/__install__ dlls/mshtml/__install-lib__ dlls/mshtml/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mshtml"
test "x$enable_mshtml" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mshtml"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mshtml/%) dlls/mshtml: dlls/mshtml/Makefile \$(MAKEDEP)
dlls/mshtml/Makefile: dlls/mshtml/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mshtml/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mshtml/tests: __builddeps__
dlls/mshtml/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "mshtml_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "mshtml_test.exe: \$(TOPOBJDIR)/dlls/mshtml/tests/mshtml_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/mshtml/tests/mshtml_test.exe$DLLEXT \$@ && \$(STRIP) \$@
mshtml_test.rc:
	echo \"mshtml_test.exe TESTRES \\\"mshtml_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
mshtml_test.res: mshtml_test.rc mshtml_test.exe"
wine_fn_append_file ALL_DIRS "dlls/mshtml/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/mshtml/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mshtml/tests/%) dlls/mshtml/tests: dlls/mshtml/tests/Makefile \$(MAKEDEP)
dlls/mshtml/tests/Makefile: dlls/mshtml/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/mshtml/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msi/libmsi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msi/libmsi.$IMPLIBEXT dlls/msi/libmsi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msi/libmsi.$IMPLIBEXT dlls/msi/libmsi.cross.a: dlls/msi/msi.spec dlls/msi/Makefile
	@cd dlls/msi && \$(MAKE) \`basename \$@\`
dlls/msi dlls/msi/__install__ dlls/msi/__install-lib__ dlls/msi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msi"
test "x$enable_msi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msi/%) dlls/msi: dlls/msi/Makefile \$(MAKEDEP)
dlls/msi/Makefile: dlls/msi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msi/tests: __builddeps__
dlls/msi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "msi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "msi_test.exe: \$(TOPOBJDIR)/dlls/msi/tests/msi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/msi/tests/msi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
msi_test.rc:
	echo \"msi_test.exe TESTRES \\\"msi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
msi_test.res: msi_test.rc msi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/msi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/msi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msi/tests/%) dlls/msi/tests: dlls/msi/tests/Makefile \$(MAKEDEP)
dlls/msi/tests/Makefile: dlls/msi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/msi/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msimg32/libmsimg32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msimg32/libmsimg32.$IMPLIBEXT dlls/msimg32/libmsimg32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msimg32/libmsimg32.$IMPLIBEXT dlls/msimg32/libmsimg32.cross.a: dlls/msimg32/msimg32.spec dlls/msimg32/Makefile
	@cd dlls/msimg32 && \$(MAKE) \`basename \$@\`
dlls/msimg32 dlls/msimg32/__install__ dlls/msimg32/__install-lib__ dlls/msimg32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msimg32"
test "x$enable_msimg32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msimg32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msimg32/%) dlls/msimg32: dlls/msimg32/Makefile \$(MAKEDEP)
dlls/msimg32/Makefile: dlls/msimg32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msimg32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msimtf dlls/msimtf/__install__ dlls/msimtf/__install-lib__ dlls/msimtf/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msimtf"
test "x$enable_msimtf" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msimtf"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msimtf/%) dlls/msimtf: dlls/msimtf/Makefile \$(MAKEDEP)
dlls/msimtf/Makefile: dlls/msimtf/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msimtf/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msisip dlls/msisip/__install__ dlls/msisip/__install-lib__ dlls/msisip/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msisip"
test "x$enable_msisip" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msisip"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msisip/%) dlls/msisip: dlls/msisip/Makefile \$(MAKEDEP)
dlls/msisip/Makefile: dlls/msisip/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msisip/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msisys.ocx dlls/msisys.ocx/__install__ dlls/msisys.ocx/__install-lib__ dlls/msisys.ocx/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msisys.ocx"
test "x$enable_msisys_ocx" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msisys.ocx"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msisys.ocx/%) dlls/msisys.ocx: dlls/msisys.ocx/Makefile \$(MAKEDEP)
dlls/msisys.ocx/Makefile: dlls/msisys.ocx/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msisys.ocx/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msnet32 dlls/msnet32/__install__ dlls/msnet32/__install-lib__ dlls/msnet32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msnet32"
test "x$enable_msnet32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msnet32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msnet32/%) dlls/msnet32: dlls/msnet32/Makefile \$(MAKEDEP)
dlls/msnet32/Makefile: dlls/msnet32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msnet32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msrle32 dlls/msrle32/__install__ dlls/msrle32/__install-lib__ dlls/msrle32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msrle32"
test "x$enable_msrle32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msrle32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msrle32/%) dlls/msrle32: dlls/msrle32/Makefile \$(MAKEDEP)
dlls/msrle32/Makefile: dlls/msrle32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msrle32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mssign32 dlls/mssign32/__install__ dlls/mssign32/__install-lib__ dlls/mssign32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mssign32"
test "x$enable_mssign32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mssign32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mssign32/%) dlls/mssign32: dlls/mssign32/Makefile \$(MAKEDEP)
dlls/mssign32/Makefile: dlls/mssign32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mssign32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mssip32 dlls/mssip32/__install__ dlls/mssip32/__install-lib__ dlls/mssip32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mssip32"
test "x$enable_mssip32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mssip32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mssip32/%) dlls/mssip32: dlls/mssip32/Makefile \$(MAKEDEP)
dlls/mssip32/Makefile: dlls/mssip32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mssip32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mstask dlls/mstask/__install__ dlls/mstask/__install-lib__ dlls/mstask/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mstask"
test "x$enable_mstask" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mstask"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mstask/%) dlls/mstask: dlls/mstask/Makefile \$(MAKEDEP)
dlls/mstask/Makefile: dlls/mstask/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mstask/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mstask/tests: __builddeps__
dlls/mstask/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "mstask_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "mstask_test.exe: \$(TOPOBJDIR)/dlls/mstask/tests/mstask_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/mstask/tests/mstask_test.exe$DLLEXT \$@ && \$(STRIP) \$@
mstask_test.rc:
	echo \"mstask_test.exe TESTRES \\\"mstask_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
mstask_test.res: mstask_test.rc mstask_test.exe"
wine_fn_append_file ALL_DIRS "dlls/mstask/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/mstask/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mstask/tests/%) dlls/mstask/tests: dlls/mstask/tests/Makefile \$(MAKEDEP)
dlls/mstask/tests/Makefile: dlls/mstask/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/mstask/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvcirt dlls/msvcirt/__install__ dlls/msvcirt/__install-lib__ dlls/msvcirt/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvcirt"
test "x$enable_msvcirt" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvcirt"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvcirt/%) dlls/msvcirt: dlls/msvcirt/Makefile \$(MAKEDEP)
dlls/msvcirt/Makefile: dlls/msvcirt/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvcirt/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msvcr71/libmsvcr71.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvcr71/libmsvcr71.$IMPLIBEXT dlls/msvcr71/libmsvcr71.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msvcr71/libmsvcr71.$IMPLIBEXT dlls/msvcr71/libmsvcr71.cross.a: dlls/msvcr71/msvcr71.spec dlls/msvcr71/Makefile
	@cd dlls/msvcr71 && \$(MAKE) \`basename \$@\`
dlls/msvcr71 dlls/msvcr71/__install__ dlls/msvcr71/__install-lib__ dlls/msvcr71/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvcr71"
test "x$enable_msvcr71" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvcr71"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvcr71/%) dlls/msvcr71: dlls/msvcr71/Makefile \$(MAKEDEP)
dlls/msvcr71/Makefile: dlls/msvcr71/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvcr71/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msvcrt/libmsvcrt.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvcrt/libmsvcrt.$IMPLIBEXT dlls/msvcrt/libmsvcrt.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msvcrt/libmsvcrt.$IMPLIBEXT dlls/msvcrt/libmsvcrt.cross.a: dlls/msvcrt/msvcrt.spec dlls/msvcrt/Makefile
	@cd dlls/msvcrt && \$(MAKE) \`basename \$@\`
dlls/msvcrt dlls/msvcrt/__install__ dlls/msvcrt/__install-lib__ dlls/msvcrt/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvcrt"
test "x$enable_msvcrt" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvcrt"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvcrt/%) dlls/msvcrt: dlls/msvcrt/Makefile \$(MAKEDEP)
dlls/msvcrt/Makefile: dlls/msvcrt/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvcrt/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvcrt/tests: __builddeps__
dlls/msvcrt/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "msvcrt_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "msvcrt_test.exe: \$(TOPOBJDIR)/dlls/msvcrt/tests/msvcrt_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/msvcrt/tests/msvcrt_test.exe$DLLEXT \$@ && \$(STRIP) \$@
msvcrt_test.rc:
	echo \"msvcrt_test.exe TESTRES \\\"msvcrt_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
msvcrt_test.res: msvcrt_test.rc msvcrt_test.exe"
wine_fn_append_file ALL_DIRS "dlls/msvcrt/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/msvcrt/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvcrt/tests/%) dlls/msvcrt/tests: dlls/msvcrt/tests/Makefile \$(MAKEDEP)
dlls/msvcrt/tests/Makefile: dlls/msvcrt/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/msvcrt/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msvcrt20/libmsvcrt20.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvcrt20/libmsvcrt20.$IMPLIBEXT dlls/msvcrt20/libmsvcrt20.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msvcrt20/libmsvcrt20.$IMPLIBEXT dlls/msvcrt20/libmsvcrt20.cross.a: dlls/msvcrt20/msvcrt20.spec dlls/msvcrt20/Makefile
	@cd dlls/msvcrt20 && \$(MAKE) \`basename \$@\`
dlls/msvcrt20 dlls/msvcrt20/__install__ dlls/msvcrt20/__install-lib__ dlls/msvcrt20/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvcrt20"
test "x$enable_msvcrt20" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvcrt20"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvcrt20/%) dlls/msvcrt20: dlls/msvcrt20/Makefile \$(MAKEDEP)
dlls/msvcrt20/Makefile: dlls/msvcrt20/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvcrt20/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msvcrt40/libmsvcrt40.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvcrt40/libmsvcrt40.$IMPLIBEXT dlls/msvcrt40/libmsvcrt40.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msvcrt40/libmsvcrt40.$IMPLIBEXT dlls/msvcrt40/libmsvcrt40.cross.a: dlls/msvcrt40/msvcrt40.spec dlls/msvcrt40/Makefile
	@cd dlls/msvcrt40 && \$(MAKE) \`basename \$@\`
dlls/msvcrt40 dlls/msvcrt40/__install__ dlls/msvcrt40/__install-lib__ dlls/msvcrt40/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvcrt40"
test "x$enable_msvcrt40" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvcrt40"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvcrt40/%) dlls/msvcrt40: dlls/msvcrt40/Makefile \$(MAKEDEP)
dlls/msvcrt40/Makefile: dlls/msvcrt40/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvcrt40/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msvcrtd/libmsvcrtd.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvcrtd/libmsvcrtd.$IMPLIBEXT dlls/msvcrtd/libmsvcrtd.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msvcrtd/libmsvcrtd.$IMPLIBEXT dlls/msvcrtd/libmsvcrtd.cross.a: dlls/msvcrtd/msvcrtd.spec dlls/msvcrtd/Makefile
	@cd dlls/msvcrtd && \$(MAKE) \`basename \$@\`
dlls/msvcrtd dlls/msvcrtd/__install__ dlls/msvcrtd/__install-lib__ dlls/msvcrtd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvcrtd"
test "x$enable_msvcrtd" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvcrtd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvcrtd/%) dlls/msvcrtd: dlls/msvcrtd/Makefile \$(MAKEDEP)
dlls/msvcrtd/Makefile: dlls/msvcrtd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvcrtd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvcrtd/tests: __builddeps__
dlls/msvcrtd/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "msvcrtd_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "msvcrtd_test.exe: \$(TOPOBJDIR)/dlls/msvcrtd/tests/msvcrtd_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/msvcrtd/tests/msvcrtd_test.exe$DLLEXT \$@ && \$(STRIP) \$@
msvcrtd_test.rc:
	echo \"msvcrtd_test.exe TESTRES \\\"msvcrtd_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
msvcrtd_test.res: msvcrtd_test.rc msvcrtd_test.exe"
wine_fn_append_file ALL_DIRS "dlls/msvcrtd/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/msvcrtd/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvcrtd/tests/%) dlls/msvcrtd/tests: dlls/msvcrtd/tests/Makefile \$(MAKEDEP)
dlls/msvcrtd/tests/Makefile: dlls/msvcrtd/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/msvcrtd/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/msvfw32/libmsvfw32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvfw32/libmsvfw32.$IMPLIBEXT dlls/msvfw32/libmsvfw32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/msvfw32/libmsvfw32.$IMPLIBEXT dlls/msvfw32/libmsvfw32.cross.a: dlls/msvfw32/msvfw32.spec dlls/msvfw32/Makefile
	@cd dlls/msvfw32 && \$(MAKE) \`basename \$@\`
dlls/msvfw32 dlls/msvfw32/__install__ dlls/msvfw32/__install-lib__ dlls/msvfw32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvfw32"
test "x$enable_msvfw32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvfw32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvfw32/%) dlls/msvfw32: dlls/msvfw32/Makefile \$(MAKEDEP)
dlls/msvfw32/Makefile: dlls/msvfw32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvfw32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvfw32/tests: __builddeps__
dlls/msvfw32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "msvfw32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "msvfw32_test.exe: \$(TOPOBJDIR)/dlls/msvfw32/tests/msvfw32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/msvfw32/tests/msvfw32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
msvfw32_test.rc:
	echo \"msvfw32_test.exe TESTRES \\\"msvfw32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
msvfw32_test.res: msvfw32_test.rc msvfw32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/msvfw32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/msvfw32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvfw32/tests/%) dlls/msvfw32/tests: dlls/msvfw32/tests/Makefile \$(MAKEDEP)
dlls/msvfw32/tests/Makefile: dlls/msvfw32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/msvfw32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvidc32 dlls/msvidc32/__install__ dlls/msvidc32/__install-lib__ dlls/msvidc32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvidc32"
test "x$enable_msvidc32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvidc32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvidc32/%) dlls/msvidc32: dlls/msvidc32/Makefile \$(MAKEDEP)
dlls/msvidc32/Makefile: dlls/msvidc32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvidc32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msvideo.dll16 dlls/msvideo.dll16/__install__ dlls/msvideo.dll16/__install-lib__ dlls/msvideo.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msvideo.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msvideo.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msvideo.dll16/%) dlls/msvideo.dll16: dlls/msvideo.dll16/Makefile \$(MAKEDEP)
dlls/msvideo.dll16/Makefile: dlls/msvideo.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msvideo.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/mswsock/libmswsock.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/mswsock/libmswsock.$IMPLIBEXT dlls/mswsock/libmswsock.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/mswsock/libmswsock.$IMPLIBEXT dlls/mswsock/libmswsock.cross.a: dlls/mswsock/mswsock.spec dlls/mswsock/Makefile
	@cd dlls/mswsock && \$(MAKE) \`basename \$@\`
dlls/mswsock dlls/mswsock/__install__ dlls/mswsock/__install-lib__ dlls/mswsock/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/mswsock"
test "x$enable_mswsock" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/mswsock"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/mswsock/%) dlls/mswsock: dlls/mswsock/Makefile \$(MAKEDEP)
dlls/mswsock/Makefile: dlls/mswsock/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/mswsock/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msxml3 dlls/msxml3/__install__ dlls/msxml3/__install-lib__ dlls/msxml3/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msxml3"
test "x$enable_msxml3" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msxml3"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msxml3/%) dlls/msxml3: dlls/msxml3/Makefile \$(MAKEDEP)
dlls/msxml3/Makefile: dlls/msxml3/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msxml3/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msxml3/tests: __builddeps__
dlls/msxml3/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "msxml3_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "msxml3_test.exe: \$(TOPOBJDIR)/dlls/msxml3/tests/msxml3_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/msxml3/tests/msxml3_test.exe$DLLEXT \$@ && \$(STRIP) \$@
msxml3_test.rc:
	echo \"msxml3_test.exe TESTRES \\\"msxml3_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
msxml3_test.res: msxml3_test.rc msxml3_test.exe"
wine_fn_append_file ALL_DIRS "dlls/msxml3/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/msxml3/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msxml3/tests/%) dlls/msxml3/tests: dlls/msxml3/tests/Makefile \$(MAKEDEP)
dlls/msxml3/tests/Makefile: dlls/msxml3/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/msxml3/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/msxml4 dlls/msxml4/__install__ dlls/msxml4/__install-lib__ dlls/msxml4/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/msxml4"
test "x$enable_msxml4" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/msxml4"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/msxml4/%) dlls/msxml4: dlls/msxml4/Makefile \$(MAKEDEP)
dlls/msxml4/Makefile: dlls/msxml4/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/msxml4/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/nddeapi/libnddeapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/nddeapi/libnddeapi.$IMPLIBEXT dlls/nddeapi/libnddeapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/nddeapi/libnddeapi.$IMPLIBEXT dlls/nddeapi/libnddeapi.cross.a: dlls/nddeapi/nddeapi.spec dlls/nddeapi/Makefile
	@cd dlls/nddeapi && \$(MAKE) \`basename \$@\`
dlls/nddeapi dlls/nddeapi/__install__ dlls/nddeapi/__install-lib__ dlls/nddeapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/nddeapi"
test "x$enable_nddeapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/nddeapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/nddeapi/%) dlls/nddeapi: dlls/nddeapi/Makefile \$(MAKEDEP)
dlls/nddeapi/Makefile: dlls/nddeapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/nddeapi/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/netapi32/libnetapi32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/netapi32/libnetapi32.$IMPLIBEXT dlls/netapi32/libnetapi32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/netapi32/libnetapi32.$IMPLIBEXT dlls/netapi32/libnetapi32.cross.a: dlls/netapi32/netapi32.spec dlls/netapi32/Makefile
	@cd dlls/netapi32 && \$(MAKE) \`basename \$@\`
dlls/netapi32 dlls/netapi32/__install__ dlls/netapi32/__install-lib__ dlls/netapi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/netapi32"
test "x$enable_netapi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/netapi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/netapi32/%) dlls/netapi32: dlls/netapi32/Makefile \$(MAKEDEP)
dlls/netapi32/Makefile: dlls/netapi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/netapi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/netapi32/tests: __builddeps__
dlls/netapi32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "netapi32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "netapi32_test.exe: \$(TOPOBJDIR)/dlls/netapi32/tests/netapi32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/netapi32/tests/netapi32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
netapi32_test.rc:
	echo \"netapi32_test.exe TESTRES \\\"netapi32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
netapi32_test.res: netapi32_test.rc netapi32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/netapi32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/netapi32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/netapi32/tests/%) dlls/netapi32/tests: dlls/netapi32/tests/Makefile \$(MAKEDEP)
dlls/netapi32/tests/Makefile: dlls/netapi32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/netapi32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/newdev/libnewdev.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/newdev/libnewdev.$IMPLIBEXT dlls/newdev/libnewdev.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/newdev/libnewdev.$IMPLIBEXT dlls/newdev/libnewdev.cross.a: dlls/newdev/newdev.spec dlls/newdev/Makefile
	@cd dlls/newdev && \$(MAKE) \`basename \$@\`
dlls/newdev dlls/newdev/__install__ dlls/newdev/__install-lib__ dlls/newdev/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/newdev"
test "x$enable_newdev" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/newdev"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/newdev/%) dlls/newdev: dlls/newdev/Makefile \$(MAKEDEP)
dlls/newdev/Makefile: dlls/newdev/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/newdev/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/ntdll/libntdll.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ntdll/libntdll.$IMPLIBEXT dlls/ntdll/libntdll.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/ntdll/libntdll.$IMPLIBEXT dlls/ntdll/libntdll.cross.a: dlls/ntdll/ntdll.spec dlls/ntdll/Makefile
	@cd dlls/ntdll && \$(MAKE) \`basename \$@\`
dlls/ntdll dlls/ntdll/__install__ dlls/ntdll/__install-lib__ dlls/ntdll/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ntdll"
test "x$enable_ntdll" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ntdll"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ntdll/%) dlls/ntdll: dlls/ntdll/Makefile \$(MAKEDEP)
dlls/ntdll/Makefile: dlls/ntdll/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ntdll/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ntdll/tests: __builddeps__
dlls/ntdll/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "ntdll_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "ntdll_test.exe: \$(TOPOBJDIR)/dlls/ntdll/tests/ntdll_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/ntdll/tests/ntdll_test.exe$DLLEXT \$@ && \$(STRIP) \$@
ntdll_test.rc:
	echo \"ntdll_test.exe TESTRES \\\"ntdll_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
ntdll_test.res: ntdll_test.rc ntdll_test.exe"
wine_fn_append_file ALL_DIRS "dlls/ntdll/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/ntdll/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ntdll/tests/%) dlls/ntdll/tests: dlls/ntdll/tests/Makefile \$(MAKEDEP)
dlls/ntdll/tests/Makefile: dlls/ntdll/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/ntdll/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/ntdsapi/libntdsapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ntdsapi/libntdsapi.$IMPLIBEXT dlls/ntdsapi/libntdsapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/ntdsapi/libntdsapi.$IMPLIBEXT dlls/ntdsapi/libntdsapi.cross.a: dlls/ntdsapi/ntdsapi.spec dlls/ntdsapi/Makefile
	@cd dlls/ntdsapi && \$(MAKE) \`basename \$@\`
dlls/ntdsapi dlls/ntdsapi/__install__ dlls/ntdsapi/__install-lib__ dlls/ntdsapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ntdsapi"
test "x$enable_ntdsapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ntdsapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ntdsapi/%) dlls/ntdsapi: dlls/ntdsapi/Makefile \$(MAKEDEP)
dlls/ntdsapi/Makefile: dlls/ntdsapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ntdsapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ntdsapi/tests: __builddeps__
dlls/ntdsapi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "ntdsapi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "ntdsapi_test.exe: \$(TOPOBJDIR)/dlls/ntdsapi/tests/ntdsapi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/ntdsapi/tests/ntdsapi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
ntdsapi_test.rc:
	echo \"ntdsapi_test.exe TESTRES \\\"ntdsapi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
ntdsapi_test.res: ntdsapi_test.rc ntdsapi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/ntdsapi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/ntdsapi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ntdsapi/tests/%) dlls/ntdsapi/tests: dlls/ntdsapi/tests/Makefile \$(MAKEDEP)
dlls/ntdsapi/tests/Makefile: dlls/ntdsapi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/ntdsapi/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/ntoskrnl.exe/libntoskrnl.exe.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ntoskrnl.exe/libntoskrnl.exe.$IMPLIBEXT dlls/ntoskrnl.exe/libntoskrnl.exe.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/ntoskrnl.exe/libntoskrnl.exe.$IMPLIBEXT dlls/ntoskrnl.exe/libntoskrnl.exe.cross.a: dlls/ntoskrnl.exe/ntoskrnl.exe.spec dlls/ntoskrnl.exe/Makefile
	@cd dlls/ntoskrnl.exe && \$(MAKE) \`basename \$@\`
dlls/ntoskrnl.exe dlls/ntoskrnl.exe/__install__ dlls/ntoskrnl.exe/__install-lib__ dlls/ntoskrnl.exe/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ntoskrnl.exe"
test "x$enable_ntoskrnl_exe" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ntoskrnl.exe"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ntoskrnl.exe/%) dlls/ntoskrnl.exe: dlls/ntoskrnl.exe/Makefile \$(MAKEDEP)
dlls/ntoskrnl.exe/Makefile: dlls/ntoskrnl.exe/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ntoskrnl.exe/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ntprint dlls/ntprint/__install__ dlls/ntprint/__install-lib__ dlls/ntprint/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ntprint"
test "x$enable_ntprint" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ntprint"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ntprint/%) dlls/ntprint: dlls/ntprint/Makefile \$(MAKEDEP)
dlls/ntprint/Makefile: dlls/ntprint/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ntprint/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ntprint/tests: __builddeps__
dlls/ntprint/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "ntprint_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "ntprint_test.exe: \$(TOPOBJDIR)/dlls/ntprint/tests/ntprint_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/ntprint/tests/ntprint_test.exe$DLLEXT \$@ && \$(STRIP) \$@
ntprint_test.rc:
	echo \"ntprint_test.exe TESTRES \\\"ntprint_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
ntprint_test.res: ntprint_test.rc ntprint_test.exe"
wine_fn_append_file ALL_DIRS "dlls/ntprint/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/ntprint/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ntprint/tests/%) dlls/ntprint/tests: dlls/ntprint/tests/Makefile \$(MAKEDEP)
dlls/ntprint/tests/Makefile: dlls/ntprint/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/ntprint/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/objsel dlls/objsel/__install__ dlls/objsel/__install-lib__ dlls/objsel/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/objsel"
test "x$enable_objsel" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/objsel"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/objsel/%) dlls/objsel: dlls/objsel/Makefile \$(MAKEDEP)
dlls/objsel/Makefile: dlls/objsel/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/objsel/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/odbc32/libodbc32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/odbc32/libodbc32.$IMPLIBEXT dlls/odbc32/libodbc32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/odbc32/libodbc32.$IMPLIBEXT dlls/odbc32/libodbc32.cross.a: dlls/odbc32/odbc32.spec dlls/odbc32/Makefile
	@cd dlls/odbc32 && \$(MAKE) \`basename \$@\`
dlls/odbc32 dlls/odbc32/__install__ dlls/odbc32/__install-lib__ dlls/odbc32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/odbc32"
test "x$enable_odbc32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/odbc32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/odbc32/%) dlls/odbc32: dlls/odbc32/Makefile \$(MAKEDEP)
dlls/odbc32/Makefile: dlls/odbc32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/odbc32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/odbccp32/libodbccp32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/odbccp32/libodbccp32.$IMPLIBEXT dlls/odbccp32/libodbccp32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/odbccp32/libodbccp32.$IMPLIBEXT dlls/odbccp32/libodbccp32.cross.a: dlls/odbccp32/odbccp32.spec dlls/odbccp32/Makefile
	@cd dlls/odbccp32 && \$(MAKE) \`basename \$@\`
dlls/odbccp32 dlls/odbccp32/__install__ dlls/odbccp32/__install-lib__ dlls/odbccp32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/odbccp32"
test "x$enable_odbccp32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/odbccp32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/odbccp32/%) dlls/odbccp32: dlls/odbccp32/Makefile \$(MAKEDEP)
dlls/odbccp32/Makefile: dlls/odbccp32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/odbccp32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/odbccp32/tests: __builddeps__
dlls/odbccp32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "odbccp32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "odbccp32_test.exe: \$(TOPOBJDIR)/dlls/odbccp32/tests/odbccp32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/odbccp32/tests/odbccp32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
odbccp32_test.rc:
	echo \"odbccp32_test.exe TESTRES \\\"odbccp32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
odbccp32_test.res: odbccp32_test.rc odbccp32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/odbccp32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/odbccp32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/odbccp32/tests/%) dlls/odbccp32/tests: dlls/odbccp32/tests/Makefile \$(MAKEDEP)
dlls/odbccp32/tests/Makefile: dlls/odbccp32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/odbccp32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ole2.dll16 dlls/ole2.dll16/__install__ dlls/ole2.dll16/__install-lib__ dlls/ole2.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ole2.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ole2.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ole2.dll16/%) dlls/ole2.dll16: dlls/ole2.dll16/Makefile \$(MAKEDEP)
dlls/ole2.dll16/Makefile: dlls/ole2.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ole2.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ole2conv.dll16 dlls/ole2conv.dll16/__install__ dlls/ole2conv.dll16/__install-lib__ dlls/ole2conv.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ole2conv.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ole2conv.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ole2conv.dll16/%) dlls/ole2conv.dll16: dlls/ole2conv.dll16/Makefile \$(MAKEDEP)
dlls/ole2conv.dll16/Makefile: dlls/ole2conv.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ole2conv.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ole2disp.dll16 dlls/ole2disp.dll16/__install__ dlls/ole2disp.dll16/__install-lib__ dlls/ole2disp.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ole2disp.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ole2disp.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ole2disp.dll16/%) dlls/ole2disp.dll16: dlls/ole2disp.dll16/Makefile \$(MAKEDEP)
dlls/ole2disp.dll16/Makefile: dlls/ole2disp.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ole2disp.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ole2nls.dll16 dlls/ole2nls.dll16/__install__ dlls/ole2nls.dll16/__install-lib__ dlls/ole2nls.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ole2nls.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ole2nls.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ole2nls.dll16/%) dlls/ole2nls.dll16: dlls/ole2nls.dll16/Makefile \$(MAKEDEP)
dlls/ole2nls.dll16/Makefile: dlls/ole2nls.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ole2nls.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ole2prox.dll16 dlls/ole2prox.dll16/__install__ dlls/ole2prox.dll16/__install-lib__ dlls/ole2prox.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ole2prox.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ole2prox.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ole2prox.dll16/%) dlls/ole2prox.dll16: dlls/ole2prox.dll16/Makefile \$(MAKEDEP)
dlls/ole2prox.dll16/Makefile: dlls/ole2prox.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ole2prox.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ole2thk.dll16 dlls/ole2thk.dll16/__install__ dlls/ole2thk.dll16/__install-lib__ dlls/ole2thk.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ole2thk.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ole2thk.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ole2thk.dll16/%) dlls/ole2thk.dll16: dlls/ole2thk.dll16/Makefile \$(MAKEDEP)
dlls/ole2thk.dll16/Makefile: dlls/ole2thk.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ole2thk.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/ole32/libole32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ole32/libole32.$IMPLIBEXT dlls/ole32/libole32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/ole32/libole32.$IMPLIBEXT dlls/ole32/libole32.cross.a: dlls/ole32/ole32.spec dlls/ole32/Makefile
	@cd dlls/ole32 && \$(MAKE) \`basename \$@\`
dlls/ole32 dlls/ole32/__install__ dlls/ole32/__install-lib__ dlls/ole32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ole32"
test "x$enable_ole32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ole32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ole32/%) dlls/ole32: dlls/ole32/Makefile \$(MAKEDEP)
dlls/ole32/Makefile: dlls/ole32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ole32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ole32/tests: __builddeps__
dlls/ole32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "ole32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "ole32_test.exe: \$(TOPOBJDIR)/dlls/ole32/tests/ole32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/ole32/tests/ole32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
ole32_test.rc:
	echo \"ole32_test.exe TESTRES \\\"ole32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
ole32_test.res: ole32_test.rc ole32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/ole32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/ole32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ole32/tests/%) dlls/ole32/tests: dlls/ole32/tests/Makefile \$(MAKEDEP)
dlls/ole32/tests/Makefile: dlls/ole32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/ole32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/oleacc/liboleacc.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/oleacc/liboleacc.$IMPLIBEXT dlls/oleacc/liboleacc.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/oleacc/liboleacc.$IMPLIBEXT dlls/oleacc/liboleacc.cross.a: dlls/oleacc/oleacc.spec dlls/oleacc/Makefile
	@cd dlls/oleacc && \$(MAKE) \`basename \$@\`
dlls/oleacc dlls/oleacc/__install__ dlls/oleacc/__install-lib__ dlls/oleacc/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/oleacc"
test "x$enable_oleacc" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/oleacc"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/oleacc/%) dlls/oleacc: dlls/oleacc/Makefile \$(MAKEDEP)
dlls/oleacc/Makefile: dlls/oleacc/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/oleacc/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/oleacc/tests: __builddeps__
dlls/oleacc/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "oleacc_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "oleacc_test.exe: \$(TOPOBJDIR)/dlls/oleacc/tests/oleacc_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/oleacc/tests/oleacc_test.exe$DLLEXT \$@ && \$(STRIP) \$@
oleacc_test.rc:
	echo \"oleacc_test.exe TESTRES \\\"oleacc_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
oleacc_test.res: oleacc_test.rc oleacc_test.exe"
wine_fn_append_file ALL_DIRS "dlls/oleacc/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/oleacc/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/oleacc/tests/%) dlls/oleacc/tests: dlls/oleacc/tests/Makefile \$(MAKEDEP)
dlls/oleacc/tests/Makefile: dlls/oleacc/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/oleacc/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/oleaut32/liboleaut32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/oleaut32/liboleaut32.$IMPLIBEXT dlls/oleaut32/liboleaut32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/oleaut32/liboleaut32.$IMPLIBEXT dlls/oleaut32/liboleaut32.cross.a: dlls/oleaut32/oleaut32.spec dlls/oleaut32/Makefile
	@cd dlls/oleaut32 && \$(MAKE) \`basename \$@\`
dlls/oleaut32 dlls/oleaut32/__install__ dlls/oleaut32/__install-lib__ dlls/oleaut32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/oleaut32"
test "x$enable_oleaut32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/oleaut32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/oleaut32/%) dlls/oleaut32: dlls/oleaut32/Makefile \$(MAKEDEP)
dlls/oleaut32/Makefile: dlls/oleaut32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/oleaut32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/oleaut32/tests: __builddeps__
dlls/oleaut32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "oleaut32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "oleaut32_test.exe: \$(TOPOBJDIR)/dlls/oleaut32/tests/oleaut32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/oleaut32/tests/oleaut32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
oleaut32_test.rc:
	echo \"oleaut32_test.exe TESTRES \\\"oleaut32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
oleaut32_test.res: oleaut32_test.rc oleaut32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/oleaut32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/oleaut32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/oleaut32/tests/%) dlls/oleaut32/tests: dlls/oleaut32/tests/Makefile \$(MAKEDEP)
dlls/oleaut32/tests/Makefile: dlls/oleaut32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/oleaut32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/olecli.dll16 dlls/olecli.dll16/__install__ dlls/olecli.dll16/__install-lib__ dlls/olecli.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/olecli.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/olecli.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/olecli.dll16/%) dlls/olecli.dll16: dlls/olecli.dll16/Makefile \$(MAKEDEP)
dlls/olecli.dll16/Makefile: dlls/olecli.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/olecli.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/olecli32/libolecli32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/olecli32/libolecli32.$IMPLIBEXT dlls/olecli32/libolecli32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/olecli32/libolecli32.$IMPLIBEXT dlls/olecli32/libolecli32.cross.a: dlls/olecli32/olecli32.spec dlls/olecli32/Makefile
	@cd dlls/olecli32 && \$(MAKE) \`basename \$@\`
dlls/olecli32 dlls/olecli32/__install__ dlls/olecli32/__install-lib__ dlls/olecli32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/olecli32"
test "x$enable_olecli32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/olecli32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/olecli32/%) dlls/olecli32: dlls/olecli32/Makefile \$(MAKEDEP)
dlls/olecli32/Makefile: dlls/olecli32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/olecli32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/oledb32 dlls/oledb32/__install__ dlls/oledb32/__install-lib__ dlls/oledb32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/oledb32"
test "x$enable_oledb32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/oledb32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/oledb32/%) dlls/oledb32: dlls/oledb32/Makefile \$(MAKEDEP)
dlls/oledb32/Makefile: dlls/oledb32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/oledb32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/oledb32/tests: __builddeps__
dlls/oledb32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "oledb32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "oledb32_test.exe: \$(TOPOBJDIR)/dlls/oledb32/tests/oledb32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/oledb32/tests/oledb32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
oledb32_test.rc:
	echo \"oledb32_test.exe TESTRES \\\"oledb32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
oledb32_test.res: oledb32_test.rc oledb32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/oledb32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/oledb32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/oledb32/tests/%) dlls/oledb32/tests: dlls/oledb32/tests/Makefile \$(MAKEDEP)
dlls/oledb32/tests/Makefile: dlls/oledb32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/oledb32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/oledlg/liboledlg.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/oledlg/liboledlg.$IMPLIBEXT dlls/oledlg/liboledlg.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/oledlg/liboledlg.$IMPLIBEXT dlls/oledlg/liboledlg.cross.a: dlls/oledlg/oledlg.spec dlls/oledlg/Makefile
	@cd dlls/oledlg && \$(MAKE) \`basename \$@\`
dlls/oledlg dlls/oledlg/__install__ dlls/oledlg/__install-lib__ dlls/oledlg/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/oledlg"
test "x$enable_oledlg" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/oledlg"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/oledlg/%) dlls/oledlg: dlls/oledlg/Makefile \$(MAKEDEP)
dlls/oledlg/Makefile: dlls/oledlg/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/oledlg/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/olepro32/libolepro32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/olepro32/libolepro32.$IMPLIBEXT dlls/olepro32/libolepro32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/olepro32/libolepro32.$IMPLIBEXT dlls/olepro32/libolepro32.cross.a: dlls/olepro32/olepro32.spec dlls/olepro32/Makefile
	@cd dlls/olepro32 && \$(MAKE) \`basename \$@\`
dlls/olepro32 dlls/olepro32/__install__ dlls/olepro32/__install-lib__ dlls/olepro32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/olepro32"
test "x$enable_olepro32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/olepro32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/olepro32/%) dlls/olepro32: dlls/olepro32/Makefile \$(MAKEDEP)
dlls/olepro32/Makefile: dlls/olepro32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/olepro32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/olesvr.dll16 dlls/olesvr.dll16/__install__ dlls/olesvr.dll16/__install-lib__ dlls/olesvr.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/olesvr.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/olesvr.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/olesvr.dll16/%) dlls/olesvr.dll16: dlls/olesvr.dll16/Makefile \$(MAKEDEP)
dlls/olesvr.dll16/Makefile: dlls/olesvr.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/olesvr.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/olesvr32/libolesvr32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/olesvr32/libolesvr32.$IMPLIBEXT dlls/olesvr32/libolesvr32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/olesvr32/libolesvr32.$IMPLIBEXT dlls/olesvr32/libolesvr32.cross.a: dlls/olesvr32/olesvr32.spec dlls/olesvr32/Makefile
	@cd dlls/olesvr32 && \$(MAKE) \`basename \$@\`
dlls/olesvr32 dlls/olesvr32/__install__ dlls/olesvr32/__install-lib__ dlls/olesvr32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/olesvr32"
test "x$enable_olesvr32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/olesvr32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/olesvr32/%) dlls/olesvr32: dlls/olesvr32/Makefile \$(MAKEDEP)
dlls/olesvr32/Makefile: dlls/olesvr32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/olesvr32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/olethk32 dlls/olethk32/__install__ dlls/olethk32/__install-lib__ dlls/olethk32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/olethk32"
test "x$enable_olethk32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/olethk32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/olethk32/%) dlls/olethk32: dlls/olethk32/Makefile \$(MAKEDEP)
dlls/olethk32/Makefile: dlls/olethk32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/olethk32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/openal32 dlls/openal32/__install__ dlls/openal32/__install-lib__ dlls/openal32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/openal32"
test "x$enable_openal32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/openal32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/openal32/%) dlls/openal32: dlls/openal32/Makefile \$(MAKEDEP)
dlls/openal32/Makefile: dlls/openal32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/openal32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/opengl32/libopengl32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/opengl32/libopengl32.$IMPLIBEXT dlls/opengl32/libopengl32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/opengl32/libopengl32.$IMPLIBEXT dlls/opengl32/libopengl32.cross.a: dlls/opengl32/opengl32.spec dlls/opengl32/Makefile
	@cd dlls/opengl32 && \$(MAKE) \`basename \$@\`
dlls/opengl32 dlls/opengl32/__install__ dlls/opengl32/__install-lib__ dlls/opengl32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/opengl32"
test "x$enable_opengl32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/opengl32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/opengl32/%) dlls/opengl32: dlls/opengl32/Makefile \$(MAKEDEP)
dlls/opengl32/Makefile: dlls/opengl32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/opengl32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/opengl32/tests: __builddeps__
dlls/opengl32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "opengl32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "opengl32_test.exe: \$(TOPOBJDIR)/dlls/opengl32/tests/opengl32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/opengl32/tests/opengl32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
opengl32_test.rc:
	echo \"opengl32_test.exe TESTRES \\\"opengl32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
opengl32_test.res: opengl32_test.rc opengl32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/opengl32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/opengl32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/opengl32/tests/%) dlls/opengl32/tests: dlls/opengl32/tests/Makefile \$(MAKEDEP)
dlls/opengl32/tests/Makefile: dlls/opengl32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/opengl32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/pdh/libpdh.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/pdh/libpdh.$IMPLIBEXT dlls/pdh/libpdh.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/pdh/libpdh.$IMPLIBEXT dlls/pdh/libpdh.cross.a: dlls/pdh/pdh.spec dlls/pdh/Makefile
	@cd dlls/pdh && \$(MAKE) \`basename \$@\`
dlls/pdh dlls/pdh/__install__ dlls/pdh/__install-lib__ dlls/pdh/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/pdh"
test "x$enable_pdh" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/pdh"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/pdh/%) dlls/pdh: dlls/pdh/Makefile \$(MAKEDEP)
dlls/pdh/Makefile: dlls/pdh/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/pdh/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/pdh/tests: __builddeps__
dlls/pdh/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "pdh_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "pdh_test.exe: \$(TOPOBJDIR)/dlls/pdh/tests/pdh_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/pdh/tests/pdh_test.exe$DLLEXT \$@ && \$(STRIP) \$@
pdh_test.rc:
	echo \"pdh_test.exe TESTRES \\\"pdh_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
pdh_test.res: pdh_test.rc pdh_test.exe"
wine_fn_append_file ALL_DIRS "dlls/pdh/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/pdh/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/pdh/tests/%) dlls/pdh/tests: dlls/pdh/tests/Makefile \$(MAKEDEP)
dlls/pdh/tests/Makefile: dlls/pdh/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/pdh/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/pidgen dlls/pidgen/__install__ dlls/pidgen/__install-lib__ dlls/pidgen/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/pidgen"
test "x$enable_pidgen" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/pidgen"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/pidgen/%) dlls/pidgen: dlls/pidgen/Makefile \$(MAKEDEP)
dlls/pidgen/Makefile: dlls/pidgen/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/pidgen/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/powrprof/libpowrprof.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/powrprof/libpowrprof.$IMPLIBEXT dlls/powrprof/libpowrprof.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/powrprof/libpowrprof.$IMPLIBEXT dlls/powrprof/libpowrprof.cross.a: dlls/powrprof/powrprof.spec dlls/powrprof/Makefile
	@cd dlls/powrprof && \$(MAKE) \`basename \$@\`
dlls/powrprof dlls/powrprof/__install__ dlls/powrprof/__install-lib__ dlls/powrprof/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/powrprof"
test "x$enable_powrprof" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/powrprof"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/powrprof/%) dlls/powrprof: dlls/powrprof/Makefile \$(MAKEDEP)
dlls/powrprof/Makefile: dlls/powrprof/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/powrprof/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/printui dlls/printui/__install__ dlls/printui/__install-lib__ dlls/printui/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/printui"
test "x$enable_printui" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/printui"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/printui/%) dlls/printui: dlls/printui/Makefile \$(MAKEDEP)
dlls/printui/Makefile: dlls/printui/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/printui/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/propsys dlls/propsys/__install__ dlls/propsys/__install-lib__ dlls/propsys/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/propsys"
test "x$enable_propsys" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/propsys"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/propsys/%) dlls/propsys: dlls/propsys/Makefile \$(MAKEDEP)
dlls/propsys/Makefile: dlls/propsys/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/propsys/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/psapi/libpsapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/psapi/libpsapi.$IMPLIBEXT dlls/psapi/libpsapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/psapi/libpsapi.$IMPLIBEXT dlls/psapi/libpsapi.cross.a: dlls/psapi/psapi.spec dlls/psapi/Makefile
	@cd dlls/psapi && \$(MAKE) \`basename \$@\`
dlls/psapi dlls/psapi/__install__ dlls/psapi/__install-lib__ dlls/psapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/psapi"
test "x$enable_psapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/psapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/psapi/%) dlls/psapi: dlls/psapi/Makefile \$(MAKEDEP)
dlls/psapi/Makefile: dlls/psapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/psapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/psapi/tests: __builddeps__
dlls/psapi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "psapi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "psapi_test.exe: \$(TOPOBJDIR)/dlls/psapi/tests/psapi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/psapi/tests/psapi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
psapi_test.rc:
	echo \"psapi_test.exe TESTRES \\\"psapi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
psapi_test.res: psapi_test.rc psapi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/psapi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/psapi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/psapi/tests/%) dlls/psapi/tests: dlls/psapi/tests/Makefile \$(MAKEDEP)
dlls/psapi/tests/Makefile: dlls/psapi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/psapi/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/pstorec dlls/pstorec/__install__ dlls/pstorec/__install-lib__ dlls/pstorec/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/pstorec"
test "x$enable_pstorec" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/pstorec"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/pstorec/%) dlls/pstorec: dlls/pstorec/Makefile \$(MAKEDEP)
dlls/pstorec/Makefile: dlls/pstorec/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/pstorec/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/qcap dlls/qcap/__install__ dlls/qcap/__install-lib__ dlls/qcap/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/qcap"
test "x$enable_qcap" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/qcap"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/qcap/%) dlls/qcap: dlls/qcap/Makefile \$(MAKEDEP)
dlls/qcap/Makefile: dlls/qcap/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/qcap/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/qedit dlls/qedit/__install__ dlls/qedit/__install-lib__ dlls/qedit/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/qedit"
test "x$enable_qedit" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/qedit"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/qedit/%) dlls/qedit: dlls/qedit/Makefile \$(MAKEDEP)
dlls/qedit/Makefile: dlls/qedit/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/qedit/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/qedit/tests: __builddeps__
dlls/qedit/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "qedit_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "qedit_test.exe: \$(TOPOBJDIR)/dlls/qedit/tests/qedit_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/qedit/tests/qedit_test.exe$DLLEXT \$@ && \$(STRIP) \$@
qedit_test.rc:
	echo \"qedit_test.exe TESTRES \\\"qedit_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
qedit_test.res: qedit_test.rc qedit_test.exe"
wine_fn_append_file ALL_DIRS "dlls/qedit/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/qedit/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/qedit/tests/%) dlls/qedit/tests: dlls/qedit/tests/Makefile \$(MAKEDEP)
dlls/qedit/tests/Makefile: dlls/qedit/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/qedit/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/qmgr dlls/qmgr/__install__ dlls/qmgr/__install-lib__ dlls/qmgr/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/qmgr"
test "x$enable_qmgr" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/qmgr"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/qmgr/%) dlls/qmgr: dlls/qmgr/Makefile \$(MAKEDEP)
dlls/qmgr/Makefile: dlls/qmgr/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/qmgr/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/qmgr/tests: __builddeps__
dlls/qmgr/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "qmgr_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "qmgr_test.exe: \$(TOPOBJDIR)/dlls/qmgr/tests/qmgr_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/qmgr/tests/qmgr_test.exe$DLLEXT \$@ && \$(STRIP) \$@
qmgr_test.rc:
	echo \"qmgr_test.exe TESTRES \\\"qmgr_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
qmgr_test.res: qmgr_test.rc qmgr_test.exe"
wine_fn_append_file ALL_DIRS "dlls/qmgr/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/qmgr/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/qmgr/tests/%) dlls/qmgr/tests: dlls/qmgr/tests/Makefile \$(MAKEDEP)
dlls/qmgr/tests/Makefile: dlls/qmgr/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/qmgr/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/qmgrprxy dlls/qmgrprxy/__install__ dlls/qmgrprxy/__install-lib__ dlls/qmgrprxy/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/qmgrprxy"
test "x$enable_qmgrprxy" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/qmgrprxy"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/qmgrprxy/%) dlls/qmgrprxy: dlls/qmgrprxy/Makefile \$(MAKEDEP)
dlls/qmgrprxy/Makefile: dlls/qmgrprxy/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/qmgrprxy/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/quartz/libquartz.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/quartz/libquartz.$IMPLIBEXT dlls/quartz/libquartz.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/quartz/libquartz.$IMPLIBEXT dlls/quartz/libquartz.cross.a: dlls/quartz/quartz.spec dlls/quartz/Makefile
	@cd dlls/quartz && \$(MAKE) \`basename \$@\`
dlls/quartz dlls/quartz/__install__ dlls/quartz/__install-lib__ dlls/quartz/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/quartz"
test "x$enable_quartz" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/quartz"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/quartz/%) dlls/quartz: dlls/quartz/Makefile \$(MAKEDEP)
dlls/quartz/Makefile: dlls/quartz/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/quartz/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/quartz/tests: __builddeps__
dlls/quartz/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "quartz_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "quartz_test.exe: \$(TOPOBJDIR)/dlls/quartz/tests/quartz_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/quartz/tests/quartz_test.exe$DLLEXT \$@ && \$(STRIP) \$@
quartz_test.rc:
	echo \"quartz_test.exe TESTRES \\\"quartz_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
quartz_test.res: quartz_test.rc quartz_test.exe"
wine_fn_append_file ALL_DIRS "dlls/quartz/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/quartz/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/quartz/tests/%) dlls/quartz/tests: dlls/quartz/tests/Makefile \$(MAKEDEP)
dlls/quartz/tests/Makefile: dlls/quartz/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/quartz/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/query dlls/query/__install__ dlls/query/__install-lib__ dlls/query/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/query"
test "x$enable_query" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/query"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/query/%) dlls/query: dlls/query/Makefile \$(MAKEDEP)
dlls/query/Makefile: dlls/query/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/query/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rasapi16.dll16 dlls/rasapi16.dll16/__install__ dlls/rasapi16.dll16/__install-lib__ dlls/rasapi16.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/rasapi16.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/rasapi16.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rasapi16.dll16/%) dlls/rasapi16.dll16: dlls/rasapi16.dll16/Makefile \$(MAKEDEP)
dlls/rasapi16.dll16/Makefile: dlls/rasapi16.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/rasapi16.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/rasapi32/librasapi32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rasapi32/librasapi32.$IMPLIBEXT dlls/rasapi32/librasapi32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/rasapi32/librasapi32.$IMPLIBEXT dlls/rasapi32/librasapi32.cross.a: dlls/rasapi32/rasapi32.spec dlls/rasapi32/Makefile
	@cd dlls/rasapi32 && \$(MAKE) \`basename \$@\`
dlls/rasapi32 dlls/rasapi32/__install__ dlls/rasapi32/__install-lib__ dlls/rasapi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/rasapi32"
test "x$enable_rasapi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/rasapi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rasapi32/%) dlls/rasapi32: dlls/rasapi32/Makefile \$(MAKEDEP)
dlls/rasapi32/Makefile: dlls/rasapi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/rasapi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rasapi32/tests: __builddeps__
dlls/rasapi32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "rasapi32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "rasapi32_test.exe: \$(TOPOBJDIR)/dlls/rasapi32/tests/rasapi32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/rasapi32/tests/rasapi32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
rasapi32_test.rc:
	echo \"rasapi32_test.exe TESTRES \\\"rasapi32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
rasapi32_test.res: rasapi32_test.rc rasapi32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/rasapi32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/rasapi32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rasapi32/tests/%) dlls/rasapi32/tests: dlls/rasapi32/tests/Makefile \$(MAKEDEP)
dlls/rasapi32/tests/Makefile: dlls/rasapi32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/rasapi32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/rasdlg/librasdlg.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rasdlg/librasdlg.$IMPLIBEXT dlls/rasdlg/librasdlg.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/rasdlg/librasdlg.$IMPLIBEXT dlls/rasdlg/librasdlg.cross.a: dlls/rasdlg/rasdlg.spec dlls/rasdlg/Makefile
	@cd dlls/rasdlg && \$(MAKE) \`basename \$@\`
dlls/rasdlg dlls/rasdlg/__install__ dlls/rasdlg/__install-lib__ dlls/rasdlg/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/rasdlg"
test "x$enable_rasdlg" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/rasdlg"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rasdlg/%) dlls/rasdlg: dlls/rasdlg/Makefile \$(MAKEDEP)
dlls/rasdlg/Makefile: dlls/rasdlg/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/rasdlg/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/resutils/libresutils.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/resutils/libresutils.$IMPLIBEXT dlls/resutils/libresutils.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/resutils/libresutils.$IMPLIBEXT dlls/resutils/libresutils.cross.a: dlls/resutils/resutils.spec dlls/resutils/Makefile
	@cd dlls/resutils && \$(MAKE) \`basename \$@\`
dlls/resutils dlls/resutils/__install__ dlls/resutils/__install-lib__ dlls/resutils/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/resutils"
test "x$enable_resutils" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/resutils"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/resutils/%) dlls/resutils: dlls/resutils/Makefile \$(MAKEDEP)
dlls/resutils/Makefile: dlls/resutils/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/resutils/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/riched20/libriched20.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/riched20/libriched20.$IMPLIBEXT dlls/riched20/libriched20.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/riched20/libriched20.$IMPLIBEXT dlls/riched20/libriched20.cross.a: dlls/riched20/riched20.spec dlls/riched20/Makefile
	@cd dlls/riched20 && \$(MAKE) \`basename \$@\`
dlls/riched20 dlls/riched20/__install__ dlls/riched20/__install-lib__ dlls/riched20/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/riched20"
test "x$enable_riched20" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/riched20"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/riched20/%) dlls/riched20: dlls/riched20/Makefile \$(MAKEDEP)
dlls/riched20/Makefile: dlls/riched20/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/riched20/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/riched20/tests: __builddeps__
dlls/riched20/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "riched20_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "riched20_test.exe: \$(TOPOBJDIR)/dlls/riched20/tests/riched20_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/riched20/tests/riched20_test.exe$DLLEXT \$@ && \$(STRIP) \$@
riched20_test.rc:
	echo \"riched20_test.exe TESTRES \\\"riched20_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
riched20_test.res: riched20_test.rc riched20_test.exe"
wine_fn_append_file ALL_DIRS "dlls/riched20/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/riched20/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/riched20/tests/%) dlls/riched20/tests: dlls/riched20/tests/Makefile \$(MAKEDEP)
dlls/riched20/tests/Makefile: dlls/riched20/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/riched20/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/riched32 dlls/riched32/__install__ dlls/riched32/__install-lib__ dlls/riched32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/riched32"
test "x$enable_riched32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/riched32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/riched32/%) dlls/riched32: dlls/riched32/Makefile \$(MAKEDEP)
dlls/riched32/Makefile: dlls/riched32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/riched32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/riched32/tests: __builddeps__
dlls/riched32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "riched32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "riched32_test.exe: \$(TOPOBJDIR)/dlls/riched32/tests/riched32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/riched32/tests/riched32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
riched32_test.rc:
	echo \"riched32_test.exe TESTRES \\\"riched32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
riched32_test.res: riched32_test.rc riched32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/riched32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/riched32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/riched32/tests/%) dlls/riched32/tests: dlls/riched32/tests/Makefile \$(MAKEDEP)
dlls/riched32/tests/Makefile: dlls/riched32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/riched32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/rpcrt4/librpcrt4.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rpcrt4/librpcrt4.$IMPLIBEXT dlls/rpcrt4/librpcrt4.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/rpcrt4/librpcrt4.$IMPLIBEXT dlls/rpcrt4/librpcrt4.cross.a: dlls/rpcrt4/rpcrt4.spec dlls/rpcrt4/Makefile
	@cd dlls/rpcrt4 && \$(MAKE) \`basename \$@\`
dlls/rpcrt4 dlls/rpcrt4/__install__ dlls/rpcrt4/__install-lib__ dlls/rpcrt4/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/rpcrt4"
test "x$enable_rpcrt4" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/rpcrt4"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rpcrt4/%) dlls/rpcrt4: dlls/rpcrt4/Makefile \$(MAKEDEP)
dlls/rpcrt4/Makefile: dlls/rpcrt4/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/rpcrt4/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rpcrt4/tests: __builddeps__
dlls/rpcrt4/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "rpcrt4_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "rpcrt4_test.exe: \$(TOPOBJDIR)/dlls/rpcrt4/tests/rpcrt4_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/rpcrt4/tests/rpcrt4_test.exe$DLLEXT \$@ && \$(STRIP) \$@
rpcrt4_test.rc:
	echo \"rpcrt4_test.exe TESTRES \\\"rpcrt4_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
rpcrt4_test.res: rpcrt4_test.rc rpcrt4_test.exe"
wine_fn_append_file ALL_DIRS "dlls/rpcrt4/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/rpcrt4/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rpcrt4/tests/%) dlls/rpcrt4/tests: dlls/rpcrt4/tests/Makefile \$(MAKEDEP)
dlls/rpcrt4/tests/Makefile: dlls/rpcrt4/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/rpcrt4/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rsabase dlls/rsabase/__install__ dlls/rsabase/__install-lib__ dlls/rsabase/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/rsabase"
test "x$enable_rsabase" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/rsabase"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rsabase/%) dlls/rsabase: dlls/rsabase/Makefile \$(MAKEDEP)
dlls/rsabase/Makefile: dlls/rsabase/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/rsabase/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/rsaenh/librsaenh.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rsaenh/librsaenh.$IMPLIBEXT dlls/rsaenh/librsaenh.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/rsaenh/librsaenh.$IMPLIBEXT dlls/rsaenh/librsaenh.cross.a: dlls/rsaenh/rsaenh.spec dlls/rsaenh/Makefile
	@cd dlls/rsaenh && \$(MAKE) \`basename \$@\`
dlls/rsaenh dlls/rsaenh/__install__ dlls/rsaenh/__install-lib__ dlls/rsaenh/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/rsaenh"
test "x$enable_rsaenh" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/rsaenh"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rsaenh/%) dlls/rsaenh: dlls/rsaenh/Makefile \$(MAKEDEP)
dlls/rsaenh/Makefile: dlls/rsaenh/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/rsaenh/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rsaenh/tests: __builddeps__
dlls/rsaenh/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "rsaenh_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "rsaenh_test.exe: \$(TOPOBJDIR)/dlls/rsaenh/tests/rsaenh_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/rsaenh/tests/rsaenh_test.exe$DLLEXT \$@ && \$(STRIP) \$@
rsaenh_test.rc:
	echo \"rsaenh_test.exe TESTRES \\\"rsaenh_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
rsaenh_test.res: rsaenh_test.rc rsaenh_test.exe"
wine_fn_append_file ALL_DIRS "dlls/rsaenh/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/rsaenh/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rsaenh/tests/%) dlls/rsaenh/tests: dlls/rsaenh/tests/Makefile \$(MAKEDEP)
dlls/rsaenh/tests/Makefile: dlls/rsaenh/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/rsaenh/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/rtutils/librtutils.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/rtutils/librtutils.$IMPLIBEXT dlls/rtutils/librtutils.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/rtutils/librtutils.$IMPLIBEXT dlls/rtutils/librtutils.cross.a: dlls/rtutils/rtutils.spec dlls/rtutils/Makefile
	@cd dlls/rtutils && \$(MAKE) \`basename \$@\`
dlls/rtutils dlls/rtutils/__install__ dlls/rtutils/__install-lib__ dlls/rtutils/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/rtutils"
test "x$enable_rtutils" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/rtutils"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/rtutils/%) dlls/rtutils: dlls/rtutils/Makefile \$(MAKEDEP)
dlls/rtutils/Makefile: dlls/rtutils/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/rtutils/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sane.ds dlls/sane.ds/__install__ dlls/sane.ds/__install-lib__ dlls/sane.ds/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/sane.ds"
test "x$enable_sane_ds" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/sane.ds"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sane.ds/%) dlls/sane.ds: dlls/sane.ds/Makefile \$(MAKEDEP)
dlls/sane.ds/Makefile: dlls/sane.ds/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/sane.ds/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sccbase dlls/sccbase/__install__ dlls/sccbase/__install-lib__ dlls/sccbase/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/sccbase"
test "x$enable_sccbase" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/sccbase"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sccbase/%) dlls/sccbase: dlls/sccbase/Makefile \$(MAKEDEP)
dlls/sccbase/Makefile: dlls/sccbase/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/sccbase/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/schannel dlls/schannel/__install__ dlls/schannel/__install-lib__ dlls/schannel/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/schannel"
test "x$enable_schannel" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/schannel"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/schannel/%) dlls/schannel: dlls/schannel/Makefile \$(MAKEDEP)
dlls/schannel/Makefile: dlls/schannel/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/schannel/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/schannel/tests: __builddeps__
dlls/schannel/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "schannel_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "schannel_test.exe: \$(TOPOBJDIR)/dlls/schannel/tests/schannel_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/schannel/tests/schannel_test.exe$DLLEXT \$@ && \$(STRIP) \$@
schannel_test.rc:
	echo \"schannel_test.exe TESTRES \\\"schannel_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
schannel_test.res: schannel_test.rc schannel_test.exe"
wine_fn_append_file ALL_DIRS "dlls/schannel/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/schannel/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/schannel/tests/%) dlls/schannel/tests: dlls/schannel/tests/Makefile \$(MAKEDEP)
dlls/schannel/tests/Makefile: dlls/schannel/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/schannel/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/secur32/libsecur32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/secur32/libsecur32.$IMPLIBEXT dlls/secur32/libsecur32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/secur32/libsecur32.$IMPLIBEXT dlls/secur32/libsecur32.cross.a: dlls/secur32/secur32.spec dlls/secur32/Makefile
	@cd dlls/secur32 && \$(MAKE) \`basename \$@\`
dlls/secur32 dlls/secur32/__install__ dlls/secur32/__install-lib__ dlls/secur32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/secur32"
test "x$enable_secur32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/secur32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/secur32/%) dlls/secur32: dlls/secur32/Makefile \$(MAKEDEP)
dlls/secur32/Makefile: dlls/secur32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/secur32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/secur32/tests: __builddeps__
dlls/secur32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "secur32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "secur32_test.exe: \$(TOPOBJDIR)/dlls/secur32/tests/secur32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/secur32/tests/secur32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
secur32_test.rc:
	echo \"secur32_test.exe TESTRES \\\"secur32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
secur32_test.res: secur32_test.rc secur32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/secur32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/secur32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/secur32/tests/%) dlls/secur32/tests: dlls/secur32/tests/Makefile \$(MAKEDEP)
dlls/secur32/tests/Makefile: dlls/secur32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/secur32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/security dlls/security/__install__ dlls/security/__install-lib__ dlls/security/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/security"
test "x$enable_security" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/security"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/security/%) dlls/security: dlls/security/Makefile \$(MAKEDEP)
dlls/security/Makefile: dlls/security/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/security/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/sensapi/libsensapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sensapi/libsensapi.$IMPLIBEXT dlls/sensapi/libsensapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/sensapi/libsensapi.$IMPLIBEXT dlls/sensapi/libsensapi.cross.a: dlls/sensapi/sensapi.spec dlls/sensapi/Makefile
	@cd dlls/sensapi && \$(MAKE) \`basename \$@\`
dlls/sensapi dlls/sensapi/__install__ dlls/sensapi/__install-lib__ dlls/sensapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/sensapi"
test "x$enable_sensapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/sensapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sensapi/%) dlls/sensapi: dlls/sensapi/Makefile \$(MAKEDEP)
dlls/sensapi/Makefile: dlls/sensapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/sensapi/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/serialui/libserialui.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/serialui/libserialui.$IMPLIBEXT dlls/serialui/libserialui.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/serialui/libserialui.$IMPLIBEXT dlls/serialui/libserialui.cross.a: dlls/serialui/serialui.spec dlls/serialui/Makefile
	@cd dlls/serialui && \$(MAKE) \`basename \$@\`
dlls/serialui dlls/serialui/__install__ dlls/serialui/__install-lib__ dlls/serialui/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/serialui"
test "x$enable_serialui" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/serialui"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/serialui/%) dlls/serialui: dlls/serialui/Makefile \$(MAKEDEP)
dlls/serialui/Makefile: dlls/serialui/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/serialui/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/serialui/tests: __builddeps__
dlls/serialui/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "serialui_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "serialui_test.exe: \$(TOPOBJDIR)/dlls/serialui/tests/serialui_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/serialui/tests/serialui_test.exe$DLLEXT \$@ && \$(STRIP) \$@
serialui_test.rc:
	echo \"serialui_test.exe TESTRES \\\"serialui_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
serialui_test.res: serialui_test.rc serialui_test.exe"
wine_fn_append_file ALL_DIRS "dlls/serialui/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/serialui/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/serialui/tests/%) dlls/serialui/tests: dlls/serialui/tests/Makefile \$(MAKEDEP)
dlls/serialui/tests/Makefile: dlls/serialui/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/serialui/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/setupapi/libsetupapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/setupapi/libsetupapi.$IMPLIBEXT dlls/setupapi/libsetupapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/setupapi/libsetupapi.$IMPLIBEXT dlls/setupapi/libsetupapi.cross.a: dlls/setupapi/setupapi.spec dlls/setupapi/Makefile
	@cd dlls/setupapi && \$(MAKE) \`basename \$@\`
dlls/setupapi dlls/setupapi/__install__ dlls/setupapi/__install-lib__ dlls/setupapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/setupapi"
test "x$enable_setupapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/setupapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/setupapi/%) dlls/setupapi: dlls/setupapi/Makefile \$(MAKEDEP)
dlls/setupapi/Makefile: dlls/setupapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/setupapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/setupapi/tests: __builddeps__
dlls/setupapi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "setupapi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "setupapi_test.exe: \$(TOPOBJDIR)/dlls/setupapi/tests/setupapi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/setupapi/tests/setupapi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
setupapi_test.rc:
	echo \"setupapi_test.exe TESTRES \\\"setupapi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
setupapi_test.res: setupapi_test.rc setupapi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/setupapi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/setupapi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/setupapi/tests/%) dlls/setupapi/tests: dlls/setupapi/tests/Makefile \$(MAKEDEP)
dlls/setupapi/tests/Makefile: dlls/setupapi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/setupapi/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/setupx.dll16 dlls/setupx.dll16/__install__ dlls/setupx.dll16/__install-lib__ dlls/setupx.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/setupx.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/setupx.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/setupx.dll16/%) dlls/setupx.dll16: dlls/setupx.dll16/Makefile \$(MAKEDEP)
dlls/setupx.dll16/Makefile: dlls/setupx.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/setupx.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/sfc/libsfc.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sfc/libsfc.$IMPLIBEXT dlls/sfc/libsfc.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/sfc/libsfc.$IMPLIBEXT dlls/sfc/libsfc.cross.a: dlls/sfc/sfc.spec dlls/sfc/Makefile
	@cd dlls/sfc && \$(MAKE) \`basename \$@\`
dlls/sfc dlls/sfc/__install__ dlls/sfc/__install-lib__ dlls/sfc/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/sfc"
test "x$enable_sfc" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/sfc"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sfc/%) dlls/sfc: dlls/sfc/Makefile \$(MAKEDEP)
dlls/sfc/Makefile: dlls/sfc/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/sfc/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/sfc_os/libsfc_os.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sfc_os/libsfc_os.$IMPLIBEXT dlls/sfc_os/libsfc_os.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/sfc_os/libsfc_os.$IMPLIBEXT dlls/sfc_os/libsfc_os.cross.a: dlls/sfc_os/sfc_os.spec dlls/sfc_os/Makefile
	@cd dlls/sfc_os && \$(MAKE) \`basename \$@\`
dlls/sfc_os dlls/sfc_os/__install__ dlls/sfc_os/__install-lib__ dlls/sfc_os/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/sfc_os"
test "x$enable_sfc_os" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/sfc_os"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sfc_os/%) dlls/sfc_os: dlls/sfc_os/Makefile \$(MAKEDEP)
dlls/sfc_os/Makefile: dlls/sfc_os/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/sfc_os/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shdoclc dlls/shdoclc/__install__ dlls/shdoclc/__install-lib__ dlls/shdoclc/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/shdoclc"
test "x$enable_shdoclc" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/shdoclc"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shdoclc/%) dlls/shdoclc: dlls/shdoclc/Makefile \$(MAKEDEP)
dlls/shdoclc/Makefile: dlls/shdoclc/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/shdoclc/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/shdocvw/libshdocvw.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shdocvw/libshdocvw.$IMPLIBEXT dlls/shdocvw/libshdocvw.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/shdocvw/libshdocvw.$IMPLIBEXT dlls/shdocvw/libshdocvw.cross.a: dlls/shdocvw/shdocvw.spec dlls/shdocvw/Makefile
	@cd dlls/shdocvw && \$(MAKE) \`basename \$@\`
dlls/shdocvw dlls/shdocvw/__install__ dlls/shdocvw/__install-lib__ dlls/shdocvw/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/shdocvw"
test "x$enable_shdocvw" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/shdocvw"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shdocvw/%) dlls/shdocvw: dlls/shdocvw/Makefile \$(MAKEDEP)
dlls/shdocvw/Makefile: dlls/shdocvw/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/shdocvw/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shdocvw/tests: __builddeps__
dlls/shdocvw/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "shdocvw_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "shdocvw_test.exe: \$(TOPOBJDIR)/dlls/shdocvw/tests/shdocvw_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/shdocvw/tests/shdocvw_test.exe$DLLEXT \$@ && \$(STRIP) \$@
shdocvw_test.rc:
	echo \"shdocvw_test.exe TESTRES \\\"shdocvw_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
shdocvw_test.res: shdocvw_test.rc shdocvw_test.exe"
wine_fn_append_file ALL_DIRS "dlls/shdocvw/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/shdocvw/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shdocvw/tests/%) dlls/shdocvw/tests: dlls/shdocvw/tests/Makefile \$(MAKEDEP)
dlls/shdocvw/tests/Makefile: dlls/shdocvw/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/shdocvw/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shell.dll16 dlls/shell.dll16/__install__ dlls/shell.dll16/__install-lib__ dlls/shell.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/shell.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/shell.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shell.dll16/%) dlls/shell.dll16: dlls/shell.dll16/Makefile \$(MAKEDEP)
dlls/shell.dll16/Makefile: dlls/shell.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/shell.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/shell32/libshell32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shell32/libshell32.$IMPLIBEXT dlls/shell32/libshell32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/shell32/libshell32.$IMPLIBEXT dlls/shell32/libshell32.cross.a: dlls/shell32/shell32.spec dlls/shell32/Makefile
	@cd dlls/shell32 && \$(MAKE) \`basename \$@\`
dlls/shell32 dlls/shell32/__install__ dlls/shell32/__install-lib__ dlls/shell32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/shell32"
test "x$enable_shell32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/shell32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shell32/%) dlls/shell32: dlls/shell32/Makefile \$(MAKEDEP)
dlls/shell32/Makefile: dlls/shell32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/shell32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shell32/tests: __builddeps__
dlls/shell32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "shell32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "shell32_test.exe: \$(TOPOBJDIR)/dlls/shell32/tests/shell32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/shell32/tests/shell32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
shell32_test.rc:
	echo \"shell32_test.exe TESTRES \\\"shell32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
shell32_test.res: shell32_test.rc shell32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/shell32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/shell32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shell32/tests/%) dlls/shell32/tests: dlls/shell32/tests/Makefile \$(MAKEDEP)
dlls/shell32/tests/Makefile: dlls/shell32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/shell32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/shfolder/libshfolder.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shfolder/libshfolder.$IMPLIBEXT dlls/shfolder/libshfolder.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/shfolder/libshfolder.$IMPLIBEXT dlls/shfolder/libshfolder.cross.a: dlls/shfolder/shfolder.spec dlls/shfolder/Makefile
	@cd dlls/shfolder && \$(MAKE) \`basename \$@\`
dlls/shfolder dlls/shfolder/__install__ dlls/shfolder/__install-lib__ dlls/shfolder/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/shfolder"
test "x$enable_shfolder" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/shfolder"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shfolder/%) dlls/shfolder: dlls/shfolder/Makefile \$(MAKEDEP)
dlls/shfolder/Makefile: dlls/shfolder/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/shfolder/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/shlwapi/libshlwapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shlwapi/libshlwapi.$IMPLIBEXT dlls/shlwapi/libshlwapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/shlwapi/libshlwapi.$IMPLIBEXT dlls/shlwapi/libshlwapi.cross.a: dlls/shlwapi/shlwapi.spec dlls/shlwapi/Makefile
	@cd dlls/shlwapi && \$(MAKE) \`basename \$@\`
dlls/shlwapi dlls/shlwapi/__install__ dlls/shlwapi/__install-lib__ dlls/shlwapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/shlwapi"
test "x$enable_shlwapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/shlwapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shlwapi/%) dlls/shlwapi: dlls/shlwapi/Makefile \$(MAKEDEP)
dlls/shlwapi/Makefile: dlls/shlwapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/shlwapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/shlwapi/tests: __builddeps__
dlls/shlwapi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "shlwapi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "shlwapi_test.exe: \$(TOPOBJDIR)/dlls/shlwapi/tests/shlwapi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/shlwapi/tests/shlwapi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
shlwapi_test.rc:
	echo \"shlwapi_test.exe TESTRES \\\"shlwapi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
shlwapi_test.res: shlwapi_test.rc shlwapi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/shlwapi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/shlwapi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/shlwapi/tests/%) dlls/shlwapi/tests: dlls/shlwapi/tests/Makefile \$(MAKEDEP)
dlls/shlwapi/tests/Makefile: dlls/shlwapi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/shlwapi/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/slbcsp dlls/slbcsp/__install__ dlls/slbcsp/__install-lib__ dlls/slbcsp/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/slbcsp"
test "x$enable_slbcsp" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/slbcsp"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/slbcsp/%) dlls/slbcsp: dlls/slbcsp/Makefile \$(MAKEDEP)
dlls/slbcsp/Makefile: dlls/slbcsp/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/slbcsp/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/slc/libslc.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/slc/libslc.$IMPLIBEXT dlls/slc/libslc.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/slc/libslc.$IMPLIBEXT dlls/slc/libslc.cross.a: dlls/slc/slc.spec dlls/slc/Makefile
	@cd dlls/slc && \$(MAKE) \`basename \$@\`
dlls/slc dlls/slc/__install__ dlls/slc/__install-lib__ dlls/slc/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/slc"
test "x$enable_slc" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/slc"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/slc/%) dlls/slc: dlls/slc/Makefile \$(MAKEDEP)
dlls/slc/Makefile: dlls/slc/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/slc/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/snmpapi/libsnmpapi.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/snmpapi/libsnmpapi.$IMPLIBEXT dlls/snmpapi/libsnmpapi.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/snmpapi/libsnmpapi.$IMPLIBEXT dlls/snmpapi/libsnmpapi.cross.a: dlls/snmpapi/snmpapi.spec dlls/snmpapi/Makefile
	@cd dlls/snmpapi && \$(MAKE) \`basename \$@\`
dlls/snmpapi dlls/snmpapi/__install__ dlls/snmpapi/__install-lib__ dlls/snmpapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/snmpapi"
test "x$enable_snmpapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/snmpapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/snmpapi/%) dlls/snmpapi: dlls/snmpapi/Makefile \$(MAKEDEP)
dlls/snmpapi/Makefile: dlls/snmpapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/snmpapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/snmpapi/tests: __builddeps__
dlls/snmpapi/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "snmpapi_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "snmpapi_test.exe: \$(TOPOBJDIR)/dlls/snmpapi/tests/snmpapi_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/snmpapi/tests/snmpapi_test.exe$DLLEXT \$@ && \$(STRIP) \$@
snmpapi_test.rc:
	echo \"snmpapi_test.exe TESTRES \\\"snmpapi_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
snmpapi_test.res: snmpapi_test.rc snmpapi_test.exe"
wine_fn_append_file ALL_DIRS "dlls/snmpapi/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/snmpapi/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/snmpapi/tests/%) dlls/snmpapi/tests: dlls/snmpapi/tests/Makefile \$(MAKEDEP)
dlls/snmpapi/tests/Makefile: dlls/snmpapi/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/snmpapi/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/softpub dlls/softpub/__install__ dlls/softpub/__install-lib__ dlls/softpub/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/softpub"
test "x$enable_softpub" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/softpub"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/softpub/%) dlls/softpub: dlls/softpub/Makefile \$(MAKEDEP)
dlls/softpub/Makefile: dlls/softpub/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/softpub/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sound.drv16 dlls/sound.drv16/__install__ dlls/sound.drv16/__install-lib__ dlls/sound.drv16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/sound.drv16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/sound.drv16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sound.drv16/%) dlls/sound.drv16: dlls/sound.drv16/Makefile \$(MAKEDEP)
dlls/sound.drv16/Makefile: dlls/sound.drv16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/sound.drv16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/spoolss/libspoolss.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/spoolss/libspoolss.$IMPLIBEXT dlls/spoolss/libspoolss.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/spoolss/libspoolss.$IMPLIBEXT dlls/spoolss/libspoolss.cross.a: dlls/spoolss/spoolss.spec dlls/spoolss/Makefile
	@cd dlls/spoolss && \$(MAKE) \`basename \$@\`
dlls/spoolss dlls/spoolss/__install__ dlls/spoolss/__install-lib__ dlls/spoolss/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/spoolss"
test "x$enable_spoolss" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/spoolss"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/spoolss/%) dlls/spoolss: dlls/spoolss/Makefile \$(MAKEDEP)
dlls/spoolss/Makefile: dlls/spoolss/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/spoolss/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/spoolss/tests: __builddeps__
dlls/spoolss/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "spoolss_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "spoolss_test.exe: \$(TOPOBJDIR)/dlls/spoolss/tests/spoolss_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/spoolss/tests/spoolss_test.exe$DLLEXT \$@ && \$(STRIP) \$@
spoolss_test.rc:
	echo \"spoolss_test.exe TESTRES \\\"spoolss_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
spoolss_test.res: spoolss_test.rc spoolss_test.exe"
wine_fn_append_file ALL_DIRS "dlls/spoolss/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/spoolss/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/spoolss/tests/%) dlls/spoolss/tests: dlls/spoolss/tests/Makefile \$(MAKEDEP)
dlls/spoolss/tests/Makefile: dlls/spoolss/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/spoolss/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/stdole2.tlb dlls/stdole2.tlb/__install__ dlls/stdole2.tlb/__install-lib__ dlls/stdole2.tlb/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/stdole2.tlb"
test "x$enable_stdole2_tlb" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/stdole2.tlb"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/stdole2.tlb/%) dlls/stdole2.tlb: dlls/stdole2.tlb/Makefile \$(MAKEDEP)
dlls/stdole2.tlb/Makefile: dlls/stdole2.tlb/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/stdole2.tlb/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/stdole32.tlb dlls/stdole32.tlb/__install__ dlls/stdole32.tlb/__install-lib__ dlls/stdole32.tlb/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/stdole32.tlb"
test "x$enable_stdole32_tlb" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/stdole32.tlb"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/stdole32.tlb/%) dlls/stdole32.tlb: dlls/stdole32.tlb/Makefile \$(MAKEDEP)
dlls/stdole32.tlb/Makefile: dlls/stdole32.tlb/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/stdole32.tlb/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/sti/libsti.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sti/libsti.$IMPLIBEXT dlls/sti/libsti.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/sti/libsti.$IMPLIBEXT dlls/sti/libsti.cross.a: dlls/sti/sti.spec dlls/sti/Makefile
	@cd dlls/sti && \$(MAKE) \`basename \$@\`
dlls/sti dlls/sti/__install__ dlls/sti/__install-lib__ dlls/sti/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/sti"
test "x$enable_sti" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/sti"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sti/%) dlls/sti: dlls/sti/Makefile \$(MAKEDEP)
dlls/sti/Makefile: dlls/sti/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/sti/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sti/tests: __builddeps__
dlls/sti/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "sti_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "sti_test.exe: \$(TOPOBJDIR)/dlls/sti/tests/sti_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/sti/tests/sti_test.exe$DLLEXT \$@ && \$(STRIP) \$@
sti_test.rc:
	echo \"sti_test.exe TESTRES \\\"sti_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
sti_test.res: sti_test.rc sti_test.exe"
wine_fn_append_file ALL_DIRS "dlls/sti/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/sti/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sti/tests/%) dlls/sti/tests: dlls/sti/tests/Makefile \$(MAKEDEP)
dlls/sti/tests/Makefile: dlls/sti/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/sti/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/storage.dll16 dlls/storage.dll16/__install__ dlls/storage.dll16/__install-lib__ dlls/storage.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/storage.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/storage.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/storage.dll16/%) dlls/storage.dll16: dlls/storage.dll16/Makefile \$(MAKEDEP)
dlls/storage.dll16/Makefile: dlls/storage.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/storage.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/stress.dll16 dlls/stress.dll16/__install__ dlls/stress.dll16/__install-lib__ dlls/stress.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/stress.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/stress.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/stress.dll16/%) dlls/stress.dll16: dlls/stress.dll16/Makefile \$(MAKEDEP)
dlls/stress.dll16/Makefile: dlls/stress.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/stress.dll16/Makefile"

wine_fn_append_file ALL_STATIC_LIBS "dlls/strmiids/libstrmiids.a"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/strmiids: tools/widl tools/winebuild tools/winegcc include
dlls/strmiids/__install__ dlls/strmiids/__install-dev__: dlls/strmiids
dlls/strmiids/libstrmiids.cross.a: dlls/strmiids/Makefile tools/widl tools/winebuild tools/winegcc include dummy
	@cd dlls/strmiids && \$(MAKE) \`basename \$@\`"
wine_fn_append_file ALL_DIRS "dlls/strmiids"
test "x$enable_strmiids" != xno && wine_fn_append_file ALL_STATICLIB_DIRS "dlls/strmiids"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/strmiids/%) dlls/strmiids: dlls/strmiids/Makefile \$(MAKEDEP)
dlls/strmiids/Makefile: dlls/strmiids/Makefile.in dlls/Makeimplib.rules config.status"
ac_config_files="$ac_config_files dlls/strmiids/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/svrapi dlls/svrapi/__install__ dlls/svrapi/__install-lib__ dlls/svrapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/svrapi"
test "x$enable_svrapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/svrapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/svrapi/%) dlls/svrapi: dlls/svrapi/Makefile \$(MAKEDEP)
dlls/svrapi/Makefile: dlls/svrapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/svrapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/sxs dlls/sxs/__install__ dlls/sxs/__install-lib__ dlls/sxs/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/sxs"
test "x$enable_sxs" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/sxs"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/sxs/%) dlls/sxs: dlls/sxs/Makefile \$(MAKEDEP)
dlls/sxs/Makefile: dlls/sxs/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/sxs/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/system.drv16 dlls/system.drv16/__install__ dlls/system.drv16/__install-lib__ dlls/system.drv16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/system.drv16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/system.drv16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/system.drv16/%) dlls/system.drv16: dlls/system.drv16/Makefile \$(MAKEDEP)
dlls/system.drv16/Makefile: dlls/system.drv16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/system.drv16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/t2embed dlls/t2embed/__install__ dlls/t2embed/__install-lib__ dlls/t2embed/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/t2embed"
test "x$enable_t2embed" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/t2embed"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/t2embed/%) dlls/t2embed: dlls/t2embed/Makefile \$(MAKEDEP)
dlls/t2embed/Makefile: dlls/t2embed/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/t2embed/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/tapi32/libtapi32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/tapi32/libtapi32.$IMPLIBEXT dlls/tapi32/libtapi32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/tapi32/libtapi32.$IMPLIBEXT dlls/tapi32/libtapi32.cross.a: dlls/tapi32/tapi32.spec dlls/tapi32/Makefile
	@cd dlls/tapi32 && \$(MAKE) \`basename \$@\`
dlls/tapi32 dlls/tapi32/__install__ dlls/tapi32/__install-lib__ dlls/tapi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/tapi32"
test "x$enable_tapi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/tapi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/tapi32/%) dlls/tapi32: dlls/tapi32/Makefile \$(MAKEDEP)
dlls/tapi32/Makefile: dlls/tapi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/tapi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/toolhelp.dll16 dlls/toolhelp.dll16/__install__ dlls/toolhelp.dll16/__install-lib__ dlls/toolhelp.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/toolhelp.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/toolhelp.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/toolhelp.dll16/%) dlls/toolhelp.dll16: dlls/toolhelp.dll16/Makefile \$(MAKEDEP)
dlls/toolhelp.dll16/Makefile: dlls/toolhelp.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/toolhelp.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/traffic dlls/traffic/__install__ dlls/traffic/__install-lib__ dlls/traffic/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/traffic"
test "x$enable_traffic" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/traffic"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/traffic/%) dlls/traffic: dlls/traffic/Makefile \$(MAKEDEP)
dlls/traffic/Makefile: dlls/traffic/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/traffic/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/twain.dll16 dlls/twain.dll16/__install__ dlls/twain.dll16/__install-lib__ dlls/twain.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/twain.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/twain.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/twain.dll16/%) dlls/twain.dll16: dlls/twain.dll16/Makefile \$(MAKEDEP)
dlls/twain.dll16/Makefile: dlls/twain.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/twain.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/twain_32 dlls/twain_32/__install__ dlls/twain_32/__install-lib__ dlls/twain_32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/twain_32"
test "x$enable_twain_32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/twain_32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/twain_32/%) dlls/twain_32: dlls/twain_32/Makefile \$(MAKEDEP)
dlls/twain_32/Makefile: dlls/twain_32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/twain_32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/twain_32/tests: __builddeps__
dlls/twain_32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "twain_32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "twain_32_test.exe: \$(TOPOBJDIR)/dlls/twain_32/tests/twain_32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/twain_32/tests/twain_32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
twain_32_test.rc:
	echo \"twain_32_test.exe TESTRES \\\"twain_32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
twain_32_test.res: twain_32_test.rc twain_32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/twain_32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/twain_32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/twain_32/tests/%) dlls/twain_32/tests: dlls/twain_32/tests/Makefile \$(MAKEDEP)
dlls/twain_32/tests/Makefile: dlls/twain_32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/twain_32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/typelib.dll16 dlls/typelib.dll16/__install__ dlls/typelib.dll16/__install-lib__ dlls/typelib.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/typelib.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/typelib.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/typelib.dll16/%) dlls/typelib.dll16: dlls/typelib.dll16/Makefile \$(MAKEDEP)
dlls/typelib.dll16/Makefile: dlls/typelib.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/typelib.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/unicows/libunicows.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/unicows/libunicows.$IMPLIBEXT dlls/unicows/libunicows.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/unicows/libunicows.$IMPLIBEXT dlls/unicows/libunicows.cross.a: dlls/unicows/unicows.spec dlls/unicows/Makefile
	@cd dlls/unicows && \$(MAKE) \`basename \$@\`
dlls/unicows dlls/unicows/__install__ dlls/unicows/__install-lib__ dlls/unicows/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/unicows"
test "x$enable_unicows" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/unicows"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/unicows/%) dlls/unicows: dlls/unicows/Makefile \$(MAKEDEP)
dlls/unicows/Makefile: dlls/unicows/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/unicows/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/updspapi dlls/updspapi/__install__ dlls/updspapi/__install-lib__ dlls/updspapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/updspapi"
test "x$enable_updspapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/updspapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/updspapi/%) dlls/updspapi: dlls/updspapi/Makefile \$(MAKEDEP)
dlls/updspapi/Makefile: dlls/updspapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/updspapi/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/url/liburl.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/url/liburl.$IMPLIBEXT dlls/url/liburl.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/url/liburl.$IMPLIBEXT dlls/url/liburl.cross.a: dlls/url/url.spec dlls/url/Makefile
	@cd dlls/url && \$(MAKE) \`basename \$@\`
dlls/url dlls/url/__install__ dlls/url/__install-lib__ dlls/url/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/url"
test "x$enable_url" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/url"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/url/%) dlls/url: dlls/url/Makefile \$(MAKEDEP)
dlls/url/Makefile: dlls/url/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/url/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/urlmon/liburlmon.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/urlmon/liburlmon.$IMPLIBEXT dlls/urlmon/liburlmon.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/urlmon/liburlmon.$IMPLIBEXT dlls/urlmon/liburlmon.cross.a: dlls/urlmon/urlmon.spec dlls/urlmon/Makefile
	@cd dlls/urlmon && \$(MAKE) \`basename \$@\`
dlls/urlmon dlls/urlmon/__install__ dlls/urlmon/__install-lib__ dlls/urlmon/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/urlmon"
test "x$enable_urlmon" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/urlmon"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/urlmon/%) dlls/urlmon: dlls/urlmon/Makefile \$(MAKEDEP)
dlls/urlmon/Makefile: dlls/urlmon/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/urlmon/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/urlmon/tests: __builddeps__
dlls/urlmon/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "urlmon_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "urlmon_test.exe: \$(TOPOBJDIR)/dlls/urlmon/tests/urlmon_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/urlmon/tests/urlmon_test.exe$DLLEXT \$@ && \$(STRIP) \$@
urlmon_test.rc:
	echo \"urlmon_test.exe TESTRES \\\"urlmon_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
urlmon_test.res: urlmon_test.rc urlmon_test.exe"
wine_fn_append_file ALL_DIRS "dlls/urlmon/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/urlmon/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/urlmon/tests/%) dlls/urlmon/tests: dlls/urlmon/tests/Makefile \$(MAKEDEP)
dlls/urlmon/tests/Makefile: dlls/urlmon/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/urlmon/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/user.exe16 dlls/user.exe16/__install__ dlls/user.exe16/__install-lib__ dlls/user.exe16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/user.exe16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/user.exe16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/user.exe16/%) dlls/user.exe16: dlls/user.exe16/Makefile \$(MAKEDEP)
dlls/user.exe16/Makefile: dlls/user.exe16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/user.exe16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/user32/libuser32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/user32/libuser32.$IMPLIBEXT dlls/user32/libuser32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/user32/libuser32.$IMPLIBEXT dlls/user32/libuser32.cross.a: dlls/user32/user32.spec dlls/user32/Makefile
	@cd dlls/user32 && \$(MAKE) \`basename \$@\`
dlls/user32 dlls/user32/__install__ dlls/user32/__install-lib__ dlls/user32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/user32"
test "x$enable_user32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/user32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/user32/%) dlls/user32: dlls/user32/Makefile \$(MAKEDEP)
dlls/user32/Makefile: dlls/user32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/user32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/user32/tests: __builddeps__
dlls/user32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "user32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "user32_test.exe: \$(TOPOBJDIR)/dlls/user32/tests/user32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/user32/tests/user32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
user32_test.rc:
	echo \"user32_test.exe TESTRES \\\"user32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
user32_test.res: user32_test.rc user32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/user32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/user32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/user32/tests/%) dlls/user32/tests: dlls/user32/tests/Makefile \$(MAKEDEP)
dlls/user32/tests/Makefile: dlls/user32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/user32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/userenv/libuserenv.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/userenv/libuserenv.$IMPLIBEXT dlls/userenv/libuserenv.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/userenv/libuserenv.$IMPLIBEXT dlls/userenv/libuserenv.cross.a: dlls/userenv/userenv.spec dlls/userenv/Makefile
	@cd dlls/userenv && \$(MAKE) \`basename \$@\`
dlls/userenv dlls/userenv/__install__ dlls/userenv/__install-lib__ dlls/userenv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/userenv"
test "x$enable_userenv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/userenv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/userenv/%) dlls/userenv: dlls/userenv/Makefile \$(MAKEDEP)
dlls/userenv/Makefile: dlls/userenv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/userenv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/userenv/tests: __builddeps__
dlls/userenv/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "userenv_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "userenv_test.exe: \$(TOPOBJDIR)/dlls/userenv/tests/userenv_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/userenv/tests/userenv_test.exe$DLLEXT \$@ && \$(STRIP) \$@
userenv_test.rc:
	echo \"userenv_test.exe TESTRES \\\"userenv_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
userenv_test.res: userenv_test.rc userenv_test.exe"
wine_fn_append_file ALL_DIRS "dlls/userenv/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/userenv/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/userenv/tests/%) dlls/userenv/tests: dlls/userenv/tests/Makefile \$(MAKEDEP)
dlls/userenv/tests/Makefile: dlls/userenv/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/userenv/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/usp10/libusp10.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/usp10/libusp10.$IMPLIBEXT dlls/usp10/libusp10.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/usp10/libusp10.$IMPLIBEXT dlls/usp10/libusp10.cross.a: dlls/usp10/usp10.spec dlls/usp10/Makefile
	@cd dlls/usp10 && \$(MAKE) \`basename \$@\`
dlls/usp10 dlls/usp10/__install__ dlls/usp10/__install-lib__ dlls/usp10/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/usp10"
test "x$enable_usp10" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/usp10"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/usp10/%) dlls/usp10: dlls/usp10/Makefile \$(MAKEDEP)
dlls/usp10/Makefile: dlls/usp10/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/usp10/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/usp10/tests: __builddeps__
dlls/usp10/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "usp10_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "usp10_test.exe: \$(TOPOBJDIR)/dlls/usp10/tests/usp10_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/usp10/tests/usp10_test.exe$DLLEXT \$@ && \$(STRIP) \$@
usp10_test.rc:
	echo \"usp10_test.exe TESTRES \\\"usp10_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
usp10_test.res: usp10_test.rc usp10_test.exe"
wine_fn_append_file ALL_DIRS "dlls/usp10/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/usp10/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/usp10/tests/%) dlls/usp10/tests: dlls/usp10/tests/Makefile \$(MAKEDEP)
dlls/usp10/tests/Makefile: dlls/usp10/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/usp10/tests/Makefile"

wine_fn_append_file ALL_STATIC_LIBS "dlls/uuid/libuuid.a"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/uuid: tools/widl tools/winebuild tools/winegcc include
dlls/uuid/__install__ dlls/uuid/__install-dev__: dlls/uuid
dlls/uuid/libuuid.cross.a: dlls/uuid/Makefile tools/widl tools/winebuild tools/winegcc include dummy
	@cd dlls/uuid && \$(MAKE) \`basename \$@\`"
wine_fn_append_file ALL_DIRS "dlls/uuid"
test "x$enable_uuid" != xno && wine_fn_append_file ALL_STATICLIB_DIRS "dlls/uuid"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/uuid/%) dlls/uuid: dlls/uuid/Makefile \$(MAKEDEP)
dlls/uuid/Makefile: dlls/uuid/Makefile.in dlls/Makeimplib.rules config.status"
ac_config_files="$ac_config_files dlls/uuid/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/uxtheme/libuxtheme.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/uxtheme/libuxtheme.$IMPLIBEXT dlls/uxtheme/libuxtheme.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/uxtheme/libuxtheme.$IMPLIBEXT dlls/uxtheme/libuxtheme.cross.a: dlls/uxtheme/uxtheme.spec dlls/uxtheme/Makefile
	@cd dlls/uxtheme && \$(MAKE) \`basename \$@\`
dlls/uxtheme dlls/uxtheme/__install__ dlls/uxtheme/__install-lib__ dlls/uxtheme/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/uxtheme"
test "x$enable_uxtheme" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/uxtheme"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/uxtheme/%) dlls/uxtheme: dlls/uxtheme/Makefile \$(MAKEDEP)
dlls/uxtheme/Makefile: dlls/uxtheme/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/uxtheme/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/uxtheme/tests: __builddeps__
dlls/uxtheme/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "uxtheme_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "uxtheme_test.exe: \$(TOPOBJDIR)/dlls/uxtheme/tests/uxtheme_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/uxtheme/tests/uxtheme_test.exe$DLLEXT \$@ && \$(STRIP) \$@
uxtheme_test.rc:
	echo \"uxtheme_test.exe TESTRES \\\"uxtheme_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
uxtheme_test.res: uxtheme_test.rc uxtheme_test.exe"
wine_fn_append_file ALL_DIRS "dlls/uxtheme/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/uxtheme/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/uxtheme/tests/%) dlls/uxtheme/tests: dlls/uxtheme/tests/Makefile \$(MAKEDEP)
dlls/uxtheme/tests/Makefile: dlls/uxtheme/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/uxtheme/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/vdhcp.vxd dlls/vdhcp.vxd/__install__ dlls/vdhcp.vxd/__install-lib__ dlls/vdhcp.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/vdhcp.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/vdhcp.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/vdhcp.vxd/%) dlls/vdhcp.vxd: dlls/vdhcp.vxd/Makefile \$(MAKEDEP)
dlls/vdhcp.vxd/Makefile: dlls/vdhcp.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/vdhcp.vxd/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/vdmdbg/libvdmdbg.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/vdmdbg/libvdmdbg.$IMPLIBEXT dlls/vdmdbg/libvdmdbg.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/vdmdbg/libvdmdbg.$IMPLIBEXT dlls/vdmdbg/libvdmdbg.cross.a: dlls/vdmdbg/vdmdbg.spec dlls/vdmdbg/Makefile
	@cd dlls/vdmdbg && \$(MAKE) \`basename \$@\`
dlls/vdmdbg dlls/vdmdbg/__install__ dlls/vdmdbg/__install-lib__ dlls/vdmdbg/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/vdmdbg"
test "x$enable_vdmdbg" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/vdmdbg"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/vdmdbg/%) dlls/vdmdbg: dlls/vdmdbg/Makefile \$(MAKEDEP)
dlls/vdmdbg/Makefile: dlls/vdmdbg/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/vdmdbg/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ver.dll16 dlls/ver.dll16/__install__ dlls/ver.dll16/__install-lib__ dlls/ver.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ver.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ver.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ver.dll16/%) dlls/ver.dll16: dlls/ver.dll16/Makefile \$(MAKEDEP)
dlls/ver.dll16/Makefile: dlls/ver.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ver.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/version/libversion.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/version/libversion.$IMPLIBEXT dlls/version/libversion.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/version/libversion.$IMPLIBEXT dlls/version/libversion.cross.a: dlls/version/version.spec dlls/version/Makefile
	@cd dlls/version && \$(MAKE) \`basename \$@\`
dlls/version dlls/version/__install__ dlls/version/__install-lib__ dlls/version/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/version"
test "x$enable_version" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/version"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/version/%) dlls/version: dlls/version/Makefile \$(MAKEDEP)
dlls/version/Makefile: dlls/version/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/version/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/version/tests: __builddeps__
dlls/version/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "version_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "version_test.exe: \$(TOPOBJDIR)/dlls/version/tests/version_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/version/tests/version_test.exe$DLLEXT \$@ && \$(STRIP) \$@
version_test.rc:
	echo \"version_test.exe TESTRES \\\"version_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
version_test.res: version_test.rc version_test.exe"
wine_fn_append_file ALL_DIRS "dlls/version/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/version/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/version/tests/%) dlls/version/tests: dlls/version/tests/Makefile \$(MAKEDEP)
dlls/version/tests/Makefile: dlls/version/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/version/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/vmm.vxd dlls/vmm.vxd/__install__ dlls/vmm.vxd/__install-lib__ dlls/vmm.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/vmm.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/vmm.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/vmm.vxd/%) dlls/vmm.vxd: dlls/vmm.vxd/Makefile \$(MAKEDEP)
dlls/vmm.vxd/Makefile: dlls/vmm.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/vmm.vxd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/vnbt.vxd dlls/vnbt.vxd/__install__ dlls/vnbt.vxd/__install-lib__ dlls/vnbt.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/vnbt.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/vnbt.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/vnbt.vxd/%) dlls/vnbt.vxd: dlls/vnbt.vxd/Makefile \$(MAKEDEP)
dlls/vnbt.vxd/Makefile: dlls/vnbt.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/vnbt.vxd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/vnetbios.vxd dlls/vnetbios.vxd/__install__ dlls/vnetbios.vxd/__install-lib__ dlls/vnetbios.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/vnetbios.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/vnetbios.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/vnetbios.vxd/%) dlls/vnetbios.vxd: dlls/vnetbios.vxd/Makefile \$(MAKEDEP)
dlls/vnetbios.vxd/Makefile: dlls/vnetbios.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/vnetbios.vxd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/vtdapi.vxd dlls/vtdapi.vxd/__install__ dlls/vtdapi.vxd/__install-lib__ dlls/vtdapi.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/vtdapi.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/vtdapi.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/vtdapi.vxd/%) dlls/vtdapi.vxd: dlls/vtdapi.vxd/Makefile \$(MAKEDEP)
dlls/vtdapi.vxd/Makefile: dlls/vtdapi.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/vtdapi.vxd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/vwin32.vxd dlls/vwin32.vxd/__install__ dlls/vwin32.vxd/__install-lib__ dlls/vwin32.vxd/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/vwin32.vxd"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/vwin32.vxd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/vwin32.vxd/%) dlls/vwin32.vxd: dlls/vwin32.vxd/Makefile \$(MAKEDEP)
dlls/vwin32.vxd/Makefile: dlls/vwin32.vxd/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/vwin32.vxd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/w32skrnl dlls/w32skrnl/__install__ dlls/w32skrnl/__install-lib__ dlls/w32skrnl/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/w32skrnl"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/w32skrnl"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/w32skrnl/%) dlls/w32skrnl: dlls/w32skrnl/Makefile \$(MAKEDEP)
dlls/w32skrnl/Makefile: dlls/w32skrnl/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/w32skrnl/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/w32sys.dll16 dlls/w32sys.dll16/__install__ dlls/w32sys.dll16/__install-lib__ dlls/w32sys.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/w32sys.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/w32sys.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/w32sys.dll16/%) dlls/w32sys.dll16: dlls/w32sys.dll16/Makefile \$(MAKEDEP)
dlls/w32sys.dll16/Makefile: dlls/w32sys.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/w32sys.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wbemprox dlls/wbemprox/__install__ dlls/wbemprox/__install-lib__ dlls/wbemprox/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wbemprox"
test "x$enable_wbemprox" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wbemprox"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wbemprox/%) dlls/wbemprox: dlls/wbemprox/Makefile \$(MAKEDEP)
dlls/wbemprox/Makefile: dlls/wbemprox/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wbemprox/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wiaservc dlls/wiaservc/__install__ dlls/wiaservc/__install-lib__ dlls/wiaservc/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wiaservc"
test "x$enable_wiaservc" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wiaservc"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wiaservc/%) dlls/wiaservc: dlls/wiaservc/Makefile \$(MAKEDEP)
dlls/wiaservc/Makefile: dlls/wiaservc/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wiaservc/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/win32s16.dll16 dlls/win32s16.dll16/__install__ dlls/win32s16.dll16/__install-lib__ dlls/win32s16.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/win32s16.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/win32s16.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/win32s16.dll16/%) dlls/win32s16.dll16: dlls/win32s16.dll16/Makefile \$(MAKEDEP)
dlls/win32s16.dll16/Makefile: dlls/win32s16.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/win32s16.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/win87em.dll16 dlls/win87em.dll16/__install__ dlls/win87em.dll16/__install-lib__ dlls/win87em.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/win87em.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/win87em.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/win87em.dll16/%) dlls/win87em.dll16: dlls/win87em.dll16/Makefile \$(MAKEDEP)
dlls/win87em.dll16/Makefile: dlls/win87em.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/win87em.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winaspi.dll16 dlls/winaspi.dll16/__install__ dlls/winaspi.dll16/__install-lib__ dlls/winaspi.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winaspi.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winaspi.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winaspi.dll16/%) dlls/winaspi.dll16: dlls/winaspi.dll16/Makefile \$(MAKEDEP)
dlls/winaspi.dll16/Makefile: dlls/winaspi.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winaspi.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/windebug.dll16 dlls/windebug.dll16/__install__ dlls/windebug.dll16/__install-lib__ dlls/windebug.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/windebug.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/windebug.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/windebug.dll16/%) dlls/windebug.dll16: dlls/windebug.dll16/Makefile \$(MAKEDEP)
dlls/windebug.dll16/Makefile: dlls/windebug.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/windebug.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/windowscodecs/libwindowscodecs.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/windowscodecs/libwindowscodecs.$IMPLIBEXT dlls/windowscodecs/libwindowscodecs.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/windowscodecs/libwindowscodecs.$IMPLIBEXT dlls/windowscodecs/libwindowscodecs.cross.a: dlls/windowscodecs/windowscodecs.spec dlls/windowscodecs/Makefile
	@cd dlls/windowscodecs && \$(MAKE) \`basename \$@\`
dlls/windowscodecs dlls/windowscodecs/__install__ dlls/windowscodecs/__install-lib__ dlls/windowscodecs/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/windowscodecs"
test "x$enable_windowscodecs" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/windowscodecs"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/windowscodecs/%) dlls/windowscodecs: dlls/windowscodecs/Makefile \$(MAKEDEP)
dlls/windowscodecs/Makefile: dlls/windowscodecs/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/windowscodecs/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/windowscodecs/tests: __builddeps__
dlls/windowscodecs/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "windowscodecs_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "windowscodecs_test.exe: \$(TOPOBJDIR)/dlls/windowscodecs/tests/windowscodecs_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/windowscodecs/tests/windowscodecs_test.exe$DLLEXT \$@ && \$(STRIP) \$@
windowscodecs_test.rc:
	echo \"windowscodecs_test.exe TESTRES \\\"windowscodecs_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
windowscodecs_test.res: windowscodecs_test.rc windowscodecs_test.exe"
wine_fn_append_file ALL_DIRS "dlls/windowscodecs/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/windowscodecs/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/windowscodecs/tests/%) dlls/windowscodecs/tests: dlls/windowscodecs/tests/Makefile \$(MAKEDEP)
dlls/windowscodecs/tests/Makefile: dlls/windowscodecs/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/windowscodecs/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winealsa.drv dlls/winealsa.drv/__install__ dlls/winealsa.drv/__install-lib__ dlls/winealsa.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winealsa.drv"
test "x$enable_winealsa_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winealsa.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winealsa.drv/%) dlls/winealsa.drv: dlls/winealsa.drv/Makefile \$(MAKEDEP)
dlls/winealsa.drv/Makefile: dlls/winealsa.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winealsa.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wineaudioio.drv dlls/wineaudioio.drv/__install__ dlls/wineaudioio.drv/__install-lib__ dlls/wineaudioio.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wineaudioio.drv"
test "x$enable_wineaudioio_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wineaudioio.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wineaudioio.drv/%) dlls/wineaudioio.drv: dlls/wineaudioio.drv/Makefile \$(MAKEDEP)
dlls/wineaudioio.drv/Makefile: dlls/wineaudioio.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wineaudioio.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winecoreaudio.drv dlls/winecoreaudio.drv/__install__ dlls/winecoreaudio.drv/__install-lib__ dlls/winecoreaudio.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winecoreaudio.drv"
test "x$enable_winecoreaudio_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winecoreaudio.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winecoreaudio.drv/%) dlls/winecoreaudio.drv: dlls/winecoreaudio.drv/Makefile \$(MAKEDEP)
dlls/winecoreaudio.drv/Makefile: dlls/winecoreaudio.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winecoreaudio.drv/Makefile"

wine_fn_append_file ALL_STATIC_LIBS "dlls/winecrt0/libwinecrt0.a"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winecrt0: tools/widl tools/winebuild tools/winegcc include
dlls/winecrt0/__install__ dlls/winecrt0/__install-dev__: dlls/winecrt0
dlls/winecrt0/libwinecrt0.cross.a: dlls/winecrt0/Makefile tools/widl tools/winebuild tools/winegcc include dummy
	@cd dlls/winecrt0 && \$(MAKE) \`basename \$@\`"
wine_fn_append_file ALL_DIRS "dlls/winecrt0"
test "x$enable_winecrt0" != xno && wine_fn_append_file ALL_STATICLIB_DIRS "dlls/winecrt0"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winecrt0/%) dlls/winecrt0: dlls/winecrt0/Makefile \$(MAKEDEP)
dlls/winecrt0/Makefile: dlls/winecrt0/Makefile.in dlls/Makeimplib.rules config.status"
ac_config_files="$ac_config_files dlls/winecrt0/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/wined3d/libwined3d.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wined3d/libwined3d.$IMPLIBEXT dlls/wined3d/libwined3d.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wined3d/libwined3d.$IMPLIBEXT dlls/wined3d/libwined3d.cross.a: dlls/wined3d/wined3d.spec dlls/wined3d/Makefile
	@cd dlls/wined3d && \$(MAKE) \`basename \$@\`
dlls/wined3d dlls/wined3d/__install__ dlls/wined3d/__install-lib__ dlls/wined3d/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wined3d"
test "x$enable_wined3d" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wined3d"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wined3d/%) dlls/wined3d: dlls/wined3d/Makefile \$(MAKEDEP)
dlls/wined3d/Makefile: dlls/wined3d/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wined3d/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wineesd.drv dlls/wineesd.drv/__install__ dlls/wineesd.drv/__install-lib__ dlls/wineesd.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wineesd.drv"
test "x$enable_wineesd_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wineesd.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wineesd.drv/%) dlls/wineesd.drv: dlls/wineesd.drv/Makefile \$(MAKEDEP)
dlls/wineesd.drv/Makefile: dlls/wineesd.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wineesd.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winejack.drv dlls/winejack.drv/__install__ dlls/winejack.drv/__install-lib__ dlls/winejack.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winejack.drv"
test "x$enable_winejack_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winejack.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winejack.drv/%) dlls/winejack.drv: dlls/winejack.drv/Makefile \$(MAKEDEP)
dlls/winejack.drv/Makefile: dlls/winejack.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winejack.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winejoystick.drv dlls/winejoystick.drv/__install__ dlls/winejoystick.drv/__install-lib__ dlls/winejoystick.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winejoystick.drv"
test "x$enable_winejoystick_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winejoystick.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winejoystick.drv/%) dlls/winejoystick.drv: dlls/winejoystick.drv/Makefile \$(MAKEDEP)
dlls/winejoystick.drv/Makefile: dlls/winejoystick.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winejoystick.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winemapi dlls/winemapi/__install__ dlls/winemapi/__install-lib__ dlls/winemapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winemapi"
test "x$enable_winemapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winemapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winemapi/%) dlls/winemapi: dlls/winemapi/Makefile \$(MAKEDEP)
dlls/winemapi/Makefile: dlls/winemapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winemapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winemp3.acm dlls/winemp3.acm/__install__ dlls/winemp3.acm/__install-lib__ dlls/winemp3.acm/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winemp3.acm"
test "x$enable_winemp3_acm" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winemp3.acm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winemp3.acm/%) dlls/winemp3.acm: dlls/winemp3.acm/Makefile \$(MAKEDEP)
dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winemp3.acm/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winenas.drv dlls/winenas.drv/__install__ dlls/winenas.drv/__install-lib__ dlls/winenas.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winenas.drv"
test "x$enable_winenas_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winenas.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winenas.drv/%) dlls/winenas.drv: dlls/winenas.drv/Makefile \$(MAKEDEP)
dlls/winenas.drv/Makefile: dlls/winenas.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winenas.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wineoss.drv dlls/wineoss.drv/__install__ dlls/wineoss.drv/__install-lib__ dlls/wineoss.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wineoss.drv"
test "x$enable_wineoss_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wineoss.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wineoss.drv/%) dlls/wineoss.drv: dlls/wineoss.drv/Makefile \$(MAKEDEP)
dlls/wineoss.drv/Makefile: dlls/wineoss.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wineoss.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wineps.drv dlls/wineps.drv/__install__ dlls/wineps.drv/__install-lib__ dlls/wineps.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wineps.drv"
test "x$enable_wineps_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wineps.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wineps.drv/%) dlls/wineps.drv: dlls/wineps.drv/Makefile \$(MAKEDEP)
dlls/wineps.drv/Makefile: dlls/wineps.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wineps.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wineps16.drv16 dlls/wineps16.drv16/__install__ dlls/wineps16.drv16/__install-lib__ dlls/wineps16.drv16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wineps16.drv16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wineps16.drv16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wineps16.drv16/%) dlls/wineps16.drv16: dlls/wineps16.drv16/Makefile \$(MAKEDEP)
dlls/wineps16.drv16/Makefile: dlls/wineps16.drv16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wineps16.drv16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winequartz.drv dlls/winequartz.drv/__install__ dlls/winequartz.drv/__install-lib__ dlls/winequartz.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winequartz.drv"
test "x$enable_winequartz_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winequartz.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winequartz.drv/%) dlls/winequartz.drv: dlls/winequartz.drv/Makefile \$(MAKEDEP)
dlls/winequartz.drv/Makefile: dlls/winequartz.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winequartz.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winex11.drv dlls/winex11.drv/__install__ dlls/winex11.drv/__install-lib__ dlls/winex11.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winex11.drv"
test "x$enable_winex11_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winex11.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winex11.drv/%) dlls/winex11.drv: dlls/winex11.drv/Makefile \$(MAKEDEP)
dlls/winex11.drv/Makefile: dlls/winex11.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winex11.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wing.dll16 dlls/wing.dll16/__install__ dlls/wing.dll16/__install-lib__ dlls/wing.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wing.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wing.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wing.dll16/%) dlls/wing.dll16: dlls/wing.dll16/Makefile \$(MAKEDEP)
dlls/wing.dll16/Makefile: dlls/wing.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wing.dll16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wing32 dlls/wing32/__install__ dlls/wing32/__install-lib__ dlls/wing32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wing32"
test "x$enable_wing32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wing32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wing32/%) dlls/wing32: dlls/wing32/Makefile \$(MAKEDEP)
dlls/wing32/Makefile: dlls/wing32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wing32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/winhttp/libwinhttp.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winhttp/libwinhttp.$IMPLIBEXT dlls/winhttp/libwinhttp.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/winhttp/libwinhttp.$IMPLIBEXT dlls/winhttp/libwinhttp.cross.a: dlls/winhttp/winhttp.spec dlls/winhttp/Makefile
	@cd dlls/winhttp && \$(MAKE) \`basename \$@\`
dlls/winhttp dlls/winhttp/__install__ dlls/winhttp/__install-lib__ dlls/winhttp/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winhttp"
test "x$enable_winhttp" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winhttp"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winhttp/%) dlls/winhttp: dlls/winhttp/Makefile \$(MAKEDEP)
dlls/winhttp/Makefile: dlls/winhttp/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winhttp/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winhttp/tests: __builddeps__
dlls/winhttp/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "winhttp_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "winhttp_test.exe: \$(TOPOBJDIR)/dlls/winhttp/tests/winhttp_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/winhttp/tests/winhttp_test.exe$DLLEXT \$@ && \$(STRIP) \$@
winhttp_test.rc:
	echo \"winhttp_test.exe TESTRES \\\"winhttp_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
winhttp_test.res: winhttp_test.rc winhttp_test.exe"
wine_fn_append_file ALL_DIRS "dlls/winhttp/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/winhttp/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winhttp/tests/%) dlls/winhttp/tests: dlls/winhttp/tests/Makefile \$(MAKEDEP)
dlls/winhttp/tests/Makefile: dlls/winhttp/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/winhttp/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/wininet/libwininet.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wininet/libwininet.$IMPLIBEXT dlls/wininet/libwininet.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wininet/libwininet.$IMPLIBEXT dlls/wininet/libwininet.cross.a: dlls/wininet/wininet.spec dlls/wininet/Makefile
	@cd dlls/wininet && \$(MAKE) \`basename \$@\`
dlls/wininet dlls/wininet/__install__ dlls/wininet/__install-lib__ dlls/wininet/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wininet"
test "x$enable_wininet" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wininet"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wininet/%) dlls/wininet: dlls/wininet/Makefile \$(MAKEDEP)
dlls/wininet/Makefile: dlls/wininet/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wininet/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wininet/tests: __builddeps__
dlls/wininet/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "wininet_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "wininet_test.exe: \$(TOPOBJDIR)/dlls/wininet/tests/wininet_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/wininet/tests/wininet_test.exe$DLLEXT \$@ && \$(STRIP) \$@
wininet_test.rc:
	echo \"wininet_test.exe TESTRES \\\"wininet_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
wininet_test.res: wininet_test.rc wininet_test.exe"
wine_fn_append_file ALL_DIRS "dlls/wininet/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/wininet/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wininet/tests/%) dlls/wininet/tests: dlls/wininet/tests/Makefile \$(MAKEDEP)
dlls/wininet/tests/Makefile: dlls/wininet/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/wininet/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/winmm/libwinmm.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winmm/libwinmm.$IMPLIBEXT dlls/winmm/libwinmm.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/winmm/libwinmm.$IMPLIBEXT dlls/winmm/libwinmm.cross.a: dlls/winmm/winmm.spec dlls/winmm/Makefile
	@cd dlls/winmm && \$(MAKE) \`basename \$@\`
dlls/winmm dlls/winmm/__install__ dlls/winmm/__install-lib__ dlls/winmm/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winmm"
test "x$enable_winmm" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winmm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winmm/%) dlls/winmm: dlls/winmm/Makefile \$(MAKEDEP)
dlls/winmm/Makefile: dlls/winmm/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winmm/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winmm/tests: __builddeps__
dlls/winmm/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "winmm_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "winmm_test.exe: \$(TOPOBJDIR)/dlls/winmm/tests/winmm_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/winmm/tests/winmm_test.exe$DLLEXT \$@ && \$(STRIP) \$@
winmm_test.rc:
	echo \"winmm_test.exe TESTRES \\\"winmm_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
winmm_test.res: winmm_test.rc winmm_test.exe"
wine_fn_append_file ALL_DIRS "dlls/winmm/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/winmm/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winmm/tests/%) dlls/winmm/tests: dlls/winmm/tests/Makefile \$(MAKEDEP)
dlls/winmm/tests/Makefile: dlls/winmm/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/winmm/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winnls.dll16 dlls/winnls.dll16/__install__ dlls/winnls.dll16/__install-lib__ dlls/winnls.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winnls.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winnls.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winnls.dll16/%) dlls/winnls.dll16: dlls/winnls.dll16/Makefile \$(MAKEDEP)
dlls/winnls.dll16/Makefile: dlls/winnls.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winnls.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/winnls32/libwinnls32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winnls32/libwinnls32.$IMPLIBEXT dlls/winnls32/libwinnls32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/winnls32/libwinnls32.$IMPLIBEXT dlls/winnls32/libwinnls32.cross.a: dlls/winnls32/winnls32.spec dlls/winnls32/Makefile
	@cd dlls/winnls32 && \$(MAKE) \`basename \$@\`
dlls/winnls32 dlls/winnls32/__install__ dlls/winnls32/__install-lib__ dlls/winnls32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winnls32"
test "x$enable_winnls32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winnls32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winnls32/%) dlls/winnls32: dlls/winnls32/Makefile \$(MAKEDEP)
dlls/winnls32/Makefile: dlls/winnls32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winnls32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/winscard/libwinscard.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winscard/libwinscard.$IMPLIBEXT dlls/winscard/libwinscard.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/winscard/libwinscard.$IMPLIBEXT dlls/winscard/libwinscard.cross.a: dlls/winscard/winscard.spec dlls/winscard/Makefile
	@cd dlls/winscard && \$(MAKE) \`basename \$@\`
dlls/winscard dlls/winscard/__install__ dlls/winscard/__install-lib__ dlls/winscard/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winscard"
test "x$enable_winscard" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winscard"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winscard/%) dlls/winscard: dlls/winscard/Makefile \$(MAKEDEP)
dlls/winscard/Makefile: dlls/winscard/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winscard/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winsock.dll16 dlls/winsock.dll16/__install__ dlls/winsock.dll16/__install-lib__ dlls/winsock.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winsock.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winsock.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winsock.dll16/%) dlls/winsock.dll16: dlls/winsock.dll16/Makefile \$(MAKEDEP)
dlls/winsock.dll16/Makefile: dlls/winsock.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winsock.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/winspool.drv/libwinspool.$IMPLIBEXT" && wine_fn_append_file ALL_IMPORT_LIBS "dlls/libwinspool.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winspool.drv/libwinspool.$IMPLIBEXT dlls/winspool.drv/libwinspool.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/libwinspool.$IMPLIBEXT: dlls/winspool.drv/libwinspool.$IMPLIBEXT
	\$(RM) \$@ && \$(LN_S) winspool.drv/libwinspool.$IMPLIBEXT \$@
dlls/libwinspool.cross.a: dlls/winspool.drv/libwinspool.cross.a
	\$(RM) \$@ && \$(LN_S) winspool.drv/libwinspool.cross.a \$@
clean::
	\$(RM) dlls/libwinspool.$IMPLIBEXT
dlls/winspool.drv/libwinspool.$IMPLIBEXT dlls/winspool.drv/libwinspool.cross.a: dlls/winspool.drv/winspool.drv.spec dlls/winspool.drv/Makefile
	@cd dlls/winspool.drv && \$(MAKE) \`basename \$@\`
dlls/winspool.drv dlls/winspool.drv/__install__ dlls/winspool.drv/__install-lib__ dlls/winspool.drv/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/winspool.drv"
test "x$enable_winspool_drv" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/winspool.drv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winspool.drv/%) dlls/winspool.drv: dlls/winspool.drv/Makefile \$(MAKEDEP)
dlls/winspool.drv/Makefile: dlls/winspool.drv/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/winspool.drv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/winspool.drv/tests: __builddeps__
dlls/winspool.drv/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "winspool.drv_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "winspool.drv_test.exe: \$(TOPOBJDIR)/dlls/winspool.drv/tests/winspool.drv_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/winspool.drv/tests/winspool.drv_test.exe$DLLEXT \$@ && \$(STRIP) \$@
winspool.drv_test.rc:
	echo \"winspool.drv_test.exe TESTRES \\\"winspool.drv_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
winspool.drv_test.res: winspool.drv_test.rc winspool.drv_test.exe"
wine_fn_append_file ALL_DIRS "dlls/winspool.drv/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/winspool.drv/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/winspool.drv/tests/%) dlls/winspool.drv/tests: dlls/winspool.drv/tests/Makefile \$(MAKEDEP)
dlls/winspool.drv/tests/Makefile: dlls/winspool.drv/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/winspool.drv/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wintab.dll16 dlls/wintab.dll16/__install__ dlls/wintab.dll16/__install-lib__ dlls/wintab.dll16/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wintab.dll16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wintab.dll16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wintab.dll16/%) dlls/wintab.dll16: dlls/wintab.dll16/Makefile \$(MAKEDEP)
dlls/wintab.dll16/Makefile: dlls/wintab.dll16/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wintab.dll16/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/wintab32/libwintab32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wintab32/libwintab32.$IMPLIBEXT dlls/wintab32/libwintab32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wintab32/libwintab32.$IMPLIBEXT dlls/wintab32/libwintab32.cross.a: dlls/wintab32/wintab32.spec dlls/wintab32/Makefile
	@cd dlls/wintab32 && \$(MAKE) \`basename \$@\`
dlls/wintab32 dlls/wintab32/__install__ dlls/wintab32/__install-lib__ dlls/wintab32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wintab32"
test "x$enable_wintab32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wintab32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wintab32/%) dlls/wintab32: dlls/wintab32/Makefile \$(MAKEDEP)
dlls/wintab32/Makefile: dlls/wintab32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wintab32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wintab32/tests: __builddeps__
dlls/wintab32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "wintab32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "wintab32_test.exe: \$(TOPOBJDIR)/dlls/wintab32/tests/wintab32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/wintab32/tests/wintab32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
wintab32_test.rc:
	echo \"wintab32_test.exe TESTRES \\\"wintab32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
wintab32_test.res: wintab32_test.rc wintab32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/wintab32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/wintab32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wintab32/tests/%) dlls/wintab32/tests: dlls/wintab32/tests/Makefile \$(MAKEDEP)
dlls/wintab32/tests/Makefile: dlls/wintab32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/wintab32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/wintrust/libwintrust.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wintrust/libwintrust.$IMPLIBEXT dlls/wintrust/libwintrust.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wintrust/libwintrust.$IMPLIBEXT dlls/wintrust/libwintrust.cross.a: dlls/wintrust/wintrust.spec dlls/wintrust/Makefile
	@cd dlls/wintrust && \$(MAKE) \`basename \$@\`
dlls/wintrust dlls/wintrust/__install__ dlls/wintrust/__install-lib__ dlls/wintrust/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wintrust"
test "x$enable_wintrust" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wintrust"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wintrust/%) dlls/wintrust: dlls/wintrust/Makefile \$(MAKEDEP)
dlls/wintrust/Makefile: dlls/wintrust/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wintrust/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wintrust/tests: __builddeps__
dlls/wintrust/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "wintrust_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "wintrust_test.exe: \$(TOPOBJDIR)/dlls/wintrust/tests/wintrust_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/wintrust/tests/wintrust_test.exe$DLLEXT \$@ && \$(STRIP) \$@
wintrust_test.rc:
	echo \"wintrust_test.exe TESTRES \\\"wintrust_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
wintrust_test.res: wintrust_test.rc wintrust_test.exe"
wine_fn_append_file ALL_DIRS "dlls/wintrust/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/wintrust/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wintrust/tests/%) dlls/wintrust/tests: dlls/wintrust/tests/Makefile \$(MAKEDEP)
dlls/wintrust/tests/Makefile: dlls/wintrust/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/wintrust/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/wldap32/libwldap32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wldap32/libwldap32.$IMPLIBEXT dlls/wldap32/libwldap32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wldap32/libwldap32.$IMPLIBEXT dlls/wldap32/libwldap32.cross.a: dlls/wldap32/wldap32.spec dlls/wldap32/Makefile
	@cd dlls/wldap32 && \$(MAKE) \`basename \$@\`
dlls/wldap32 dlls/wldap32/__install__ dlls/wldap32/__install-lib__ dlls/wldap32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wldap32"
test "x$enable_wldap32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wldap32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wldap32/%) dlls/wldap32: dlls/wldap32/Makefile \$(MAKEDEP)
dlls/wldap32/Makefile: dlls/wldap32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wldap32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wldap32/tests: __builddeps__
dlls/wldap32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "wldap32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "wldap32_test.exe: \$(TOPOBJDIR)/dlls/wldap32/tests/wldap32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/wldap32/tests/wldap32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
wldap32_test.rc:
	echo \"wldap32_test.exe TESTRES \\\"wldap32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
wldap32_test.res: wldap32_test.rc wldap32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/wldap32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/wldap32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wldap32/tests/%) dlls/wldap32/tests: dlls/wldap32/tests/Makefile \$(MAKEDEP)
dlls/wldap32/tests/Makefile: dlls/wldap32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/wldap32/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wmi dlls/wmi/__install__ dlls/wmi/__install-lib__ dlls/wmi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wmi"
test "x$enable_wmi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wmi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wmi/%) dlls/wmi: dlls/wmi/Makefile \$(MAKEDEP)
dlls/wmi/Makefile: dlls/wmi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wmi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wmiutils dlls/wmiutils/__install__ dlls/wmiutils/__install-lib__ dlls/wmiutils/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wmiutils"
test "x$enable_wmiutils" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wmiutils"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wmiutils/%) dlls/wmiutils: dlls/wmiutils/Makefile \$(MAKEDEP)
dlls/wmiutils/Makefile: dlls/wmiutils/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wmiutils/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/wnaspi32/libwnaspi32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wnaspi32/libwnaspi32.$IMPLIBEXT dlls/wnaspi32/libwnaspi32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wnaspi32/libwnaspi32.$IMPLIBEXT dlls/wnaspi32/libwnaspi32.cross.a: dlls/wnaspi32/wnaspi32.spec dlls/wnaspi32/Makefile
	@cd dlls/wnaspi32 && \$(MAKE) \`basename \$@\`
dlls/wnaspi32 dlls/wnaspi32/__install__ dlls/wnaspi32/__install-lib__ dlls/wnaspi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wnaspi32"
test "x$enable_wnaspi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wnaspi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wnaspi32/%) dlls/wnaspi32: dlls/wnaspi32/Makefile \$(MAKEDEP)
dlls/wnaspi32/Makefile: dlls/wnaspi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wnaspi32/Makefile"

test "x$enable_win16" != xno && wine_fn_append_file ALL_IMPORT_LIBS "dlls/wow32/libwow32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wow32/libwow32.$IMPLIBEXT dlls/wow32/libwow32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wow32/libwow32.$IMPLIBEXT dlls/wow32/libwow32.cross.a: dlls/wow32/wow32.spec dlls/wow32/Makefile
	@cd dlls/wow32 && \$(MAKE) \`basename \$@\`
dlls/wow32 dlls/wow32/__install__ dlls/wow32/__install-lib__ dlls/wow32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wow32"
test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wow32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wow32/%) dlls/wow32: dlls/wow32/Makefile \$(MAKEDEP)
dlls/wow32/Makefile: dlls/wow32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wow32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/ws2_32/libws2_32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ws2_32/libws2_32.$IMPLIBEXT dlls/ws2_32/libws2_32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/ws2_32/libws2_32.$IMPLIBEXT dlls/ws2_32/libws2_32.cross.a: dlls/ws2_32/ws2_32.spec dlls/ws2_32/Makefile
	@cd dlls/ws2_32 && \$(MAKE) \`basename \$@\`
dlls/ws2_32 dlls/ws2_32/__install__ dlls/ws2_32/__install-lib__ dlls/ws2_32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/ws2_32"
test "x$enable_ws2_32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/ws2_32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ws2_32/%) dlls/ws2_32: dlls/ws2_32/Makefile \$(MAKEDEP)
dlls/ws2_32/Makefile: dlls/ws2_32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/ws2_32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/ws2_32/tests: __builddeps__
dlls/ws2_32/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "ws2_32_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "ws2_32_test.exe: \$(TOPOBJDIR)/dlls/ws2_32/tests/ws2_32_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/ws2_32/tests/ws2_32_test.exe$DLLEXT \$@ && \$(STRIP) \$@
ws2_32_test.rc:
	echo \"ws2_32_test.exe TESTRES \\\"ws2_32_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
ws2_32_test.res: ws2_32_test.rc ws2_32_test.exe"
wine_fn_append_file ALL_DIRS "dlls/ws2_32/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/ws2_32/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/ws2_32/tests/%) dlls/ws2_32/tests: dlls/ws2_32/tests/Makefile \$(MAKEDEP)
dlls/ws2_32/tests/Makefile: dlls/ws2_32/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/ws2_32/tests/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/wsock32/libwsock32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wsock32/libwsock32.$IMPLIBEXT dlls/wsock32/libwsock32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wsock32/libwsock32.$IMPLIBEXT dlls/wsock32/libwsock32.cross.a: dlls/wsock32/wsock32.spec dlls/wsock32/Makefile
	@cd dlls/wsock32 && \$(MAKE) \`basename \$@\`
dlls/wsock32 dlls/wsock32/__install__ dlls/wsock32/__install-lib__ dlls/wsock32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wsock32"
test "x$enable_wsock32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wsock32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wsock32/%) dlls/wsock32: dlls/wsock32/Makefile \$(MAKEDEP)
dlls/wsock32/Makefile: dlls/wsock32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wsock32/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/wtsapi32/libwtsapi32.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wtsapi32/libwtsapi32.$IMPLIBEXT dlls/wtsapi32/libwtsapi32.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/wtsapi32/libwtsapi32.$IMPLIBEXT dlls/wtsapi32/libwtsapi32.cross.a: dlls/wtsapi32/wtsapi32.spec dlls/wtsapi32/Makefile
	@cd dlls/wtsapi32 && \$(MAKE) \`basename \$@\`
dlls/wtsapi32 dlls/wtsapi32/__install__ dlls/wtsapi32/__install-lib__ dlls/wtsapi32/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wtsapi32"
test "x$enable_wtsapi32" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wtsapi32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wtsapi32/%) dlls/wtsapi32: dlls/wtsapi32/Makefile \$(MAKEDEP)
dlls/wtsapi32/Makefile: dlls/wtsapi32/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wtsapi32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wuapi dlls/wuapi/__install__ dlls/wuapi/__install-lib__ dlls/wuapi/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wuapi"
test "x$enable_wuapi" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wuapi"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wuapi/%) dlls/wuapi: dlls/wuapi/Makefile \$(MAKEDEP)
dlls/wuapi/Makefile: dlls/wuapi/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wuapi/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/wuaueng dlls/wuaueng/__install__ dlls/wuaueng/__install-lib__ dlls/wuaueng/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/wuaueng"
test "x$enable_wuaueng" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/wuaueng"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/wuaueng/%) dlls/wuaueng: dlls/wuaueng/Makefile \$(MAKEDEP)
dlls/wuaueng/Makefile: dlls/wuaueng/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/wuaueng/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/xinput1_1 dlls/xinput1_1/__install__ dlls/xinput1_1/__install-lib__ dlls/xinput1_1/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/xinput1_1"
test "x$enable_xinput1_1" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/xinput1_1"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/xinput1_1/%) dlls/xinput1_1: dlls/xinput1_1/Makefile \$(MAKEDEP)
dlls/xinput1_1/Makefile: dlls/xinput1_1/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/xinput1_1/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/xinput1_2 dlls/xinput1_2/__install__ dlls/xinput1_2/__install-lib__ dlls/xinput1_2/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/xinput1_2"
test "x$enable_xinput1_2" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/xinput1_2"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/xinput1_2/%) dlls/xinput1_2: dlls/xinput1_2/Makefile \$(MAKEDEP)
dlls/xinput1_2/Makefile: dlls/xinput1_2/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/xinput1_2/Makefile"

wine_fn_append_file ALL_IMPORT_LIBS "dlls/xinput1_3/libxinput.$IMPLIBEXT" && wine_fn_append_file ALL_IMPORT_LIBS "dlls/libxinput.$IMPLIBEXT"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/xinput1_3/libxinput.$IMPLIBEXT dlls/xinput1_3/libxinput.cross.a: tools/widl tools/winebuild tools/winegcc include
dlls/libxinput.$IMPLIBEXT: dlls/xinput1_3/libxinput.$IMPLIBEXT
	\$(RM) \$@ && \$(LN_S) xinput1_3/libxinput.$IMPLIBEXT \$@
dlls/libxinput.cross.a: dlls/xinput1_3/libxinput.cross.a
	\$(RM) \$@ && \$(LN_S) xinput1_3/libxinput.cross.a \$@
clean::
	\$(RM) dlls/libxinput.$IMPLIBEXT
dlls/xinput1_3/libxinput.$IMPLIBEXT dlls/xinput1_3/libxinput.cross.a: dlls/xinput1_3/xinput1_3.spec dlls/xinput1_3/Makefile
	@cd dlls/xinput1_3 && \$(MAKE) \`basename \$@\`
dlls/xinput1_3 dlls/xinput1_3/__install__ dlls/xinput1_3/__install-lib__ dlls/xinput1_3/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/xinput1_3"
test "x$enable_xinput1_3" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/xinput1_3"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/xinput1_3/%) dlls/xinput1_3: dlls/xinput1_3/Makefile \$(MAKEDEP)
dlls/xinput1_3/Makefile: dlls/xinput1_3/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/xinput1_3/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/xinput1_3/tests: __builddeps__
dlls/xinput1_3/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "xinput1_3_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "xinput1_3_test.exe: \$(TOPOBJDIR)/dlls/xinput1_3/tests/xinput1_3_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/xinput1_3/tests/xinput1_3_test.exe$DLLEXT \$@ && \$(STRIP) \$@
xinput1_3_test.rc:
	echo \"xinput1_3_test.exe TESTRES \\\"xinput1_3_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
xinput1_3_test.res: xinput1_3_test.rc xinput1_3_test.exe"
wine_fn_append_file ALL_DIRS "dlls/xinput1_3/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/xinput1_3/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/xinput1_3/tests/%) dlls/xinput1_3/tests: dlls/xinput1_3/tests/Makefile \$(MAKEDEP)
dlls/xinput1_3/tests/Makefile: dlls/xinput1_3/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/xinput1_3/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/xinput9_1_0 dlls/xinput9_1_0/__install__ dlls/xinput9_1_0/__install-lib__ dlls/xinput9_1_0/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/xinput9_1_0"
test "x$enable_xinput9_1_0" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/xinput9_1_0"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/xinput9_1_0/%) dlls/xinput9_1_0: dlls/xinput9_1_0/Makefile \$(MAKEDEP)
dlls/xinput9_1_0/Makefile: dlls/xinput9_1_0/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/xinput9_1_0/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/xmllite dlls/xmllite/__install__ dlls/xmllite/__install-lib__ dlls/xmllite/__install-dev__: __builddeps__"
wine_fn_append_file ALL_DIRS "dlls/xmllite"
test "x$enable_xmllite" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/xmllite"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/xmllite/%) dlls/xmllite: dlls/xmllite/Makefile \$(MAKEDEP)
dlls/xmllite/Makefile: dlls/xmllite/Makefile.in dlls/Makedll.rules config.status"
ac_config_files="$ac_config_files dlls/xmllite/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/xmllite/tests: __builddeps__
dlls/xmllite/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "xmllite_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "xmllite_test.exe: \$(TOPOBJDIR)/dlls/xmllite/tests/xmllite_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/dlls/xmllite/tests/xmllite_test.exe$DLLEXT \$@ && \$(STRIP) \$@
xmllite_test.rc:
	echo \"xmllite_test.exe TESTRES \\\"xmllite_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
xmllite_test.res: xmllite_test.rc xmllite_test.exe"
wine_fn_append_file ALL_DIRS "dlls/xmllite/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "dlls/xmllite/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=dlls/xmllite/tests/%) dlls/xmllite/tests: dlls/xmllite/tests/Makefile \$(MAKEDEP)
dlls/xmllite/tests/Makefile: dlls/xmllite/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files dlls/xmllite/tests/Makefile"

wine_fn_append_file ALL_DIRS "documentation"
test "x$enable_documentation" != xno && wine_fn_append_file ALL_TOP_DIRS "documentation"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=documentation/%) documentation: documentation/Makefile \$(MAKEDEP)
documentation/Makefile: documentation/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files documentation/Makefile"

wine_fn_append_file ALL_DIRS "fonts"
test "x$enable_fonts" != xno && wine_fn_append_file ALL_TOP_DIRS "fonts"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=fonts/%) fonts: fonts/Makefile \$(MAKEDEP)
fonts/Makefile: fonts/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files fonts/Makefile"

wine_fn_append_file ALL_DIRS "include"
test "x$enable_include" != xno && wine_fn_append_file ALL_TOP_DIRS "include"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=include/%) include: include/Makefile \$(MAKEDEP)
include/Makefile: include/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files include/Makefile"

wine_fn_append_file ALL_DIRS "libs/port"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=libs/port/%) libs/port: libs/port/Makefile \$(MAKEDEP)
libs/port/Makefile: libs/port/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files libs/port/Makefile"

wine_fn_append_file ALL_DIRS "libs/wine"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=libs/wine/%) libs/wine: libs/wine/Makefile \$(MAKEDEP)
libs/wine/Makefile: libs/wine/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files libs/wine/Makefile"

wine_fn_append_file ALL_DIRS "libs/wpp"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=libs/wpp/%) libs/wpp: libs/wpp/Makefile \$(MAKEDEP)
libs/wpp/Makefile: libs/wpp/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files libs/wpp/Makefile"

wine_fn_append_file ALL_DIRS "loader"
test "x$enable_loader" != xno && wine_fn_append_file ALL_TOP_DIRS "loader"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=loader/%) loader: loader/Makefile \$(MAKEDEP)
loader/Makefile: loader/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files loader/Makefile"

wine_fn_append_file ALL_DIRS "programs"
test "x$enable_programs" != xno && wine_fn_append_file ALL_TOP_DIRS "programs"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/%) programs: programs/Makefile \$(MAKEDEP)
programs/Makefile: programs/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files programs/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/cacls programs/cacls/__install__ programs/cacls/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/cacls"
test "x$enable_cacls" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/cacls" && wine_fn_append_file ALL_INSTALL_DIRS "programs/cacls"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/cacls/%) programs/cacls: programs/cacls/Makefile \$(MAKEDEP)
programs/cacls/Makefile: programs/cacls/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/cacls/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/clock programs/clock/__install__ programs/clock/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/clock"
test "x$enable_clock" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/clock" && wine_fn_append_file ALL_INSTALL_DIRS "programs/clock"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/clock/%) programs/clock: programs/clock/Makefile \$(MAKEDEP)
programs/clock/Makefile: programs/clock/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/clock/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/cmd programs/cmd/__install__ programs/cmd/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/cmd"
test "x$enable_cmd" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/cmd" && wine_fn_append_file ALL_INSTALL_DIRS "programs/cmd"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/cmd/%) programs/cmd: programs/cmd/Makefile \$(MAKEDEP)
programs/cmd/Makefile: programs/cmd/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/cmd/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/cmd/tests: __builddeps__
programs/cmd/tests/__crosstest__: __buildcrossdeps__"
wine_fn_append_file ALL_TEST_BINARIES "cmd.exe_test.exe"
wine_fn_append_rule ALL_WINETEST_DEPENDS "cmd.exe_test.exe: \$(TOPOBJDIR)/programs/cmd/tests/cmd.exe_test.exe$DLLEXT
	cp \$(TOPOBJDIR)/programs/cmd/tests/cmd.exe_test.exe$DLLEXT \$@ && \$(STRIP) \$@
cmd.exe_test.rc:
	echo \"cmd.exe_test.exe TESTRES \\\"cmd.exe_test.exe\\\"\" >\$@ || (\$(RM) \$@ && false)
cmd.exe_test.res: cmd.exe_test.rc cmd.exe_test.exe"
wine_fn_append_file ALL_DIRS "programs/cmd/tests"
test "x$enable_tests" != xno && wine_fn_append_file ALL_TEST_DIRS "programs/cmd/tests"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/cmd/tests/%) programs/cmd/tests: programs/cmd/tests/Makefile \$(MAKEDEP)
programs/cmd/tests/Makefile: programs/cmd/tests/Makefile.in Maketest.rules config.status"
ac_config_files="$ac_config_files programs/cmd/tests/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/cmdlgtst programs/cmdlgtst/__install__ programs/cmdlgtst/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/cmdlgtst"
test "x$enable_cmdlgtst" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/cmdlgtst"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/cmdlgtst/%) programs/cmdlgtst: programs/cmdlgtst/Makefile \$(MAKEDEP)
programs/cmdlgtst/Makefile: programs/cmdlgtst/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/cmdlgtst/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/control programs/control/__install__ programs/control/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/control"
test "x$enable_control" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/control" && wine_fn_append_file ALL_INSTALL_DIRS "programs/control"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/control/%) programs/control: programs/control/Makefile \$(MAKEDEP)
programs/control/Makefile: programs/control/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/control/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/dxdiag programs/dxdiag/__install__ programs/dxdiag/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/dxdiag"
test "x$enable_dxdiag" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/dxdiag" && wine_fn_append_file ALL_INSTALL_DIRS "programs/dxdiag"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/dxdiag/%) programs/dxdiag: programs/dxdiag/Makefile \$(MAKEDEP)
programs/dxdiag/Makefile: programs/dxdiag/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/dxdiag/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/eject programs/eject/__install__ programs/eject/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/eject"
test "x$enable_eject" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/eject" && wine_fn_append_file ALL_INSTALL_DIRS "programs/eject"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/eject/%) programs/eject: programs/eject/Makefile \$(MAKEDEP)
programs/eject/Makefile: programs/eject/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/eject/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/expand programs/expand/__install__ programs/expand/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/expand"
test "x$enable_expand" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/expand" && wine_fn_append_file ALL_INSTALL_DIRS "programs/expand"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/expand/%) programs/expand: programs/expand/Makefile \$(MAKEDEP)
programs/expand/Makefile: programs/expand/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/expand/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/explorer programs/explorer/__install__ programs/explorer/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/explorer"
test "x$enable_explorer" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/explorer" && wine_fn_append_file ALL_INSTALL_DIRS "programs/explorer"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/explorer/%) programs/explorer: programs/explorer/Makefile \$(MAKEDEP)
programs/explorer/Makefile: programs/explorer/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/explorer/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/extrac32 programs/extrac32/__install__ programs/extrac32/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/extrac32"
test "x$enable_extrac32" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/extrac32" && wine_fn_append_file ALL_INSTALL_DIRS "programs/extrac32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/extrac32/%) programs/extrac32: programs/extrac32/Makefile \$(MAKEDEP)
programs/extrac32/Makefile: programs/extrac32/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/extrac32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/hh programs/hh/__install__ programs/hh/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/hh"
test "x$enable_hh" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/hh" && wine_fn_append_file ALL_INSTALL_DIRS "programs/hh"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/hh/%) programs/hh: programs/hh/Makefile \$(MAKEDEP)
programs/hh/Makefile: programs/hh/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/hh/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/icinfo programs/icinfo/__install__ programs/icinfo/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/icinfo"
test "x$enable_icinfo" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/icinfo" && wine_fn_append_file ALL_INSTALL_DIRS "programs/icinfo"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/icinfo/%) programs/icinfo: programs/icinfo/Makefile \$(MAKEDEP)
programs/icinfo/Makefile: programs/icinfo/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/icinfo/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/iexplore programs/iexplore/__install__ programs/iexplore/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/iexplore"
test "x$enable_iexplore" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/iexplore" && wine_fn_append_file ALL_INSTALL_DIRS "programs/iexplore"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/iexplore/%) programs/iexplore: programs/iexplore/Makefile \$(MAKEDEP)
programs/iexplore/Makefile: programs/iexplore/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/iexplore/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/lodctr programs/lodctr/__install__ programs/lodctr/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/lodctr"
test "x$enable_lodctr" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/lodctr" && wine_fn_append_file ALL_INSTALL_DIRS "programs/lodctr"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/lodctr/%) programs/lodctr: programs/lodctr/Makefile \$(MAKEDEP)
programs/lodctr/Makefile: programs/lodctr/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/lodctr/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/mshta programs/mshta/__install__ programs/mshta/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/mshta"
test "x$enable_mshta" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/mshta" && wine_fn_append_file ALL_INSTALL_DIRS "programs/mshta"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/mshta/%) programs/mshta: programs/mshta/Makefile \$(MAKEDEP)
programs/mshta/Makefile: programs/mshta/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/mshta/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/msiexec programs/msiexec/__install__ programs/msiexec/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/msiexec"
test "x$enable_msiexec" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/msiexec" && wine_fn_append_file ALL_INSTALL_DIRS "programs/msiexec" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/msiexec"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/msiexec/%) programs/msiexec: programs/msiexec/Makefile \$(MAKEDEP)
programs/msiexec/Makefile: programs/msiexec/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/msiexec/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/net programs/net/__install__ programs/net/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/net"
test "x$enable_net" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/net" && wine_fn_append_file ALL_INSTALL_DIRS "programs/net"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/net/%) programs/net: programs/net/Makefile \$(MAKEDEP)
programs/net/Makefile: programs/net/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/net/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/notepad programs/notepad/__install__ programs/notepad/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/notepad"
test "x$enable_notepad" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/notepad" && wine_fn_append_file ALL_INSTALL_DIRS "programs/notepad" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/notepad"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/notepad/%) programs/notepad: programs/notepad/Makefile \$(MAKEDEP)
programs/notepad/Makefile: programs/notepad/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/notepad/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/oleview programs/oleview/__install__ programs/oleview/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/oleview"
test "x$enable_oleview" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/oleview" && wine_fn_append_file ALL_INSTALL_DIRS "programs/oleview"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/oleview/%) programs/oleview: programs/oleview/Makefile \$(MAKEDEP)
programs/oleview/Makefile: programs/oleview/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/oleview/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/progman programs/progman/__install__ programs/progman/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/progman"
test "x$enable_progman" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/progman" && wine_fn_append_file ALL_INSTALL_DIRS "programs/progman"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/progman/%) programs/progman: programs/progman/Makefile \$(MAKEDEP)
programs/progman/Makefile: programs/progman/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/progman/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/reg programs/reg/__install__ programs/reg/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/reg"
test "x$enable_reg" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/reg" && wine_fn_append_file ALL_INSTALL_DIRS "programs/reg"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/reg/%) programs/reg: programs/reg/Makefile \$(MAKEDEP)
programs/reg/Makefile: programs/reg/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/reg/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/regedit programs/regedit/__install__ programs/regedit/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/regedit"
test "x$enable_regedit" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/regedit" && wine_fn_append_file ALL_INSTALL_DIRS "programs/regedit" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/regedit"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/regedit/%) programs/regedit: programs/regedit/Makefile \$(MAKEDEP)
programs/regedit/Makefile: programs/regedit/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/regedit/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/regsvr32 programs/regsvr32/__install__ programs/regsvr32/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/regsvr32"
test "x$enable_regsvr32" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/regsvr32" && wine_fn_append_file ALL_INSTALL_DIRS "programs/regsvr32" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/regsvr32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/regsvr32/%) programs/regsvr32: programs/regsvr32/Makefile \$(MAKEDEP)
programs/regsvr32/Makefile: programs/regsvr32/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/regsvr32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/rpcss programs/rpcss/__install__ programs/rpcss/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/rpcss"
test "x$enable_rpcss" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/rpcss" && wine_fn_append_file ALL_INSTALL_DIRS "programs/rpcss"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/rpcss/%) programs/rpcss: programs/rpcss/Makefile \$(MAKEDEP)
programs/rpcss/Makefile: programs/rpcss/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/rpcss/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/rundll32 programs/rundll32/__install__ programs/rundll32/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/rundll32"
test "x$enable_rundll32" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/rundll32" && wine_fn_append_file ALL_INSTALL_DIRS "programs/rundll32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/rundll32/%) programs/rundll32: programs/rundll32/Makefile \$(MAKEDEP)
programs/rundll32/Makefile: programs/rundll32/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/rundll32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/secedit programs/secedit/__install__ programs/secedit/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/secedit"
test "x$enable_secedit" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/secedit" && wine_fn_append_file ALL_INSTALL_DIRS "programs/secedit"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/secedit/%) programs/secedit: programs/secedit/Makefile \$(MAKEDEP)
programs/secedit/Makefile: programs/secedit/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/secedit/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/services programs/services/__install__ programs/services/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/services"
test "x$enable_services" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/services" && wine_fn_append_file ALL_INSTALL_DIRS "programs/services"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/services/%) programs/services: programs/services/Makefile \$(MAKEDEP)
programs/services/Makefile: programs/services/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/services/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/spoolsv programs/spoolsv/__install__ programs/spoolsv/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/spoolsv"
test "x$enable_spoolsv" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/spoolsv" && wine_fn_append_file ALL_INSTALL_DIRS "programs/spoolsv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/spoolsv/%) programs/spoolsv: programs/spoolsv/Makefile \$(MAKEDEP)
programs/spoolsv/Makefile: programs/spoolsv/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/spoolsv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/start programs/start/__install__ programs/start/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/start"
test "x$enable_start" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/start" && wine_fn_append_file ALL_INSTALL_DIRS "programs/start"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/start/%) programs/start: programs/start/Makefile \$(MAKEDEP)
programs/start/Makefile: programs/start/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/start/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/svchost programs/svchost/__install__ programs/svchost/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/svchost"
test "x$enable_svchost" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/svchost" && wine_fn_append_file ALL_INSTALL_DIRS "programs/svchost"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/svchost/%) programs/svchost: programs/svchost/Makefile \$(MAKEDEP)
programs/svchost/Makefile: programs/svchost/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/svchost/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/taskmgr programs/taskmgr/__install__ programs/taskmgr/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/taskmgr"
test "x$enable_taskmgr" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/taskmgr" && wine_fn_append_file ALL_INSTALL_DIRS "programs/taskmgr"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/taskmgr/%) programs/taskmgr: programs/taskmgr/Makefile \$(MAKEDEP)
programs/taskmgr/Makefile: programs/taskmgr/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/taskmgr/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/termsv programs/termsv/__install__ programs/termsv/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/termsv"
test "x$enable_termsv" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/termsv" && wine_fn_append_file ALL_INSTALL_DIRS "programs/termsv"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/termsv/%) programs/termsv: programs/termsv/Makefile \$(MAKEDEP)
programs/termsv/Makefile: programs/termsv/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/termsv/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/uninstaller programs/uninstaller/__install__ programs/uninstaller/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/uninstaller"
test "x$enable_uninstaller" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/uninstaller" && wine_fn_append_file ALL_INSTALL_DIRS "programs/uninstaller"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/uninstaller/%) programs/uninstaller: programs/uninstaller/Makefile \$(MAKEDEP)
programs/uninstaller/Makefile: programs/uninstaller/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/uninstaller/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/unlodctr programs/unlodctr/__install__ programs/unlodctr/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/unlodctr"
test "x$enable_unlodctr" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/unlodctr" && wine_fn_append_file ALL_INSTALL_DIRS "programs/unlodctr"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/unlodctr/%) programs/unlodctr: programs/unlodctr/Makefile \$(MAKEDEP)
programs/unlodctr/Makefile: programs/unlodctr/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/unlodctr/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/view programs/view/__install__ programs/view/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/view"
test "x$enable_view" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/view"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/view/%) programs/view: programs/view/Makefile \$(MAKEDEP)
programs/view/Makefile: programs/view/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/view/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/wineboot programs/wineboot/__install__ programs/wineboot/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/wineboot"
test "x$enable_wineboot" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/wineboot" && wine_fn_append_file ALL_INSTALL_DIRS "programs/wineboot" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/wineboot"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/wineboot/%) programs/wineboot: programs/wineboot/Makefile \$(MAKEDEP)
programs/wineboot/Makefile: programs/wineboot/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/wineboot/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winebrowser programs/winebrowser/__install__ programs/winebrowser/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winebrowser"
test "x$enable_winebrowser" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winebrowser" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winebrowser"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winebrowser/%) programs/winebrowser: programs/winebrowser/Makefile \$(MAKEDEP)
programs/winebrowser/Makefile: programs/winebrowser/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winebrowser/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winecfg programs/winecfg/__install__ programs/winecfg/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winecfg"
test "x$enable_winecfg" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winecfg" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winecfg" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/winecfg"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winecfg/%) programs/winecfg: programs/winecfg/Makefile \$(MAKEDEP)
programs/winecfg/Makefile: programs/winecfg/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winecfg/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/wineconsole programs/wineconsole/__install__ programs/wineconsole/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/wineconsole"
test "x$enable_wineconsole" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/wineconsole" && wine_fn_append_file ALL_INSTALL_DIRS "programs/wineconsole" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/wineconsole"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/wineconsole/%) programs/wineconsole: programs/wineconsole/Makefile \$(MAKEDEP)
programs/wineconsole/Makefile: programs/wineconsole/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/wineconsole/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winedbg programs/winedbg/__install__ programs/winedbg/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winedbg"
test "x$enable_winedbg" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winedbg" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winedbg" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/winedbg"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winedbg/%) programs/winedbg: programs/winedbg/Makefile \$(MAKEDEP)
programs/winedbg/Makefile: programs/winedbg/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winedbg/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winedevice programs/winedevice/__install__ programs/winedevice/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winedevice"
test "x$enable_winedevice" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winedevice" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winedevice"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winedevice/%) programs/winedevice: programs/winedevice/Makefile \$(MAKEDEP)
programs/winedevice/Makefile: programs/winedevice/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winedevice/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winefile programs/winefile/__install__ programs/winefile/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winefile"
test "x$enable_winefile" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winefile" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winefile" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/winefile"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winefile/%) programs/winefile: programs/winefile/Makefile \$(MAKEDEP)
programs/winefile/Makefile: programs/winefile/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winefile/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winemenubuilder programs/winemenubuilder/__install__ programs/winemenubuilder/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winemenubuilder"
test "x$enable_winemenubuilder" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winemenubuilder" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winemenubuilder"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winemenubuilder/%) programs/winemenubuilder: programs/winemenubuilder/Makefile \$(MAKEDEP)
programs/winemenubuilder/Makefile: programs/winemenubuilder/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winemenubuilder/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winemine programs/winemine/__install__ programs/winemine/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winemine"
test "x$enable_winemine" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winemine" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winemine" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/winemine"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winemine/%) programs/winemine: programs/winemine/Makefile \$(MAKEDEP)
programs/winemine/Makefile: programs/winemine/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winemine/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winepath programs/winepath/__install__ programs/winepath/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winepath"
test "x$enable_winepath" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winepath" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winepath" && wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS "programs/winepath"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winepath/%) programs/winepath: programs/winepath/Makefile \$(MAKEDEP)
programs/winepath/Makefile: programs/winepath/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winepath/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winetest programs/winetest/__install__ programs/winetest/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winetest"
test "x$enable_winetest" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winetest"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winetest/%) programs/winetest: programs/winetest/Makefile \$(MAKEDEP)
programs/winetest/Makefile: programs/winetest/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winetest/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winevdm programs/winevdm/__install__ programs/winevdm/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winevdm"
test "x$enable_win16" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winevdm" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winevdm"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winevdm/%) programs/winevdm: programs/winevdm/Makefile \$(MAKEDEP)
programs/winevdm/Makefile: programs/winevdm/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winevdm/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winhelp.exe16 programs/winhelp.exe16/__install__ programs/winhelp.exe16/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winhelp.exe16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winhelp.exe16" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winhelp.exe16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winhelp.exe16/%) programs/winhelp.exe16: programs/winhelp.exe16/Makefile \$(MAKEDEP)
programs/winhelp.exe16/Makefile: programs/winhelp.exe16/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winhelp.exe16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winhlp32 programs/winhlp32/__install__ programs/winhlp32/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winhlp32"
test "x$enable_winhlp32" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winhlp32" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winhlp32"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winhlp32/%) programs/winhlp32: programs/winhlp32/Makefile \$(MAKEDEP)
programs/winhlp32/Makefile: programs/winhlp32/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winhlp32/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winoldap.mod16 programs/winoldap.mod16/__install__ programs/winoldap.mod16/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winoldap.mod16"
test "x$enable_win16" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winoldap.mod16" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winoldap.mod16"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winoldap.mod16/%) programs/winoldap.mod16: programs/winoldap.mod16/Makefile \$(MAKEDEP)
programs/winoldap.mod16/Makefile: programs/winoldap.mod16/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winoldap.mod16/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/winver programs/winver/__install__ programs/winver/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/winver"
test "x$enable_winver" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/winver" && wine_fn_append_file ALL_INSTALL_DIRS "programs/winver"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/winver/%) programs/winver: programs/winver/Makefile \$(MAKEDEP)
programs/winver/Makefile: programs/winver/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/winver/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/wordpad programs/wordpad/__install__ programs/wordpad/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/wordpad"
test "x$enable_wordpad" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/wordpad" && wine_fn_append_file ALL_INSTALL_DIRS "programs/wordpad"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/wordpad/%) programs/wordpad: programs/wordpad/Makefile \$(MAKEDEP)
programs/wordpad/Makefile: programs/wordpad/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/wordpad/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/write programs/write/__install__ programs/write/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/write"
test "x$enable_write" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/write" && wine_fn_append_file ALL_INSTALL_DIRS "programs/write"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/write/%) programs/write: programs/write/Makefile \$(MAKEDEP)
programs/write/Makefile: programs/write/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/write/Makefile"

wine_fn_append_rule ALL_MAKEFILE_DEPENDS "programs/xcopy programs/xcopy/__install__ programs/xcopy/__install-lib__: __builddeps__"
wine_fn_append_file ALL_DIRS "programs/xcopy"
test "x$enable_xcopy" != xno && wine_fn_append_file ALL_PROGRAM_DIRS "programs/xcopy" && wine_fn_append_file ALL_INSTALL_DIRS "programs/xcopy"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=programs/xcopy/%) programs/xcopy: programs/xcopy/Makefile \$(MAKEDEP)
programs/xcopy/Makefile: programs/xcopy/Makefile.in programs/Makeprog.rules config.status"
ac_config_files="$ac_config_files programs/xcopy/Makefile"

wine_fn_append_file ALL_DIRS "server"
test "x$enable_server" != xno && wine_fn_append_file ALL_TOP_DIRS "server"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=server/%) server: server/Makefile \$(MAKEDEP)
server/Makefile: server/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files server/Makefile"

wine_fn_append_file ALL_DIRS "tools"
test "x$enable_tools" != xno && wine_fn_append_file ALL_TOOL_DIRS "tools"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=tools/%) tools: tools/Makefile \$(MAKEDEP)
tools/Makefile: tools/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files tools/Makefile"

wine_fn_append_file ALL_DIRS "tools/widl"
test "x$enable_tools" != xno && wine_fn_append_file ALL_TOOL_DIRS "tools/widl"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=tools/widl/%) tools/widl: tools/widl/Makefile \$(MAKEDEP)
tools/widl/Makefile: tools/widl/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files tools/widl/Makefile"

wine_fn_append_file ALL_DIRS "tools/winebuild"
test "x$enable_tools" != xno && wine_fn_append_file ALL_TOOL_DIRS "tools/winebuild"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=tools/winebuild/%) tools/winebuild: tools/winebuild/Makefile \$(MAKEDEP)
tools/winebuild/Makefile: tools/winebuild/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files tools/winebuild/Makefile"

wine_fn_append_file ALL_DIRS "tools/winedump"
test "x$enable_tools" != xno && wine_fn_append_file ALL_TOOL_DIRS "tools/winedump"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=tools/winedump/%) tools/winedump: tools/winedump/Makefile \$(MAKEDEP)
tools/winedump/Makefile: tools/winedump/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files tools/winedump/Makefile"

wine_fn_append_file ALL_DIRS "tools/winegcc"
test "x$enable_tools" != xno && wine_fn_append_file ALL_TOOL_DIRS "tools/winegcc"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=tools/winegcc/%) tools/winegcc: tools/winegcc/Makefile \$(MAKEDEP)
tools/winegcc/Makefile: tools/winegcc/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files tools/winegcc/Makefile"

wine_fn_append_file ALL_DIRS "tools/wmc"
test "x$enable_tools" != xno && wine_fn_append_file ALL_TOOL_DIRS "tools/wmc"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=tools/wmc/%) tools/wmc: tools/wmc/Makefile \$(MAKEDEP)
tools/wmc/Makefile: tools/wmc/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files tools/wmc/Makefile"

wine_fn_append_file ALL_DIRS "tools/wrc"
test "x$enable_tools" != xno && wine_fn_append_file ALL_TOOL_DIRS "tools/wrc"
wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(RECURSE_TARGETS:%=tools/wrc/%) tools/wrc: tools/wrc/Makefile \$(MAKEDEP)
tools/wrc/Makefile: tools/wrc/Makefile.in Make.rules config.status"
ac_config_files="$ac_config_files tools/wrc/Makefile"


test -n "$DLLEXT" || ALL_PROGRAM_BIN_INSTALL_DIRS=""

cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems.  If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.

_ACEOF

# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
    eval ac_val=\$$ac_var
    case $ac_val in #(
    *${as_nl}*)
      case $ac_var in #(
      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      esac
      case $ac_var in #(
      _ | IFS | as_nl) ;; #(
      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
      *) { eval $ac_var=; unset $ac_var;} ;;
      esac ;;
    esac
  done

  (set) 2>&1 |
    case $as_nl`(ac_space=' '; set) 2>&1` in #(
    *${as_nl}ac_space=\ *)
      # `set' does not quote correctly, so add quotes: double-quote
      # substitution turns \\\\ into \\, and sed turns \\ into \.
      sed -n \
	"s/'/'\\\\''/g;
	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
      ;; #(
    *)
      # `set' quotes correctly as required by POSIX, so do not add quotes.
      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
      ;;
    esac |
    sort
) |
  sed '
     /^ac_cv_env_/b end
     t clear
     :clear
     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
     t end
     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
     :end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
  if test -w "$cache_file"; then
    test "x$cache_file" != "x/dev/null" &&
      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
    cat confcache >$cache_file
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
  fi
fi
rm -f confcache

test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'

DEFS=-DHAVE_CONFIG_H

ac_libobjs=
ac_ltlibobjs=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
  # 1. Remove the extension, and $U if already installed.
  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
  #    will be set to the directory where LIBOBJS objects are built.
  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs

LTLIBOBJS=$ac_ltlibobjs



: ${CONFIG_STATUS=./config.status}
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.

debug=false
ac_cs_recheck=false
ac_cs_silent=false

SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##

# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
  setopt NO_GLOB_SUBST
else
  case `(set -o) 2>/dev/null` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi


as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='print -r --'
  as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='printf %s\n'
  as_echo_n='printf %s'
else
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
    as_echo_n='/usr/ucb/echo -n'
  else
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
    as_echo_n_body='eval
      arg=$1;
      case $arg in #(
      *"$as_nl"*)
	expr "X$arg" : "X\\(.*\\)$as_nl";
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
      esac;
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
    '
    export as_echo_n_body
    as_echo_n='sh -c $as_echo_n_body as_echo'
  fi
  export as_echo_body
  as_echo='sh -c $as_echo_body as_echo'
fi

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi


# IFS
# We need space, tab and new line, in precisely that order.  Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" ""	$as_nl"

# Find who we are.  Look in the path if we contain no directory separator.
case $0 in #((
  *[\\/]* ) as_myself=$0 ;;
  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  done
IFS=$as_save_IFS

     ;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
  as_myself=$0
fi
if test ! -f "$as_myself"; then
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  exit 1
fi

# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there.  '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '

# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE

# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH


# as_fn_error ERROR [LINENO LOG_FD]
# ---------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with status $?, using 1 if that was 0.
as_fn_error ()
{
  as_status=$?; test $as_status -eq 0 && as_status=1
  if test "$3"; then
    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
  fi
  $as_echo "$as_me: error: $1" >&2
  as_fn_exit $as_status
} # as_fn_error


# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
  return $1
} # as_fn_set_status

# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
  set +e
  as_fn_set_status $1
  exit $1
} # as_fn_exit

# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
  { eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
  eval 'as_fn_append ()
  {
    eval $1+=\$2
  }'
else
  as_fn_append ()
  {
    eval $1=\$$1\$2
  }
fi # as_fn_append

# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
  eval 'as_fn_arith ()
  {
    as_val=$(( $* ))
  }'
else
  as_fn_arith ()
  {
    as_val=`expr "$@" || test $? -eq 1`
  }
fi # as_fn_arith


if expr a : '\(a\)' >/dev/null 2>&1 &&
   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  as_expr=expr
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  as_dirname=dirname
else
  as_dirname=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`

# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits

ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
  case `echo 'xy\c'` in
  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  xy)  ECHO_C='\c';;
  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
       ECHO_T='	';;
  esac;;
*)
  ECHO_N='-n';;
esac

rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
  rm -f conf$$.dir/conf$$.file
else
  rm -f conf$$.dir
  mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
  if ln -s conf$$.file conf$$ 2>/dev/null; then
    as_ln_s='ln -s'
    # ... but there are two gotchas:
    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
    # In both cases, we have to default to `cp -p'.
    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
      as_ln_s='cp -p'
  elif ln conf$$.file conf$$ 2>/dev/null; then
    as_ln_s=ln
  else
    as_ln_s='cp -p'
  fi
else
  as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null


# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{

  case $as_dir in #(
  -*) as_dir=./$as_dir;;
  esac
  test -d "$as_dir" || eval $as_mkdir_p || {
    as_dirs=
    while :; do
      case $as_dir in #(
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
      *) as_qdir=$as_dir;;
      esac
      as_dirs="'$as_qdir' $as_dirs"
      as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_dir" : 'X\(//\)[^/]' \| \
	 X"$as_dir" : 'X\(//\)$' \| \
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
      test -d "$as_dir" && break
    done
    test -z "$as_dirs" || eval "mkdir $as_dirs"
  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"


} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
  as_mkdir_p='mkdir -p "$as_dir"'
else
  test -d ./-p && rmdir ./-p
  as_mkdir_p=false
fi

if test -x / >/dev/null 2>&1; then
  as_test_x='test -x'
else
  if ls -dL / >/dev/null 2>&1; then
    as_ls_L_option=L
  else
    as_ls_L_option=
  fi
  as_test_x='
    eval sh -c '\''
      if test -d "$1"; then
	test -d "$1/.";
      else
	case $1 in #(
	-*)set "./$1";;
	esac;
	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
	???[sx]*):;;*)false;;esac;fi
    '\'' sh
  '
fi
as_executable_p=$as_test_x

# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"

# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"


exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by Wine $as_me 1.1.38, which was
generated by GNU Autoconf 2.65.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@

on `(hostname || uname -n) 2>/dev/null | sed 1q`
"

_ACEOF

case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac

case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac


cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
config_links="$ac_config_links"
config_commands="$ac_config_commands"

_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration.  Unless the files
and actions are specified as TAGs, all are instantiated by default.

Usage: $0 [OPTION]... [TAG]...

  -h, --help       print this help, then exit
  -V, --version    print version number and configuration settings, then exit
      --config     print configuration, then exit
  -q, --quiet, --silent
                   do not print progress messages
  -d, --debug      don't remove temporary files
      --recheck    update $as_me by reconfiguring in the same conditions
      --file=FILE[:TEMPLATE]
                   instantiate the configuration file FILE
      --header=FILE[:TEMPLATE]
                   instantiate the configuration header FILE

Configuration files:
$config_files

Configuration headers:
$config_headers

Configuration links:
$config_links

Configuration commands:
$config_commands

Report bugs to <wine-devel@winehq.org>.
Wine home page: <http://www.winehq.org>."

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
Wine config.status 1.1.38
configured by $0, generated by GNU Autoconf 2.65,
  with options \\"\$ac_cs_config\\"

Copyright (C) 2009 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."

ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
test -n "\$AWK" || AWK=awk
_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
  case $1 in
  --*=*)
    ac_option=`expr "X$1" : 'X\([^=]*\)='`
    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
    ac_shift=:
    ;;
  *)
    ac_option=$1
    ac_optarg=$2
    ac_shift=shift
    ;;
  esac

  case $ac_option in
  # Handling of the options.
  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
    ac_cs_recheck=: ;;
  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
    $as_echo "$ac_cs_version"; exit ;;
  --config | --confi | --conf | --con | --co | --c )
    $as_echo "$ac_cs_config"; exit ;;
  --debug | --debu | --deb | --de | --d | -d )
    debug=: ;;
  --file | --fil | --fi | --f )
    $ac_shift
    case $ac_optarg in
    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
    esac
    as_fn_append CONFIG_FILES " '$ac_optarg'"
    ac_need_defaults=false;;
  --header | --heade | --head | --hea )
    $ac_shift
    case $ac_optarg in
    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
    esac
    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
    ac_need_defaults=false;;
  --he | --h)
    # Conflict between --help and --header
    as_fn_error "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
  --help | --hel | -h )
    $as_echo "$ac_cs_usage"; exit ;;
  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  | -silent | --silent | --silen | --sile | --sil | --si | --s)
    ac_cs_silent=: ;;

  # This is an error.
  -*) as_fn_error "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;

  *) as_fn_append ac_config_targets " $1"
     ac_need_defaults=false ;;

  esac
  shift
done

ac_configure_extra_args=

if $ac_cs_silent; then
  exec 6>/dev/null
  ac_configure_extra_args="$ac_configure_extra_args --silent"
fi

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
  shift
  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
  CONFIG_SHELL='$SHELL'
  export CONFIG_SHELL
  exec "\$@"
fi

_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
  echo
  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
  $as_echo "$ac_log"
} >&5

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1

# Handling of arguments.
for ac_config_target in $ac_config_targets
do
  case $ac_config_target in
    "include/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;;
    "include/stamp-h") CONFIG_COMMANDS="$CONFIG_COMMANDS include/stamp-h" ;;
    "dlls/wineps.drv/generic.ppd") CONFIG_LINKS="$CONFIG_LINKS dlls/wineps.drv/generic.ppd:dlls/wineps.drv/generic.ppd" ;;
    "fonts/marlett.ttf") CONFIG_LINKS="$CONFIG_LINKS fonts/marlett.ttf:fonts/marlett.ttf" ;;
    "fonts/symbol.ttf") CONFIG_LINKS="$CONFIG_LINKS fonts/symbol.ttf:fonts/symbol.ttf" ;;
    "fonts/tahoma.ttf") CONFIG_LINKS="$CONFIG_LINKS fonts/tahoma.ttf:fonts/tahoma.ttf" ;;
    "fonts/tahomabd.ttf") CONFIG_LINKS="$CONFIG_LINKS fonts/tahomabd.ttf:fonts/tahomabd.ttf" ;;
    "wine") CONFIG_LINKS="$CONFIG_LINKS wine:tools/winewrapper" ;;
    "dlls/gdi32/enhmfdrv") CONFIG_COMMANDS="$CONFIG_COMMANDS dlls/gdi32/enhmfdrv" ;;
    "dlls/gdi32/mfdrv") CONFIG_COMMANDS="$CONFIG_COMMANDS dlls/gdi32/mfdrv" ;;
    "dlls/kernel32/nls") CONFIG_COMMANDS="$CONFIG_COMMANDS dlls/kernel32/nls" ;;
    "dlls/user32/resources") CONFIG_COMMANDS="$CONFIG_COMMANDS dlls/user32/resources" ;;
    "dlls/wineps.drv/data") CONFIG_COMMANDS="$CONFIG_COMMANDS dlls/wineps.drv/data" ;;
    "include/wine") CONFIG_COMMANDS="$CONFIG_COMMANDS include/wine" ;;
    "Make.rules") CONFIG_FILES="$CONFIG_FILES Make.rules" ;;
    "Maketest.rules") CONFIG_FILES="$CONFIG_FILES Maketest.rules" ;;
    "dlls/Makedll.rules") CONFIG_FILES="$CONFIG_FILES dlls/Makedll.rules" ;;
    "dlls/Makeimplib.rules") CONFIG_FILES="$CONFIG_FILES dlls/Makeimplib.rules" ;;
    "programs/Makeprog.rules") CONFIG_FILES="$CONFIG_FILES programs/Makeprog.rules" ;;
    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
    "dlls/acledit/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/acledit/Makefile" ;;
    "dlls/aclui/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/aclui/Makefile" ;;
    "dlls/activeds/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/activeds/Makefile" ;;
    "dlls/actxprxy/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/actxprxy/Makefile" ;;
    "dlls/adsiid/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/adsiid/Makefile" ;;
    "dlls/advapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advapi32/Makefile" ;;
    "dlls/advapi32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advapi32/tests/Makefile" ;;
    "dlls/advpack/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advpack/Makefile" ;;
    "dlls/advpack/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advpack/tests/Makefile" ;;
    "dlls/amstream/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/amstream/Makefile" ;;
    "dlls/amstream/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/amstream/tests/Makefile" ;;
    "dlls/appwiz.cpl/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/appwiz.cpl/Makefile" ;;
    "dlls/atl/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/atl/Makefile" ;;
    "dlls/authz/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/authz/Makefile" ;;
    "dlls/avicap32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/avicap32/Makefile" ;;
    "dlls/avifil32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/avifil32/Makefile" ;;
    "dlls/avifil32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/avifil32/tests/Makefile" ;;
    "dlls/avifile.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/avifile.dll16/Makefile" ;;
    "dlls/avrt/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/avrt/Makefile" ;;
    "dlls/bcrypt/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/bcrypt/Makefile" ;;
    "dlls/browseui/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/browseui/Makefile" ;;
    "dlls/browseui/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/browseui/tests/Makefile" ;;
    "dlls/cabinet/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cabinet/Makefile" ;;
    "dlls/cabinet/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cabinet/tests/Makefile" ;;
    "dlls/capi2032/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/capi2032/Makefile" ;;
    "dlls/cards/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cards/Makefile" ;;
    "dlls/cfgmgr32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cfgmgr32/Makefile" ;;
    "dlls/clusapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/clusapi/Makefile" ;;
    "dlls/comcat/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/comcat/Makefile" ;;
    "dlls/comcat/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/comcat/tests/Makefile" ;;
    "dlls/comctl32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/comctl32/Makefile" ;;
    "dlls/comctl32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/comctl32/tests/Makefile" ;;
    "dlls/comdlg32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/comdlg32/Makefile" ;;
    "dlls/comdlg32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/comdlg32/tests/Makefile" ;;
    "dlls/comm.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/comm.drv16/Makefile" ;;
    "dlls/commdlg.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/commdlg.dll16/Makefile" ;;
    "dlls/compobj.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/compobj.dll16/Makefile" ;;
    "dlls/compstui/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/compstui/Makefile" ;;
    "dlls/credui/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/credui/Makefile" ;;
    "dlls/credui/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/credui/tests/Makefile" ;;
    "dlls/crtdll/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/crtdll/Makefile" ;;
    "dlls/crypt32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/crypt32/Makefile" ;;
    "dlls/crypt32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/crypt32/tests/Makefile" ;;
    "dlls/cryptdlg/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cryptdlg/Makefile" ;;
    "dlls/cryptdll/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cryptdll/Makefile" ;;
    "dlls/cryptnet/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cryptnet/Makefile" ;;
    "dlls/cryptnet/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cryptnet/tests/Makefile" ;;
    "dlls/cryptui/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cryptui/Makefile" ;;
    "dlls/cryptui/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cryptui/tests/Makefile" ;;
    "dlls/ctapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ctapi32/Makefile" ;;
    "dlls/ctl3d.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ctl3d.dll16/Makefile" ;;
    "dlls/ctl3d32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ctl3d32/Makefile" ;;
    "dlls/ctl3dv2.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ctl3dv2.dll16/Makefile" ;;
    "dlls/d3d10/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d10/Makefile" ;;
    "dlls/d3d10/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d10/tests/Makefile" ;;
    "dlls/d3d10core/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d10core/Makefile" ;;
    "dlls/d3d10core/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d10core/tests/Makefile" ;;
    "dlls/d3d8/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d8/Makefile" ;;
    "dlls/d3d8/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d8/tests/Makefile" ;;
    "dlls/d3d9/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d9/Makefile" ;;
    "dlls/d3d9/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d9/tests/Makefile" ;;
    "dlls/d3dim/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dim/Makefile" ;;
    "dlls/d3drm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3drm/Makefile" ;;
    "dlls/d3drm/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3drm/tests/Makefile" ;;
    "dlls/d3dx9_24/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_24/Makefile" ;;
    "dlls/d3dx9_25/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_25/Makefile" ;;
    "dlls/d3dx9_26/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_26/Makefile" ;;
    "dlls/d3dx9_27/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_27/Makefile" ;;
    "dlls/d3dx9_28/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_28/Makefile" ;;
    "dlls/d3dx9_29/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_29/Makefile" ;;
    "dlls/d3dx9_30/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_30/Makefile" ;;
    "dlls/d3dx9_31/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_31/Makefile" ;;
    "dlls/d3dx9_32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_32/Makefile" ;;
    "dlls/d3dx9_33/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_33/Makefile" ;;
    "dlls/d3dx9_34/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_34/Makefile" ;;
    "dlls/d3dx9_35/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_35/Makefile" ;;
    "dlls/d3dx9_36/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_36/Makefile" ;;
    "dlls/d3dx9_36/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_36/tests/Makefile" ;;
    "dlls/d3dx9_37/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_37/Makefile" ;;
    "dlls/d3dx9_38/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_38/Makefile" ;;
    "dlls/d3dx9_39/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_39/Makefile" ;;
    "dlls/d3dx9_40/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_40/Makefile" ;;
    "dlls/d3dx9_41/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_41/Makefile" ;;
    "dlls/d3dx9_42/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dx9_42/Makefile" ;;
    "dlls/d3dxof/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dxof/Makefile" ;;
    "dlls/d3dxof/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3dxof/tests/Makefile" ;;
    "dlls/dbghelp/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dbghelp/Makefile" ;;
    "dlls/dciman32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dciman32/Makefile" ;;
    "dlls/ddeml.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ddeml.dll16/Makefile" ;;
    "dlls/ddraw/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ddraw/Makefile" ;;
    "dlls/ddraw/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ddraw/tests/Makefile" ;;
    "dlls/ddrawex/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ddrawex/Makefile" ;;
    "dlls/ddrawex/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ddrawex/tests/Makefile" ;;
    "dlls/devenum/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/devenum/Makefile" ;;
    "dlls/dinput/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dinput/Makefile" ;;
    "dlls/dinput/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dinput/tests/Makefile" ;;
    "dlls/dinput8/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dinput8/Makefile" ;;
    "dlls/dispdib.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dispdib.dll16/Makefile" ;;
    "dlls/display.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/display.drv16/Makefile" ;;
    "dlls/dmband/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmband/Makefile" ;;
    "dlls/dmcompos/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmcompos/Makefile" ;;
    "dlls/dmime/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmime/Makefile" ;;
    "dlls/dmloader/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmloader/Makefile" ;;
    "dlls/dmloader/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmloader/tests/Makefile" ;;
    "dlls/dmscript/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmscript/Makefile" ;;
    "dlls/dmstyle/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmstyle/Makefile" ;;
    "dlls/dmsynth/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmsynth/Makefile" ;;
    "dlls/dmusic/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmusic/Makefile" ;;
    "dlls/dmusic32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmusic32/Makefile" ;;
    "dlls/dnsapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dnsapi/Makefile" ;;
    "dlls/dnsapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dnsapi/tests/Makefile" ;;
    "dlls/dplay/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dplay/Makefile" ;;
    "dlls/dplayx/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dplayx/Makefile" ;;
    "dlls/dplayx/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dplayx/tests/Makefile" ;;
    "dlls/dpnaddr/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dpnaddr/Makefile" ;;
    "dlls/dpnet/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dpnet/Makefile" ;;
    "dlls/dpnhpast/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dpnhpast/Makefile" ;;
    "dlls/dpnlobby/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dpnlobby/Makefile" ;;
    "dlls/dpwsockx/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dpwsockx/Makefile" ;;
    "dlls/drmclien/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/drmclien/Makefile" ;;
    "dlls/dsound/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dsound/Makefile" ;;
    "dlls/dsound/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dsound/tests/Makefile" ;;
    "dlls/dssenh/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dssenh/Makefile" ;;
    "dlls/dswave/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dswave/Makefile" ;;
    "dlls/dwmapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dwmapi/Makefile" ;;
    "dlls/dxdiagn/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dxdiagn/Makefile" ;;
    "dlls/dxdiagn/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dxdiagn/tests/Makefile" ;;
    "dlls/dxerr8/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dxerr8/Makefile" ;;
    "dlls/dxerr9/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dxerr9/Makefile" ;;
    "dlls/dxgi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dxgi/Makefile" ;;
    "dlls/dxgi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dxgi/tests/Makefile" ;;
    "dlls/dxguid/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dxguid/Makefile" ;;
    "dlls/faultrep/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/faultrep/Makefile" ;;
    "dlls/fltlib/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/fltlib/Makefile" ;;
    "dlls/fusion/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/fusion/Makefile" ;;
    "dlls/fusion/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/fusion/tests/Makefile" ;;
    "dlls/fwpuclnt/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/fwpuclnt/Makefile" ;;
    "dlls/gdi.exe16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/gdi.exe16/Makefile" ;;
    "dlls/gdi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/gdi32/Makefile" ;;
    "dlls/gdi32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/gdi32/tests/Makefile" ;;
    "dlls/gdiplus/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/gdiplus/Makefile" ;;
    "dlls/gdiplus/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/gdiplus/tests/Makefile" ;;
    "dlls/glu32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/glu32/Makefile" ;;
    "dlls/gphoto2.ds/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/gphoto2.ds/Makefile" ;;
    "dlls/gpkcsp/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/gpkcsp/Makefile" ;;
    "dlls/hal/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/hal/Makefile" ;;
    "dlls/hhctrl.ocx/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/hhctrl.ocx/Makefile" ;;
    "dlls/hid/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/hid/Makefile" ;;
    "dlls/hlink/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/hlink/Makefile" ;;
    "dlls/hlink/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/hlink/tests/Makefile" ;;
    "dlls/hnetcfg/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/hnetcfg/Makefile" ;;
    "dlls/httpapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/httpapi/Makefile" ;;
    "dlls/iccvid/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/iccvid/Makefile" ;;
    "dlls/icmp/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/icmp/Makefile" ;;
    "dlls/ifsmgr.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ifsmgr.vxd/Makefile" ;;
    "dlls/imaadp32.acm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/imaadp32.acm/Makefile" ;;
    "dlls/imagehlp/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/imagehlp/Makefile" ;;
    "dlls/imagehlp/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/imagehlp/tests/Makefile" ;;
    "dlls/imm.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/imm.dll16/Makefile" ;;
    "dlls/imm32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/imm32/Makefile" ;;
    "dlls/imm32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/imm32/tests/Makefile" ;;
    "dlls/inetcomm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/inetcomm/Makefile" ;;
    "dlls/inetcomm/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/inetcomm/tests/Makefile" ;;
    "dlls/inetmib1/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/inetmib1/Makefile" ;;
    "dlls/inetmib1/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/inetmib1/tests/Makefile" ;;
    "dlls/infosoft/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/infosoft/Makefile" ;;
    "dlls/infosoft/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/infosoft/tests/Makefile" ;;
    "dlls/initpki/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/initpki/Makefile" ;;
    "dlls/inkobj/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/inkobj/Makefile" ;;
    "dlls/inseng/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/inseng/Makefile" ;;
    "dlls/iphlpapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/iphlpapi/Makefile" ;;
    "dlls/iphlpapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/iphlpapi/tests/Makefile" ;;
    "dlls/itircl/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/itircl/Makefile" ;;
    "dlls/itss/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/itss/Makefile" ;;
    "dlls/itss/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/itss/tests/Makefile" ;;
    "dlls/jscript/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/jscript/Makefile" ;;
    "dlls/jscript/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/jscript/tests/Makefile" ;;
    "dlls/kernel32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/kernel32/Makefile" ;;
    "dlls/kernel32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/kernel32/tests/Makefile" ;;
    "dlls/keyboard.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/keyboard.drv16/Makefile" ;;
    "dlls/krnl386.exe16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/krnl386.exe16/Makefile" ;;
    "dlls/loadperf/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/loadperf/Makefile" ;;
    "dlls/localspl/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/localspl/Makefile" ;;
    "dlls/localspl/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/localspl/tests/Makefile" ;;
    "dlls/localui/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/localui/Makefile" ;;
    "dlls/localui/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/localui/tests/Makefile" ;;
    "dlls/lz32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/lz32/Makefile" ;;
    "dlls/lz32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/lz32/tests/Makefile" ;;
    "dlls/lzexpand.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/lzexpand.dll16/Makefile" ;;
    "dlls/mapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mapi32/Makefile" ;;
    "dlls/mapi32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mapi32/tests/Makefile" ;;
    "dlls/mapistub/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mapistub/Makefile" ;;
    "dlls/mciavi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mciavi32/Makefile" ;;
    "dlls/mcicda/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mcicda/Makefile" ;;
    "dlls/mciqtz32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mciqtz32/Makefile" ;;
    "dlls/mciseq/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mciseq/Makefile" ;;
    "dlls/mciwave/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mciwave/Makefile" ;;
    "dlls/midimap/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/midimap/Makefile" ;;
    "dlls/mlang/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mlang/Makefile" ;;
    "dlls/mlang/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mlang/tests/Makefile" ;;
    "dlls/mmdevapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mmdevapi/Makefile" ;;
    "dlls/mmdevapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mmdevapi/tests/Makefile" ;;
    "dlls/mmdevldr.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mmdevldr.vxd/Makefile" ;;
    "dlls/mmsystem.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mmsystem.dll16/Makefile" ;;
    "dlls/monodebg.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/monodebg.vxd/Makefile" ;;
    "dlls/mountmgr.sys/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mountmgr.sys/Makefile" ;;
    "dlls/mouse.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mouse.drv16/Makefile" ;;
    "dlls/mpr/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mpr/Makefile" ;;
    "dlls/mprapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mprapi/Makefile" ;;
    "dlls/msacm.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msacm.dll16/Makefile" ;;
    "dlls/msacm32.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msacm32.drv/Makefile" ;;
    "dlls/msacm32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msacm32/Makefile" ;;
    "dlls/msacm32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msacm32/tests/Makefile" ;;
    "dlls/msadp32.acm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msadp32.acm/Makefile" ;;
    "dlls/mscat32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mscat32/Makefile" ;;
    "dlls/mscms/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mscms/Makefile" ;;
    "dlls/mscms/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mscms/tests/Makefile" ;;
    "dlls/mscoree/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mscoree/Makefile" ;;
    "dlls/msctf/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msctf/Makefile" ;;
    "dlls/msctf/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msctf/tests/Makefile" ;;
    "dlls/msdaps/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msdaps/Makefile" ;;
    "dlls/msdmo/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msdmo/Makefile" ;;
    "dlls/msftedit/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msftedit/Makefile" ;;
    "dlls/msg711.acm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msg711.acm/Makefile" ;;
    "dlls/msgsm32.acm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msgsm32.acm/Makefile" ;;
    "dlls/mshtml.tlb/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mshtml.tlb/Makefile" ;;
    "dlls/mshtml/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mshtml/Makefile" ;;
    "dlls/mshtml/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mshtml/tests/Makefile" ;;
    "dlls/msi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msi/Makefile" ;;
    "dlls/msi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msi/tests/Makefile" ;;
    "dlls/msimg32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msimg32/Makefile" ;;
    "dlls/msimtf/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msimtf/Makefile" ;;
    "dlls/msisip/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msisip/Makefile" ;;
    "dlls/msisys.ocx/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msisys.ocx/Makefile" ;;
    "dlls/msnet32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msnet32/Makefile" ;;
    "dlls/msrle32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msrle32/Makefile" ;;
    "dlls/mssign32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mssign32/Makefile" ;;
    "dlls/mssip32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mssip32/Makefile" ;;
    "dlls/mstask/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mstask/Makefile" ;;
    "dlls/mstask/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mstask/tests/Makefile" ;;
    "dlls/msvcirt/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvcirt/Makefile" ;;
    "dlls/msvcr71/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvcr71/Makefile" ;;
    "dlls/msvcrt/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvcrt/Makefile" ;;
    "dlls/msvcrt/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvcrt/tests/Makefile" ;;
    "dlls/msvcrt20/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvcrt20/Makefile" ;;
    "dlls/msvcrt40/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvcrt40/Makefile" ;;
    "dlls/msvcrtd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvcrtd/Makefile" ;;
    "dlls/msvcrtd/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvcrtd/tests/Makefile" ;;
    "dlls/msvfw32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvfw32/Makefile" ;;
    "dlls/msvfw32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvfw32/tests/Makefile" ;;
    "dlls/msvidc32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvidc32/Makefile" ;;
    "dlls/msvideo.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msvideo.dll16/Makefile" ;;
    "dlls/mswsock/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/mswsock/Makefile" ;;
    "dlls/msxml3/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msxml3/Makefile" ;;
    "dlls/msxml3/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msxml3/tests/Makefile" ;;
    "dlls/msxml4/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/msxml4/Makefile" ;;
    "dlls/nddeapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/nddeapi/Makefile" ;;
    "dlls/netapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/netapi32/Makefile" ;;
    "dlls/netapi32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/netapi32/tests/Makefile" ;;
    "dlls/newdev/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/newdev/Makefile" ;;
    "dlls/ntdll/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ntdll/Makefile" ;;
    "dlls/ntdll/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ntdll/tests/Makefile" ;;
    "dlls/ntdsapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ntdsapi/Makefile" ;;
    "dlls/ntdsapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ntdsapi/tests/Makefile" ;;
    "dlls/ntoskrnl.exe/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ntoskrnl.exe/Makefile" ;;
    "dlls/ntprint/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ntprint/Makefile" ;;
    "dlls/ntprint/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ntprint/tests/Makefile" ;;
    "dlls/objsel/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/objsel/Makefile" ;;
    "dlls/odbc32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/odbc32/Makefile" ;;
    "dlls/odbccp32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/odbccp32/Makefile" ;;
    "dlls/odbccp32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/odbccp32/tests/Makefile" ;;
    "dlls/ole2.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ole2.dll16/Makefile" ;;
    "dlls/ole2conv.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ole2conv.dll16/Makefile" ;;
    "dlls/ole2disp.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ole2disp.dll16/Makefile" ;;
    "dlls/ole2nls.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ole2nls.dll16/Makefile" ;;
    "dlls/ole2prox.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ole2prox.dll16/Makefile" ;;
    "dlls/ole2thk.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ole2thk.dll16/Makefile" ;;
    "dlls/ole32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ole32/Makefile" ;;
    "dlls/ole32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ole32/tests/Makefile" ;;
    "dlls/oleacc/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/oleacc/Makefile" ;;
    "dlls/oleacc/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/oleacc/tests/Makefile" ;;
    "dlls/oleaut32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/oleaut32/Makefile" ;;
    "dlls/oleaut32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/oleaut32/tests/Makefile" ;;
    "dlls/olecli.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/olecli.dll16/Makefile" ;;
    "dlls/olecli32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/olecli32/Makefile" ;;
    "dlls/oledb32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/oledb32/Makefile" ;;
    "dlls/oledb32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/oledb32/tests/Makefile" ;;
    "dlls/oledlg/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/oledlg/Makefile" ;;
    "dlls/olepro32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/olepro32/Makefile" ;;
    "dlls/olesvr.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/olesvr.dll16/Makefile" ;;
    "dlls/olesvr32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/olesvr32/Makefile" ;;
    "dlls/olethk32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/olethk32/Makefile" ;;
    "dlls/openal32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/openal32/Makefile" ;;
    "dlls/opengl32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/opengl32/Makefile" ;;
    "dlls/opengl32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/opengl32/tests/Makefile" ;;
    "dlls/pdh/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/pdh/Makefile" ;;
    "dlls/pdh/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/pdh/tests/Makefile" ;;
    "dlls/pidgen/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/pidgen/Makefile" ;;
    "dlls/powrprof/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/powrprof/Makefile" ;;
    "dlls/printui/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/printui/Makefile" ;;
    "dlls/propsys/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/propsys/Makefile" ;;
    "dlls/psapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/psapi/Makefile" ;;
    "dlls/psapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/psapi/tests/Makefile" ;;
    "dlls/pstorec/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/pstorec/Makefile" ;;
    "dlls/qcap/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/qcap/Makefile" ;;
    "dlls/qedit/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/qedit/Makefile" ;;
    "dlls/qedit/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/qedit/tests/Makefile" ;;
    "dlls/qmgr/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/qmgr/Makefile" ;;
    "dlls/qmgr/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/qmgr/tests/Makefile" ;;
    "dlls/qmgrprxy/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/qmgrprxy/Makefile" ;;
    "dlls/quartz/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/quartz/Makefile" ;;
    "dlls/quartz/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/quartz/tests/Makefile" ;;
    "dlls/query/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/query/Makefile" ;;
    "dlls/rasapi16.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rasapi16.dll16/Makefile" ;;
    "dlls/rasapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rasapi32/Makefile" ;;
    "dlls/rasapi32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rasapi32/tests/Makefile" ;;
    "dlls/rasdlg/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rasdlg/Makefile" ;;
    "dlls/resutils/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/resutils/Makefile" ;;
    "dlls/riched20/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/riched20/Makefile" ;;
    "dlls/riched20/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/riched20/tests/Makefile" ;;
    "dlls/riched32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/riched32/Makefile" ;;
    "dlls/riched32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/riched32/tests/Makefile" ;;
    "dlls/rpcrt4/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rpcrt4/Makefile" ;;
    "dlls/rpcrt4/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rpcrt4/tests/Makefile" ;;
    "dlls/rsabase/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rsabase/Makefile" ;;
    "dlls/rsaenh/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rsaenh/Makefile" ;;
    "dlls/rsaenh/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rsaenh/tests/Makefile" ;;
    "dlls/rtutils/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rtutils/Makefile" ;;
    "dlls/sane.ds/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sane.ds/Makefile" ;;
    "dlls/sccbase/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sccbase/Makefile" ;;
    "dlls/schannel/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/schannel/Makefile" ;;
    "dlls/schannel/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/schannel/tests/Makefile" ;;
    "dlls/secur32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/secur32/Makefile" ;;
    "dlls/secur32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/secur32/tests/Makefile" ;;
    "dlls/security/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/security/Makefile" ;;
    "dlls/sensapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sensapi/Makefile" ;;
    "dlls/serialui/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/serialui/Makefile" ;;
    "dlls/serialui/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/serialui/tests/Makefile" ;;
    "dlls/setupapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/setupapi/Makefile" ;;
    "dlls/setupapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/setupapi/tests/Makefile" ;;
    "dlls/setupx.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/setupx.dll16/Makefile" ;;
    "dlls/sfc/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sfc/Makefile" ;;
    "dlls/sfc_os/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sfc_os/Makefile" ;;
    "dlls/shdoclc/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shdoclc/Makefile" ;;
    "dlls/shdocvw/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shdocvw/Makefile" ;;
    "dlls/shdocvw/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shdocvw/tests/Makefile" ;;
    "dlls/shell.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shell.dll16/Makefile" ;;
    "dlls/shell32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shell32/Makefile" ;;
    "dlls/shell32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shell32/tests/Makefile" ;;
    "dlls/shfolder/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shfolder/Makefile" ;;
    "dlls/shlwapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shlwapi/Makefile" ;;
    "dlls/shlwapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shlwapi/tests/Makefile" ;;
    "dlls/slbcsp/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/slbcsp/Makefile" ;;
    "dlls/slc/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/slc/Makefile" ;;
    "dlls/snmpapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/snmpapi/Makefile" ;;
    "dlls/snmpapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/snmpapi/tests/Makefile" ;;
    "dlls/softpub/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/softpub/Makefile" ;;
    "dlls/sound.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sound.drv16/Makefile" ;;
    "dlls/spoolss/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/spoolss/Makefile" ;;
    "dlls/spoolss/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/spoolss/tests/Makefile" ;;
    "dlls/stdole2.tlb/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/stdole2.tlb/Makefile" ;;
    "dlls/stdole32.tlb/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/stdole32.tlb/Makefile" ;;
    "dlls/sti/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sti/Makefile" ;;
    "dlls/sti/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sti/tests/Makefile" ;;
    "dlls/storage.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/storage.dll16/Makefile" ;;
    "dlls/stress.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/stress.dll16/Makefile" ;;
    "dlls/strmiids/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/strmiids/Makefile" ;;
    "dlls/svrapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/svrapi/Makefile" ;;
    "dlls/sxs/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sxs/Makefile" ;;
    "dlls/system.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/system.drv16/Makefile" ;;
    "dlls/t2embed/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/t2embed/Makefile" ;;
    "dlls/tapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/tapi32/Makefile" ;;
    "dlls/toolhelp.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/toolhelp.dll16/Makefile" ;;
    "dlls/traffic/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/traffic/Makefile" ;;
    "dlls/twain.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/twain.dll16/Makefile" ;;
    "dlls/twain_32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/twain_32/Makefile" ;;
    "dlls/twain_32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/twain_32/tests/Makefile" ;;
    "dlls/typelib.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/typelib.dll16/Makefile" ;;
    "dlls/unicows/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/unicows/Makefile" ;;
    "dlls/updspapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/updspapi/Makefile" ;;
    "dlls/url/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/url/Makefile" ;;
    "dlls/urlmon/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/urlmon/Makefile" ;;
    "dlls/urlmon/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/urlmon/tests/Makefile" ;;
    "dlls/user.exe16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/user.exe16/Makefile" ;;
    "dlls/user32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/user32/Makefile" ;;
    "dlls/user32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/user32/tests/Makefile" ;;
    "dlls/userenv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/userenv/Makefile" ;;
    "dlls/userenv/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/userenv/tests/Makefile" ;;
    "dlls/usp10/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/usp10/Makefile" ;;
    "dlls/usp10/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/usp10/tests/Makefile" ;;
    "dlls/uuid/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/uuid/Makefile" ;;
    "dlls/uxtheme/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/uxtheme/Makefile" ;;
    "dlls/uxtheme/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/uxtheme/tests/Makefile" ;;
    "dlls/vdhcp.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/vdhcp.vxd/Makefile" ;;
    "dlls/vdmdbg/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/vdmdbg/Makefile" ;;
    "dlls/ver.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ver.dll16/Makefile" ;;
    "dlls/version/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/version/Makefile" ;;
    "dlls/version/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/version/tests/Makefile" ;;
    "dlls/vmm.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/vmm.vxd/Makefile" ;;
    "dlls/vnbt.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/vnbt.vxd/Makefile" ;;
    "dlls/vnetbios.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/vnetbios.vxd/Makefile" ;;
    "dlls/vtdapi.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/vtdapi.vxd/Makefile" ;;
    "dlls/vwin32.vxd/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/vwin32.vxd/Makefile" ;;
    "dlls/w32skrnl/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/w32skrnl/Makefile" ;;
    "dlls/w32sys.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/w32sys.dll16/Makefile" ;;
    "dlls/wbemprox/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wbemprox/Makefile" ;;
    "dlls/wiaservc/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wiaservc/Makefile" ;;
    "dlls/win32s16.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/win32s16.dll16/Makefile" ;;
    "dlls/win87em.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/win87em.dll16/Makefile" ;;
    "dlls/winaspi.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winaspi.dll16/Makefile" ;;
    "dlls/windebug.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/windebug.dll16/Makefile" ;;
    "dlls/windowscodecs/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/windowscodecs/Makefile" ;;
    "dlls/windowscodecs/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/windowscodecs/tests/Makefile" ;;
    "dlls/winealsa.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winealsa.drv/Makefile" ;;
    "dlls/wineaudioio.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wineaudioio.drv/Makefile" ;;
    "dlls/winecoreaudio.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winecoreaudio.drv/Makefile" ;;
    "dlls/winecrt0/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winecrt0/Makefile" ;;
    "dlls/wined3d/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wined3d/Makefile" ;;
    "dlls/wineesd.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wineesd.drv/Makefile" ;;
    "dlls/winejack.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winejack.drv/Makefile" ;;
    "dlls/winejoystick.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winejoystick.drv/Makefile" ;;
    "dlls/winemapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winemapi/Makefile" ;;
    "dlls/winemp3.acm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winemp3.acm/Makefile" ;;
    "dlls/winenas.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winenas.drv/Makefile" ;;
    "dlls/wineoss.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wineoss.drv/Makefile" ;;
    "dlls/wineps.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wineps.drv/Makefile" ;;
    "dlls/wineps16.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wineps16.drv16/Makefile" ;;
    "dlls/winequartz.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winequartz.drv/Makefile" ;;
    "dlls/winex11.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winex11.drv/Makefile" ;;
    "dlls/wing.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wing.dll16/Makefile" ;;
    "dlls/wing32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wing32/Makefile" ;;
    "dlls/winhttp/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winhttp/Makefile" ;;
    "dlls/winhttp/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winhttp/tests/Makefile" ;;
    "dlls/wininet/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wininet/Makefile" ;;
    "dlls/wininet/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wininet/tests/Makefile" ;;
    "dlls/winmm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winmm/Makefile" ;;
    "dlls/winmm/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winmm/tests/Makefile" ;;
    "dlls/winnls.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winnls.dll16/Makefile" ;;
    "dlls/winnls32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winnls32/Makefile" ;;
    "dlls/winscard/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winscard/Makefile" ;;
    "dlls/winsock.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winsock.dll16/Makefile" ;;
    "dlls/winspool.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winspool.drv/Makefile" ;;
    "dlls/winspool.drv/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winspool.drv/tests/Makefile" ;;
    "dlls/wintab.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wintab.dll16/Makefile" ;;
    "dlls/wintab32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wintab32/Makefile" ;;
    "dlls/wintab32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wintab32/tests/Makefile" ;;
    "dlls/wintrust/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wintrust/Makefile" ;;
    "dlls/wintrust/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wintrust/tests/Makefile" ;;
    "dlls/wldap32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wldap32/Makefile" ;;
    "dlls/wldap32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wldap32/tests/Makefile" ;;
    "dlls/wmi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wmi/Makefile" ;;
    "dlls/wmiutils/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wmiutils/Makefile" ;;
    "dlls/wnaspi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wnaspi32/Makefile" ;;
    "dlls/wow32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wow32/Makefile" ;;
    "dlls/ws2_32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ws2_32/Makefile" ;;
    "dlls/ws2_32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ws2_32/tests/Makefile" ;;
    "dlls/wsock32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wsock32/Makefile" ;;
    "dlls/wtsapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wtsapi32/Makefile" ;;
    "dlls/wuapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wuapi/Makefile" ;;
    "dlls/wuaueng/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wuaueng/Makefile" ;;
    "dlls/xinput1_1/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/xinput1_1/Makefile" ;;
    "dlls/xinput1_2/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/xinput1_2/Makefile" ;;
    "dlls/xinput1_3/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/xinput1_3/Makefile" ;;
    "dlls/xinput1_3/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/xinput1_3/tests/Makefile" ;;
    "dlls/xinput9_1_0/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/xinput9_1_0/Makefile" ;;
    "dlls/xmllite/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/xmllite/Makefile" ;;
    "dlls/xmllite/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/xmllite/tests/Makefile" ;;
    "documentation/Makefile") CONFIG_FILES="$CONFIG_FILES documentation/Makefile" ;;
    "fonts/Makefile") CONFIG_FILES="$CONFIG_FILES fonts/Makefile" ;;
    "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
    "libs/port/Makefile") CONFIG_FILES="$CONFIG_FILES libs/port/Makefile" ;;
    "libs/wine/Makefile") CONFIG_FILES="$CONFIG_FILES libs/wine/Makefile" ;;
    "libs/wpp/Makefile") CONFIG_FILES="$CONFIG_FILES libs/wpp/Makefile" ;;
    "loader/Makefile") CONFIG_FILES="$CONFIG_FILES loader/Makefile" ;;
    "programs/Makefile") CONFIG_FILES="$CONFIG_FILES programs/Makefile" ;;
    "programs/cacls/Makefile") CONFIG_FILES="$CONFIG_FILES programs/cacls/Makefile" ;;
    "programs/clock/Makefile") CONFIG_FILES="$CONFIG_FILES programs/clock/Makefile" ;;
    "programs/cmd/Makefile") CONFIG_FILES="$CONFIG_FILES programs/cmd/Makefile" ;;
    "programs/cmd/tests/Makefile") CONFIG_FILES="$CONFIG_FILES programs/cmd/tests/Makefile" ;;
    "programs/cmdlgtst/Makefile") CONFIG_FILES="$CONFIG_FILES programs/cmdlgtst/Makefile" ;;
    "programs/control/Makefile") CONFIG_FILES="$CONFIG_FILES programs/control/Makefile" ;;
    "programs/dxdiag/Makefile") CONFIG_FILES="$CONFIG_FILES programs/dxdiag/Makefile" ;;
    "programs/eject/Makefile") CONFIG_FILES="$CONFIG_FILES programs/eject/Makefile" ;;
    "programs/expand/Makefile") CONFIG_FILES="$CONFIG_FILES programs/expand/Makefile" ;;
    "programs/explorer/Makefile") CONFIG_FILES="$CONFIG_FILES programs/explorer/Makefile" ;;
    "programs/extrac32/Makefile") CONFIG_FILES="$CONFIG_FILES programs/extrac32/Makefile" ;;
    "programs/hh/Makefile") CONFIG_FILES="$CONFIG_FILES programs/hh/Makefile" ;;
    "programs/icinfo/Makefile") CONFIG_FILES="$CONFIG_FILES programs/icinfo/Makefile" ;;
    "programs/iexplore/Makefile") CONFIG_FILES="$CONFIG_FILES programs/iexplore/Makefile" ;;
    "programs/lodctr/Makefile") CONFIG_FILES="$CONFIG_FILES programs/lodctr/Makefile" ;;
    "programs/mshta/Makefile") CONFIG_FILES="$CONFIG_FILES programs/mshta/Makefile" ;;
    "programs/msiexec/Makefile") CONFIG_FILES="$CONFIG_FILES programs/msiexec/Makefile" ;;
    "programs/net/Makefile") CONFIG_FILES="$CONFIG_FILES programs/net/Makefile" ;;
    "programs/notepad/Makefile") CONFIG_FILES="$CONFIG_FILES programs/notepad/Makefile" ;;
    "programs/oleview/Makefile") CONFIG_FILES="$CONFIG_FILES programs/oleview/Makefile" ;;
    "programs/progman/Makefile") CONFIG_FILES="$CONFIG_FILES programs/progman/Makefile" ;;
    "programs/reg/Makefile") CONFIG_FILES="$CONFIG_FILES programs/reg/Makefile" ;;
    "programs/regedit/Makefile") CONFIG_FILES="$CONFIG_FILES programs/regedit/Makefile" ;;
    "programs/regsvr32/Makefile") CONFIG_FILES="$CONFIG_FILES programs/regsvr32/Makefile" ;;
    "programs/rpcss/Makefile") CONFIG_FILES="$CONFIG_FILES programs/rpcss/Makefile" ;;
    "programs/rundll32/Makefile") CONFIG_FILES="$CONFIG_FILES programs/rundll32/Makefile" ;;
    "programs/secedit/Makefile") CONFIG_FILES="$CONFIG_FILES programs/secedit/Makefile" ;;
    "programs/services/Makefile") CONFIG_FILES="$CONFIG_FILES programs/services/Makefile" ;;
    "programs/spoolsv/Makefile") CONFIG_FILES="$CONFIG_FILES programs/spoolsv/Makefile" ;;
    "programs/start/Makefile") CONFIG_FILES="$CONFIG_FILES programs/start/Makefile" ;;
    "programs/svchost/Makefile") CONFIG_FILES="$CONFIG_FILES programs/svchost/Makefile" ;;
    "programs/taskmgr/Makefile") CONFIG_FILES="$CONFIG_FILES programs/taskmgr/Makefile" ;;
    "programs/termsv/Makefile") CONFIG_FILES="$CONFIG_FILES programs/termsv/Makefile" ;;
    "programs/uninstaller/Makefile") CONFIG_FILES="$CONFIG_FILES programs/uninstaller/Makefile" ;;
    "programs/unlodctr/Makefile") CONFIG_FILES="$CONFIG_FILES programs/unlodctr/Makefile" ;;
    "programs/view/Makefile") CONFIG_FILES="$CONFIG_FILES programs/view/Makefile" ;;
    "programs/wineboot/Makefile") CONFIG_FILES="$CONFIG_FILES programs/wineboot/Makefile" ;;
    "programs/winebrowser/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winebrowser/Makefile" ;;
    "programs/winecfg/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winecfg/Makefile" ;;
    "programs/wineconsole/Makefile") CONFIG_FILES="$CONFIG_FILES programs/wineconsole/Makefile" ;;
    "programs/winedbg/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winedbg/Makefile" ;;
    "programs/winedevice/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winedevice/Makefile" ;;
    "programs/winefile/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winefile/Makefile" ;;
    "programs/winemenubuilder/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winemenubuilder/Makefile" ;;
    "programs/winemine/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winemine/Makefile" ;;
    "programs/winepath/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winepath/Makefile" ;;
    "programs/winetest/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winetest/Makefile" ;;
    "programs/winevdm/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winevdm/Makefile" ;;
    "programs/winhelp.exe16/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winhelp.exe16/Makefile" ;;
    "programs/winhlp32/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winhlp32/Makefile" ;;
    "programs/winoldap.mod16/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winoldap.mod16/Makefile" ;;
    "programs/winver/Makefile") CONFIG_FILES="$CONFIG_FILES programs/winver/Makefile" ;;
    "programs/wordpad/Makefile") CONFIG_FILES="$CONFIG_FILES programs/wordpad/Makefile" ;;
    "programs/write/Makefile") CONFIG_FILES="$CONFIG_FILES programs/write/Makefile" ;;
    "programs/xcopy/Makefile") CONFIG_FILES="$CONFIG_FILES programs/xcopy/Makefile" ;;
    "server/Makefile") CONFIG_FILES="$CONFIG_FILES server/Makefile" ;;
    "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
    "tools/widl/Makefile") CONFIG_FILES="$CONFIG_FILES tools/widl/Makefile" ;;
    "tools/winebuild/Makefile") CONFIG_FILES="$CONFIG_FILES tools/winebuild/Makefile" ;;
    "tools/winedump/Makefile") CONFIG_FILES="$CONFIG_FILES tools/winedump/Makefile" ;;
    "tools/winegcc/Makefile") CONFIG_FILES="$CONFIG_FILES tools/winegcc/Makefile" ;;
    "tools/wmc/Makefile") CONFIG_FILES="$CONFIG_FILES tools/wmc/Makefile" ;;
    "tools/wrc/Makefile") CONFIG_FILES="$CONFIG_FILES tools/wrc/Makefile" ;;

  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
  esac
done


# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used.  Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
  test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi

# Have a temporary directory for convenience.  Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
  tmp=
  trap 'exit_status=$?
  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
' 0
  trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.

{
  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
  test -n "$tmp" && test -d "$tmp"
}  ||
{
  tmp=./conf$$-$RANDOM
  (umask 077 && mkdir "$tmp")
} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5

# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then

if $AWK 'BEGIN { getline <"/dev/null" }' </dev/null 2>/dev/null; then
  ac_cs_awk_getline=:
  ac_cs_awk_pipe_init=
  ac_cs_awk_read_file='
      while ((getline aline < (F[key])) > 0)
	print(aline)
      close(F[key])'
  ac_cs_awk_pipe_fini=
else
  ac_cs_awk_getline=false
  ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\""
  ac_cs_awk_read_file='
      print "|#_!!_#|"
      print "cat " F[key] " &&"
      '$ac_cs_awk_pipe_init
  # The final `:' finishes the AND list.
  ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }'
fi
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
  eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
  ac_cs_awk_cr='\r'
else
  ac_cs_awk_cr=$ac_cr
fi

echo 'BEGIN {' >"$tmp/subs1.awk" &&
_ACEOF

# Create commands to substitute file output variables.
{
  echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
  echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' &&
  echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
  echo "_ACAWK" &&
  echo "_ACEOF"
} >conf$$files.sh &&
. ./conf$$files.sh ||
  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
rm -f conf$$files.sh

{
  echo "cat >conf$$subs.awk <<_ACEOF" &&
  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
  echo "_ACEOF"
} >conf$$subs.sh ||
  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
  . ./conf$$subs.sh ||
    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5

  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
  if test $ac_delim_n = $ac_delim_num; then
    break
  elif $ac_last_try; then
    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
  else
    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
  fi
done
rm -f conf$$subs.sh

cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' <conf$$subs.awk | sed '
/^[^""]/{
  N
  s/\n//
}
' >>$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$tmp/subs1.awk" <<_ACAWK &&
  for (key in S) S_is_set[key] = 1
  FS = ""
  \$ac_cs_awk_pipe_init
}
{
  line = $ 0
  nfields = split(line, field, "@")
  substed = 0
  len = length(field[1])
  for (i = 2; i < nfields; i++) {
    key = field[i]
    keylen = length(key)
    if (S_is_set[key]) {
      value = S[key]
      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
      len += length(value) + length(field[++i])
      substed = 1
    } else
      len += 1 + keylen
  }
  if (nfields == 3 && !substed) {
    key = field[2]
    if (F[key] != "" && line ~ /^[	 ]*@.*@[	 ]*$/) {
      \$ac_cs_awk_read_file
      next
    }
  }
  print line
}
\$ac_cs_awk_pipe_fini
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
  cat
fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
  || as_fn_error "could not setup config files machinery" "$LINENO" 5
_ACEOF

# VPATH may cause trouble with some makes, so we remove $(srcdir),
# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
s/:*\$(srcdir):*/:/
s/:*\${srcdir}:*/:/
s/:*@srcdir@:*/:/
s/^\([^=]*=[	 ]*\):*/\1/
s/:*$//
s/^[^=]*=[	 ]*$//
}'
fi

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"

# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF

# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.

# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
  if test -z "$ac_t"; then
    break
  elif $ac_last_try; then
    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
  else
    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
  fi
done

# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any.  Preserve backslash
# newline sequences.

ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' <confdefs.h | sed '
s/'"$ac_delim"'/"\\\
"/g' >>$CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  for (key in D) D_is_set[key] = 1
  FS = ""
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
  line = \$ 0
  split(line, arg, " ")
  if (arg[1] == "#") {
    defundef = arg[2]
    mac1 = arg[3]
  } else {
    defundef = substr(arg[1], 2)
    mac1 = arg[2]
  }
  split(mac1, mac2, "(") #)
  macro = mac2[1]
  prefix = substr(line, 1, index(line, defundef) - 1)
  if (D_is_set[macro]) {
    # Preserve the white space surrounding the "#".
    print prefix "define", macro P[macro] D[macro]
    next
  } else {
    # Replace #undef with comments.  This is necessary, for example,
    # in the case of _POSIX_SOURCE, which is predefined and required
    # on some systems where configure will not decide to define it.
    if (defundef == "undef") {
      print "/*", prefix defundef, macro, "*/"
      next
    }
  }
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
  as_fn_error "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"


eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS  :L $CONFIG_LINKS  :C $CONFIG_COMMANDS"
shift
for ac_tag
do
  case $ac_tag in
  :[FHLC]) ac_mode=$ac_tag; continue;;
  esac
  case $ac_mode$ac_tag in
  :[FHL]*:*);;
  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
  :[FH]-) ac_tag=-:-;;
  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
  esac
  ac_save_IFS=$IFS
  IFS=:
  set x $ac_tag
  IFS=$ac_save_IFS
  shift
  ac_file=$1
  shift

  case $ac_mode in
  :L) ac_source=$1;;
  :[FH])
    ac_file_inputs=
    for ac_f
    do
      case $ac_f in
      -) ac_f="$tmp/stdin";;
      *) # Look for the file first in the build tree, then in the source tree
	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
	 # because $ac_f cannot contain `:'.
	 test -f "$ac_f" ||
	   case $ac_f in
	   [\\/$]*) false;;
	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
	   esac ||
	   as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
      esac
      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
      as_fn_append ac_file_inputs " '$ac_f'"
    done

    # Let's still pretend it is `configure' which instantiates (i.e., don't
    # use $as_me), people would be surprised to read:
    #    /* config.h.  Generated by config.status.  */
    configure_input='Generated from '`
	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
	`' by configure.'
    if test x"$ac_file" != x-; then
      configure_input="$ac_file.  $configure_input"
      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
$as_echo "$as_me: creating $ac_file" >&6;}
    fi
    # Neutralize special characters interpreted by sed in replacement strings.
    case $configure_input in #(
    *\&* | *\|* | *\\* )
       ac_sed_conf_input=`$as_echo "$configure_input" |
       sed 's/[\\\\&|]/\\\\&/g'`;; #(
    *) ac_sed_conf_input=$configure_input;;
    esac

    case $ac_tag in
    *:-:* | *:-) cat >"$tmp/stdin" \
      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
    esac
    ;;
  esac

  ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$ac_file" : 'X\(//\)[^/]' \| \
	 X"$ac_file" : 'X\(//\)$' \| \
	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$ac_file" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
  as_dir="$ac_dir"; as_fn_mkdir_p
  ac_builddir=.

case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
  # A ".." for each directory in $ac_dir_suffix.
  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
  case $ac_top_builddir_sub in
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix

case $srcdir in
  .)  # We are building in place.
    ac_srcdir=.
    ac_top_srcdir=$ac_top_builddir_sub
    ac_abs_top_srcdir=$ac_pwd ;;
  [\\/]* | ?:[\\/]* )  # Absolute name.
    ac_srcdir=$srcdir$ac_dir_suffix;
    ac_top_srcdir=$srcdir
    ac_abs_top_srcdir=$srcdir ;;
  *) # Relative name.
    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
    ac_top_srcdir=$ac_top_build_prefix$srcdir
    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix


  case $ac_mode in
  :F)
  #
  # CONFIG_FILE
  #

  case $INSTALL in
  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
  esac
_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
  p
  q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  ac_datarootdir_hack='
  s&@datadir@&$datadir&g
  s&@docdir@&$docdir&g
  s&@infodir@&$infodir&g
  s&@localedir@&$localedir&g
  s&@mandir@&$mandir&g
  s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF

# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
if $ac_cs_awk_getline; then
  $AWK -f "$tmp/subs.awk"
else
  $AWK -f "$tmp/subs.awk" | $SHELL
fi >$tmp/out \
  || as_fn_error "could not create $ac_file" "$LINENO" 5

test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined.  Please make sure it is defined." >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined.  Please make sure it is defined." >&2;}

  rm -f "$tmp/stdin"
  case $ac_file in
  -) cat "$tmp/out" && rm -f "$tmp/out";;
  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
  esac \
  || as_fn_error "could not create $ac_file" "$LINENO" 5
 ;;
  :H)
  #
  # CONFIG_HEADER
  #
  if test x"$ac_file" != x-; then
    {
      $as_echo "/* $configure_input  */" \
      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
    } >"$tmp/config.h" \
      || as_fn_error "could not create $ac_file" "$LINENO" 5
    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
    else
      rm -f "$ac_file"
      mv "$tmp/config.h" "$ac_file" \
	|| as_fn_error "could not create $ac_file" "$LINENO" 5
    fi
  else
    $as_echo "/* $configure_input  */" \
      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
      || as_fn_error "could not create -" "$LINENO" 5
  fi
 ;;
  :L)
  #
  # CONFIG_LINK
  #

  if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
    :
  else
    # Prefer the file from the source tree if names are identical.
    if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
      ac_source=$srcdir/$ac_source
    fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
$as_echo "$as_me: linking $ac_source to $ac_file" >&6;}

    if test ! -r "$ac_source"; then
      as_fn_error "$ac_source: file not found" "$LINENO" 5
    fi
    rm -f "$ac_file"

    # Try a relative symlink, then a hard link, then a copy.
    case $srcdir in
    [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
	*) ac_rel_source=$ac_top_build_prefix$ac_source ;;
    esac
    ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
      ln "$ac_source" "$ac_file" 2>/dev/null ||
      cp -p "$ac_source" "$ac_file" ||
      as_fn_error "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
  fi
 ;;
  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
$as_echo "$as_me: executing $ac_file commands" >&6;}
 ;;
  esac


  case $ac_file$ac_mode in
    "include/stamp-h":C) echo timestamp > include/stamp-h ;;
    "dlls/gdi32/enhmfdrv":C) test -d "dlls/gdi32/enhmfdrv" || { { $as_echo "$as_me:${as_lineno-$LINENO}: creating dlls/gdi32/enhmfdrv" >&5
$as_echo "$as_me: creating dlls/gdi32/enhmfdrv" >&6;}; as_dir="dlls/gdi32/enhmfdrv"; as_fn_mkdir_p; } ;;
    "dlls/gdi32/mfdrv":C) test -d "dlls/gdi32/mfdrv" || { { $as_echo "$as_me:${as_lineno-$LINENO}: creating dlls/gdi32/mfdrv" >&5
$as_echo "$as_me: creating dlls/gdi32/mfdrv" >&6;}; as_dir="dlls/gdi32/mfdrv"; as_fn_mkdir_p; } ;;
    "dlls/kernel32/nls":C) test -d "dlls/kernel32/nls" || { { $as_echo "$as_me:${as_lineno-$LINENO}: creating dlls/kernel32/nls" >&5
$as_echo "$as_me: creating dlls/kernel32/nls" >&6;}; as_dir="dlls/kernel32/nls"; as_fn_mkdir_p; } ;;
    "dlls/user32/resources":C) test -d "dlls/user32/resources" || { { $as_echo "$as_me:${as_lineno-$LINENO}: creating dlls/user32/resources" >&5
$as_echo "$as_me: creating dlls/user32/resources" >&6;}; as_dir="dlls/user32/resources"; as_fn_mkdir_p; } ;;
    "dlls/wineps.drv/data":C) test -d "dlls/wineps.drv/data" || { { $as_echo "$as_me:${as_lineno-$LINENO}: creating dlls/wineps.drv/data" >&5
$as_echo "$as_me: creating dlls/wineps.drv/data" >&6;}; as_dir="dlls/wineps.drv/data"; as_fn_mkdir_p; } ;;
    "include/wine":C) test -d "include/wine" || { { $as_echo "$as_me:${as_lineno-$LINENO}: creating include/wine" >&5
$as_echo "$as_me: creating include/wine" >&6;}; as_dir="include/wine"; as_fn_mkdir_p; } ;;

  esac
done # for ac_tag


as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save

test $ac_write_fail = 0 ||
  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5


# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded.  So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status.  When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
  ac_cs_success=:
  ac_config_status_args=
  test "$silent" = yes &&
    ac_config_status_args="$ac_config_status_args --quiet"
  exec 5>/dev/null
  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
  exec 5>>config.log
  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
  # would make configure fail if this is the last instruction.
  $ac_cs_success || as_fn_exit $?
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi


if test "$no_create" = "yes"
then
  exit 0
fi

ac_save_IFS="$IFS"
if test "x$wine_notices != "x; then
    echo >&6
    IFS="|"
    for msg in $wine_notices; do
        IFS="$ac_save_IFS"
        if test -n "$msg"; then
            { $as_echo "$as_me:${as_lineno-$LINENO}: $msg" >&5
$as_echo "$as_me: $msg" >&6;}
        fi
    done
fi
IFS="|"
for msg in $wine_warnings; do
    IFS="$ac_save_IFS"
    if test -n "$msg"; then
        echo >&2
        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $msg" >&5
$as_echo "$as_me: WARNING: $msg" >&2;}
    fi
done
IFS="$ac_save_IFS"

echo "
$as_me: Finished.  Do '${ac_make} depend && ${ac_make}' to compile Wine.
" >&6

