diff -rupN wine-1.5.19/ChangeLog wine-silverlight-1.5.19/ChangeLog
--- wine-1.5.19/ChangeLog 1969-12-31 16:00:00.000000000 -0800
+++ wine-silverlight-1.5.19/ChangeLog 2012-12-20 18:16:39.099593683 -0800
@@ -0,0 +1,3 @@
+wine-compholio (X.Y.Z) lucid; urgency=low
+ * See also normal changelog file for Debian changes.
+ -- Erich E. Hoover <ehoover@mines.edu> Fri, 16 Apr 2010 12:20:00 -0600
diff -rupN wine-1.5.19/configure wine-silverlight-1.5.19/configure
--- wine-1.5.19/configure 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/configure 2012-12-20 18:16:39.102926747 -0800
@@ -134,31 +136,6 @@ export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # 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.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
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
@@ -192,8 +169,7 @@ if ( set x; as_fn_ret_success y && test
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
+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'\" &&
@@ -238,25 +214,21 @@ IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # 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.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
+ # 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.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
@@ -359,14 +331,6 @@ $as_echo X"$as_dir" |
} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -488,10 +452,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
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; }
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
# 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).
@@ -526,16 +486,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... 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 -pR'.
+ # 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 -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -547,8 +507,28 @@ else
as_mkdir_p=false
fi
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+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'"
@@ -1315,6 +1295,8 @@ target=$target_alias
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
@@ -1733,7 +1715,7 @@ $as_echo "$ac_try_echo"; } >&5
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
+ $as_test_x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -2950,7 +2932,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -2990,7 +2972,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -3043,7 +3025,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -3084,7 +3066,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -3142,7 +3124,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -3186,7 +3168,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -3632,7 +3614,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-struct stat;
+#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);
@@ -3745,7 +3728,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -3789,7 +3772,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -3991,7 +3974,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4031,7 +4014,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4266,7 +4249,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4331,7 +4314,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4380,7 +4363,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4424,7 +4407,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4480,7 +4463,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4520,7 +4503,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4582,7 +4565,7 @@ do
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"
- as_fn_executable_p "$ac_path_GREP" || continue
+ { 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
@@ -4648,7 +4631,7 @@ do
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"
- as_fn_executable_p "$ac_path_EGREP" || continue
+ { 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
@@ -4714,7 +4697,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4774,7 +4757,7 @@ case $as_dir/ in #((
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ 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.
@@ -4853,7 +4836,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4901,7 +4884,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4944,7 +4927,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -4987,7 +4970,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -5030,7 +5013,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CONVERT="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5073,7 +5056,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -5116,7 +5099,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_MSGFMT="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5536,8 +5519,6 @@ _ACEOF
esac
rm -rf conftest*
fi
-
-
fi
@@ -5830,6 +5811,7 @@ for ac_header in \
arpa/inet.h \
arpa/nameser.h \
asm/types.h \
+ attr/xattr.h \
capi20.h \
curses.h \
direct.h \
@@ -6322,7 +6304,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -6365,7 +6347,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -6405,7 +6387,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -6457,7 +6439,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -6497,7 +6479,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -6848,9 +6830,10 @@ if test $ac_cv_cflags__fPIC__shared__Wl_
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_ac_var=`$as_echo "ac_cv_cflags_-fPIC -shared -Wl,--version-script=conftest.map" | $as_tr_sh`
+{ $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 ${ac_cv_cflags__fPIC__shared__Wl___version_script_conftest_map+:} false; then :
+if eval \${$as_ac_var+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_wine_try_cflags_saved=$CFLAGS
@@ -6860,17 +6843,18 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
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
+ eval "$as_ac_var=yes"
else
- ac_cv_cflags__fPIC__shared__Wl___version_script_conftest_map=no
+ 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
-{ $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 :
+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 :
LDSHARED="$LDSHARED \$(VERSCRIPT:%=-Wl,--version-script=%)"
fi
rm -f conftest.map
@@ -6988,9 +6972,10 @@ 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_ac_var=`$as_echo "ac_cv_cflags_-Wl,--section-start,.interp=0x7bf00400" | $as_tr_sh`
+{ $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 ${ac_cv_cflags__Wl___section_start__interp_0x7bf00400+:} false; then :
+if eval \${$as_ac_var+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_wine_try_cflags_saved=$CFLAGS
@@ -7000,17 +6985,18 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
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
+ eval "$as_ac_var=yes"
else
- ac_cv_cflags__Wl___section_start__interp_0x7bf00400=no
+ 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
-{ $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 :
+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 :
case $host_os in
freebsd* | kfreebsd*-gnu) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x60000400" ;;
*) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400" ;;
@@ -7035,7 +7021,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -7170,7 +7156,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -9974,7 +9960,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -10150,7 +10136,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -10188,7 +10174,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -10405,7 +10391,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ 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
@@ -16529,16 +16515,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... 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 -pR'.
+ # 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 -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -16598,16 +16584,28 @@ else
as_mkdir_p=false
fi
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+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'"
@@ -16792,7 +16790,7 @@ 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
+ 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'
diff -rupN wine-1.5.19/configure.ac wine-silverlight-1.5.19/configure.ac
--- wine-1.5.19/configure.ac 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/configure.ac 2012-12-20 18:16:39.102926747 -0800
@@ -417,6 +417,7 @@ AC_CHECK_HEADERS(\
arpa/inet.h \
arpa/nameser.h \
asm/types.h \
+ attr/xattr.h \
capi20.h \
curses.h \
direct.h \
diff -rupN wine-1.5.19/dlls/advapi32/tests/security.c wine-silverlight-1.5.19/dlls/advapi32/tests/security.c
--- wine-1.5.19/dlls/advapi32/tests/security.c 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/dlls/advapi32/tests/security.c 2012-12-20 18:16:39.492900859 -0800
@@ -3155,7 +3155,7 @@ static void test_GetNamedSecurityInfoA(v
bret = pGetAce(pDacl, 0, (VOID **)&ace);
ok(bret, "Failed to get Current User ACE.\n");
bret = EqualSid(&ace->SidStart, user_sid);
- todo_wine ok(bret, "Current User ACE != Current User SID.\n");
+ ok(bret, "Current User ACE != Current User SID.\n");
ok(((ACE_HEADER *)ace)->AceFlags == 0,
"Current User ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
@@ -3166,8 +3166,7 @@ static void test_GetNamedSecurityInfoA(v
bret = pGetAce(pDacl, 1, (VOID **)&ace);
ok(bret, "Failed to get Administators Group ACE.\n");
bret = EqualSid(&ace->SidStart, admin_sid);
- todo_wine ok(bret || broken(!bret) /* win2k */,
- "Administators Group ACE != Administators Group SID.\n");
+ ok(bret || broken(!bret) /* win2k */, "Administators Group ACE != Administators Group SID.\n");
ok(((ACE_HEADER *)ace)->AceFlags == 0,
"Administators Group ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
ok(ace->Mask == 0x1f01ff || broken(ace->Mask == GENERIC_ALL) /* win2k */,
@@ -3748,7 +3747,7 @@ static void test_GetSecurityInfo(void)
bret = pGetAce(pDacl, 0, (VOID **)&ace);
ok(bret, "Failed to get Current User ACE.\n");
bret = EqualSid(&ace->SidStart, user_sid);
- todo_wine ok(bret, "Current User ACE != Current User SID.\n");
+ ok(bret, "Current User ACE != Current User SID.\n");
ok(((ACE_HEADER *)ace)->AceFlags == 0,
"Current User ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
@@ -3759,7 +3758,7 @@ static void test_GetSecurityInfo(void)
bret = pGetAce(pDacl, 1, (VOID **)&ace);
ok(bret, "Failed to get Administators Group ACE.\n");
bret = EqualSid(&ace->SidStart, admin_sid);
- todo_wine ok(bret, "Administators Group ACE != Administators Group SID.\n");
+ ok(bret, "Administators Group ACE != Administators Group SID.\n");
ok(((ACE_HEADER *)ace)->AceFlags == 0,
"Administators Group ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
ok(ace->Mask == 0x1f01ff, "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n",
diff -rupN wine-1.5.19/dlls/kernel32/tests/directory.c wine-silverlight-1.5.19/dlls/kernel32/tests/directory.c
--- wine-1.5.19/dlls/kernel32/tests/directory.c 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/dlls/kernel32/tests/directory.c 2012-12-20 18:16:39.286247866 -0800
@@ -24,6 +24,15 @@
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
+#include "aclapi.h"
+
+static DWORD (WINAPI *pGetNamedSecurityInfoA)(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
+ PSID*, PSID*, PACL*, PACL*,
+ PSECURITY_DESCRIPTOR*);
+static BOOL (WINAPI *pGetAclInformation)(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
+static BOOL (WINAPI *pCreateWellKnownSid)(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*);
+static BOOL (WINAPI *pAddAccessAllowedAceEx)(PACL, DWORD, DWORD, DWORD, PSID);
+static BOOL (WINAPI *pGetAce)(PACL,DWORD,LPVOID*);
/* If you change something in these tests, please do the same
* for GetSystemDirectory tests.
@@ -486,8 +495,166 @@ static void test_SetCurrentDirectoryA(vo
ok( GetLastError() == ERROR_PATH_NOT_FOUND, "wrong error %d\n", GetLastError() );
}
+static void test_security_attributes(void)
+{
+ char admin_ptr[sizeof(SID)+sizeof(ULONG)*SID_MAX_SUB_AUTHORITIES], dacl[100], *user;
+ DWORD sid_size = sizeof(admin_ptr), user_size;
+ PSID admin_sid = (PSID) admin_ptr, user_sid;
+ char sd[SECURITY_DESCRIPTOR_MIN_LENGTH];
+ PSECURITY_DESCRIPTOR pSD = &sd;
+ ACL_SIZE_INFORMATION acl_size;
+ PACL pDacl = (PACL) &dacl;
+ ACCESS_ALLOWED_ACE *ace;
+ SECURITY_ATTRIBUTES sa;
+ char tmpfile[MAX_PATH];
+ char tmpdir[MAX_PATH];
+ HANDLE token, hTemp;
+ struct _SID *owner;
+ BOOL bret = TRUE;
+ DWORD error;
+
+ if (!pGetNamedSecurityInfoA || !pCreateWellKnownSid)
+ {
+ win_skip("Required functions are not available\n");
+ return;
+ }
+
+ if (!OpenThreadToken(GetCurrentThread(), TOKEN_READ, TRUE, &token))
+ {
+ if (GetLastError() != ERROR_NO_TOKEN) bret = FALSE;
+ else if (!OpenProcessToken(GetCurrentProcess(), TOKEN_READ, &token)) bret = FALSE;
+ }
+ if (!bret)
+ {
+ win_skip("Failed to get current user token\n");
+ return;
+ }
+ bret = GetTokenInformation(token, TokenUser, NULL, 0, &user_size);
+ ok(!bret && (GetLastError() == ERROR_INSUFFICIENT_BUFFER),
+ "GetTokenInformation(TokenUser) failed with error %d\n", GetLastError());
+ user = HeapAlloc(GetProcessHeap(), 0, user_size);
+ bret = GetTokenInformation(token, TokenUser, user, user_size, &user_size);
+ ok(bret, "GetTokenInformation(TokenUser) failed with error %d\n", GetLastError());
+ CloseHandle( token );
+ user_sid = ((TOKEN_USER *)user)->User.Sid;
+
+ sa.nLength = sizeof(sa);
+ sa.lpSecurityDescriptor = pSD;
+ sa.bInheritHandle = TRUE;
+ InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION);
+ pCreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, admin_sid, &sid_size);
+ bret = InitializeAcl(pDacl, sizeof(dacl), ACL_REVISION);
+ ok(bret, "Failed to initialize ACL.\n");
+ bret = pAddAccessAllowedAceEx(pDacl, ACL_REVISION, OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE,
+ GENERIC_ALL, user_sid);
+ ok(bret, "Failed to add Current User to ACL.\n");
+ bret = pAddAccessAllowedAceEx(pDacl, ACL_REVISION, OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE,
+ GENERIC_ALL, admin_sid);
+ ok(bret, "Failed to add Administrator Group to ACL.\n");
+ bret = SetSecurityDescriptorDacl(pSD, TRUE, pDacl, FALSE);
+ ok(bret, "Failed to add ACL to security desciptor.\n");
+
+ GetTempPathA(MAX_PATH, tmpdir);
+ lstrcatA(tmpdir, "Please Remove Me");
+ bret = CreateDirectoryA(tmpdir, &sa);
+ ok(bret == TRUE, "CreateDirectoryA(%s) failed err=%d\n", tmpdir, GetLastError());
+
+ SetLastError(0xdeadbeef);
+ error = pGetNamedSecurityInfoA(tmpdir, SE_FILE_OBJECT,
+ OWNER_SECURITY_INFORMATION|DACL_SECURITY_INFORMATION, (PSID*)&owner,
+ NULL, &pDacl, NULL, &pSD);
+ if (error != ERROR_SUCCESS && (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED))
+ {
+ win_skip("GetNamedSecurityInfoA is not implemented\n");
+ goto done;
+ }
+ ok(!error, "GetNamedSecurityInfo failed with error %d\n", error);
+
+ bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+ ok(bret, "GetAclInformation failed\n");
+ ok(acl_size.AceCount == 2, "GetAclInformation returned unexpected entry count (%d != 2).\n",
+ acl_size.AceCount);
+ if (acl_size.AceCount > 0)
+ {
+ bret = pGetAce(pDacl, 0, (VOID **)&ace);
+ ok(bret, "Failed to get Current User ACE.\n");
+ bret = EqualSid(&ace->SidStart, user_sid);
+ ok(bret, "Current User ACE != Current User SID.\n");
+ ok(((ACE_HEADER *)ace)->AceFlags == (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE),
+ "Current User ACE has unexpected flags (0x%x != 0x03)\n", ((ACE_HEADER *)ace)->AceFlags);
+ ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
+ ace->Mask);
+ }
+ if (acl_size.AceCount > 1)
+ {
+ bret = pGetAce(pDacl, 1, (VOID **)&ace);
+ ok(bret, "Failed to get Administators Group ACE.\n");
+ bret = EqualSid(&ace->SidStart, admin_sid);
+ ok(bret, "Administators Group ACE != Administators Group SID.\n");
+ ok(((ACE_HEADER *)ace)->AceFlags == (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE),
+ "Administators Group ACE has unexpected flags (0x%x != 0x03)\n", ((ACE_HEADER *)ace)->AceFlags);
+ ok(ace->Mask == 0x1f01ff, "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n",
+ ace->Mask);
+ }
+
+ /* Test inheritance of ACLs */
+ strcpy(tmpfile, tmpdir);
+ lstrcatA(tmpfile, "/tmpfile");
+ hTemp = CreateFileA(tmpfile, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW,
+ FILE_FLAG_DELETE_ON_CLOSE, NULL);
+ error = pGetNamedSecurityInfoA(tmpfile, SE_FILE_OBJECT,
+ OWNER_SECURITY_INFORMATION|DACL_SECURITY_INFORMATION, (PSID*)&owner,
+ NULL, &pDacl, NULL, &pSD);
+ ok(error == ERROR_SUCCESS, "Failed to get permissions on file.\n");
+ bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+ ok(bret, "GetAclInformation failed\n");
+ ok(acl_size.AceCount == 2, "GetAclInformation returned unexpected entry count (%d != 2).\n",
+ acl_size.AceCount);
+ if (acl_size.AceCount > 0)
+ {
+ bret = pGetAce(pDacl, 0, (VOID **)&ace);
+ ok(bret, "Inherited Failed to get Current User ACE.\n");
+ bret = EqualSid(&ace->SidStart, user_sid);
+ ok(bret, "Inherited Current User ACE != Current User SID.\n");
+ ok(((ACE_HEADER *)ace)->AceFlags == INHERITED_ACE,
+ "Inherited Current User ACE has unexpected flags (0x%x != 0x10)\n", ((ACE_HEADER *)ace)->AceFlags);
+ ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
+ ace->Mask);
+ }
+ if (acl_size.AceCount > 1)
+ {
+ bret = pGetAce(pDacl, 1, (VOID **)&ace);
+ ok(bret, "Inherited Failed to get Administators Group ACE.\n");
+ bret = EqualSid(&ace->SidStart, admin_sid);
+ ok(bret, "Inherited Administators Group ACE != Administators Group SID.\n");
+ ok(((ACE_HEADER *)ace)->AceFlags == INHERITED_ACE,
+ "Inherited Administators Group ACE has unexpected flags (0x%x != 0x10)\n", ((ACE_HEADER *)ace)->AceFlags);
+ ok(ace->Mask == 0x1f01ff, "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n",
+ ace->Mask);
+ }
+ CloseHandle(hTemp);
+
+done:
+ HeapFree(GetProcessHeap(), 0, user);
+ bret = RemoveDirectoryA(tmpdir);
+ ok(bret == TRUE, "RemoveDirectoryA should always succeed\n");
+}
+
+void init(void)
+{
+ HMODULE hmod = GetModuleHandle("advapi32.dll");
+
+ pGetNamedSecurityInfoA = (void *)GetProcAddress(hmod, "GetNamedSecurityInfoA");
+ pAddAccessAllowedAceEx = (void *)GetProcAddress(hmod, "AddAccessAllowedAceEx");
+ pCreateWellKnownSid = (void *)GetProcAddress(hmod, "CreateWellKnownSid");
+ pGetAclInformation = (void *)GetProcAddress(hmod, "GetAclInformation");
+ pGetAce = (void *)GetProcAddress(hmod, "GetAce");
+}
+
START_TEST(directory)
{
+ init();
+
test_GetWindowsDirectoryA();
test_GetWindowsDirectoryW();
@@ -501,4 +668,6 @@ START_TEST(directory)
test_RemoveDirectoryW();
test_SetCurrentDirectoryA();
+
+ test_security_attributes();
}
diff -rupN wine-1.5.19/dlls/Makefile wine-silverlight-1.5.19/dlls/Makefile
--- wine-1.5.19/dlls/Makefile 1969-12-31 16:00:00.000000000 -0800
+++ wine-silverlight-1.5.19/dlls/Makefile 2012-12-20 18:16:39.386241250 -0800
@@ -0,0 +1,1620 @@
+# Automatically generated by make_makefiles; DO NOT EDIT!!
+
+TOPSRCDIR = ..
+TOPOBJDIR = ..
+SRCDIR = .
+
+
+INSTALLDIRS = $(DESTDIR)$(dlldir)
+
+DLLSUBDIRS = \
+ acledit \
+ aclui \
+ activeds \
+ actxprxy \
+ advapi32 \
+ advpack \
+ amstream \
+ appwiz.cpl \
+ atl \
+ authz \
+ avicap32 \
+ avifil32 \
+ avifile.dll16 \
+ avrt \
+ bcrypt \
+ browseui \
+ cabinet \
+ capi2032 \
+ cards \
+ cfgmgr32 \
+ clusapi \
+ comcat \
+ comctl32 \
+ comdlg32 \
+ comm.drv16 \
+ commdlg.dll16 \
+ compobj.dll16 \
+ compstui \
+ credui \
+ crtdll \
+ crypt32 \
+ cryptdlg \
+ cryptdll \
+ cryptnet \
+ cryptui \
+ ctapi32 \
+ ctl3d.dll16 \
+ ctl3d32 \
+ ctl3dv2.dll16 \
+ d3d10 \
+ d3d10core \
+ d3d8 \
+ d3d9 \
+ d3dim \
+ d3drm \
+ d3dx9_24 \
+ d3dx9_25 \
+ d3dx9_26 \
+ d3dx9_27 \
+ d3dx9_28 \
+ d3dx9_29 \
+ d3dx9_30 \
+ d3dx9_31 \
+ d3dx9_32 \
+ d3dx9_33 \
+ d3dx9_34 \
+ d3dx9_35 \
+ d3dx9_36 \
+ d3dx9_37 \
+ d3dx9_38 \
+ d3dx9_39 \
+ d3dx9_40 \
+ d3dx9_41 \
+ d3dx9_42 \
+ d3dxof \
+ dbghelp \
+ dciman32 \
+ ddeml.dll16 \
+ ddraw \
+ ddrawex \
+ devenum \
+ dinput \
+ dinput8 \
+ dispdib.dll16 \
+ display.drv16 \
+ dmband \
+ dmcompos \
+ dmime \
+ dmloader \
+ dmscript \
+ dmstyle \
+ dmsynth \
+ dmusic \
+ dmusic32 \
+ dnsapi \
+ dplay \
+ dplayx \
+ dpnaddr \
+ dpnet \
+ dpnhpast \
+ dpnlobby \
+ dpwsockx \
+ drmclien \
+ dsound \
+ dssenh \
+ dswave \
+ dwmapi \
+ dxdiagn \
+ dxgi \
+ faultrep \
+ fltlib \
+ fusion \
+ fwpuclnt \
+ gdi.exe16 \
+ gdi32 \
+ gdiplus \
+ glu32 \
+ gphoto2.ds \
+ gpkcsp \
+ hal \
+ hhctrl.ocx \
+ hid \
+ hlink \
+ hnetcfg \
+ httpapi \
+ iccvid \
+ icmp \
+ ifsmgr.vxd \
+ imaadp32.acm \
+ imagehlp \
+ imm.dll16 \
+ imm32 \
+ inetcomm \
+ inetmib1 \
+ infosoft \
+ initpki \
+ inkobj \
+ inseng \
+ iphlpapi \
+ itircl \
+ itss \
+ jscript \
+ kernel32 \
+ keyboard.drv16 \
+ loadperf \
+ localspl \
+ localui \
+ lz32 \
+ lzexpand.dll16 \
+ mapi32 \
+ mciavi32 \
+ mcicda \
+ mciqtz32 \
+ mciseq \
+ mciwave \
+ midimap \
+ mlang \
+ mmdevapi \
+ mmdevldr.vxd \
+ mmsystem.dll16 \
+ monodebg.vxd \
+ mountmgr.sys \
+ mouse.drv16 \
+ mpr \
+ mprapi \
+ msacm.dll16 \
+ msacm32.drv \
+ msacm32 \
+ msadp32.acm \
+ mscat32 \
+ mscms \
+ mscoree \
+ msctf \
+ msdaps \
+ msdmo \
+ msftedit \
+ msg711.acm \
+ msgsm32.acm \
+ mshtml.tlb \
+ mshtml \
+ msi \
+ msimg32 \
+ msimtf \
+ msisip \
+ msisys.ocx \
+ msnet32 \
+ msrle32 \
+ mssign32 \
+ mssip32 \
+ mstask \
+ msvcirt \
+ msvcr71 \
+ msvcrt \
+ msvcrt20 \
+ msvcrt40 \
+ msvcrtd \
+ msvfw32 \
+ msvidc32 \
+ msvideo.dll16 \
+ mswsock \
+ msxml3 \
+ nddeapi \
+ netapi32 \
+ newdev \
+ ntdll \
+ ntdsapi \
+ ntoskrnl.exe \
+ ntprint \
+ objsel \
+ odbc32 \
+ odbccp32 \
+ ole2.dll16 \
+ ole2conv.dll16 \
+ ole2disp.dll16 \
+ ole2nls.dll16 \
+ ole2prox.dll16 \
+ ole2thk.dll16 \
+ ole32 \
+ oleacc \
+ oleaut32 \
+ olecli.dll16 \
+ olecli32 \
+ oledb32 \
+ oledlg \
+ olepro32 \
+ olesvr.dll16 \
+ olesvr32 \
+ olethk32 \
+ openal32 \
+ opengl32 \
+ pdh \
+ pidgen \
+ powrprof \
+ printui \
+ propsys \
+ psapi \
+ pstorec \
+ qcap \
+ qedit \
+ qmgr \
+ qmgrprxy \
+ quartz \
+ query \
+ rasapi16.dll16 \
+ rasapi32 \
+ rasdlg \
+ resutils \
+ riched20 \
+ riched32 \
+ rpcrt4 \
+ rsabase \
+ rsaenh \
+ rtutils \
+ sane.ds \
+ sccbase \
+ schannel \
+ secur32 \
+ security \
+ sensapi \
+ serialui \
+ setupapi \
+ setupx.dll16 \
+ sfc \
+ sfc_os \
+ shdoclc \
+ shdocvw \
+ shell.dll16 \
+ shell32 \
+ shfolder \
+ shlwapi \
+ slbcsp \
+ slc \
+ snmpapi \
+ softpub \
+ sound.drv16 \
+ spoolss \
+ stdole2.tlb \
+ stdole32.tlb \
+ sti \
+ storage.dll16 \
+ stress.dll16 \
+ svrapi \
+ sxs \
+ system.drv16 \
+ t2embed \
+ tapi32 \
+ toolhelp.dll16 \
+ traffic \
+ twain.dll16 \
+ twain_32 \
+ typelib.dll16 \
+ unicows \
+ updspapi \
+ url \
+ urlmon \
+ user32 \
+ userenv \
+ usp10 \
+ uxtheme \
+ vdhcp.vxd \
+ vdmdbg \
+ ver.dll16 \
+ version \
+ vmm.vxd \
+ vnbt.vxd \
+ vnetbios.vxd \
+ vtdapi.vxd \
+ vwin32.vxd \
+ w32skrnl \
+ w32sys.dll16 \
+ wbemprox \
+ wiaservc \
+ win32s16.dll16 \
+ win87em.dll16 \
+ winaspi.dll16 \
+ windebug.dll16 \
+ windowscodecs \
+ winealsa.drv \
+ wineaudioio.drv \
+ winecoreaudio.drv \
+ wined3d \
+ winedos \
+ wineesd.drv \
+ winejack.drv \
+ winejoystick.drv \
+ winemapi \
+ winemp3.acm \
+ winenas.drv \
+ wineoss.drv \
+ wineps.drv \
+ wineps16.drv16 \
+ winex11.drv \
+ wing.dll16 \
+ wing32 \
+ winhttp \
+ wininet \
+ winmm \
+ winnls.dll16 \
+ winnls32 \
+ winscard \
+ winsock.dll16 \
+ winspool.drv \
+ wintab.dll16 \
+ wintab32 \
+ wintrust \
+ wldap32 \
+ wmi \
+ wmiutils \
+ wnaspi32 \
+ wow32 \
+ ws2_32 \
+ wsock32 \
+ wtsapi32 \
+ wuapi \
+ wuaueng \
+ xinput1_1 \
+ xinput1_2 \
+ xinput1_3 \
+ xinput9_1_0 \
+ xmllite
+IMPLIBSUBDIRS = \
+ adsiid \
+ dxerr8 \
+ dxerr9 \
+ dxguid \
+ strmiids \
+ uuid \
+ winecrt0
+TESTSUBDIRS = \
+ advapi32/tests \
+ advpack/tests \
+ amstream/tests \
+ browseui/tests \
+ cabinet/tests \
+ comcat/tests \
+ comctl32/tests \
+ comdlg32/tests \
+ credui/tests \
+ crypt32/tests \
+ cryptnet/tests \
+ cryptui/tests \
+ d3d10/tests \
+ d3d10core/tests \
+ d3d8/tests \
+ d3d9/tests \
+ d3drm/tests \
+ d3dx9_36/tests \
+ d3dxof/tests \
+ ddraw/tests \
+ ddrawex/tests \
+ dinput/tests \
+ dnsapi/tests \
+ dplayx/tests \
+ dsound/tests \
+ dxgi/tests \
+ fusion/tests \
+ gdi32/tests \
+ gdiplus/tests \
+ hlink/tests \
+ imagehlp/tests \
+ imm32/tests \
+ inetcomm/tests \
+ inetmib1/tests \
+ infosoft/tests \
+ iphlpapi/tests \
+ itss/tests \
+ jscript/tests \
+ kernel32/tests \
+ localspl/tests \
+ localui/tests \
+ lz32/tests \
+ mapi32/tests \
+ mlang/tests \
+ mmdevapi/tests \
+ msacm32/tests \
+ mscms/tests \
+ msctf/tests \
+ mshtml/tests \
+ msi/tests \
+ mstask/tests \
+ msvcrt/tests \
+ msvcrtd/tests \
+ msvfw32/tests \
+ msxml3/tests \
+ netapi32/tests \
+ ntdll/tests \
+ ntdsapi/tests \
+ ntprint/tests \
+ odbccp32/tests \
+ ole32/tests \
+ oleacc/tests \
+ oleaut32/tests \
+ oledb32/tests \
+ opengl32/tests \
+ pdh/tests \
+ psapi/tests \
+ qedit/tests \
+ qmgr/tests \
+ quartz/tests \
+ rasapi32/tests \
+ riched20/tests \
+ riched32/tests \
+ rpcrt4/tests \
+ rsaenh/tests \
+ schannel/tests \
+ secur32/tests \
+ serialui/tests \
+ setupapi/tests \
+ shdocvw/tests \
+ shell32/tests \
+ shlwapi/tests \
+ snmpapi/tests \
+ spoolss/tests \
+ sti/tests \
+ twain_32/tests \
+ urlmon/tests \
+ user32/tests \
+ userenv/tests \
+ usp10/tests \
+ uxtheme/tests \
+ version/tests \
+ windowscodecs/tests \
+ winhttp/tests \
+ wininet/tests \
+ winmm/tests \
+ winspool.drv/tests \
+ wintab32/tests \
+ wintrust/tests \
+ wldap32/tests \
+ ws2_32/tests \
+ xinput1_3/tests
+SUBDIRS = $(DLLSUBDIRS) $(IMPLIBSUBDIRS) $(TESTSUBDIRS)
+BUILDSUBDIRS = $(DLLSUBDIRS) $(TESTSUBDIRS)
+INSTALLSUBDIRS = $(DLLSUBDIRS) $(IMPLIBSUBDIRS)
+DOCSUBDIRS = $(DLLSUBDIRS)
+
+# 16-bit dlls
+
+WIN16_FILES = \
+ krnl386.exe16 \
+ user.exe16 \
+ wprocs.dll16
+
+# Global rules shared by all makefiles -*-Makefile-*-
+#
+# Each individual makefile must define the following variables:
+# TOPSRCDIR : top-level source directory
+# TOPOBJDIR : top-level object directory
+# SRCDIR : source directory for this module
+# MODULE : name of the module being built
+#
+# Each individual makefile may define the following additional variables:
+# C_SRCS : C sources for the module
+# C_SRCS16 : 16-bit C sources for the module
+# RC_SRCS : resource source files
+# EXTRA_SRCS : extra source files for make depend
+# EXTRA_OBJS : extra object files
+# IMPORTS : dlls to import
+# DELAYIMPORTS : dlls to import in delayed mode
+# SUBDIRS : subdirectories that contain a Makefile
+# EXTRASUBDIRS : subdirectories that do not contain a Makefile
+# INSTALLSUBDIRS : subdirectories to run make install/uninstall into
+# MODCFLAGS : extra CFLAGS for this module
+
+# First some useful definitions
+
+SHELL = /bin/sh
+CC = ccache gcc -m32
+CFLAGS = -g -O2
+CPPFLAGS =
+LIBS =
+BISON = bison
+FLEX = flex
+EXEEXT =
+OBJEXT = o
+LIBEXT = so
+DLLEXT = .so
+TOOLSEXT =
+IMPLIBEXT = def
+LDSHARED = $(CC) -shared $(SONAME:%=-Wl,-soname,%) $(VERSCRIPT:%=-Wl,--version-script=%)
+DLLTOOL = i586-mingw32msvc-dlltool
+DLLWRAP =
+AR = ar
+ARFLAGS = rc
+RANLIB = ranlib
+STRIP = strip
+LN = ln
+LN_S = ln -s
+TOOLSDIR = $(TOPOBJDIR)
+LDFLAGS =
+PRELINK = /usr/sbin/prelink
+RM = rm -f
+MV = mv
+LINT =
+LINTFLAGS =
+FONTFORGE = fontforge
+RSVG = false
+ICOTOOL = icotool
+FAKEEXT = $(DLLEXT:.so=.fake)
+INCLUDES = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL)
+EXTRACFLAGS = -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wstrict-prototypes -Wwrite-strings -Wtype-limits -Wpointer-arith
+ALLCFLAGS = $(INCLUDES) $(DEFS) $(DLLFLAGS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS)
+ALLLINTFLAGS = $(INCLUDES) $(DEFS) $(LINTFLAGS)
+IDLFLAGS = $(INCLUDES) $(DEFS) $(EXTRAIDLFLAGS)
+TARGETFLAGS = -m32
+WINEBUILDFLAGS = $(TARGETFLAGS) $(DLLFLAGS)
+MKINSTALLDIRS= $(TOPSRCDIR)/tools/mkinstalldirs -m 755
+WINAPI_CHECK = $(TOPSRCDIR)/tools/winapi/winapi_check
+WINEWRAPPER = $(TOPSRCDIR)/tools/winewrapper
+C2MAN = $(TOPSRCDIR)/tools/c2man.pl
+RUNTEST = $(TOPSRCDIR)/tools/runtest
+WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT)
+MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
+MAKECTESTS = $(TOOLSDIR)/tools/make_ctests$(TOOLSEXT)
+WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT)
+WMC = $(TOOLSDIR)/tools/wmc/wmc$(TOOLSEXT)
+WIDL = $(TOOLSDIR)/tools/widl/widl$(TOOLSEXT)
+WINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc $(TARGETFLAGS) -B$(TOOLSDIR)/tools/winebuild --sysroot=$(TOPOBJDIR)
+RELPATH = $(TOOLSDIR)/tools/relpath$(TOOLSEXT)
+SFNT2FNT = $(TOOLSDIR)/tools/sfnt2fnt$(TOOLSEXT)
+RC = $(WRC)
+RC16 = $(WRC)
+RCFLAGS = --nostdinc $(INCLUDES) $(DEFS) $(EXTRARCFLAGS)
+RC16FLAGS = -O res16 $(RCFLAGS)
+LDPATH = LD_LIBRARY_PATH="$(TOOLSDIR)/libs/wine:$$LD_LIBRARY_PATH"
+DLLDIR = $(TOPOBJDIR)/dlls
+LIBPORT = $(TOPOBJDIR)/libs/port/libwine_port.a
+LIBWPP = $(TOPOBJDIR)/libs/wpp/libwpp.a
+LIBWINE = -L$(TOPOBJDIR)/libs/wine -lwine
+LDRPATH_INSTALL = -Wl,--rpath,\$$ORIGIN/`$(RELPATH) $(bindir) $(libdir)` -Wl,--enable-new-dtags
+LDRPATH_LOCAL = -Wl,--rpath,\$$ORIGIN/$(TOPOBJDIR)/libs/wine
+
+
+
+# Installation infos
+
+INSTALL = /usr/bin/install -c $(INSTALL_FLAGS)
+INSTALL_PROGRAM = ${INSTALL} $(INSTALL_PROGRAM_FLAGS)
+INSTALL_SCRIPT = ${INSTALL} $(INSTALL_SCRIPT_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644 $(INSTALL_DATA_FLAGS)
+prefix = /usr/local
+exec_prefix = ${prefix}
+bindir = ${exec_prefix}/bin
+libdir = ${exec_prefix}/lib
+datarootdir = ${prefix}/share
+datadir = ${datarootdir}
+infodir = ${datarootdir}/info
+mandir = ${datarootdir}/man
+sysconfdir = ${prefix}/etc
+includedir = ${prefix}/include/wine
+dlldir = ${exec_prefix}/lib/wine
+fakedlldir = $(dlldir)/fakedlls
+prog_manext = 1
+api_manext = 3w
+conf_manext = 5
+CLEAN_FILES = *.o *.a *.so *.ln *.res *.fake *.$(LIBEXT) \\\#*\\\# *~ *% .\\\#* *.bak *.orig *.rej *.flc core
+
+IDL_GEN_C_SRCS = $(IDL_C_SRCS:.idl=_c.c) $(IDL_I_SRCS:.idl=_i.c) \
+ $(IDL_P_SRCS:.idl=_p.c) $(IDL_S_SRCS:.idl=_s.c)
+IDL_GEN_HEADERS = $(IDL_H_SRCS:.idl=.h) $(IDL_C_SRCS:.idl=.h) $(IDL_I_SRCS:.idl=.h) \
+ $(IDL_P_SRCS:.idl=.h) $(IDL_S_SRCS:.idl=.h)
+
+CLEAN_TARGETS = $(IDL_GEN_C_SRCS) $(IDL_GEN_HEADERS) $(IDL_TLB_SRCS:.idl=.tlb) $(IDL_P_SRCS:%=dlldata.c) \
+ $(BISON_SRCS:.y=.tab.c) $(BISON_SRCS:.y=.tab.h) $(LEX_SRCS:.l=.yy.c) $(MC_SRCS:.mc=.mc.rc)
+
+OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(IDL_GEN_C_SRCS:.c=.o) \
+ $(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(EXTRA_OBJS)
+
+LINTS = $(C_SRCS:.c=.ln)
+
+# 'all' target first in case the enclosing Makefile didn't define any target
+
+all:
+
+filter: dummy
+ @$(TOPSRCDIR)/tools/winapi/make_filter --make $(MAKE) all
+
+.PHONY: all filter
+
+# Implicit rules
+
+.SUFFIXES: .mc .rc .mc.rc .res .spec .spec.o .idl .tlb .h .y .l .tab.c .tab.h .yy.c .ok .man.in .man _c.c _i.c _p.c _s.c # .sfd .ttf .svg .ico
+
+.c.o:
+ $(CC) -c $(ALLCFLAGS) -o $@ $<
+
+.y.tab.c:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $@ $<
+
+.y.tab.h:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $*.tab.c -d $<
+
+.l.yy.c:
+ $(FLEX) $(LEXFLAGS) -o$@ $<
+
+.mc.mc.rc:
+ $(LDPATH) $(WMC) -i -U -H /dev/null -o $@ $<
+
+.rc.res:
+ $(LDPATH) $(RC) $(RCFLAGS) -fo$@ $<
+
+.spec.spec.o:
+ $(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --main-module $(MODULE) --export $<
+
+.idl.h:
+ $(WIDL) $(IDLFLAGS) -h -H $@ $<
+
+.idl_c.c:
+ $(WIDL) $(IDLFLAGS) -c -C $@ $<
+
+.idl_i.c:
+ $(WIDL) $(IDLFLAGS) -u -U $@ $<
+
+.idl_p.c:
+ $(WIDL) $(IDLFLAGS) -p -P $@ $<
+
+.idl_s.c:
+ $(WIDL) $(IDLFLAGS) -s -S $@ $<
+
+.idl.tlb:
+ $(WIDL) $(TARGETFLAGS) $(IDLFLAGS) -t -T $@ $<
+
+.c.ln:
+ $(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
+
+.c.ok:
+ $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
+
+.sfd.ttf:
+ $(FONTFORGE) -script $(TOPSRCDIR)/fonts/genttf.ff $< $@
+
+.man.in.man:
+ LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,Wine 1.1.35,g' $< >$@ || ($(RM) $@ && false)
+
+.svg.ico:
+ $(RSVG) -w 16 -h 16 -f png $< $*-16.png
+ $(RSVG) -w 32 -h 32 -f png $< $*-32.png
+ $(RSVG) -w 48 -h 48 -f png $< $*-48.png
+ $(ICOTOOL) -c -o $@ $*-16.png $*-32.png $*-48.png
+ $(RM) $*-16.png $*-32.png $*-48.png
+
+# Rules for IDL files
+
+dlldata.c: $(WIDL) Makefile.in
+ $(WIDL) $(IDLFLAGS) --dlldata-only --dlldata=$@ $(IDL_P_SRCS)
+
+# Rule for linting
+
+$(MODULE).ln : $(LINTS)
+ if test "$(LINTS)" ; \
+ then \
+ $(LINT) $(ALLLINTFLAGS) -o$(MODULE) $(LINTS) ; \
+ $(MV) llib-l$(MODULE).ln $(MODULE).ln ; \
+ else \
+ $(LINT) $(ALLLINTFLAGS) -C$(MODULE) /dev/null ; \
+ fi
+
+lint:: $(MODULE).ln
+
+# Rules for Windows API checking
+
+winapi_check:: dummy
+ $(WINAPI_CHECK) $(WINAPI_CHECK_FLAGS) $(WINAPI_CHECK_EXTRA_FLAGS) .
+
+.PHONY: winapi_check
+
+# Rules for dependencies
+
+DEPEND_SRCS = $(C_SRCS) $(C_SRCS16) $(RC_SRCS) $(RC_SRCS16) $(MC_SRCS) \
+ $(IDL_H_SRCS) $(IDL_C_SRCS) $(IDL_I_SRCS) $(IDL_P_SRCS) $(IDL_S_SRCS) \
+ $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS) $(IDL_TLB_SRCS:.idl=.tlb) \
+ $(BISON_SRCS) $(LEX_SRCS) $(EXTRA_SRCS)
+
+$(SUBDIRS:%=%/__depend__): dummy
+ @cd `dirname $@` && $(MAKE) depend
+
+depend: $(SUBDIRS:%=%/__depend__) dummy
+ $(MAKEDEP) $(MAKEDEPFLAGS) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
+
+.PHONY: depend $(SUBDIRS:%=%/__depend__)
+
+# Rules for cleaning
+
+$(SUBDIRS:%=%/__clean__): dummy
+ @cd `dirname $@` && $(MAKE) clean
+
+$(EXTRASUBDIRS:%=%/__clean__): dummy
+ -cd `dirname $@` && $(RM) $(CLEAN_FILES)
+
+clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+ $(RM) $(CLEAN_FILES) $(CLEAN_TARGETS) $(PROGRAMS) $(MANPAGES)
+
+.PHONY: clean $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+
+# Rules for installing
+
+$(SUBDIRS:%=%/__install__): dummy
+ @cd `dirname $@` && $(MAKE) install
+
+$(SUBDIRS:%=%/__install-lib__): dummy
+ @cd `dirname $@` && $(MAKE) install-lib
+
+$(SUBDIRS:%=%/__install-dev__): dummy
+ @cd `dirname $@` && $(MAKE) install-dev
+
+$(SUBDIRS:%=%/__uninstall__): dummy
+ @cd `dirname $@` && $(MAKE) uninstall
+
+install:: $(INSTALLSUBDIRS:%=%/__install__) dummy
+install-lib:: $(INSTALLSUBDIRS:%=%/__install-lib__) dummy
+install-dev:: $(INSTALLSUBDIRS:%=%/__install-dev__) dummy
+uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__) dummy
+
+$(INSTALLDIRS):
+ $(MKINSTALLDIRS) $@
+
+.PHONY: install install-lib install-dev uninstall \
+ $(SUBDIRS:%=%/__install__) $(SUBDIRS:%=%/__uninstall__) \
+ $(SUBDIRS:%=%/__install-lib__) $(SUBDIRS:%=%/__install-dev__)
+
+# Rules for testing
+
+$(TESTSUBDIRS:%=%/__test__): dummy
+ @cd `dirname $@` && $(MAKE) test
+
+$(TESTSUBDIRS:%=%/__crosstest__): dummy
+ @cd `dirname $@` && $(MAKE) crosstest
+
+$(TESTSUBDIRS:%=%/__testclean__): dummy
+ @cd `dirname $@` && $(MAKE) testclean
+
+check test:: $(TESTSUBDIRS:%=%/__test__) dummy
+
+crosstest:: $(TESTSUBDIRS:%=%/__crosstest__) dummy
+
+testclean:: $(TESTSUBDIRS:%=%/__testclean__) dummy
+
+.PHONY: check test testclean crosstest $(TESTSUBDIRS:%=%/__test__) $(TESTSUBDIRS:%=%/__crosstest__) $(TESTSUBDIRS:%=%/__testclean__)
+
+# Rules for auto documentation
+
+$(DOCSUBDIRS:%=%/__man__): dummy
+ @cd `dirname $@` && $(MAKE) man
+
+$(DOCSUBDIRS:%=%/__doc_html__): dummy
+ @cd `dirname $@` && $(MAKE) doc-html
+
+$(DOCSUBDIRS:%=%/__doc_sgml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-sgml
+
+$(DOCSUBDIRS:%=%/__doc_xml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-xml
+
+man: $(DOCSUBDIRS:%=%/__man__)
+doc-html: $(DOCSUBDIRS:%=%/__doc_html__)
+doc-sgml: $(DOCSUBDIRS:%=%/__doc_sgml__)
+doc-xml: $(DOCSUBDIRS:%=%/__doc_xml__)
+
+.PHONY: man doc-html doc-sgml doc-xml $(DOCSUBDIRS:%=%/__man__) $(DOCSUBDIRS:%=%/__doc_html__) $(DOCSUBDIRS:%=%/__doc_sgml__) $(DOCSUBDIRS:%=%/__doc_xml__)
+
+# Misc. rules
+
+$(MC_SRCS:.mc=.mc.rc): $(WMC)
+
+$(IDL_GEN_HEADERS) $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS:.idl=.tlb): $(WIDL)
+
+$(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(RC_SRCS16:.rc=.res): $(WRC)
+
+$(SUBDIRS): dummy
+ @cd $@ && $(MAKE)
+
+dummy:
+
+.PHONY: dummy $(SUBDIRS)
+
+# End of global rules
+
+# Main target
+
+all: $(BUILDSUBDIRS) $(WIN16_FILES)
+
+# Placeholders for 16-bit libraries
+
+krnl386.exe16:
+ echo "kernel32.dll" >$@
+
+user.exe16:
+ echo "user32.dll" >$@
+
+wprocs.dll16:
+ echo "winedos.dll" >$@
+
+# Import libraries
+
+STATIC_IMPLIBEXT = $(IMPLIBEXT:def=def.a)
+
+IMPORT_SYMLINKS = \
+ libd3dx9.$(IMPLIBEXT) \
+ libwinspool.$(IMPLIBEXT) \
+ libxinput.$(IMPLIBEXT)
+
+IMPORT_LIBS = \
+ $(IMPORT_SYMLINKS) \
+ adsiid/libadsiid.a \
+ dxerr8/libdxerr8.a \
+ dxerr9/libdxerr9.a \
+ dxguid/libdxguid.a \
+ strmiids/libstrmiids.a \
+ uuid/libuuid.a \
+ winecrt0/libwinecrt0.a \
+ aclui/libaclui.$(IMPLIBEXT) \
+ activeds/libactiveds.$(IMPLIBEXT) \
+ advapi32/libadvapi32.$(IMPLIBEXT) \
+ advpack/libadvpack.$(IMPLIBEXT) \
+ atl/libatl.$(IMPLIBEXT) \
+ avicap32/libavicap32.$(IMPLIBEXT) \
+ avifil32/libavifil32.$(IMPLIBEXT) \
+ avrt/libavrt.$(IMPLIBEXT) \
+ cabinet/libcabinet.$(IMPLIBEXT) \
+ capi2032/libcapi2032.$(IMPLIBEXT) \
+ cards/libcards.$(IMPLIBEXT) \
+ cfgmgr32/libcfgmgr32.$(IMPLIBEXT) \
+ clusapi/libclusapi.$(IMPLIBEXT) \
+ comctl32/libcomctl32.$(IMPLIBEXT) \
+ comdlg32/libcomdlg32.$(IMPLIBEXT) \
+ compstui/libcompstui.$(IMPLIBEXT) \
+ credui/libcredui.$(IMPLIBEXT) \
+ crtdll/libcrtdll.$(IMPLIBEXT) \
+ crypt32/libcrypt32.$(IMPLIBEXT) \
+ cryptdll/libcryptdll.$(IMPLIBEXT) \
+ cryptnet/libcryptnet.$(IMPLIBEXT) \
+ cryptui/libcryptui.$(IMPLIBEXT) \
+ ctl3d32/libctl3d32.$(IMPLIBEXT) \
+ d3d10/libd3d10.$(IMPLIBEXT) \
+ d3d10core/libd3d10core.$(IMPLIBEXT) \
+ d3d8/libd3d8.$(IMPLIBEXT) \
+ d3d9/libd3d9.$(IMPLIBEXT) \
+ d3dim/libd3dim.$(IMPLIBEXT) \
+ d3drm/libd3drm.$(IMPLIBEXT) \
+ d3dx9_36/libd3dx9.$(IMPLIBEXT) \
+ d3dxof/libd3dxof.$(IMPLIBEXT) \
+ dbghelp/libdbghelp.$(IMPLIBEXT) \
+ dciman32/libdciman32.$(IMPLIBEXT) \
+ ddraw/libddraw.$(IMPLIBEXT) \
+ dinput/libdinput.$(IMPLIBEXT) \
+ dinput/libdinput.$(STATIC_IMPLIBEXT) \
+ dinput8/libdinput8.$(IMPLIBEXT) \
+ dmusic32/libdmusic32.$(IMPLIBEXT) \
+ dnsapi/libdnsapi.$(IMPLIBEXT) \
+ dplay/libdplay.$(IMPLIBEXT) \
+ dplayx/libdplayx.$(IMPLIBEXT) \
+ dpnet/libdpnet.$(IMPLIBEXT) \
+ dsound/libdsound.$(IMPLIBEXT) \
+ dwmapi/libdwmapi.$(IMPLIBEXT) \
+ dxgi/libdxgi.$(IMPLIBEXT) \
+ gdi32/libgdi32.$(IMPLIBEXT) \
+ gdiplus/libgdiplus.$(IMPLIBEXT) \
+ glu32/libglu32.$(IMPLIBEXT) \
+ hid/libhid.$(IMPLIBEXT) \
+ hlink/libhlink.$(IMPLIBEXT) \
+ imagehlp/libimagehlp.$(IMPLIBEXT) \
+ imm32/libimm32.$(IMPLIBEXT) \
+ inetcomm/libinetcomm.$(IMPLIBEXT) \
+ iphlpapi/libiphlpapi.$(IMPLIBEXT) \
+ kernel32/libkernel32.$(IMPLIBEXT) \
+ loadperf/libloadperf.$(IMPLIBEXT) \
+ lz32/liblz32.$(IMPLIBEXT) \
+ mapi32/libmapi32.$(IMPLIBEXT) \
+ mlang/libmlang.$(IMPLIBEXT) \
+ mpr/libmpr.$(IMPLIBEXT) \
+ mprapi/libmprapi.$(IMPLIBEXT) \
+ msacm32/libmsacm32.$(IMPLIBEXT) \
+ mscms/libmscms.$(IMPLIBEXT) \
+ msdmo/libmsdmo.$(IMPLIBEXT) \
+ mshtml/libmshtml.$(IMPLIBEXT) \
+ msi/libmsi.$(IMPLIBEXT) \
+ msimg32/libmsimg32.$(IMPLIBEXT) \
+ msvcr71/libmsvcr71.$(IMPLIBEXT) \
+ msvcrt/libmsvcrt.$(IMPLIBEXT) \
+ msvcrt20/libmsvcrt20.$(IMPLIBEXT) \
+ msvcrt40/libmsvcrt40.$(IMPLIBEXT) \
+ msvcrtd/libmsvcrtd.$(IMPLIBEXT) \
+ msvfw32/libmsvfw32.$(IMPLIBEXT) \
+ mswsock/libmswsock.$(IMPLIBEXT) \
+ nddeapi/libnddeapi.$(IMPLIBEXT) \
+ netapi32/libnetapi32.$(IMPLIBEXT) \
+ newdev/libnewdev.$(IMPLIBEXT) \
+ ntdll/libntdll.$(IMPLIBEXT) \
+ ntdsapi/libntdsapi.$(IMPLIBEXT) \
+ ntoskrnl.exe/libntoskrnl.exe.$(IMPLIBEXT) \
+ odbc32/libodbc32.$(IMPLIBEXT) \
+ odbccp32/libodbccp32.$(IMPLIBEXT) \
+ ole32/libole32.$(IMPLIBEXT) \
+ oleacc/liboleacc.$(IMPLIBEXT) \
+ oleaut32/liboleaut32.$(IMPLIBEXT) \
+ olecli32/libolecli32.$(IMPLIBEXT) \
+ oledlg/liboledlg.$(IMPLIBEXT) \
+ olepro32/libolepro32.$(IMPLIBEXT) \
+ olesvr32/libolesvr32.$(IMPLIBEXT) \
+ opengl32/libopengl32.$(IMPLIBEXT) \
+ pdh/libpdh.$(IMPLIBEXT) \
+ powrprof/libpowrprof.$(IMPLIBEXT) \
+ psapi/libpsapi.$(IMPLIBEXT) \
+ quartz/libquartz.$(IMPLIBEXT) \
+ rasapi32/librasapi32.$(IMPLIBEXT) \
+ rasdlg/librasdlg.$(IMPLIBEXT) \
+ resutils/libresutils.$(IMPLIBEXT) \
+ riched20/libriched20.$(IMPLIBEXT) \
+ rpcrt4/librpcrt4.$(IMPLIBEXT) \
+ rsaenh/librsaenh.$(IMPLIBEXT) \
+ rtutils/librtutils.$(IMPLIBEXT) \
+ secur32/libsecur32.$(IMPLIBEXT) \
+ sensapi/libsensapi.$(IMPLIBEXT) \
+ serialui/libserialui.$(IMPLIBEXT) \
+ setupapi/libsetupapi.$(IMPLIBEXT) \
+ sfc/libsfc.$(IMPLIBEXT) \
+ sfc_os/libsfc_os.$(IMPLIBEXT) \
+ shdocvw/libshdocvw.$(IMPLIBEXT) \
+ shell32/libshell32.$(IMPLIBEXT) \
+ shfolder/libshfolder.$(IMPLIBEXT) \
+ shlwapi/libshlwapi.$(IMPLIBEXT) \
+ slc/libslc.$(IMPLIBEXT) \
+ snmpapi/libsnmpapi.$(IMPLIBEXT) \
+ spoolss/libspoolss.$(IMPLIBEXT) \
+ sti/libsti.$(IMPLIBEXT) \
+ tapi32/libtapi32.$(IMPLIBEXT) \
+ unicows/libunicows.$(IMPLIBEXT) \
+ url/liburl.$(IMPLIBEXT) \
+ urlmon/liburlmon.$(IMPLIBEXT) \
+ user32/libuser32.$(IMPLIBEXT) \
+ userenv/libuserenv.$(IMPLIBEXT) \
+ usp10/libusp10.$(IMPLIBEXT) \
+ uxtheme/libuxtheme.$(IMPLIBEXT) \
+ vdmdbg/libvdmdbg.$(IMPLIBEXT) \
+ version/libversion.$(IMPLIBEXT) \
+ windowscodecs/libwindowscodecs.$(IMPLIBEXT) \
+ wined3d/libwined3d.$(IMPLIBEXT) \
+ winhttp/libwinhttp.$(IMPLIBEXT) \
+ wininet/libwininet.$(IMPLIBEXT) \
+ winmm/libwinmm.$(IMPLIBEXT) \
+ winnls32/libwinnls32.$(IMPLIBEXT) \
+ winscard/libwinscard.$(IMPLIBEXT) \
+ winspool.drv/libwinspool.$(IMPLIBEXT) \
+ wintab32/libwintab32.$(IMPLIBEXT) \
+ wintrust/libwintrust.$(IMPLIBEXT) \
+ wldap32/libwldap32.$(IMPLIBEXT) \
+ wnaspi32/libwnaspi32.$(IMPLIBEXT) \
+ wow32/libwow32.$(IMPLIBEXT) \
+ ws2_32/libws2_32.$(IMPLIBEXT) \
+ wsock32/libwsock32.$(IMPLIBEXT) \
+ wtsapi32/libwtsapi32.$(IMPLIBEXT) \
+ xinput1_3/libxinput.$(IMPLIBEXT)
+
+CROSS_IMPLIBS = \
+ libd3dx9.a \
+ libwinspool.a \
+ libxinput.a \
+ aclui/libaclui.a \
+ activeds/libactiveds.a \
+ advapi32/libadvapi32.a \
+ advpack/libadvpack.a \
+ atl/libatl.a \
+ avicap32/libavicap32.a \
+ avifil32/libavifil32.a \
+ avrt/libavrt.a \
+ cabinet/libcabinet.a \
+ capi2032/libcapi2032.a \
+ cards/libcards.a \
+ cfgmgr32/libcfgmgr32.a \
+ clusapi/libclusapi.a \
+ comctl32/libcomctl32.a \
+ comdlg32/libcomdlg32.a \
+ compstui/libcompstui.a \
+ credui/libcredui.a \
+ crtdll/libcrtdll.a \
+ crypt32/libcrypt32.a \
+ cryptdll/libcryptdll.a \
+ cryptnet/libcryptnet.a \
+ cryptui/libcryptui.a \
+ ctl3d32/libctl3d32.a \
+ d3d10/libd3d10.a \
+ d3d10core/libd3d10core.a \
+ d3d8/libd3d8.a \
+ d3d9/libd3d9.a \
+ d3dim/libd3dim.a \
+ d3drm/libd3drm.a \
+ d3dx9_36/libd3dx9.a \
+ d3dxof/libd3dxof.a \
+ dbghelp/libdbghelp.a \
+ dciman32/libdciman32.a \
+ ddraw/libddraw.a \
+ dinput8/libdinput8.a \
+ dmusic32/libdmusic32.a \
+ dnsapi/libdnsapi.a \
+ dplay/libdplay.a \
+ dplayx/libdplayx.a \
+ dpnet/libdpnet.a \
+ dsound/libdsound.a \
+ dwmapi/libdwmapi.a \
+ dxgi/libdxgi.a \
+ gdi32/libgdi32.a \
+ gdiplus/libgdiplus.a \
+ glu32/libglu32.a \
+ hid/libhid.a \
+ hlink/libhlink.a \
+ imagehlp/libimagehlp.a \
+ imm32/libimm32.a \
+ inetcomm/libinetcomm.a \
+ iphlpapi/libiphlpapi.a \
+ kernel32/libkernel32.a \
+ loadperf/libloadperf.a \
+ lz32/liblz32.a \
+ mapi32/libmapi32.a \
+ mlang/libmlang.a \
+ mpr/libmpr.a \
+ mprapi/libmprapi.a \
+ msacm32/libmsacm32.a \
+ mscms/libmscms.a \
+ msdmo/libmsdmo.a \
+ mshtml/libmshtml.a \
+ msi/libmsi.a \
+ msimg32/libmsimg32.a \
+ msvcr71/libmsvcr71.a \
+ msvcrt/libmsvcrt.a \
+ msvcrt20/libmsvcrt20.a \
+ msvcrt40/libmsvcrt40.a \
+ msvcrtd/libmsvcrtd.a \
+ msvfw32/libmsvfw32.a \
+ mswsock/libmswsock.a \
+ nddeapi/libnddeapi.a \
+ netapi32/libnetapi32.a \
+ newdev/libnewdev.a \
+ ntdll/libntdll.a \
+ ntdsapi/libntdsapi.a \
+ ntoskrnl.exe/libntoskrnl.exe.a \
+ odbc32/libodbc32.a \
+ odbccp32/libodbccp32.a \
+ ole32/libole32.a \
+ oleacc/liboleacc.a \
+ oleaut32/liboleaut32.a \
+ olecli32/libolecli32.a \
+ oledlg/liboledlg.a \
+ olepro32/libolepro32.a \
+ olesvr32/libolesvr32.a \
+ opengl32/libopengl32.a \
+ pdh/libpdh.a \
+ powrprof/libpowrprof.a \
+ psapi/libpsapi.a \
+ quartz/libquartz.a \
+ rasapi32/librasapi32.a \
+ rasdlg/librasdlg.a \
+ resutils/libresutils.a \
+ riched20/libriched20.a \
+ rpcrt4/librpcrt4.a \
+ rsaenh/librsaenh.a \
+ rtutils/librtutils.a \
+ secur32/libsecur32.a \
+ sensapi/libsensapi.a \
+ serialui/libserialui.a \
+ setupapi/libsetupapi.a \
+ sfc/libsfc.a \
+ sfc_os/libsfc_os.a \
+ shdocvw/libshdocvw.a \
+ shell32/libshell32.a \
+ shfolder/libshfolder.a \
+ shlwapi/libshlwapi.a \
+ slc/libslc.a \
+ snmpapi/libsnmpapi.a \
+ spoolss/libspoolss.a \
+ sti/libsti.a \
+ tapi32/libtapi32.a \
+ unicows/libunicows.a \
+ url/liburl.a \
+ urlmon/liburlmon.a \
+ user32/libuser32.a \
+ userenv/libuserenv.a \
+ usp10/libusp10.a \
+ uxtheme/libuxtheme.a \
+ vdmdbg/libvdmdbg.a \
+ version/libversion.a \
+ windowscodecs/libwindowscodecs.a \
+ wined3d/libwined3d.a \
+ winhttp/libwinhttp.a \
+ wininet/libwininet.a \
+ winmm/libwinmm.a \
+ winnls32/libwinnls32.a \
+ winscard/libwinscard.a \
+ winspool.drv/libwinspool.a \
+ wintab32/libwintab32.a \
+ wintrust/libwintrust.a \
+ wldap32/libwldap32.a \
+ wnaspi32/libwnaspi32.a \
+ wow32/libwow32.a \
+ ws2_32/libws2_32.a \
+ wsock32/libwsock32.a \
+ wtsapi32/libwtsapi32.a \
+ xinput1_3/libxinput.a
+
+$(TESTSUBDIRS:%=%/__crosstest__): $(CROSS_IMPLIBS)
+
+implib: $(IMPORT_LIBS)
+
+testsubdirs: $(TESTSUBDIRS)
+
+.PHONY: implib testsubdirs
+
+aclui/libaclui.def aclui/libaclui.a: aclui/aclui.spec $(WINEBUILD)
+ @cd aclui && $(MAKE) `basename $@`
+
+activeds/libactiveds.def activeds/libactiveds.a: activeds/activeds.spec $(WINEBUILD)
+ @cd activeds && $(MAKE) `basename $@`
+
+advapi32/libadvapi32.def advapi32/libadvapi32.a: advapi32/advapi32.spec $(WINEBUILD)
+ @cd advapi32 && $(MAKE) `basename $@`
+
+advpack/libadvpack.def advpack/libadvpack.a: advpack/advpack.spec $(WINEBUILD)
+ @cd advpack && $(MAKE) `basename $@`
+
+atl/libatl.def atl/libatl.a: atl/atl.spec $(WINEBUILD)
+ @cd atl && $(MAKE) `basename $@`
+
+avicap32/libavicap32.def avicap32/libavicap32.a: avicap32/avicap32.spec $(WINEBUILD)
+ @cd avicap32 && $(MAKE) `basename $@`
+
+avifil32/libavifil32.def avifil32/libavifil32.a: avifil32/avifil32.spec $(WINEBUILD)
+ @cd avifil32 && $(MAKE) `basename $@`
+
+avrt/libavrt.def avrt/libavrt.a: avrt/avrt.spec $(WINEBUILD)
+ @cd avrt && $(MAKE) `basename $@`
+
+cabinet/libcabinet.def cabinet/libcabinet.a: cabinet/cabinet.spec $(WINEBUILD)
+ @cd cabinet && $(MAKE) `basename $@`
+
+capi2032/libcapi2032.def capi2032/libcapi2032.a: capi2032/capi2032.spec $(WINEBUILD)
+ @cd capi2032 && $(MAKE) `basename $@`
+
+cards/libcards.def cards/libcards.a: cards/cards.spec $(WINEBUILD)
+ @cd cards && $(MAKE) `basename $@`
+
+cfgmgr32/libcfgmgr32.def cfgmgr32/libcfgmgr32.a: cfgmgr32/cfgmgr32.spec $(WINEBUILD)
+ @cd cfgmgr32 && $(MAKE) `basename $@`
+
+clusapi/libclusapi.def clusapi/libclusapi.a: clusapi/clusapi.spec $(WINEBUILD)
+ @cd clusapi && $(MAKE) `basename $@`
+
+comctl32/libcomctl32.def comctl32/libcomctl32.a: comctl32/comctl32.spec $(WINEBUILD)
+ @cd comctl32 && $(MAKE) `basename $@`
+
+comdlg32/libcomdlg32.def comdlg32/libcomdlg32.a: comdlg32/comdlg32.spec $(WINEBUILD)
+ @cd comdlg32 && $(MAKE) `basename $@`
+
+compstui/libcompstui.def compstui/libcompstui.a: compstui/compstui.spec $(WINEBUILD)
+ @cd compstui && $(MAKE) `basename $@`
+
+credui/libcredui.def credui/libcredui.a: credui/credui.spec $(WINEBUILD)
+ @cd credui && $(MAKE) `basename $@`
+
+crtdll/libcrtdll.def crtdll/libcrtdll.a: crtdll/crtdll.spec $(WINEBUILD)
+ @cd crtdll && $(MAKE) `basename $@`
+
+crypt32/libcrypt32.def crypt32/libcrypt32.a: crypt32/crypt32.spec $(WINEBUILD)
+ @cd crypt32 && $(MAKE) `basename $@`
+
+cryptdll/libcryptdll.def cryptdll/libcryptdll.a: cryptdll/cryptdll.spec $(WINEBUILD)
+ @cd cryptdll && $(MAKE) `basename $@`
+
+cryptnet/libcryptnet.def cryptnet/libcryptnet.a: cryptnet/cryptnet.spec $(WINEBUILD)
+ @cd cryptnet && $(MAKE) `basename $@`
+
+cryptui/libcryptui.def cryptui/libcryptui.a: cryptui/cryptui.spec $(WINEBUILD)
+ @cd cryptui && $(MAKE) `basename $@`
+
+ctl3d32/libctl3d32.def ctl3d32/libctl3d32.a: ctl3d32/ctl3d32.spec $(WINEBUILD)
+ @cd ctl3d32 && $(MAKE) `basename $@`
+
+d3d10/libd3d10.def d3d10/libd3d10.a: d3d10/d3d10.spec $(WINEBUILD)
+ @cd d3d10 && $(MAKE) `basename $@`
+
+d3d10core/libd3d10core.def d3d10core/libd3d10core.a: d3d10core/d3d10core.spec $(WINEBUILD)
+ @cd d3d10core && $(MAKE) `basename $@`
+
+d3d8/libd3d8.def d3d8/libd3d8.a: d3d8/d3d8.spec $(WINEBUILD)
+ @cd d3d8 && $(MAKE) `basename $@`
+
+d3d9/libd3d9.def d3d9/libd3d9.a: d3d9/d3d9.spec $(WINEBUILD)
+ @cd d3d9 && $(MAKE) `basename $@`
+
+d3dim/libd3dim.def d3dim/libd3dim.a: d3dim/d3dim.spec $(WINEBUILD)
+ @cd d3dim && $(MAKE) `basename $@`
+
+d3drm/libd3drm.def d3drm/libd3drm.a: d3drm/d3drm.spec $(WINEBUILD)
+ @cd d3drm && $(MAKE) `basename $@`
+
+d3dx9_36/libd3dx9.def d3dx9_36/libd3dx9.a: d3dx9_36/d3dx9_36.spec $(WINEBUILD)
+ @cd d3dx9_36 && $(MAKE) `basename $@`
+
+d3dxof/libd3dxof.def d3dxof/libd3dxof.a: d3dxof/d3dxof.spec $(WINEBUILD)
+ @cd d3dxof && $(MAKE) `basename $@`
+
+dbghelp/libdbghelp.def dbghelp/libdbghelp.a: dbghelp/dbghelp.spec $(WINEBUILD)
+ @cd dbghelp && $(MAKE) `basename $@`
+
+dciman32/libdciman32.def dciman32/libdciman32.a: dciman32/dciman32.spec $(WINEBUILD)
+ @cd dciman32 && $(MAKE) `basename $@`
+
+ddraw/libddraw.def ddraw/libddraw.a: ddraw/ddraw.spec $(WINEBUILD)
+ @cd ddraw && $(MAKE) `basename $@`
+
+dinput/libdinput.def: dinput/dinput.spec $(WINEBUILD)
+ @cd dinput && $(MAKE) libdinput.def
+
+dinput/libdinput.$(STATIC_IMPLIBEXT): dummy
+ @cd dinput && $(MAKE) libdinput.$(STATIC_IMPLIBEXT)
+
+dinput8/libdinput8.def dinput8/libdinput8.a: dinput8/dinput8.spec $(WINEBUILD)
+ @cd dinput8 && $(MAKE) `basename $@`
+
+dmusic32/libdmusic32.def dmusic32/libdmusic32.a: dmusic32/dmusic32.spec $(WINEBUILD)
+ @cd dmusic32 && $(MAKE) `basename $@`
+
+dnsapi/libdnsapi.def dnsapi/libdnsapi.a: dnsapi/dnsapi.spec $(WINEBUILD)
+ @cd dnsapi && $(MAKE) `basename $@`
+
+dplay/libdplay.def dplay/libdplay.a: dplay/dplay.spec $(WINEBUILD)
+ @cd dplay && $(MAKE) `basename $@`
+
+dplayx/libdplayx.def dplayx/libdplayx.a: dplayx/dplayx.spec $(WINEBUILD)
+ @cd dplayx && $(MAKE) `basename $@`
+
+dpnet/libdpnet.def dpnet/libdpnet.a: dpnet/dpnet.spec $(WINEBUILD)
+ @cd dpnet && $(MAKE) `basename $@`
+
+dsound/libdsound.def dsound/libdsound.a: dsound/dsound.spec $(WINEBUILD)
+ @cd dsound && $(MAKE) `basename $@`
+
+dwmapi/libdwmapi.def dwmapi/libdwmapi.a: dwmapi/dwmapi.spec $(WINEBUILD)
+ @cd dwmapi && $(MAKE) `basename $@`
+
+dxgi/libdxgi.def dxgi/libdxgi.a: dxgi/dxgi.spec $(WINEBUILD)
+ @cd dxgi && $(MAKE) `basename $@`
+
+gdi32/libgdi32.def gdi32/libgdi32.a: gdi32/gdi32.spec $(WINEBUILD)
+ @cd gdi32 && $(MAKE) `basename $@`
+
+gdiplus/libgdiplus.def gdiplus/libgdiplus.a: gdiplus/gdiplus.spec $(WINEBUILD)
+ @cd gdiplus && $(MAKE) `basename $@`
+
+glu32/libglu32.def glu32/libglu32.a: glu32/glu32.spec $(WINEBUILD)
+ @cd glu32 && $(MAKE) `basename $@`
+
+hid/libhid.def hid/libhid.a: hid/hid.spec $(WINEBUILD)
+ @cd hid && $(MAKE) `basename $@`
+
+hlink/libhlink.def hlink/libhlink.a: hlink/hlink.spec $(WINEBUILD)
+ @cd hlink && $(MAKE) `basename $@`
+
+imagehlp/libimagehlp.def imagehlp/libimagehlp.a: imagehlp/imagehlp.spec $(WINEBUILD)
+ @cd imagehlp && $(MAKE) `basename $@`
+
+imm32/libimm32.def imm32/libimm32.a: imm32/imm32.spec $(WINEBUILD)
+ @cd imm32 && $(MAKE) `basename $@`
+
+inetcomm/libinetcomm.def inetcomm/libinetcomm.a: inetcomm/inetcomm.spec $(WINEBUILD)
+ @cd inetcomm && $(MAKE) `basename $@`
+
+iphlpapi/libiphlpapi.def iphlpapi/libiphlpapi.a: iphlpapi/iphlpapi.spec $(WINEBUILD)
+ @cd iphlpapi && $(MAKE) `basename $@`
+
+kernel32/libkernel32.def kernel32/libkernel32.a: kernel32/kernel32.spec $(WINEBUILD)
+ @cd kernel32 && $(MAKE) `basename $@`
+
+loadperf/libloadperf.def loadperf/libloadperf.a: loadperf/loadperf.spec $(WINEBUILD)
+ @cd loadperf && $(MAKE) `basename $@`
+
+lz32/liblz32.def lz32/liblz32.a: lz32/lz32.spec $(WINEBUILD)
+ @cd lz32 && $(MAKE) `basename $@`
+
+mapi32/libmapi32.def mapi32/libmapi32.a: mapi32/mapi32.spec $(WINEBUILD)
+ @cd mapi32 && $(MAKE) `basename $@`
+
+mlang/libmlang.def mlang/libmlang.a: mlang/mlang.spec $(WINEBUILD)
+ @cd mlang && $(MAKE) `basename $@`
+
+mpr/libmpr.def mpr/libmpr.a: mpr/mpr.spec $(WINEBUILD)
+ @cd mpr && $(MAKE) `basename $@`
+
+mprapi/libmprapi.def mprapi/libmprapi.a: mprapi/mprapi.spec $(WINEBUILD)
+ @cd mprapi && $(MAKE) `basename $@`
+
+msacm32/libmsacm32.def msacm32/libmsacm32.a: msacm32/msacm32.spec $(WINEBUILD)
+ @cd msacm32 && $(MAKE) `basename $@`
+
+mscms/libmscms.def mscms/libmscms.a: mscms/mscms.spec $(WINEBUILD)
+ @cd mscms && $(MAKE) `basename $@`
+
+msdmo/libmsdmo.def msdmo/libmsdmo.a: msdmo/msdmo.spec $(WINEBUILD)
+ @cd msdmo && $(MAKE) `basename $@`
+
+mshtml/libmshtml.def mshtml/libmshtml.a: mshtml/mshtml.spec $(WINEBUILD)
+ @cd mshtml && $(MAKE) `basename $@`
+
+msi/libmsi.def msi/libmsi.a: msi/msi.spec $(WINEBUILD)
+ @cd msi && $(MAKE) `basename $@`
+
+msimg32/libmsimg32.def msimg32/libmsimg32.a: msimg32/msimg32.spec $(WINEBUILD)
+ @cd msimg32 && $(MAKE) `basename $@`
+
+msvcr71/libmsvcr71.def msvcr71/libmsvcr71.a: msvcr71/msvcr71.spec $(WINEBUILD)
+ @cd msvcr71 && $(MAKE) `basename $@`
+
+msvcrt/libmsvcrt.def msvcrt/libmsvcrt.a: msvcrt/msvcrt.spec $(WINEBUILD)
+ @cd msvcrt && $(MAKE) `basename $@`
+
+msvcrt20/libmsvcrt20.def msvcrt20/libmsvcrt20.a: msvcrt20/msvcrt20.spec $(WINEBUILD)
+ @cd msvcrt20 && $(MAKE) `basename $@`
+
+msvcrt40/libmsvcrt40.def msvcrt40/libmsvcrt40.a: msvcrt40/msvcrt40.spec $(WINEBUILD)
+ @cd msvcrt40 && $(MAKE) `basename $@`
+
+msvcrtd/libmsvcrtd.def msvcrtd/libmsvcrtd.a: msvcrtd/msvcrtd.spec $(WINEBUILD)
+ @cd msvcrtd && $(MAKE) `basename $@`
+
+msvfw32/libmsvfw32.def msvfw32/libmsvfw32.a: msvfw32/msvfw32.spec $(WINEBUILD)
+ @cd msvfw32 && $(MAKE) `basename $@`
+
+mswsock/libmswsock.def mswsock/libmswsock.a: mswsock/mswsock.spec $(WINEBUILD)
+ @cd mswsock && $(MAKE) `basename $@`
+
+nddeapi/libnddeapi.def nddeapi/libnddeapi.a: nddeapi/nddeapi.spec $(WINEBUILD)
+ @cd nddeapi && $(MAKE) `basename $@`
+
+netapi32/libnetapi32.def netapi32/libnetapi32.a: netapi32/netapi32.spec $(WINEBUILD)
+ @cd netapi32 && $(MAKE) `basename $@`
+
+newdev/libnewdev.def newdev/libnewdev.a: newdev/newdev.spec $(WINEBUILD)
+ @cd newdev && $(MAKE) `basename $@`
+
+ntdll/libntdll.def ntdll/libntdll.a: ntdll/ntdll.spec $(WINEBUILD)
+ @cd ntdll && $(MAKE) `basename $@`
+
+ntdsapi/libntdsapi.def ntdsapi/libntdsapi.a: ntdsapi/ntdsapi.spec $(WINEBUILD)
+ @cd ntdsapi && $(MAKE) `basename $@`
+
+ntoskrnl.exe/libntoskrnl.exe.def ntoskrnl.exe/libntoskrnl.exe.a: ntoskrnl.exe/ntoskrnl.exe.spec $(WINEBUILD)
+ @cd ntoskrnl.exe && $(MAKE) `basename $@`
+
+odbc32/libodbc32.def odbc32/libodbc32.a: odbc32/odbc32.spec $(WINEBUILD)
+ @cd odbc32 && $(MAKE) `basename $@`
+
+odbccp32/libodbccp32.def odbccp32/libodbccp32.a: odbccp32/odbccp32.spec $(WINEBUILD)
+ @cd odbccp32 && $(MAKE) `basename $@`
+
+ole32/libole32.def ole32/libole32.a: ole32/ole32.spec $(WINEBUILD)
+ @cd ole32 && $(MAKE) `basename $@`
+
+oleacc/liboleacc.def oleacc/liboleacc.a: oleacc/oleacc.spec $(WINEBUILD)
+ @cd oleacc && $(MAKE) `basename $@`
+
+oleaut32/liboleaut32.def oleaut32/liboleaut32.a: oleaut32/oleaut32.spec $(WINEBUILD)
+ @cd oleaut32 && $(MAKE) `basename $@`
+
+olecli32/libolecli32.def olecli32/libolecli32.a: olecli32/olecli32.spec $(WINEBUILD)
+ @cd olecli32 && $(MAKE) `basename $@`
+
+oledlg/liboledlg.def oledlg/liboledlg.a: oledlg/oledlg.spec $(WINEBUILD)
+ @cd oledlg && $(MAKE) `basename $@`
+
+olepro32/libolepro32.def olepro32/libolepro32.a: olepro32/olepro32.spec $(WINEBUILD)
+ @cd olepro32 && $(MAKE) `basename $@`
+
+olesvr32/libolesvr32.def olesvr32/libolesvr32.a: olesvr32/olesvr32.spec $(WINEBUILD)
+ @cd olesvr32 && $(MAKE) `basename $@`
+
+opengl32/libopengl32.def opengl32/libopengl32.a: opengl32/opengl32.spec $(WINEBUILD)
+ @cd opengl32 && $(MAKE) `basename $@`
+
+pdh/libpdh.def pdh/libpdh.a: pdh/pdh.spec $(WINEBUILD)
+ @cd pdh && $(MAKE) `basename $@`
+
+powrprof/libpowrprof.def powrprof/libpowrprof.a: powrprof/powrprof.spec $(WINEBUILD)
+ @cd powrprof && $(MAKE) `basename $@`
+
+psapi/libpsapi.def psapi/libpsapi.a: psapi/psapi.spec $(WINEBUILD)
+ @cd psapi && $(MAKE) `basename $@`
+
+quartz/libquartz.def quartz/libquartz.a: quartz/quartz.spec $(WINEBUILD)
+ @cd quartz && $(MAKE) `basename $@`
+
+rasapi32/librasapi32.def rasapi32/librasapi32.a: rasapi32/rasapi32.spec $(WINEBUILD)
+ @cd rasapi32 && $(MAKE) `basename $@`
+
+rasdlg/librasdlg.def rasdlg/librasdlg.a: rasdlg/rasdlg.spec $(WINEBUILD)
+ @cd rasdlg && $(MAKE) `basename $@`
+
+resutils/libresutils.def resutils/libresutils.a: resutils/resutils.spec $(WINEBUILD)
+ @cd resutils && $(MAKE) `basename $@`
+
+riched20/libriched20.def riched20/libriched20.a: riched20/riched20.spec $(WINEBUILD)
+ @cd riched20 && $(MAKE) `basename $@`
+
+rpcrt4/librpcrt4.def rpcrt4/librpcrt4.a: rpcrt4/rpcrt4.spec $(WINEBUILD)
+ @cd rpcrt4 && $(MAKE) `basename $@`
+
+rsaenh/librsaenh.def rsaenh/librsaenh.a: rsaenh/rsaenh.spec $(WINEBUILD)
+ @cd rsaenh && $(MAKE) `basename $@`
+
+rtutils/librtutils.def rtutils/librtutils.a: rtutils/rtutils.spec $(WINEBUILD)
+ @cd rtutils && $(MAKE) `basename $@`
+
+secur32/libsecur32.def secur32/libsecur32.a: secur32/secur32.spec $(WINEBUILD)
+ @cd secur32 && $(MAKE) `basename $@`
+
+sensapi/libsensapi.def sensapi/libsensapi.a: sensapi/sensapi.spec $(WINEBUILD)
+ @cd sensapi && $(MAKE) `basename $@`
+
+serialui/libserialui.def serialui/libserialui.a: serialui/serialui.spec $(WINEBUILD)
+ @cd serialui && $(MAKE) `basename $@`
+
+setupapi/libsetupapi.def setupapi/libsetupapi.a: setupapi/setupapi.spec $(WINEBUILD)
+ @cd setupapi && $(MAKE) `basename $@`
+
+sfc/libsfc.def sfc/libsfc.a: sfc/sfc.spec $(WINEBUILD)
+ @cd sfc && $(MAKE) `basename $@`
+
+sfc_os/libsfc_os.def sfc_os/libsfc_os.a: sfc_os/sfc_os.spec $(WINEBUILD)
+ @cd sfc_os && $(MAKE) `basename $@`
+
+shdocvw/libshdocvw.def shdocvw/libshdocvw.a: shdocvw/shdocvw.spec $(WINEBUILD)
+ @cd shdocvw && $(MAKE) `basename $@`
+
+shell32/libshell32.def shell32/libshell32.a: shell32/shell32.spec $(WINEBUILD)
+ @cd shell32 && $(MAKE) `basename $@`
+
+shfolder/libshfolder.def shfolder/libshfolder.a: shfolder/shfolder.spec $(WINEBUILD)
+ @cd shfolder && $(MAKE) `basename $@`
+
+shlwapi/libshlwapi.def shlwapi/libshlwapi.a: shlwapi/shlwapi.spec $(WINEBUILD)
+ @cd shlwapi && $(MAKE) `basename $@`
+
+slc/libslc.def slc/libslc.a: slc/slc.spec $(WINEBUILD)
+ @cd slc && $(MAKE) `basename $@`
+
+snmpapi/libsnmpapi.def snmpapi/libsnmpapi.a: snmpapi/snmpapi.spec $(WINEBUILD)
+ @cd snmpapi && $(MAKE) `basename $@`
+
+spoolss/libspoolss.def spoolss/libspoolss.a: spoolss/spoolss.spec $(WINEBUILD)
+ @cd spoolss && $(MAKE) `basename $@`
+
+sti/libsti.def sti/libsti.a: sti/sti.spec $(WINEBUILD)
+ @cd sti && $(MAKE) `basename $@`
+
+tapi32/libtapi32.def tapi32/libtapi32.a: tapi32/tapi32.spec $(WINEBUILD)
+ @cd tapi32 && $(MAKE) `basename $@`
+
+unicows/libunicows.def unicows/libunicows.a: unicows/unicows.spec $(WINEBUILD)
+ @cd unicows && $(MAKE) `basename $@`
+
+url/liburl.def url/liburl.a: url/url.spec $(WINEBUILD)
+ @cd url && $(MAKE) `basename $@`
+
+urlmon/liburlmon.def urlmon/liburlmon.a: urlmon/urlmon.spec $(WINEBUILD)
+ @cd urlmon && $(MAKE) `basename $@`
+
+user32/libuser32.def user32/libuser32.a: user32/user32.spec $(WINEBUILD)
+ @cd user32 && $(MAKE) `basename $@`
+
+userenv/libuserenv.def userenv/libuserenv.a: userenv/userenv.spec $(WINEBUILD)
+ @cd userenv && $(MAKE) `basename $@`
+
+usp10/libusp10.def usp10/libusp10.a: usp10/usp10.spec $(WINEBUILD)
+ @cd usp10 && $(MAKE) `basename $@`
+
+uxtheme/libuxtheme.def uxtheme/libuxtheme.a: uxtheme/uxtheme.spec $(WINEBUILD)
+ @cd uxtheme && $(MAKE) `basename $@`
+
+vdmdbg/libvdmdbg.def vdmdbg/libvdmdbg.a: vdmdbg/vdmdbg.spec $(WINEBUILD)
+ @cd vdmdbg && $(MAKE) `basename $@`
+
+version/libversion.def version/libversion.a: version/version.spec $(WINEBUILD)
+ @cd version && $(MAKE) `basename $@`
+
+windowscodecs/libwindowscodecs.def windowscodecs/libwindowscodecs.a: windowscodecs/windowscodecs.spec $(WINEBUILD)
+ @cd windowscodecs && $(MAKE) `basename $@`
+
+wined3d/libwined3d.def wined3d/libwined3d.a: wined3d/wined3d.spec $(WINEBUILD)
+ @cd wined3d && $(MAKE) `basename $@`
+
+winhttp/libwinhttp.def winhttp/libwinhttp.a: winhttp/winhttp.spec $(WINEBUILD)
+ @cd winhttp && $(MAKE) `basename $@`
+
+wininet/libwininet.def wininet/libwininet.a: wininet/wininet.spec $(WINEBUILD)
+ @cd wininet && $(MAKE) `basename $@`
+
+winmm/libwinmm.def winmm/libwinmm.a: winmm/winmm.spec $(WINEBUILD)
+ @cd winmm && $(MAKE) `basename $@`
+
+winnls32/libwinnls32.def winnls32/libwinnls32.a: winnls32/winnls32.spec $(WINEBUILD)
+ @cd winnls32 && $(MAKE) `basename $@`
+
+winscard/libwinscard.def winscard/libwinscard.a: winscard/winscard.spec $(WINEBUILD)
+ @cd winscard && $(MAKE) `basename $@`
+
+winspool.drv/libwinspool.def winspool.drv/libwinspool.a: winspool.drv/winspool.drv.spec $(WINEBUILD)
+ @cd winspool.drv && $(MAKE) `basename $@`
+
+wintab32/libwintab32.def wintab32/libwintab32.a: wintab32/wintab32.spec $(WINEBUILD)
+ @cd wintab32 && $(MAKE) `basename $@`
+
+wintrust/libwintrust.def wintrust/libwintrust.a: wintrust/wintrust.spec $(WINEBUILD)
+ @cd wintrust && $(MAKE) `basename $@`
+
+wldap32/libwldap32.def wldap32/libwldap32.a: wldap32/wldap32.spec $(WINEBUILD)
+ @cd wldap32 && $(MAKE) `basename $@`
+
+wnaspi32/libwnaspi32.def wnaspi32/libwnaspi32.a: wnaspi32/wnaspi32.spec $(WINEBUILD)
+ @cd wnaspi32 && $(MAKE) `basename $@`
+
+wow32/libwow32.def wow32/libwow32.a: wow32/wow32.spec $(WINEBUILD)
+ @cd wow32 && $(MAKE) `basename $@`
+
+ws2_32/libws2_32.def ws2_32/libws2_32.a: ws2_32/ws2_32.spec $(WINEBUILD)
+ @cd ws2_32 && $(MAKE) `basename $@`
+
+wsock32/libwsock32.def wsock32/libwsock32.a: wsock32/wsock32.spec $(WINEBUILD)
+ @cd wsock32 && $(MAKE) `basename $@`
+
+wtsapi32/libwtsapi32.def wtsapi32/libwtsapi32.a: wtsapi32/wtsapi32.spec $(WINEBUILD)
+ @cd wtsapi32 && $(MAKE) `basename $@`
+
+xinput1_3/libxinput.def xinput1_3/libxinput.a: xinput1_3/xinput1_3.spec $(WINEBUILD)
+ @cd xinput1_3 && $(MAKE) `basename $@`
+
+libd3dx9.a: d3dx9_36/libd3dx9.a
+ $(RM) $@ && $(LN_S) d3dx9_36/libd3dx9.a $@
+
+libd3dx9.def: d3dx9_36/libd3dx9.def
+ $(RM) $@ && $(LN_S) d3dx9_36/libd3dx9.def $@
+
+libwinspool.a: winspool.drv/libwinspool.a
+ $(RM) $@ && $(LN_S) winspool.drv/libwinspool.a $@
+
+libwinspool.def: winspool.drv/libwinspool.def
+ $(RM) $@ && $(LN_S) winspool.drv/libwinspool.def $@
+
+libxinput.a: xinput1_3/libxinput.a
+ $(RM) $@ && $(LN_S) xinput1_3/libxinput.a $@
+
+libxinput.def: xinput1_3/libxinput.def
+ $(RM) $@ && $(LN_S) xinput1_3/libxinput.def $@
+
+$(BUILDSUBDIRS): $(IMPORT_LIBS)
+$(INSTALLSUBDIRS:%=%/__install__) $(INSTALLSUBDIRS:%=%/__install-lib__): $(IMPORT_LIBS)
+
+# Map library name to the corresponding directory
+
+adsiid/libadsiid.a: adsiid
+dxerr8/libdxerr8.a: dxerr8
+dxerr9/libdxerr9.a: dxerr9
+dxguid/libdxguid.a: dxguid
+strmiids/libstrmiids.a: strmiids
+uuid/libuuid.a: uuid
+winecrt0/libwinecrt0.a: winecrt0
+
+# Misc rules
+
+.PHONY: $(WIN16_FILES:%=__install__/%)
+
+WIN16_INSTALL = $(WIN16_FILES:%=__install__/%)
+
+$(WIN16_FILES:%=__install__/%): $(WIN16_FILES) $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_DATA) `basename $@` $(DESTDIR)$(dlldir)/`basename $@`
+
+install install-lib:: $(WIN16_INSTALL)
+
+uninstall::
+ -cd $(DESTDIR)$(dlldir) && $(RM) $(WIN16_FILES)
+ -rmdir $(DESTDIR)$(fakedlldir) $(DESTDIR)$(dlldir)
+
+clean::
+ $(RM) $(IMPORT_SYMLINKS) $(WIN16_FILES)
diff -rupN wine-1.5.19/dlls/ntdll/file.c wine-silverlight-1.5.19/dlls/ntdll/file.c
--- wine-1.5.19/dlls/ntdll/file.c 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/dlls/ntdll/file.c 2012-12-20 18:16:39.456236619 -0800
@@ -93,6 +93,81 @@ mode_t FILE_umask = 0;
#define SECS_1601_TO_1970 ((369 * 365 + 89) * (ULONGLONG)SECSPERDAY)
+static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATTRIBUTES attr,
+ PIO_STATUS_BLOCK io, PLARGE_INTEGER alloc_size,
+ ULONG attributes, ULONG sharing, ULONG disposition,
+ ULONG options, PVOID ea_buffer, ULONG ea_length );
+
+struct security_descriptor *FILE_get_parent_sd(UNICODE_STRING *filenameW)
+{
+ SECURITY_INFORMATION info = OWNER_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION
+ |DACL_SECURITY_INFORMATION|SACL_SECURITY_INFORMATION;
+ PSECURITY_DESCRIPTOR parentsd = NULL;
+ ACL_SIZE_INFORMATION acl_size;
+ BOOLEAN present, defaulted;
+ WCHAR *p, parent[MAX_PATH];
+ OBJECT_ATTRIBUTES pattr;
+ UNICODE_STRING parentW;
+ IO_STATUS_BLOCK io;
+ NTSTATUS status;
+ HANDLE hparent;
+ ULONG n1, n2;
+ PACL pDacl;
+ int i;
+
+ parentW.Buffer = parent;
+ parentW.Length = filenameW->Length;
+ memcpy(parentW.Buffer, filenameW->Buffer, filenameW->Length);
+ if ((p = strrchrW(parent, '\\')) != NULL)
+ {
+ p[0] = 0;
+ parentW.Length = (p-parent)*sizeof(WCHAR);
+ }
+ memset(&pattr, 0x0, sizeof(pattr));
+ pattr.Length = sizeof(pattr);
+ pattr.Attributes = OBJ_CASE_INSENSITIVE;
+ pattr.ObjectName = &parentW;
+ status = FILE_CreateFile( &hparent, READ_CONTROL|ACCESS_SYSTEM_SECURITY, &pattr, &io, NULL,
+ FILE_FLAG_BACKUP_SEMANTICS,
+ FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, FILE_OPEN,
+ FILE_OPEN_FOR_BACKUP_INTENT, NULL, 0 );
+ if (status == STATUS_SUCCESS)
+ status = NtQuerySecurityObject( hparent, info, NULL, 0, &n1 );
+ if (status == STATUS_BUFFER_TOO_SMALL && (parentsd = RtlAllocateHeap( GetProcessHeap(), 0, n1 )) != NULL)
+ status = NtQuerySecurityObject( hparent, info, parentsd, n1, &n2 );
+ if (status == STATUS_SUCCESS)
+ status = NtQuerySecurityObject( hparent, info, parentsd, n1, &n2 );
+ if (hparent != INVALID_HANDLE_VALUE)
+ NtClose( hparent );
+ if (status != STATUS_SUCCESS) return NULL;
+ status = RtlGetDaclSecurityDescriptor(parentsd, &present, &pDacl, &defaulted);
+ if (status != STATUS_SUCCESS || !present) return NULL;
+ status = RtlQueryInformationAcl(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+ if (status != STATUS_SUCCESS) return NULL;
+
+ for (i=acl_size.AceCount-1; i>=0; i--)
+ {
+ DWORD inheritance_mask = INHERIT_ONLY_ACE|OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE;
+ ACE_HEADER *ace;
+
+ status = RtlGetAce(pDacl, i, (VOID **)&ace);
+ if (status != STATUS_SUCCESS || !(ace->AceFlags & inheritance_mask))
+ {
+ RtlDeleteAce(pDacl, i);
+ acl_size.AceCount--;
+ }
+ else
+ ace->AceFlags = (ace->AceFlags & ~inheritance_mask) | INHERITED_ACE;
+ }
+
+ if (!acl_size.AceCount)
+ {
+ return NULL;
+ }
+ return parentsd;
+}
+
+
/**************************************************************************
* FILE_CreateFile (internal)
* Open a file.
@@ -151,10 +226,18 @@ static NTSTATUS FILE_CreateFile( PHANDLE
{
struct security_descriptor *sd;
struct object_attributes objattr;
+ PSECURITY_DESCRIPTOR parentsd = NULL, psd;
objattr.rootdir = wine_server_obj_handle( attr->RootDirectory );
objattr.name_len = 0;
- io->u.Status = NTDLL_create_struct_sd( attr->SecurityDescriptor, &sd, &objattr.sd_len );
+ psd = attr->SecurityDescriptor;
+ if (!psd && (disposition == FILE_CREATE||disposition == FILE_OVERWRITE_IF))
+ parentsd = FILE_get_parent_sd( attr->ObjectName );
+ if (parentsd)
+ psd = parentsd;
+ io->u.Status = NTDLL_create_struct_sd( psd, &sd, &objattr.sd_len );
+ if (parentsd)
+ RtlFreeHeap( GetProcessHeap(), 0, parentsd );
if (io->u.Status != STATUS_SUCCESS)
{
RtlFreeAnsiString( &unix_name );
diff -rupN wine-1.5.19/dlls/user32/message.c wine-silverlight-1.5.19/dlls/user32/message.c
--- wine-1.5.19/dlls/user32/message.c 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/dlls/user32/message.c 2012-12-20 18:16:39.332911445 -0800
@@ -4371,12 +4371,17 @@ UINT_PTR WINAPI SetTimer( HWND hwnd, UIN
if (proc) winproc = WINPROC_AllocProc( (WNDPROC)proc, FALSE );
+ if (timeout < USER_TIMER_MINIMUM)
+ timeout = USER_TIMER_MINIMUM;
+ else if (timeout > USER_TIMER_MAXIMUM)
+ timeout = USER_TIMER_MAXIMUM;
+
SERVER_START_REQ( set_win_timer )
{
req->win = wine_server_user_handle( hwnd );
req->msg = WM_TIMER;
req->id = id;
- req->rate = max( timeout, SYS_TIMER_RATE );
+ req->rate = timeout;
req->lparam = (ULONG_PTR)winproc;
if (!wine_server_call_err( req ))
{
diff -rupN wine-1.5.19/dlls/winecoreaudio.drv/Makefile wine-silverlight-1.5.19/dlls/winecoreaudio.drv/Makefile
--- wine-1.5.19/dlls/winecoreaudio.drv/Makefile 1969-12-31 16:00:00.000000000 -0800
+++ wine-silverlight-1.5.19/dlls/winecoreaudio.drv/Makefile 2012-12-20 18:16:39.399573701 -0800
@@ -0,0 +1,480 @@
+TOPSRCDIR = ../..
+TOPOBJDIR = ../..
+SRCDIR = .
+
+MODULE = winecoreaudio.drv
+IMPORTS = uuid winmm user32 kernel32
+EXTRALIBS =
+
+C_SRCS = \
+ audio.c \
+ audiounit.c \
+ coreaudio.c \
+ coremidi.c \
+ midi.c \
+ mixer.c
+
+# Global rules for building dlls -*-Makefile-*-
+#
+# Each individual makefile should define the following variables:
+# MODULE : name of the main module being built
+# EXTRALIBS : extra libraries to link in (optional)
+# SPEC_SRCS16 : interface definition files for 16-bit dlls (optional)
+#
+# plus all variables required by the global Make.rules.in
+#
+
+DLLFLAGS = -D_REENTRANT -fPIC
+MINGWAR = i586-mingw32msvc-ar
+DEFS = -D__WINESRC__ $(EXTRADEFS)
+BASEMODULE = $(MODULE:%.dll=%)
+MAINSPEC = $(BASEMODULE).spec
+SPEC_DEF = $(BASEMODULE).def
+WIN16_FILES = $(SPEC_SRCS16:.spec=.spec.o) $(C_SRCS16:.c=.o) $(EXTRA_OBJS16)
+ALL_OBJS = $(WIN16_FILES) $(OBJS)
+ALL_LIBS = $(LIBPORT) $(EXTRALIBS) $(LDFLAGS) $(LIBS)
+IMPLIB_OBJS = $(IMPLIB_SRCS:.c=.o)
+IMPORTLIBFILE = $(IMPORTLIB:%=lib%.def)
+STATICIMPLIB = $(IMPORTLIBFILE:.def=.def.a)
+DLL_LDPATH = -L$(DLLDIR) $(DELAYIMPORTS:%=-L$(DLLDIR)/%) $(IMPORTS:%=-L$(DLLDIR)/%)
+INSTALLDIRS = $(DESTDIR)$(dlldir) $(DESTDIR)$(fakedlldir) $(DESTDIR)$(datadir)/wine
+
+# Global rules shared by all makefiles -*-Makefile-*-
+#
+# Each individual makefile must define the following variables:
+# TOPSRCDIR : top-level source directory
+# TOPOBJDIR : top-level object directory
+# SRCDIR : source directory for this module
+# MODULE : name of the module being built
+#
+# Each individual makefile may define the following additional variables:
+# C_SRCS : C sources for the module
+# C_SRCS16 : 16-bit C sources for the module
+# RC_SRCS : resource source files
+# EXTRA_SRCS : extra source files for make depend
+# EXTRA_OBJS : extra object files
+# IMPORTS : dlls to import
+# DELAYIMPORTS : dlls to import in delayed mode
+# SUBDIRS : subdirectories that contain a Makefile
+# EXTRASUBDIRS : subdirectories that do not contain a Makefile
+# INSTALLSUBDIRS : subdirectories to run make install/uninstall into
+# MODCFLAGS : extra CFLAGS for this module
+
+# First some useful definitions
+
+SHELL = /bin/sh
+CC = ccache gcc -m32
+CFLAGS = -g -O2
+CPPFLAGS =
+LIBS =
+BISON = bison
+FLEX = flex
+EXEEXT =
+OBJEXT = o
+LIBEXT = so
+DLLEXT = .so
+TOOLSEXT =
+IMPLIBEXT = def
+LDSHARED = $(CC) -shared $(SONAME:%=-Wl,-soname,%) $(VERSCRIPT:%=-Wl,--version-script=%)
+DLLTOOL = i586-mingw32msvc-dlltool
+DLLWRAP =
+AR = ar
+ARFLAGS = rc
+RANLIB = ranlib
+STRIP = strip
+LN = ln
+LN_S = ln -s
+TOOLSDIR = $(TOPOBJDIR)
+LDFLAGS =
+PRELINK = /usr/sbin/prelink
+RM = rm -f
+MV = mv
+LINT =
+LINTFLAGS =
+FONTFORGE = fontforge
+RSVG = false
+ICOTOOL = icotool
+FAKEEXT = $(DLLEXT:.so=.fake)
+INCLUDES = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL)
+EXTRACFLAGS = -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wstrict-prototypes -Wwrite-strings -Wtype-limits -Wpointer-arith
+ALLCFLAGS = $(INCLUDES) $(DEFS) $(DLLFLAGS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS)
+ALLLINTFLAGS = $(INCLUDES) $(DEFS) $(LINTFLAGS)
+IDLFLAGS = $(INCLUDES) $(DEFS) $(EXTRAIDLFLAGS)
+TARGETFLAGS = -m32
+WINEBUILDFLAGS = $(TARGETFLAGS) $(DLLFLAGS)
+MKINSTALLDIRS= $(TOPSRCDIR)/tools/mkinstalldirs -m 755
+WINAPI_CHECK = $(TOPSRCDIR)/tools/winapi/winapi_check
+WINEWRAPPER = $(TOPSRCDIR)/tools/winewrapper
+C2MAN = $(TOPSRCDIR)/tools/c2man.pl
+RUNTEST = $(TOPSRCDIR)/tools/runtest
+WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT)
+MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
+MAKECTESTS = $(TOOLSDIR)/tools/make_ctests$(TOOLSEXT)
+WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT)
+WMC = $(TOOLSDIR)/tools/wmc/wmc$(TOOLSEXT)
+WIDL = $(TOOLSDIR)/tools/widl/widl$(TOOLSEXT)
+WINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc $(TARGETFLAGS) -B$(TOOLSDIR)/tools/winebuild --sysroot=$(TOPOBJDIR)
+RELPATH = $(TOOLSDIR)/tools/relpath$(TOOLSEXT)
+SFNT2FNT = $(TOOLSDIR)/tools/sfnt2fnt$(TOOLSEXT)
+RC = $(WRC)
+RC16 = $(WRC)
+RCFLAGS = --nostdinc $(INCLUDES) $(DEFS) $(EXTRARCFLAGS)
+RC16FLAGS = -O res16 $(RCFLAGS)
+LDPATH = LD_LIBRARY_PATH="$(TOOLSDIR)/libs/wine:$$LD_LIBRARY_PATH"
+DLLDIR = $(TOPOBJDIR)/dlls
+LIBPORT = $(TOPOBJDIR)/libs/port/libwine_port.a
+LIBWPP = $(TOPOBJDIR)/libs/wpp/libwpp.a
+LIBWINE = -L$(TOPOBJDIR)/libs/wine -lwine
+LDRPATH_INSTALL = -Wl,--rpath,\$$ORIGIN/`$(RELPATH) $(bindir) $(libdir)` -Wl,--enable-new-dtags
+LDRPATH_LOCAL = -Wl,--rpath,\$$ORIGIN/$(TOPOBJDIR)/libs/wine
+
+
+
+# Installation infos
+
+INSTALL = /usr/bin/install -c $(INSTALL_FLAGS)
+INSTALL_PROGRAM = ${INSTALL} $(INSTALL_PROGRAM_FLAGS)
+INSTALL_SCRIPT = ${INSTALL} $(INSTALL_SCRIPT_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644 $(INSTALL_DATA_FLAGS)
+prefix = /usr/local
+exec_prefix = ${prefix}
+bindir = ${exec_prefix}/bin
+libdir = ${exec_prefix}/lib
+datarootdir = ${prefix}/share
+datadir = ${datarootdir}
+infodir = ${datarootdir}/info
+mandir = ${datarootdir}/man
+sysconfdir = ${prefix}/etc
+includedir = ${prefix}/include/wine
+dlldir = ${exec_prefix}/lib/wine
+fakedlldir = $(dlldir)/fakedlls
+prog_manext = 1
+api_manext = 3w
+conf_manext = 5
+CLEAN_FILES = *.o *.a *.so *.ln *.res *.fake *.$(LIBEXT) \\\#*\\\# *~ *% .\\\#* *.bak *.orig *.rej *.flc core
+
+IDL_GEN_C_SRCS = $(IDL_C_SRCS:.idl=_c.c) $(IDL_I_SRCS:.idl=_i.c) \
+ $(IDL_P_SRCS:.idl=_p.c) $(IDL_S_SRCS:.idl=_s.c)
+IDL_GEN_HEADERS = $(IDL_H_SRCS:.idl=.h) $(IDL_C_SRCS:.idl=.h) $(IDL_I_SRCS:.idl=.h) \
+ $(IDL_P_SRCS:.idl=.h) $(IDL_S_SRCS:.idl=.h)
+
+CLEAN_TARGETS = $(IDL_GEN_C_SRCS) $(IDL_GEN_HEADERS) $(IDL_TLB_SRCS:.idl=.tlb) $(IDL_P_SRCS:%=dlldata.c) \
+ $(BISON_SRCS:.y=.tab.c) $(BISON_SRCS:.y=.tab.h) $(LEX_SRCS:.l=.yy.c) $(MC_SRCS:.mc=.mc.rc)
+
+OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(IDL_GEN_C_SRCS:.c=.o) \
+ $(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(EXTRA_OBJS)
+
+LINTS = $(C_SRCS:.c=.ln)
+
+# 'all' target first in case the enclosing Makefile didn't define any target
+
+all:
+
+filter: dummy
+ @$(TOPSRCDIR)/tools/winapi/make_filter --make $(MAKE) all
+
+.PHONY: all filter
+
+# Implicit rules
+
+.SUFFIXES: .mc .rc .mc.rc .res .spec .spec.o .idl .tlb .h .y .l .tab.c .tab.h .yy.c .ok .man.in .man _c.c _i.c _p.c _s.c # .sfd .ttf .svg .ico
+
+.c.o:
+ $(CC) -c $(ALLCFLAGS) -o $@ $<
+
+.y.tab.c:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $@ $<
+
+.y.tab.h:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $*.tab.c -d $<
+
+.l.yy.c:
+ $(FLEX) $(LEXFLAGS) -o$@ $<
+
+.mc.mc.rc:
+ $(LDPATH) $(WMC) -i -U -H /dev/null -o $@ $<
+
+.rc.res:
+ $(LDPATH) $(RC) $(RCFLAGS) -fo$@ $<
+
+.spec.spec.o:
+ $(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --main-module $(MODULE) --export $<
+
+.idl.h:
+ $(WIDL) $(IDLFLAGS) -h -H $@ $<
+
+.idl_c.c:
+ $(WIDL) $(IDLFLAGS) -c -C $@ $<
+
+.idl_i.c:
+ $(WIDL) $(IDLFLAGS) -u -U $@ $<
+
+.idl_p.c:
+ $(WIDL) $(IDLFLAGS) -p -P $@ $<
+
+.idl_s.c:
+ $(WIDL) $(IDLFLAGS) -s -S $@ $<
+
+.idl.tlb:
+ $(WIDL) $(TARGETFLAGS) $(IDLFLAGS) -t -T $@ $<
+
+.c.ln:
+ $(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
+
+.c.ok:
+ $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
+
+.sfd.ttf:
+ $(FONTFORGE) -script $(TOPSRCDIR)/fonts/genttf.ff $< $@
+
+.man.in.man:
+ LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,Wine 1.1.35,g' $< >$@ || ($(RM) $@ && false)
+
+.svg.ico:
+ $(RSVG) -w 16 -h 16 -f png $< $*-16.png
+ $(RSVG) -w 32 -h 32 -f png $< $*-32.png
+ $(RSVG) -w 48 -h 48 -f png $< $*-48.png
+ $(ICOTOOL) -c -o $@ $*-16.png $*-32.png $*-48.png
+ $(RM) $*-16.png $*-32.png $*-48.png
+
+# Rules for IDL files
+
+dlldata.c: $(WIDL) Makefile.in
+ $(WIDL) $(IDLFLAGS) --dlldata-only --dlldata=$@ $(IDL_P_SRCS)
+
+# Rule for linting
+
+$(MODULE).ln : $(LINTS)
+ if test "$(LINTS)" ; \
+ then \
+ $(LINT) $(ALLLINTFLAGS) -o$(MODULE) $(LINTS) ; \
+ $(MV) llib-l$(MODULE).ln $(MODULE).ln ; \
+ else \
+ $(LINT) $(ALLLINTFLAGS) -C$(MODULE) /dev/null ; \
+ fi
+
+lint:: $(MODULE).ln
+
+# Rules for Windows API checking
+
+winapi_check:: dummy
+ $(WINAPI_CHECK) $(WINAPI_CHECK_FLAGS) $(WINAPI_CHECK_EXTRA_FLAGS) .
+
+.PHONY: winapi_check
+
+# Rules for dependencies
+
+DEPEND_SRCS = $(C_SRCS) $(C_SRCS16) $(RC_SRCS) $(RC_SRCS16) $(MC_SRCS) \
+ $(IDL_H_SRCS) $(IDL_C_SRCS) $(IDL_I_SRCS) $(IDL_P_SRCS) $(IDL_S_SRCS) \
+ $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS) $(IDL_TLB_SRCS:.idl=.tlb) \
+ $(BISON_SRCS) $(LEX_SRCS) $(EXTRA_SRCS)
+
+$(SUBDIRS:%=%/__depend__): dummy
+ @cd `dirname $@` && $(MAKE) depend
+
+depend: $(SUBDIRS:%=%/__depend__) dummy
+ $(MAKEDEP) $(MAKEDEPFLAGS) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
+
+.PHONY: depend $(SUBDIRS:%=%/__depend__)
+
+# Rules for cleaning
+
+$(SUBDIRS:%=%/__clean__): dummy
+ @cd `dirname $@` && $(MAKE) clean
+
+$(EXTRASUBDIRS:%=%/__clean__): dummy
+ -cd `dirname $@` && $(RM) $(CLEAN_FILES)
+
+clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+ $(RM) $(CLEAN_FILES) $(CLEAN_TARGETS) $(PROGRAMS) $(MANPAGES)
+
+.PHONY: clean $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+
+# Rules for installing
+
+$(SUBDIRS:%=%/__install__): dummy
+ @cd `dirname $@` && $(MAKE) install
+
+$(SUBDIRS:%=%/__install-lib__): dummy
+ @cd `dirname $@` && $(MAKE) install-lib
+
+$(SUBDIRS:%=%/__install-dev__): dummy
+ @cd `dirname $@` && $(MAKE) install-dev
+
+$(SUBDIRS:%=%/__uninstall__): dummy
+ @cd `dirname $@` && $(MAKE) uninstall
+
+install:: $(INSTALLSUBDIRS:%=%/__install__) dummy
+install-lib:: $(INSTALLSUBDIRS:%=%/__install-lib__) dummy
+install-dev:: $(INSTALLSUBDIRS:%=%/__install-dev__) dummy
+uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__) dummy
+
+$(INSTALLDIRS):
+ $(MKINSTALLDIRS) $@
+
+.PHONY: install install-lib install-dev uninstall \
+ $(SUBDIRS:%=%/__install__) $(SUBDIRS:%=%/__uninstall__) \
+ $(SUBDIRS:%=%/__install-lib__) $(SUBDIRS:%=%/__install-dev__)
+
+# Rules for testing
+
+$(TESTSUBDIRS:%=%/__test__): dummy
+ @cd `dirname $@` && $(MAKE) test
+
+$(TESTSUBDIRS:%=%/__crosstest__): dummy
+ @cd `dirname $@` && $(MAKE) crosstest
+
+$(TESTSUBDIRS:%=%/__testclean__): dummy
+ @cd `dirname $@` && $(MAKE) testclean
+
+check test:: $(TESTSUBDIRS:%=%/__test__) dummy
+
+crosstest:: $(TESTSUBDIRS:%=%/__crosstest__) dummy
+
+testclean:: $(TESTSUBDIRS:%=%/__testclean__) dummy
+
+.PHONY: check test testclean crosstest $(TESTSUBDIRS:%=%/__test__) $(TESTSUBDIRS:%=%/__crosstest__) $(TESTSUBDIRS:%=%/__testclean__)
+
+# Rules for auto documentation
+
+$(DOCSUBDIRS:%=%/__man__): dummy
+ @cd `dirname $@` && $(MAKE) man
+
+$(DOCSUBDIRS:%=%/__doc_html__): dummy
+ @cd `dirname $@` && $(MAKE) doc-html
+
+$(DOCSUBDIRS:%=%/__doc_sgml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-sgml
+
+$(DOCSUBDIRS:%=%/__doc_xml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-xml
+
+man: $(DOCSUBDIRS:%=%/__man__)
+doc-html: $(DOCSUBDIRS:%=%/__doc_html__)
+doc-sgml: $(DOCSUBDIRS:%=%/__doc_sgml__)
+doc-xml: $(DOCSUBDIRS:%=%/__doc_xml__)
+
+.PHONY: man doc-html doc-sgml doc-xml $(DOCSUBDIRS:%=%/__man__) $(DOCSUBDIRS:%=%/__doc_html__) $(DOCSUBDIRS:%=%/__doc_sgml__) $(DOCSUBDIRS:%=%/__doc_xml__)
+
+# Misc. rules
+
+$(MC_SRCS:.mc=.mc.rc): $(WMC)
+
+$(IDL_GEN_HEADERS) $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS:.idl=.tlb): $(WIDL)
+
+$(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(RC_SRCS16:.rc=.res): $(WRC)
+
+$(SUBDIRS): dummy
+ @cd $@ && $(MAKE)
+
+dummy:
+
+.PHONY: dummy $(SUBDIRS)
+
+# End of global rules
+
+all: $(MODULE)$(DLLEXT) $(MODULE)$(FAKEEXT) $(SUBDIRS)
+
+$(MODULE) $(MODULE).so $(MODULE).fake: $(MAINSPEC) $(ALL_OBJS) Makefile.in
+ $(WINEGCC) -shared $(SRCDIR)/$(MAINSPEC) $(ALL_OBJS) $(EXTRADLLFLAGS) -o $@ $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(DELAYIMPORTS:%=-Wb,-d%) $(ALL_LIBS)
+
+# Rules for import libraries
+
+.PHONY: implib $(IMPLIB_SRCS:%=__static_implib__%)
+
+all implib: $(IMPORTLIBFILE) $(IMPLIB_SRCS:%=__static_implib__%)
+
+$(IMPLIB_SRCS:%=__static_implib__%): $(STATICIMPLIB)
+
+$(SPEC_DEF) $(IMPORTLIB:%=lib%.def): $(MAINSPEC)
+ $(WINEBUILD) $(TARGETFLAGS) -w --def -o $@ --export $(SRCDIR)/$(MAINSPEC)
+
+$(IMPORTLIB:%=lib%.def.a): $(IMPLIB_OBJS)
+ $(RM) $@
+ $(AR) $(ARFLAGS) $@ $(IMPLIB_OBJS)
+ $(RANLIB) $@
+
+$(IMPORTLIB:%=lib%.a): $(SPEC_DEF) $(IMPLIB_OBJS)
+ $(DLLTOOL) -k -l $@ -d $(SPEC_DEF)
+ $(MINGWAR) rs $@ $(IMPLIB_OBJS)
+
+$(SUBDIRS): implib
+
+# Rules for testing
+
+check test:: $(SUBDIRS:%=%/__test__) dummy
+
+crosstest:: $(SUBDIRS:%=%/__crosstest__) dummy
+
+# Rules for auto documentation
+
+man: $(C_SRCS) dummy
+ $(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext) -R$(TOPOBJDIR) -C$(SRCDIR) -S$(api_manext) $(INCLUDES) $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+doc-html: $(C_SRCS) dummy
+ $(C2MAN) -o $(TOPOBJDIR)/documentation/html -R$(TOPOBJDIR) -C$(SRCDIR) $(INCLUDES) -Th $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+doc-sgml: $(C_SRCS) dummy
+ $(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide -R$(TOPOBJDIR) -C$(SRCDIR) $(INCLUDES) -Ts $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+doc-xml: $(C_SRCS) dummy
+ $(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide-xml -R$(TOPOBJDIR) -C$(SRCDIR) $(INCLUDES) -Tx $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+.PHONY: man doc-html doc-sgml doc-xml
+
+# Rules for installation
+
+.PHONY: install_static_implib_def install_static_implib_a
+.PHONY: $(IMPORTLIB:%=_install_/%) $(IMPLIB_SRCS:%=_install_static_implib_/%)
+
+$(IMPORTLIB:%=_install_/%): $(IMPORTLIBFILE) $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_DATA) $(IMPORTLIBFILE) $(DESTDIR)$(dlldir)/$(IMPORTLIBFILE)
+
+install_static_implib_def: $(STATICIMPLIB) $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_DATA) $(STATICIMPLIB) $(DESTDIR)$(dlldir)/$(STATICIMPLIB)
+
+install_static_implib_a:
+
+$(IMPLIB_SRCS:%=_install_static_implib_/%): install_static_implib_$(IMPLIBEXT)
+
+.PHONY: install_dll install_dll.so install_dll.fake
+
+install_dll: $(MODULE) $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_PROGRAM) $(MODULE) $(DESTDIR)$(dlldir)/$(MODULE)
+
+install_dll.so: $(MODULE).so $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_PROGRAM) $(MODULE).so $(DESTDIR)$(dlldir)/$(MODULE).so
+
+install_dll.fake: $(MODULE).fake $(DESTDIR)$(fakedlldir) dummy
+ $(INSTALL_DATA) $(MODULE).fake $(DESTDIR)$(fakedlldir)/$(MODULE)
+
+install install-lib:: install_dll$(DLLEXT) install_dll$(FAKEEXT)
+
+install install-dev:: $(IMPORTLIB:%=_install_/%) $(IMPLIB_SRCS:%=_install_static_implib_/%) dummy
+
+uninstall::
+ -cd $(DESTDIR)$(dlldir) && $(RM) $(MODULE)$(DLLEXT) $(IMPORTLIBFILE) $(STATICIMPLIB)
+ $(RM) $(DESTDIR)$(fakedlldir)/$(MODULE)
+
+# Misc. rules
+
+clean::
+ $(RM) $(SPEC_DEF) $(IMPORTLIBFILE)
+
+$(SPEC_DEF) $(SPEC_SRCS16:.spec=.spec.o): $(WINEBUILD)
+
+# End of global dll rules
+
+### Dependencies:
+
+.INIT: Makefile
+.BEGIN: Makefile
+.MAKEFILEDEPS:
+Makefile: dummy
+ -$(MAKEDEP) $(MAKEDEPFLAGS) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
+
+$(OBJS) $(C_SRCS16:.c=.o): $(IDL_GEN_HEADERS)
+$(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) # everything below this line is overwritten by make depend
diff -rupN wine-1.5.19/dlls/winequartz.drv/Makefile wine-silverlight-1.5.19/dlls/winequartz.drv/Makefile
--- wine-1.5.19/dlls/winequartz.drv/Makefile 1969-12-31 16:00:00.000000000 -0800
+++ wine-silverlight-1.5.19/dlls/winequartz.drv/Makefile 2012-12-20 18:16:39.222918723 -0800
@@ -0,0 +1,474 @@
+TOPSRCDIR = ../..
+TOPOBJDIR = ../..
+SRCDIR = .
+
+MODULE = winequartz.drv
+IMPORTS = user32 gdi32 advapi32 kernel32 ntdll
+
+C_SRCS = \
+ quartzdrv_main.c
+
+# Global rules for building dlls -*-Makefile-*-
+#
+# Each individual makefile should define the following variables:
+# MODULE : name of the main module being built
+# EXTRALIBS : extra libraries to link in (optional)
+# SPEC_SRCS16 : interface definition files for 16-bit dlls (optional)
+#
+# plus all variables required by the global Make.rules.in
+#
+
+DLLFLAGS = -D_REENTRANT -fPIC
+MINGWAR = i586-mingw32msvc-ar
+DEFS = -D__WINESRC__ $(EXTRADEFS)
+BASEMODULE = $(MODULE:%.dll=%)
+MAINSPEC = $(BASEMODULE).spec
+SPEC_DEF = $(BASEMODULE).def
+WIN16_FILES = $(SPEC_SRCS16:.spec=.spec.o) $(C_SRCS16:.c=.o) $(EXTRA_OBJS16)
+ALL_OBJS = $(WIN16_FILES) $(OBJS)
+ALL_LIBS = $(LIBPORT) $(EXTRALIBS) $(LDFLAGS) $(LIBS)
+IMPLIB_OBJS = $(IMPLIB_SRCS:.c=.o)
+IMPORTLIBFILE = $(IMPORTLIB:%=lib%.def)
+STATICIMPLIB = $(IMPORTLIBFILE:.def=.def.a)
+DLL_LDPATH = -L$(DLLDIR) $(DELAYIMPORTS:%=-L$(DLLDIR)/%) $(IMPORTS:%=-L$(DLLDIR)/%)
+INSTALLDIRS = $(DESTDIR)$(dlldir) $(DESTDIR)$(fakedlldir) $(DESTDIR)$(datadir)/wine
+
+# Global rules shared by all makefiles -*-Makefile-*-
+#
+# Each individual makefile must define the following variables:
+# TOPSRCDIR : top-level source directory
+# TOPOBJDIR : top-level object directory
+# SRCDIR : source directory for this module
+# MODULE : name of the module being built
+#
+# Each individual makefile may define the following additional variables:
+# C_SRCS : C sources for the module
+# C_SRCS16 : 16-bit C sources for the module
+# RC_SRCS : resource source files
+# EXTRA_SRCS : extra source files for make depend
+# EXTRA_OBJS : extra object files
+# IMPORTS : dlls to import
+# DELAYIMPORTS : dlls to import in delayed mode
+# SUBDIRS : subdirectories that contain a Makefile
+# EXTRASUBDIRS : subdirectories that do not contain a Makefile
+# INSTALLSUBDIRS : subdirectories to run make install/uninstall into
+# MODCFLAGS : extra CFLAGS for this module
+
+# First some useful definitions
+
+SHELL = /bin/sh
+CC = ccache gcc -m32
+CFLAGS = -g -O2
+CPPFLAGS =
+LIBS =
+BISON = bison
+FLEX = flex
+EXEEXT =
+OBJEXT = o
+LIBEXT = so
+DLLEXT = .so
+TOOLSEXT =
+IMPLIBEXT = def
+LDSHARED = $(CC) -shared $(SONAME:%=-Wl,-soname,%) $(VERSCRIPT:%=-Wl,--version-script=%)
+DLLTOOL = i586-mingw32msvc-dlltool
+DLLWRAP =
+AR = ar
+ARFLAGS = rc
+RANLIB = ranlib
+STRIP = strip
+LN = ln
+LN_S = ln -s
+TOOLSDIR = $(TOPOBJDIR)
+LDFLAGS =
+PRELINK = /usr/sbin/prelink
+RM = rm -f
+MV = mv
+LINT =
+LINTFLAGS =
+FONTFORGE = fontforge
+RSVG = false
+ICOTOOL = icotool
+FAKEEXT = $(DLLEXT:.so=.fake)
+INCLUDES = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL)
+EXTRACFLAGS = -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wstrict-prototypes -Wwrite-strings -Wtype-limits -Wpointer-arith
+ALLCFLAGS = $(INCLUDES) $(DEFS) $(DLLFLAGS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS)
+ALLLINTFLAGS = $(INCLUDES) $(DEFS) $(LINTFLAGS)
+IDLFLAGS = $(INCLUDES) $(DEFS) $(EXTRAIDLFLAGS)
+TARGETFLAGS = -m32
+WINEBUILDFLAGS = $(TARGETFLAGS) $(DLLFLAGS)
+MKINSTALLDIRS= $(TOPSRCDIR)/tools/mkinstalldirs -m 755
+WINAPI_CHECK = $(TOPSRCDIR)/tools/winapi/winapi_check
+WINEWRAPPER = $(TOPSRCDIR)/tools/winewrapper
+C2MAN = $(TOPSRCDIR)/tools/c2man.pl
+RUNTEST = $(TOPSRCDIR)/tools/runtest
+WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT)
+MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
+MAKECTESTS = $(TOOLSDIR)/tools/make_ctests$(TOOLSEXT)
+WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT)
+WMC = $(TOOLSDIR)/tools/wmc/wmc$(TOOLSEXT)
+WIDL = $(TOOLSDIR)/tools/widl/widl$(TOOLSEXT)
+WINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc $(TARGETFLAGS) -B$(TOOLSDIR)/tools/winebuild --sysroot=$(TOPOBJDIR)
+RELPATH = $(TOOLSDIR)/tools/relpath$(TOOLSEXT)
+SFNT2FNT = $(TOOLSDIR)/tools/sfnt2fnt$(TOOLSEXT)
+RC = $(WRC)
+RC16 = $(WRC)
+RCFLAGS = --nostdinc $(INCLUDES) $(DEFS) $(EXTRARCFLAGS)
+RC16FLAGS = -O res16 $(RCFLAGS)
+LDPATH = LD_LIBRARY_PATH="$(TOOLSDIR)/libs/wine:$$LD_LIBRARY_PATH"
+DLLDIR = $(TOPOBJDIR)/dlls
+LIBPORT = $(TOPOBJDIR)/libs/port/libwine_port.a
+LIBWPP = $(TOPOBJDIR)/libs/wpp/libwpp.a
+LIBWINE = -L$(TOPOBJDIR)/libs/wine -lwine
+LDRPATH_INSTALL = -Wl,--rpath,\$$ORIGIN/`$(RELPATH) $(bindir) $(libdir)` -Wl,--enable-new-dtags
+LDRPATH_LOCAL = -Wl,--rpath,\$$ORIGIN/$(TOPOBJDIR)/libs/wine
+
+
+
+# Installation infos
+
+INSTALL = /usr/bin/install -c $(INSTALL_FLAGS)
+INSTALL_PROGRAM = ${INSTALL} $(INSTALL_PROGRAM_FLAGS)
+INSTALL_SCRIPT = ${INSTALL} $(INSTALL_SCRIPT_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644 $(INSTALL_DATA_FLAGS)
+prefix = /usr/local
+exec_prefix = ${prefix}
+bindir = ${exec_prefix}/bin
+libdir = ${exec_prefix}/lib
+datarootdir = ${prefix}/share
+datadir = ${datarootdir}
+infodir = ${datarootdir}/info
+mandir = ${datarootdir}/man
+sysconfdir = ${prefix}/etc
+includedir = ${prefix}/include/wine
+dlldir = ${exec_prefix}/lib/wine
+fakedlldir = $(dlldir)/fakedlls
+prog_manext = 1
+api_manext = 3w
+conf_manext = 5
+CLEAN_FILES = *.o *.a *.so *.ln *.res *.fake *.$(LIBEXT) \\\#*\\\# *~ *% .\\\#* *.bak *.orig *.rej *.flc core
+
+IDL_GEN_C_SRCS = $(IDL_C_SRCS:.idl=_c.c) $(IDL_I_SRCS:.idl=_i.c) \
+ $(IDL_P_SRCS:.idl=_p.c) $(IDL_S_SRCS:.idl=_s.c)
+IDL_GEN_HEADERS = $(IDL_H_SRCS:.idl=.h) $(IDL_C_SRCS:.idl=.h) $(IDL_I_SRCS:.idl=.h) \
+ $(IDL_P_SRCS:.idl=.h) $(IDL_S_SRCS:.idl=.h)
+
+CLEAN_TARGETS = $(IDL_GEN_C_SRCS) $(IDL_GEN_HEADERS) $(IDL_TLB_SRCS:.idl=.tlb) $(IDL_P_SRCS:%=dlldata.c) \
+ $(BISON_SRCS:.y=.tab.c) $(BISON_SRCS:.y=.tab.h) $(LEX_SRCS:.l=.yy.c) $(MC_SRCS:.mc=.mc.rc)
+
+OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(IDL_GEN_C_SRCS:.c=.o) \
+ $(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(EXTRA_OBJS)
+
+LINTS = $(C_SRCS:.c=.ln)
+
+# 'all' target first in case the enclosing Makefile didn't define any target
+
+all:
+
+filter: dummy
+ @$(TOPSRCDIR)/tools/winapi/make_filter --make $(MAKE) all
+
+.PHONY: all filter
+
+# Implicit rules
+
+.SUFFIXES: .mc .rc .mc.rc .res .spec .spec.o .idl .tlb .h .y .l .tab.c .tab.h .yy.c .ok .man.in .man _c.c _i.c _p.c _s.c # .sfd .ttf .svg .ico
+
+.c.o:
+ $(CC) -c $(ALLCFLAGS) -o $@ $<
+
+.y.tab.c:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $@ $<
+
+.y.tab.h:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $*.tab.c -d $<
+
+.l.yy.c:
+ $(FLEX) $(LEXFLAGS) -o$@ $<
+
+.mc.mc.rc:
+ $(LDPATH) $(WMC) -i -U -H /dev/null -o $@ $<
+
+.rc.res:
+ $(LDPATH) $(RC) $(RCFLAGS) -fo$@ $<
+
+.spec.spec.o:
+ $(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --main-module $(MODULE) --export $<
+
+.idl.h:
+ $(WIDL) $(IDLFLAGS) -h -H $@ $<
+
+.idl_c.c:
+ $(WIDL) $(IDLFLAGS) -c -C $@ $<
+
+.idl_i.c:
+ $(WIDL) $(IDLFLAGS) -u -U $@ $<
+
+.idl_p.c:
+ $(WIDL) $(IDLFLAGS) -p -P $@ $<
+
+.idl_s.c:
+ $(WIDL) $(IDLFLAGS) -s -S $@ $<
+
+.idl.tlb:
+ $(WIDL) $(TARGETFLAGS) $(IDLFLAGS) -t -T $@ $<
+
+.c.ln:
+ $(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
+
+.c.ok:
+ $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
+
+.sfd.ttf:
+ $(FONTFORGE) -script $(TOPSRCDIR)/fonts/genttf.ff $< $@
+
+.man.in.man:
+ LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,Wine 1.1.35,g' $< >$@ || ($(RM) $@ && false)
+
+.svg.ico:
+ $(RSVG) -w 16 -h 16 -f png $< $*-16.png
+ $(RSVG) -w 32 -h 32 -f png $< $*-32.png
+ $(RSVG) -w 48 -h 48 -f png $< $*-48.png
+ $(ICOTOOL) -c -o $@ $*-16.png $*-32.png $*-48.png
+ $(RM) $*-16.png $*-32.png $*-48.png
+
+# Rules for IDL files
+
+dlldata.c: $(WIDL) Makefile.in
+ $(WIDL) $(IDLFLAGS) --dlldata-only --dlldata=$@ $(IDL_P_SRCS)
+
+# Rule for linting
+
+$(MODULE).ln : $(LINTS)
+ if test "$(LINTS)" ; \
+ then \
+ $(LINT) $(ALLLINTFLAGS) -o$(MODULE) $(LINTS) ; \
+ $(MV) llib-l$(MODULE).ln $(MODULE).ln ; \
+ else \
+ $(LINT) $(ALLLINTFLAGS) -C$(MODULE) /dev/null ; \
+ fi
+
+lint:: $(MODULE).ln
+
+# Rules for Windows API checking
+
+winapi_check:: dummy
+ $(WINAPI_CHECK) $(WINAPI_CHECK_FLAGS) $(WINAPI_CHECK_EXTRA_FLAGS) .
+
+.PHONY: winapi_check
+
+# Rules for dependencies
+
+DEPEND_SRCS = $(C_SRCS) $(C_SRCS16) $(RC_SRCS) $(RC_SRCS16) $(MC_SRCS) \
+ $(IDL_H_SRCS) $(IDL_C_SRCS) $(IDL_I_SRCS) $(IDL_P_SRCS) $(IDL_S_SRCS) \
+ $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS) $(IDL_TLB_SRCS:.idl=.tlb) \
+ $(BISON_SRCS) $(LEX_SRCS) $(EXTRA_SRCS)
+
+$(SUBDIRS:%=%/__depend__): dummy
+ @cd `dirname $@` && $(MAKE) depend
+
+depend: $(SUBDIRS:%=%/__depend__) dummy
+ $(MAKEDEP) $(MAKEDEPFLAGS) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
+
+.PHONY: depend $(SUBDIRS:%=%/__depend__)
+
+# Rules for cleaning
+
+$(SUBDIRS:%=%/__clean__): dummy
+ @cd `dirname $@` && $(MAKE) clean
+
+$(EXTRASUBDIRS:%=%/__clean__): dummy
+ -cd `dirname $@` && $(RM) $(CLEAN_FILES)
+
+clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+ $(RM) $(CLEAN_FILES) $(CLEAN_TARGETS) $(PROGRAMS) $(MANPAGES)
+
+.PHONY: clean $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+
+# Rules for installing
+
+$(SUBDIRS:%=%/__install__): dummy
+ @cd `dirname $@` && $(MAKE) install
+
+$(SUBDIRS:%=%/__install-lib__): dummy
+ @cd `dirname $@` && $(MAKE) install-lib
+
+$(SUBDIRS:%=%/__install-dev__): dummy
+ @cd `dirname $@` && $(MAKE) install-dev
+
+$(SUBDIRS:%=%/__uninstall__): dummy
+ @cd `dirname $@` && $(MAKE) uninstall
+
+install:: $(INSTALLSUBDIRS:%=%/__install__) dummy
+install-lib:: $(INSTALLSUBDIRS:%=%/__install-lib__) dummy
+install-dev:: $(INSTALLSUBDIRS:%=%/__install-dev__) dummy
+uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__) dummy
+
+$(INSTALLDIRS):
+ $(MKINSTALLDIRS) $@
+
+.PHONY: install install-lib install-dev uninstall \
+ $(SUBDIRS:%=%/__install__) $(SUBDIRS:%=%/__uninstall__) \
+ $(SUBDIRS:%=%/__install-lib__) $(SUBDIRS:%=%/__install-dev__)
+
+# Rules for testing
+
+$(TESTSUBDIRS:%=%/__test__): dummy
+ @cd `dirname $@` && $(MAKE) test
+
+$(TESTSUBDIRS:%=%/__crosstest__): dummy
+ @cd `dirname $@` && $(MAKE) crosstest
+
+$(TESTSUBDIRS:%=%/__testclean__): dummy
+ @cd `dirname $@` && $(MAKE) testclean
+
+check test:: $(TESTSUBDIRS:%=%/__test__) dummy
+
+crosstest:: $(TESTSUBDIRS:%=%/__crosstest__) dummy
+
+testclean:: $(TESTSUBDIRS:%=%/__testclean__) dummy
+
+.PHONY: check test testclean crosstest $(TESTSUBDIRS:%=%/__test__) $(TESTSUBDIRS:%=%/__crosstest__) $(TESTSUBDIRS:%=%/__testclean__)
+
+# Rules for auto documentation
+
+$(DOCSUBDIRS:%=%/__man__): dummy
+ @cd `dirname $@` && $(MAKE) man
+
+$(DOCSUBDIRS:%=%/__doc_html__): dummy
+ @cd `dirname $@` && $(MAKE) doc-html
+
+$(DOCSUBDIRS:%=%/__doc_sgml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-sgml
+
+$(DOCSUBDIRS:%=%/__doc_xml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-xml
+
+man: $(DOCSUBDIRS:%=%/__man__)
+doc-html: $(DOCSUBDIRS:%=%/__doc_html__)
+doc-sgml: $(DOCSUBDIRS:%=%/__doc_sgml__)
+doc-xml: $(DOCSUBDIRS:%=%/__doc_xml__)
+
+.PHONY: man doc-html doc-sgml doc-xml $(DOCSUBDIRS:%=%/__man__) $(DOCSUBDIRS:%=%/__doc_html__) $(DOCSUBDIRS:%=%/__doc_sgml__) $(DOCSUBDIRS:%=%/__doc_xml__)
+
+# Misc. rules
+
+$(MC_SRCS:.mc=.mc.rc): $(WMC)
+
+$(IDL_GEN_HEADERS) $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS:.idl=.tlb): $(WIDL)
+
+$(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(RC_SRCS16:.rc=.res): $(WRC)
+
+$(SUBDIRS): dummy
+ @cd $@ && $(MAKE)
+
+dummy:
+
+.PHONY: dummy $(SUBDIRS)
+
+# End of global rules
+
+all: $(MODULE)$(DLLEXT) $(MODULE)$(FAKEEXT) $(SUBDIRS)
+
+$(MODULE) $(MODULE).so $(MODULE).fake: $(MAINSPEC) $(ALL_OBJS) Makefile.in
+ $(WINEGCC) -shared $(SRCDIR)/$(MAINSPEC) $(ALL_OBJS) $(EXTRADLLFLAGS) -o $@ $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(DELAYIMPORTS:%=-Wb,-d%) $(ALL_LIBS)
+
+# Rules for import libraries
+
+.PHONY: implib $(IMPLIB_SRCS:%=__static_implib__%)
+
+all implib: $(IMPORTLIBFILE) $(IMPLIB_SRCS:%=__static_implib__%)
+
+$(IMPLIB_SRCS:%=__static_implib__%): $(STATICIMPLIB)
+
+$(SPEC_DEF) $(IMPORTLIB:%=lib%.def): $(MAINSPEC)
+ $(WINEBUILD) $(TARGETFLAGS) -w --def -o $@ --export $(SRCDIR)/$(MAINSPEC)
+
+$(IMPORTLIB:%=lib%.def.a): $(IMPLIB_OBJS)
+ $(RM) $@
+ $(AR) $(ARFLAGS) $@ $(IMPLIB_OBJS)
+ $(RANLIB) $@
+
+$(IMPORTLIB:%=lib%.a): $(SPEC_DEF) $(IMPLIB_OBJS)
+ $(DLLTOOL) -k -l $@ -d $(SPEC_DEF)
+ $(MINGWAR) rs $@ $(IMPLIB_OBJS)
+
+$(SUBDIRS): implib
+
+# Rules for testing
+
+check test:: $(SUBDIRS:%=%/__test__) dummy
+
+crosstest:: $(SUBDIRS:%=%/__crosstest__) dummy
+
+# Rules for auto documentation
+
+man: $(C_SRCS) dummy
+ $(C2MAN) -o $(TOPOBJDIR)/documentation/man$(api_manext) -R$(TOPOBJDIR) -C$(SRCDIR) -S$(api_manext) $(INCLUDES) $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+doc-html: $(C_SRCS) dummy
+ $(C2MAN) -o $(TOPOBJDIR)/documentation/html -R$(TOPOBJDIR) -C$(SRCDIR) $(INCLUDES) -Th $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+doc-sgml: $(C_SRCS) dummy
+ $(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide -R$(TOPOBJDIR) -C$(SRCDIR) $(INCLUDES) -Ts $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+doc-xml: $(C_SRCS) dummy
+ $(C2MAN) -o $(TOPOBJDIR)/documentation/api-guide-xml -R$(TOPOBJDIR) -C$(SRCDIR) $(INCLUDES) -Tx $(MAINSPEC:%=-w %) $(SPEC_SRCS16:%=-w %) $(C_SRCS) $(C_SRCS16)
+
+.PHONY: man doc-html doc-sgml doc-xml
+
+# Rules for installation
+
+.PHONY: install_static_implib_def install_static_implib_a
+.PHONY: $(IMPORTLIB:%=_install_/%) $(IMPLIB_SRCS:%=_install_static_implib_/%)
+
+$(IMPORTLIB:%=_install_/%): $(IMPORTLIBFILE) $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_DATA) $(IMPORTLIBFILE) $(DESTDIR)$(dlldir)/$(IMPORTLIBFILE)
+
+install_static_implib_def: $(STATICIMPLIB) $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_DATA) $(STATICIMPLIB) $(DESTDIR)$(dlldir)/$(STATICIMPLIB)
+
+install_static_implib_a:
+
+$(IMPLIB_SRCS:%=_install_static_implib_/%): install_static_implib_$(IMPLIBEXT)
+
+.PHONY: install_dll install_dll.so install_dll.fake
+
+install_dll: $(MODULE) $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_PROGRAM) $(MODULE) $(DESTDIR)$(dlldir)/$(MODULE)
+
+install_dll.so: $(MODULE).so $(DESTDIR)$(dlldir) dummy
+ $(INSTALL_PROGRAM) $(MODULE).so $(DESTDIR)$(dlldir)/$(MODULE).so
+
+install_dll.fake: $(MODULE).fake $(DESTDIR)$(fakedlldir) dummy
+ $(INSTALL_DATA) $(MODULE).fake $(DESTDIR)$(fakedlldir)/$(MODULE)
+
+install install-lib:: install_dll$(DLLEXT) install_dll$(FAKEEXT)
+
+install install-dev:: $(IMPORTLIB:%=_install_/%) $(IMPLIB_SRCS:%=_install_static_implib_/%) dummy
+
+uninstall::
+ -cd $(DESTDIR)$(dlldir) && $(RM) $(MODULE)$(DLLEXT) $(IMPORTLIBFILE) $(STATICIMPLIB)
+ $(RM) $(DESTDIR)$(fakedlldir)/$(MODULE)
+
+# Misc. rules
+
+clean::
+ $(RM) $(SPEC_DEF) $(IMPORTLIBFILE)
+
+$(SPEC_DEF) $(SPEC_SRCS16:.spec=.spec.o): $(WINEBUILD)
+
+# End of global dll rules
+
+### Dependencies:
+
+.INIT: Makefile
+.BEGIN: Makefile
+.MAKEFILEDEPS:
+Makefile: dummy
+ -$(MAKEDEP) $(MAKEDEPFLAGS) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
+
+$(OBJS) $(C_SRCS16:.c=.o): $(IDL_GEN_HEADERS)
+$(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) # everything below this line is overwritten by make depend
diff -rupN wine-1.5.19/dlls/ws2_32/socket.c wine-silverlight-1.5.19/dlls/ws2_32/socket.c
--- wine-1.5.19/dlls/ws2_32/socket.c 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/dlls/ws2_32/socket.c 2012-12-20 18:16:39.409573040 -0800
@@ -3386,10 +3386,18 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code
}
case WS_SIO_ADDRESS_LIST_CHANGE:
- FIXME("-> SIO_ADDRESS_LIST_CHANGE request: stub\n");
- /* FIXME: error and return code depend on whether socket was created
- * with WSA_FLAG_OVERLAPPED, but there is no easy way to get this */
+ {
+ HANDLE handle;
+
+ TRACE("-> SIO_ADDRESS_LIST_CHANGE request\n");
+
+ if (overlapped || _is_blocking(s))
+ status = NotifyAddrChange(&handle, overlapped);
+ else
+ status = WSAEWOULDBLOCK;
+ overlapped = NULL; /* managed by NotifyAddrChange */
break;
+ }
case WS_SIO_ADDRESS_LIST_QUERY:
{
diff -rupN wine-1.5.19/include/config.h.in wine-silverlight-1.5.19/include/config.h.in
--- wine-1.5.19/include/config.h.in 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/include/config.h.in 2012-12-20 18:16:39.672888950 -0800
@@ -34,6 +34,9 @@
/* Define to 1 if you have the <asm/types.h> header file. */
#undef HAVE_ASM_TYPES_H
+/* Define to 1 if you have the <attr/xattr.h> header file. */
+#undef HAVE_ATTR_XATTR_H
+
/* Define to 1 if you have the <AudioToolbox/AudioConverter.h> header file. */
#undef HAVE_AUDIOTOOLBOX_AUDIOCONVERTER_H
@@ -1337,11 +1340,6 @@
/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
-/* Enable large inode numbers on Mac OS X 10.5. */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
diff -rupN wine-1.5.19/include/winuser.h wine-silverlight-1.5.19/include/winuser.h
--- wine-1.5.19/include/winuser.h 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/include/winuser.h 2012-12-20 18:16:39.629558484 -0800
@@ -2521,6 +2521,10 @@ typedef struct tagMINIMIZEDMETRICS {
#define PM_QS_PAINT (QS_PAINT << 16)
#define PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16)
+/* SetTimer() limits */
+#define USER_TIMER_MINIMUM 0x0000000A
+#define USER_TIMER_MAXIMUM 0x7FFFFFFF
+
/* AnimateWindow() flags */
#define AW_SLIDE 0x00040000
#define AW_ACTIVATE 0x00020000
diff -rupN wine-1.5.19/libs/Makefile wine-silverlight-1.5.19/libs/Makefile
--- wine-1.5.19/libs/Makefile 1969-12-31 16:00:00.000000000 -0800
+++ wine-silverlight-1.5.19/libs/Makefile 2012-12-20 18:16:39.702886965 -0800
@@ -0,0 +1,353 @@
+TOPSRCDIR = ..
+TOPOBJDIR = ..
+SRCDIR = .
+
+MODULE = none
+
+SUBDIRS = \
+ port \
+ wine \
+ wpp
+
+INSTALLSUBDIRS = \
+ wine
+
+# Global rules shared by all makefiles -*-Makefile-*-
+#
+# Each individual makefile must define the following variables:
+# TOPSRCDIR : top-level source directory
+# TOPOBJDIR : top-level object directory
+# SRCDIR : source directory for this module
+# MODULE : name of the module being built
+#
+# Each individual makefile may define the following additional variables:
+# C_SRCS : C sources for the module
+# C_SRCS16 : 16-bit C sources for the module
+# RC_SRCS : resource source files
+# EXTRA_SRCS : extra source files for make depend
+# EXTRA_OBJS : extra object files
+# IMPORTS : dlls to import
+# DELAYIMPORTS : dlls to import in delayed mode
+# SUBDIRS : subdirectories that contain a Makefile
+# EXTRASUBDIRS : subdirectories that do not contain a Makefile
+# INSTALLSUBDIRS : subdirectories to run make install/uninstall into
+# MODCFLAGS : extra CFLAGS for this module
+
+# First some useful definitions
+
+SHELL = /bin/sh
+CC = ccache gcc -m32
+CFLAGS = -g -O2
+CPPFLAGS =
+LIBS =
+BISON = bison
+FLEX = flex
+EXEEXT =
+OBJEXT = o
+LIBEXT = so
+DLLEXT = .so
+TOOLSEXT =
+IMPLIBEXT = def
+LDSHARED = $(CC) -shared $(SONAME:%=-Wl,-soname,%) $(VERSCRIPT:%=-Wl,--version-script=%)
+DLLTOOL = i586-mingw32msvc-dlltool
+DLLWRAP =
+AR = ar
+ARFLAGS = rc
+RANLIB = ranlib
+STRIP = strip
+LN = ln
+LN_S = ln -s
+TOOLSDIR = $(TOPOBJDIR)
+LDFLAGS =
+PRELINK = /usr/sbin/prelink
+RM = rm -f
+MV = mv
+LINT =
+LINTFLAGS =
+FONTFORGE = fontforge
+RSVG = false
+ICOTOOL = icotool
+FAKEEXT = $(DLLEXT:.so=.fake)
+INCLUDES = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL)
+EXTRACFLAGS = -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wstrict-prototypes -Wwrite-strings -Wtype-limits -Wpointer-arith
+ALLCFLAGS = $(INCLUDES) $(DEFS) $(DLLFLAGS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS)
+ALLLINTFLAGS = $(INCLUDES) $(DEFS) $(LINTFLAGS)
+IDLFLAGS = $(INCLUDES) $(DEFS) $(EXTRAIDLFLAGS)
+TARGETFLAGS = -m32
+WINEBUILDFLAGS = $(TARGETFLAGS) $(DLLFLAGS)
+MKINSTALLDIRS= $(TOPSRCDIR)/tools/mkinstalldirs -m 755
+WINAPI_CHECK = $(TOPSRCDIR)/tools/winapi/winapi_check
+WINEWRAPPER = $(TOPSRCDIR)/tools/winewrapper
+C2MAN = $(TOPSRCDIR)/tools/c2man.pl
+RUNTEST = $(TOPSRCDIR)/tools/runtest
+WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT)
+MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
+MAKECTESTS = $(TOOLSDIR)/tools/make_ctests$(TOOLSEXT)
+WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT)
+WMC = $(TOOLSDIR)/tools/wmc/wmc$(TOOLSEXT)
+WIDL = $(TOOLSDIR)/tools/widl/widl$(TOOLSEXT)
+WINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc $(TARGETFLAGS) -B$(TOOLSDIR)/tools/winebuild --sysroot=$(TOPOBJDIR)
+RELPATH = $(TOOLSDIR)/tools/relpath$(TOOLSEXT)
+SFNT2FNT = $(TOOLSDIR)/tools/sfnt2fnt$(TOOLSEXT)
+RC = $(WRC)
+RC16 = $(WRC)
+RCFLAGS = --nostdinc $(INCLUDES) $(DEFS) $(EXTRARCFLAGS)
+RC16FLAGS = -O res16 $(RCFLAGS)
+LDPATH = LD_LIBRARY_PATH="$(TOOLSDIR)/libs/wine:$$LD_LIBRARY_PATH"
+DLLDIR = $(TOPOBJDIR)/dlls
+LIBPORT = $(TOPOBJDIR)/libs/port/libwine_port.a
+LIBWPP = $(TOPOBJDIR)/libs/wpp/libwpp.a
+LIBWINE = -L$(TOPOBJDIR)/libs/wine -lwine
+LDRPATH_INSTALL = -Wl,--rpath,\$$ORIGIN/`$(RELPATH) $(bindir) $(libdir)` -Wl,--enable-new-dtags
+LDRPATH_LOCAL = -Wl,--rpath,\$$ORIGIN/$(TOPOBJDIR)/libs/wine
+
+
+
+# Installation infos
+
+INSTALL = /usr/bin/install -c $(INSTALL_FLAGS)
+INSTALL_PROGRAM = ${INSTALL} $(INSTALL_PROGRAM_FLAGS)
+INSTALL_SCRIPT = ${INSTALL} $(INSTALL_SCRIPT_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644 $(INSTALL_DATA_FLAGS)
+prefix = /usr/local
+exec_prefix = ${prefix}
+bindir = ${exec_prefix}/bin
+libdir = ${exec_prefix}/lib
+datarootdir = ${prefix}/share
+datadir = ${datarootdir}
+infodir = ${datarootdir}/info
+mandir = ${datarootdir}/man
+sysconfdir = ${prefix}/etc
+includedir = ${prefix}/include/wine
+dlldir = ${exec_prefix}/lib/wine
+fakedlldir = $(dlldir)/fakedlls
+prog_manext = 1
+api_manext = 3w
+conf_manext = 5
+CLEAN_FILES = *.o *.a *.so *.ln *.res *.fake *.$(LIBEXT) \\\#*\\\# *~ *% .\\\#* *.bak *.orig *.rej *.flc core
+
+IDL_GEN_C_SRCS = $(IDL_C_SRCS:.idl=_c.c) $(IDL_I_SRCS:.idl=_i.c) \
+ $(IDL_P_SRCS:.idl=_p.c) $(IDL_S_SRCS:.idl=_s.c)
+IDL_GEN_HEADERS = $(IDL_H_SRCS:.idl=.h) $(IDL_C_SRCS:.idl=.h) $(IDL_I_SRCS:.idl=.h) \
+ $(IDL_P_SRCS:.idl=.h) $(IDL_S_SRCS:.idl=.h)
+
+CLEAN_TARGETS = $(IDL_GEN_C_SRCS) $(IDL_GEN_HEADERS) $(IDL_TLB_SRCS:.idl=.tlb) $(IDL_P_SRCS:%=dlldata.c) \
+ $(BISON_SRCS:.y=.tab.c) $(BISON_SRCS:.y=.tab.h) $(LEX_SRCS:.l=.yy.c) $(MC_SRCS:.mc=.mc.rc)
+
+OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(IDL_GEN_C_SRCS:.c=.o) \
+ $(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(EXTRA_OBJS)
+
+LINTS = $(C_SRCS:.c=.ln)
+
+# 'all' target first in case the enclosing Makefile didn't define any target
+
+all:
+
+filter: dummy
+ @$(TOPSRCDIR)/tools/winapi/make_filter --make $(MAKE) all
+
+.PHONY: all filter
+
+# Implicit rules
+
+.SUFFIXES: .mc .rc .mc.rc .res .spec .spec.o .idl .tlb .h .y .l .tab.c .tab.h .yy.c .ok .man.in .man _c.c _i.c _p.c _s.c # .sfd .ttf .svg .ico
+
+.c.o:
+ $(CC) -c $(ALLCFLAGS) -o $@ $<
+
+.y.tab.c:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $@ $<
+
+.y.tab.h:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $*.tab.c -d $<
+
+.l.yy.c:
+ $(FLEX) $(LEXFLAGS) -o$@ $<
+
+.mc.mc.rc:
+ $(LDPATH) $(WMC) -i -U -H /dev/null -o $@ $<
+
+.rc.res:
+ $(LDPATH) $(RC) $(RCFLAGS) -fo$@ $<
+
+.spec.spec.o:
+ $(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --main-module $(MODULE) --export $<
+
+.idl.h:
+ $(WIDL) $(IDLFLAGS) -h -H $@ $<
+
+.idl_c.c:
+ $(WIDL) $(IDLFLAGS) -c -C $@ $<
+
+.idl_i.c:
+ $(WIDL) $(IDLFLAGS) -u -U $@ $<
+
+.idl_p.c:
+ $(WIDL) $(IDLFLAGS) -p -P $@ $<
+
+.idl_s.c:
+ $(WIDL) $(IDLFLAGS) -s -S $@ $<
+
+.idl.tlb:
+ $(WIDL) $(TARGETFLAGS) $(IDLFLAGS) -t -T $@ $<
+
+.c.ln:
+ $(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
+
+.c.ok:
+ $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
+
+.sfd.ttf:
+ $(FONTFORGE) -script $(TOPSRCDIR)/fonts/genttf.ff $< $@
+
+.man.in.man:
+ LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,Wine 1.1.35,g' $< >$@ || ($(RM) $@ && false)
+
+.svg.ico:
+ $(RSVG) -w 16 -h 16 -f png $< $*-16.png
+ $(RSVG) -w 32 -h 32 -f png $< $*-32.png
+ $(RSVG) -w 48 -h 48 -f png $< $*-48.png
+ $(ICOTOOL) -c -o $@ $*-16.png $*-32.png $*-48.png
+ $(RM) $*-16.png $*-32.png $*-48.png
+
+# Rules for IDL files
+
+dlldata.c: $(WIDL) Makefile.in
+ $(WIDL) $(IDLFLAGS) --dlldata-only --dlldata=$@ $(IDL_P_SRCS)
+
+# Rule for linting
+
+$(MODULE).ln : $(LINTS)
+ if test "$(LINTS)" ; \
+ then \
+ $(LINT) $(ALLLINTFLAGS) -o$(MODULE) $(LINTS) ; \
+ $(MV) llib-l$(MODULE).ln $(MODULE).ln ; \
+ else \
+ $(LINT) $(ALLLINTFLAGS) -C$(MODULE) /dev/null ; \
+ fi
+
+lint:: $(MODULE).ln
+
+# Rules for Windows API checking
+
+winapi_check:: dummy
+ $(WINAPI_CHECK) $(WINAPI_CHECK_FLAGS) $(WINAPI_CHECK_EXTRA_FLAGS) .
+
+.PHONY: winapi_check
+
+# Rules for dependencies
+
+DEPEND_SRCS = $(C_SRCS) $(C_SRCS16) $(RC_SRCS) $(RC_SRCS16) $(MC_SRCS) \
+ $(IDL_H_SRCS) $(IDL_C_SRCS) $(IDL_I_SRCS) $(IDL_P_SRCS) $(IDL_S_SRCS) \
+ $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS) $(IDL_TLB_SRCS:.idl=.tlb) \
+ $(BISON_SRCS) $(LEX_SRCS) $(EXTRA_SRCS)
+
+$(SUBDIRS:%=%/__depend__): dummy
+ @cd `dirname $@` && $(MAKE) depend
+
+depend: $(SUBDIRS:%=%/__depend__) dummy
+ $(MAKEDEP) $(MAKEDEPFLAGS) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
+
+.PHONY: depend $(SUBDIRS:%=%/__depend__)
+
+# Rules for cleaning
+
+$(SUBDIRS:%=%/__clean__): dummy
+ @cd `dirname $@` && $(MAKE) clean
+
+$(EXTRASUBDIRS:%=%/__clean__): dummy
+ -cd `dirname $@` && $(RM) $(CLEAN_FILES)
+
+clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+ $(RM) $(CLEAN_FILES) $(CLEAN_TARGETS) $(PROGRAMS) $(MANPAGES)
+
+.PHONY: clean $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+
+# Rules for installing
+
+$(SUBDIRS:%=%/__install__): dummy
+ @cd `dirname $@` && $(MAKE) install
+
+$(SUBDIRS:%=%/__install-lib__): dummy
+ @cd `dirname $@` && $(MAKE) install-lib
+
+$(SUBDIRS:%=%/__install-dev__): dummy
+ @cd `dirname $@` && $(MAKE) install-dev
+
+$(SUBDIRS:%=%/__uninstall__): dummy
+ @cd `dirname $@` && $(MAKE) uninstall
+
+install:: $(INSTALLSUBDIRS:%=%/__install__) dummy
+install-lib:: $(INSTALLSUBDIRS:%=%/__install-lib__) dummy
+install-dev:: $(INSTALLSUBDIRS:%=%/__install-dev__) dummy
+uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__) dummy
+
+$(INSTALLDIRS):
+ $(MKINSTALLDIRS) $@
+
+.PHONY: install install-lib install-dev uninstall \
+ $(SUBDIRS:%=%/__install__) $(SUBDIRS:%=%/__uninstall__) \
+ $(SUBDIRS:%=%/__install-lib__) $(SUBDIRS:%=%/__install-dev__)
+
+# Rules for testing
+
+$(TESTSUBDIRS:%=%/__test__): dummy
+ @cd `dirname $@` && $(MAKE) test
+
+$(TESTSUBDIRS:%=%/__crosstest__): dummy
+ @cd `dirname $@` && $(MAKE) crosstest
+
+$(TESTSUBDIRS:%=%/__testclean__): dummy
+ @cd `dirname $@` && $(MAKE) testclean
+
+check test:: $(TESTSUBDIRS:%=%/__test__) dummy
+
+crosstest:: $(TESTSUBDIRS:%=%/__crosstest__) dummy
+
+testclean:: $(TESTSUBDIRS:%=%/__testclean__) dummy
+
+.PHONY: check test testclean crosstest $(TESTSUBDIRS:%=%/__test__) $(TESTSUBDIRS:%=%/__crosstest__) $(TESTSUBDIRS:%=%/__testclean__)
+
+# Rules for auto documentation
+
+$(DOCSUBDIRS:%=%/__man__): dummy
+ @cd `dirname $@` && $(MAKE) man
+
+$(DOCSUBDIRS:%=%/__doc_html__): dummy
+ @cd `dirname $@` && $(MAKE) doc-html
+
+$(DOCSUBDIRS:%=%/__doc_sgml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-sgml
+
+$(DOCSUBDIRS:%=%/__doc_xml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-xml
+
+man: $(DOCSUBDIRS:%=%/__man__)
+doc-html: $(DOCSUBDIRS:%=%/__doc_html__)
+doc-sgml: $(DOCSUBDIRS:%=%/__doc_sgml__)
+doc-xml: $(DOCSUBDIRS:%=%/__doc_xml__)
+
+.PHONY: man doc-html doc-sgml doc-xml $(DOCSUBDIRS:%=%/__man__) $(DOCSUBDIRS:%=%/__doc_html__) $(DOCSUBDIRS:%=%/__doc_sgml__) $(DOCSUBDIRS:%=%/__doc_xml__)
+
+# Misc. rules
+
+$(MC_SRCS:.mc=.mc.rc): $(WMC)
+
+$(IDL_GEN_HEADERS) $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS:.idl=.tlb): $(WIDL)
+
+$(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(RC_SRCS16:.rc=.res): $(WRC)
+
+$(SUBDIRS): dummy
+ @cd $@ && $(MAKE)
+
+dummy:
+
+.PHONY: dummy $(SUBDIRS)
+
+# End of global rules
+
+all: $(SUBDIRS)
+
+# Directory dependencies
+
+wine wine/__install__ wine/__install-lib__: port
diff -rupN wine-1.5.19/programs/Makefile wine-silverlight-1.5.19/programs/Makefile
--- wine-1.5.19/programs/Makefile 1969-12-31 16:00:00.000000000 -0800
+++ wine-silverlight-1.5.19/programs/Makefile 2012-12-20 18:16:39.776215447 -0800
@@ -0,0 +1,492 @@
+TOPSRCDIR = ..
+TOPOBJDIR = ..
+SRCDIR = .
+
+
+SUBDIRS = \
+ cacls \
+ clock \
+ cmd \
+ cmdlgtst \
+ control \
+ dxdiag \
+ eject \
+ expand \
+ explorer \
+ extrac32 \
+ hh \
+ icinfo \
+ iexplore \
+ lodctr \
+ mshta \
+ msiexec \
+ net \
+ notepad \
+ oleview \
+ progman \
+ reg \
+ regedit \
+ regsvr32 \
+ rpcss \
+ rundll32 \
+ secedit \
+ services \
+ spoolsv \
+ start \
+ svchost \
+ taskmgr \
+ termsv \
+ uninstaller \
+ unlodctr \
+ view \
+ wineboot \
+ winebrowser \
+ winecfg \
+ wineconsole \
+ winedbg \
+ winedevice \
+ winefile \
+ winemenubuilder \
+ winemine \
+ winepath \
+ winetest \
+ winevdm \
+ winhelp.exe16 \
+ winhlp32 \
+ winoldap.mod16 \
+ winver \
+ wordpad \
+ write \
+ xcopy
+INSTALLSUBDIRS = \
+ cacls \
+ clock \
+ cmd \
+ control \
+ dxdiag \
+ eject \
+ expand \
+ explorer \
+ extrac32 \
+ hh \
+ icinfo \
+ iexplore \
+ lodctr \
+ mshta \
+ msiexec \
+ net \
+ notepad \
+ oleview \
+ progman \
+ reg \
+ regedit \
+ regsvr32 \
+ rpcss \
+ rundll32 \
+ secedit \
+ services \
+ spoolsv \
+ start \
+ svchost \
+ taskmgr \
+ termsv \
+ uninstaller \
+ unlodctr \
+ wineboot \
+ winebrowser \
+ winecfg \
+ wineconsole \
+ winedbg \
+ winedevice \
+ winefile \
+ winemenubuilder \
+ winemine \
+ winepath \
+ winevdm \
+ winhelp.exe16 \
+ winhlp32 \
+ winoldap.mod16 \
+ winver \
+ wordpad \
+ write \
+ xcopy
+INSTALLPROGS = \
+ msiexec \
+ notepad \
+ regedit \
+ regsvr32 \
+ wineboot \
+ winecfg \
+ wineconsole \
+ winedbg \
+ winefile \
+ winemine \
+ winepath
+
+INSTALLDIRS = $(DESTDIR)$(bindir)
+
+PROGRAMS = wineapploader
+
+# Global rules shared by all makefiles -*-Makefile-*-
+#
+# Each individual makefile must define the following variables:
+# TOPSRCDIR : top-level source directory
+# TOPOBJDIR : top-level object directory
+# SRCDIR : source directory for this module
+# MODULE : name of the module being built
+#
+# Each individual makefile may define the following additional variables:
+# C_SRCS : C sources for the module
+# C_SRCS16 : 16-bit C sources for the module
+# RC_SRCS : resource source files
+# EXTRA_SRCS : extra source files for make depend
+# EXTRA_OBJS : extra object files
+# IMPORTS : dlls to import
+# DELAYIMPORTS : dlls to import in delayed mode
+# SUBDIRS : subdirectories that contain a Makefile
+# EXTRASUBDIRS : subdirectories that do not contain a Makefile
+# INSTALLSUBDIRS : subdirectories to run make install/uninstall into
+# MODCFLAGS : extra CFLAGS for this module
+
+# First some useful definitions
+
+SHELL = /bin/sh
+CC = ccache gcc -m32
+CFLAGS = -g -O2
+CPPFLAGS =
+LIBS =
+BISON = bison
+FLEX = flex
+EXEEXT =
+OBJEXT = o
+LIBEXT = so
+DLLEXT = .so
+TOOLSEXT =
+IMPLIBEXT = def
+LDSHARED = $(CC) -shared $(SONAME:%=-Wl,-soname,%) $(VERSCRIPT:%=-Wl,--version-script=%)
+DLLTOOL = i586-mingw32msvc-dlltool
+DLLWRAP =
+AR = ar
+ARFLAGS = rc
+RANLIB = ranlib
+STRIP = strip
+LN = ln
+LN_S = ln -s
+TOOLSDIR = $(TOPOBJDIR)
+LDFLAGS =
+PRELINK = /usr/sbin/prelink
+RM = rm -f
+MV = mv
+LINT =
+LINTFLAGS =
+FONTFORGE = fontforge
+RSVG = false
+ICOTOOL = icotool
+FAKEEXT = $(DLLEXT:.so=.fake)
+INCLUDES = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL)
+EXTRACFLAGS = -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wstrict-prototypes -Wwrite-strings -Wtype-limits -Wpointer-arith
+ALLCFLAGS = $(INCLUDES) $(DEFS) $(DLLFLAGS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS)
+ALLLINTFLAGS = $(INCLUDES) $(DEFS) $(LINTFLAGS)
+IDLFLAGS = $(INCLUDES) $(DEFS) $(EXTRAIDLFLAGS)
+TARGETFLAGS = -m32
+WINEBUILDFLAGS = $(TARGETFLAGS) $(DLLFLAGS)
+MKINSTALLDIRS= $(TOPSRCDIR)/tools/mkinstalldirs -m 755
+WINAPI_CHECK = $(TOPSRCDIR)/tools/winapi/winapi_check
+WINEWRAPPER = $(TOPSRCDIR)/tools/winewrapper
+C2MAN = $(TOPSRCDIR)/tools/c2man.pl
+RUNTEST = $(TOPSRCDIR)/tools/runtest
+WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT)
+MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
+MAKECTESTS = $(TOOLSDIR)/tools/make_ctests$(TOOLSEXT)
+WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT)
+WMC = $(TOOLSDIR)/tools/wmc/wmc$(TOOLSEXT)
+WIDL = $(TOOLSDIR)/tools/widl/widl$(TOOLSEXT)
+WINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc $(TARGETFLAGS) -B$(TOOLSDIR)/tools/winebuild --sysroot=$(TOPOBJDIR)
+RELPATH = $(TOOLSDIR)/tools/relpath$(TOOLSEXT)
+SFNT2FNT = $(TOOLSDIR)/tools/sfnt2fnt$(TOOLSEXT)
+RC = $(WRC)
+RC16 = $(WRC)
+RCFLAGS = --nostdinc $(INCLUDES) $(DEFS) $(EXTRARCFLAGS)
+RC16FLAGS = -O res16 $(RCFLAGS)
+LDPATH = LD_LIBRARY_PATH="$(TOOLSDIR)/libs/wine:$$LD_LIBRARY_PATH"
+DLLDIR = $(TOPOBJDIR)/dlls
+LIBPORT = $(TOPOBJDIR)/libs/port/libwine_port.a
+LIBWPP = $(TOPOBJDIR)/libs/wpp/libwpp.a
+LIBWINE = -L$(TOPOBJDIR)/libs/wine -lwine
+LDRPATH_INSTALL = -Wl,--rpath,\$$ORIGIN/`$(RELPATH) $(bindir) $(libdir)` -Wl,--enable-new-dtags
+LDRPATH_LOCAL = -Wl,--rpath,\$$ORIGIN/$(TOPOBJDIR)/libs/wine
+
+
+
+# Installation infos
+
+INSTALL = /usr/bin/install -c $(INSTALL_FLAGS)
+INSTALL_PROGRAM = ${INSTALL} $(INSTALL_PROGRAM_FLAGS)
+INSTALL_SCRIPT = ${INSTALL} $(INSTALL_SCRIPT_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644 $(INSTALL_DATA_FLAGS)
+prefix = /usr/local
+exec_prefix = ${prefix}
+bindir = ${exec_prefix}/bin
+libdir = ${exec_prefix}/lib
+datarootdir = ${prefix}/share
+datadir = ${datarootdir}
+infodir = ${datarootdir}/info
+mandir = ${datarootdir}/man
+sysconfdir = ${prefix}/etc
+includedir = ${prefix}/include/wine
+dlldir = ${exec_prefix}/lib/wine
+fakedlldir = $(dlldir)/fakedlls
+prog_manext = 1
+api_manext = 3w
+conf_manext = 5
+CLEAN_FILES = *.o *.a *.so *.ln *.res *.fake *.$(LIBEXT) \\\#*\\\# *~ *% .\\\#* *.bak *.orig *.rej *.flc core
+
+IDL_GEN_C_SRCS = $(IDL_C_SRCS:.idl=_c.c) $(IDL_I_SRCS:.idl=_i.c) \
+ $(IDL_P_SRCS:.idl=_p.c) $(IDL_S_SRCS:.idl=_s.c)
+IDL_GEN_HEADERS = $(IDL_H_SRCS:.idl=.h) $(IDL_C_SRCS:.idl=.h) $(IDL_I_SRCS:.idl=.h) \
+ $(IDL_P_SRCS:.idl=.h) $(IDL_S_SRCS:.idl=.h)
+
+CLEAN_TARGETS = $(IDL_GEN_C_SRCS) $(IDL_GEN_HEADERS) $(IDL_TLB_SRCS:.idl=.tlb) $(IDL_P_SRCS:%=dlldata.c) \
+ $(BISON_SRCS:.y=.tab.c) $(BISON_SRCS:.y=.tab.h) $(LEX_SRCS:.l=.yy.c) $(MC_SRCS:.mc=.mc.rc)
+
+OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(IDL_GEN_C_SRCS:.c=.o) \
+ $(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(EXTRA_OBJS)
+
+LINTS = $(C_SRCS:.c=.ln)
+
+# 'all' target first in case the enclosing Makefile didn't define any target
+
+all:
+
+filter: dummy
+ @$(TOPSRCDIR)/tools/winapi/make_filter --make $(MAKE) all
+
+.PHONY: all filter
+
+# Implicit rules
+
+.SUFFIXES: .mc .rc .mc.rc .res .spec .spec.o .idl .tlb .h .y .l .tab.c .tab.h .yy.c .ok .man.in .man _c.c _i.c _p.c _s.c # .sfd .ttf .svg .ico
+
+.c.o:
+ $(CC) -c $(ALLCFLAGS) -o $@ $<
+
+.y.tab.c:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $@ $<
+
+.y.tab.h:
+ $(BISON) $(BISONFLAGS) -p $*_ -o $*.tab.c -d $<
+
+.l.yy.c:
+ $(FLEX) $(LEXFLAGS) -o$@ $<
+
+.mc.mc.rc:
+ $(LDPATH) $(WMC) -i -U -H /dev/null -o $@ $<
+
+.rc.res:
+ $(LDPATH) $(RC) $(RCFLAGS) -fo$@ $<
+
+.spec.spec.o:
+ $(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --main-module $(MODULE) --export $<
+
+.idl.h:
+ $(WIDL) $(IDLFLAGS) -h -H $@ $<
+
+.idl_c.c:
+ $(WIDL) $(IDLFLAGS) -c -C $@ $<
+
+.idl_i.c:
+ $(WIDL) $(IDLFLAGS) -u -U $@ $<
+
+.idl_p.c:
+ $(WIDL) $(IDLFLAGS) -p -P $@ $<
+
+.idl_s.c:
+ $(WIDL) $(IDLFLAGS) -s -S $@ $<
+
+.idl.tlb:
+ $(WIDL) $(TARGETFLAGS) $(IDLFLAGS) -t -T $@ $<
+
+.c.ln:
+ $(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
+
+.c.ok:
+ $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
+
+.sfd.ttf:
+ $(FONTFORGE) -script $(TOPSRCDIR)/fonts/genttf.ff $< $@
+
+.man.in.man:
+ LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,Wine 1.1.35,g' $< >$@ || ($(RM) $@ && false)
+
+.svg.ico:
+ $(RSVG) -w 16 -h 16 -f png $< $*-16.png
+ $(RSVG) -w 32 -h 32 -f png $< $*-32.png
+ $(RSVG) -w 48 -h 48 -f png $< $*-48.png
+ $(ICOTOOL) -c -o $@ $*-16.png $*-32.png $*-48.png
+ $(RM) $*-16.png $*-32.png $*-48.png
+
+# Rules for IDL files
+
+dlldata.c: $(WIDL) Makefile.in
+ $(WIDL) $(IDLFLAGS) --dlldata-only --dlldata=$@ $(IDL_P_SRCS)
+
+# Rule for linting
+
+$(MODULE).ln : $(LINTS)
+ if test "$(LINTS)" ; \
+ then \
+ $(LINT) $(ALLLINTFLAGS) -o$(MODULE) $(LINTS) ; \
+ $(MV) llib-l$(MODULE).ln $(MODULE).ln ; \
+ else \
+ $(LINT) $(ALLLINTFLAGS) -C$(MODULE) /dev/null ; \
+ fi
+
+lint:: $(MODULE).ln
+
+# Rules for Windows API checking
+
+winapi_check:: dummy
+ $(WINAPI_CHECK) $(WINAPI_CHECK_FLAGS) $(WINAPI_CHECK_EXTRA_FLAGS) .
+
+.PHONY: winapi_check
+
+# Rules for dependencies
+
+DEPEND_SRCS = $(C_SRCS) $(C_SRCS16) $(RC_SRCS) $(RC_SRCS16) $(MC_SRCS) \
+ $(IDL_H_SRCS) $(IDL_C_SRCS) $(IDL_I_SRCS) $(IDL_P_SRCS) $(IDL_S_SRCS) \
+ $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS) $(IDL_TLB_SRCS:.idl=.tlb) \
+ $(BISON_SRCS) $(LEX_SRCS) $(EXTRA_SRCS)
+
+$(SUBDIRS:%=%/__depend__): dummy
+ @cd `dirname $@` && $(MAKE) depend
+
+depend: $(SUBDIRS:%=%/__depend__) dummy
+ $(MAKEDEP) $(MAKEDEPFLAGS) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
+
+.PHONY: depend $(SUBDIRS:%=%/__depend__)
+
+# Rules for cleaning
+
+$(SUBDIRS:%=%/__clean__): dummy
+ @cd `dirname $@` && $(MAKE) clean
+
+$(EXTRASUBDIRS:%=%/__clean__): dummy
+ -cd `dirname $@` && $(RM) $(CLEAN_FILES)
+
+clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+ $(RM) $(CLEAN_FILES) $(CLEAN_TARGETS) $(PROGRAMS) $(MANPAGES)
+
+.PHONY: clean $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
+
+# Rules for installing
+
+$(SUBDIRS:%=%/__install__): dummy
+ @cd `dirname $@` && $(MAKE) install
+
+$(SUBDIRS:%=%/__install-lib__): dummy
+ @cd `dirname $@` && $(MAKE) install-lib
+
+$(SUBDIRS:%=%/__install-dev__): dummy
+ @cd `dirname $@` && $(MAKE) install-dev
+
+$(SUBDIRS:%=%/__uninstall__): dummy
+ @cd `dirname $@` && $(MAKE) uninstall
+
+install:: $(INSTALLSUBDIRS:%=%/__install__) dummy
+install-lib:: $(INSTALLSUBDIRS:%=%/__install-lib__) dummy
+install-dev:: $(INSTALLSUBDIRS:%=%/__install-dev__) dummy
+uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__) dummy
+
+$(INSTALLDIRS):
+ $(MKINSTALLDIRS) $@
+
+.PHONY: install install-lib install-dev uninstall \
+ $(SUBDIRS:%=%/__install__) $(SUBDIRS:%=%/__uninstall__) \
+ $(SUBDIRS:%=%/__install-lib__) $(SUBDIRS:%=%/__install-dev__)
+
+# Rules for testing
+
+$(TESTSUBDIRS:%=%/__test__): dummy
+ @cd `dirname $@` && $(MAKE) test
+
+$(TESTSUBDIRS:%=%/__crosstest__): dummy
+ @cd `dirname $@` && $(MAKE) crosstest
+
+$(TESTSUBDIRS:%=%/__testclean__): dummy
+ @cd `dirname $@` && $(MAKE) testclean
+
+check test:: $(TESTSUBDIRS:%=%/__test__) dummy
+
+crosstest:: $(TESTSUBDIRS:%=%/__crosstest__) dummy
+
+testclean:: $(TESTSUBDIRS:%=%/__testclean__) dummy
+
+.PHONY: check test testclean crosstest $(TESTSUBDIRS:%=%/__test__) $(TESTSUBDIRS:%=%/__crosstest__) $(TESTSUBDIRS:%=%/__testclean__)
+
+# Rules for auto documentation
+
+$(DOCSUBDIRS:%=%/__man__): dummy
+ @cd `dirname $@` && $(MAKE) man
+
+$(DOCSUBDIRS:%=%/__doc_html__): dummy
+ @cd `dirname $@` && $(MAKE) doc-html
+
+$(DOCSUBDIRS:%=%/__doc_sgml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-sgml
+
+$(DOCSUBDIRS:%=%/__doc_xml__): dummy
+ @cd `dirname $@` && $(MAKE) doc-xml
+
+man: $(DOCSUBDIRS:%=%/__man__)
+doc-html: $(DOCSUBDIRS:%=%/__doc_html__)
+doc-sgml: $(DOCSUBDIRS:%=%/__doc_sgml__)
+doc-xml: $(DOCSUBDIRS:%=%/__doc_xml__)
+
+.PHONY: man doc-html doc-sgml doc-xml $(DOCSUBDIRS:%=%/__man__) $(DOCSUBDIRS:%=%/__doc_html__) $(DOCSUBDIRS:%=%/__doc_sgml__) $(DOCSUBDIRS:%=%/__doc_xml__)
+
+# Misc. rules
+
+$(MC_SRCS:.mc=.mc.rc): $(WMC)
+
+$(IDL_GEN_HEADERS) $(IDL_GEN_C_SRCS) $(IDL_TLB_SRCS:.idl=.tlb): $(WIDL)
+
+$(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.mc.res) $(RC_SRCS16:.rc=.res): $(WRC)
+
+$(SUBDIRS): dummy
+ @cd $@ && $(MAKE)
+
+dummy:
+
+.PHONY: dummy $(SUBDIRS)
+
+# End of global rules
+
+all: $(PROGRAMS) $(SUBDIRS)
+
+wineapploader: wineapploader.in
+ sed -e 's,@bindir\@,$(bindir),g' $(SRCDIR)/wineapploader.in >$@ || ($(RM) $@ && false)
+
+# Rules for installation
+
+.PHONY: install-apploader install-progs install-progs.so $(INSTALLPROGS:%=%/__installprog__)
+
+install-apploader: wineapploader $(INSTALLDIRS) dummy
+ $(INSTALL_SCRIPT) wineapploader $(DESTDIR)$(bindir)/wineapploader
+
+$(INSTALLPROGS:%=%/__installprog__): install-apploader
+ $(RM) $(DESTDIR)$(bindir)/`dirname $@` && $(LN) $(DESTDIR)$(bindir)/wineapploader $(DESTDIR)$(bindir)/`dirname $@`
+
+install-progs.so: $(INSTALLPROGS:%=%/__installprog__)
+ $(RM) $(DESTDIR)$(bindir)/wineapploader
+
+install-progs: # nothing to do here
+
+ install install-lib:: install-progs$(DLLEXT) $(INSTALLDIRS)
+
+uninstall::
+ -cd $(DESTDIR)$(bindir) && $(RM) wineapploader $(INSTALLPROGS)
+ -rmdir $(DESTDIR)$(fakedlldir) $(DESTDIR)$(dlldir)
+
+# Rules for testing
+
+check test:: $(SUBDIRS:%=%/__test__)
diff -rupN wine-1.5.19/server/change.c wine-silverlight-1.5.19/server/change.c
--- wine-1.5.19/server/change.c 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/server/change.c 2012-12-20 18:16:39.786214785 -0800
@@ -286,6 +286,7 @@ static int get_dir_unix_fd( struct dir *
static struct security_descriptor *dir_get_sd( struct object *obj )
{
struct dir *dir = (struct dir *)obj;
+ const SID *user, *group;
int unix_fd;
struct stat st;
struct security_descriptor *sd;
@@ -302,9 +303,11 @@ static struct security_descriptor *dir_g
(st.st_uid == dir->uid))
return obj->sd;
- sd = mode_to_sd( st.st_mode,
- security_unix_uid_to_sid( st.st_uid ),
- token_get_primary_group( current->process->token ));
+ user = security_unix_uid_to_sid( st.st_uid );
+ group = token_get_primary_group( current->process->token );
+ sd = get_file_acls( unix_fd, user, group );
+ if (!sd)
+ sd = mode_to_sd( st.st_mode, user, group );
if (!sd) return obj->sd;
dir->mode = st.st_mode;
@@ -353,6 +356,8 @@ static int dir_set_sd( struct object *ob
mode = st.st_mode & (S_ISUID|S_ISGID|S_ISVTX);
mode |= sd_to_mode( sd, owner );
+ set_file_acls( unix_fd, sd );
+
if (((st.st_mode ^ mode) & (S_IRWXU|S_IRWXG|S_IRWXO)) && fchmod( unix_fd, mode ) == -1)
{
file_set_error();
diff -rupN wine-1.5.19/server/fd.c wine-silverlight-1.5.19/server/fd.c
--- wine-1.5.19/server/fd.c 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/server/fd.c 2012-12-20 18:16:39.786214785 -0800
@@ -88,6 +88,9 @@
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
+#ifdef HAVE_ATTR_XATTR_H
+#include <attr/xattr.h>
+#endif
#include "ntstatus.h"
#define WIN32_NO_STATUS
@@ -96,6 +99,7 @@
#include "handle.h"
#include "process.h"
#include "request.h"
+#include "security.h"
#include "winternl.h"
#include "winioctl.h"
@@ -1723,9 +1727,69 @@ static char *dup_fd_name( struct fd *roo
return ret;
}
+void set_file_acls( int fd, const struct security_descriptor *sd )
+{
+#ifdef HAVE_ATTR_XATTR_H
+ char buffer[XATTR_SIZE_MAX], *p = buffer;
+ const ACE_HEADER *ace;
+ int present, i, j, n;
+ const ACL *dacl;
+
+ if (!sd) return;
+ dacl = sd_get_dacl( sd, &present );
+ if (!present || !dacl) return;
+ ace = (const ACE_HEADER *)(dacl + 1);
+
+ for (i = 0; i < dacl->AceCount; i++, ace = ace_next( ace ))
+ {
+ BYTE type = ace->AceType, flags;
+ const ACCESS_ALLOWED_ACE *aaa;
+ const ACCESS_DENIED_ACE *ada;
+ char sidtxt[100], *s;
+ const SID *sid;
+ DWORD mask;
+
+ if (type & INHERIT_ONLY_ACE) continue;
+
+ switch (type)
+ {
+ case ACCESS_DENIED_ACE_TYPE:
+ ada = (const ACCESS_DENIED_ACE *)ace;
+ flags = ada->Header.AceFlags;
+ mask = ada->Mask;
+ sid = (const SID *)&ada->SidStart;
+ break;
+ case ACCESS_ALLOWED_ACE_TYPE:
+ aaa = (const ACCESS_ALLOWED_ACE *)ace;
+ flags = aaa->Header.AceFlags;
+ mask = aaa->Mask;
+ sid = (const SID *)&aaa->SidStart;
+ break;
+ default:
+ continue;
+ }
+ n = sprintf( sidtxt, "S-%u-%d", sid->Revision,
+ MAKELONG(
+ MAKEWORD( sid->IdentifierAuthority.Value[5],
+ sid->IdentifierAuthority.Value[4] ),
+ MAKEWORD( sid->IdentifierAuthority.Value[3],
+ sid->IdentifierAuthority.Value[2] )
+ ) );
+ s = sidtxt + n;
+ for( j=0; j<sid->SubAuthorityCount; j++ )
+ s += sprintf( s, "-%u", sid->SubAuthority[j] );
+
+ p += snprintf( p, XATTR_SIZE_MAX-(p-buffer), "%s%x,%x,%x,%s",
+ (p != buffer ? ";" : ""), type, flags, mask, sidtxt );
+ }
+
+ fsetxattr( fd, "user.wine.acl", buffer, p-buffer, 0 );
+#endif
+}
+
/* open() wrapper that returns a struct fd with no fd user set */
struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode, unsigned int access,
- unsigned int sharing, unsigned int options )
+ unsigned int sharing, unsigned int options, const struct security_descriptor *sd )
{
struct stat st;
struct closed_fd *closed_fd;
@@ -1765,7 +1829,7 @@ struct fd *open_fd( struct fd *root, con
/* create the directory if needed */
if ((options & FILE_DIRECTORY_FILE) && (flags & O_CREAT))
{
- if (mkdir( name, 0777 ) == -1)
+ if (mkdir( name, *mode ) == -1)
{
if (errno != EEXIST || (flags & O_EXCL))
{
@@ -1801,6 +1865,8 @@ struct fd *open_fd( struct fd *root, con
}
}
+ set_file_acls( fd->unix_fd, sd );
+
closed_fd->unix_fd = fd->unix_fd;
closed_fd->unlink[0] = 0;
fstat( fd->unix_fd, &st );
diff -rupN wine-1.5.19/server/file.c wine-silverlight-1.5.19/server/file.c
--- wine-1.5.19/server/file.c 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/server/file.c 2012-12-20 18:16:39.786214785 -0800
@@ -32,6 +32,7 @@
#include <sys/time.h>
#include <sys/types.h>
#include <time.h>
+#include <limits.h>
#include <unistd.h>
#ifdef HAVE_UTIME_H
#include <utime.h>
@@ -39,6 +40,9 @@
#ifdef HAVE_POLL_H
#include <poll.h>
#endif
+#ifdef HAVE_ATTR_XATTR_H
+#include <attr/xattr.h>
+#endif
#include "ntstatus.h"
#define WIN32_NO_STATUS
@@ -219,7 +223,12 @@ static struct object *create_file( struc
mode = sd_to_mode( sd, owner );
}
else
- mode = (attrs & FILE_ATTRIBUTE_READONLY) ? 0444 : 0666;
+ {
+ if (options & FILE_NON_DIRECTORY_FILE)
+ mode = (attrs & FILE_ATTRIBUTE_READONLY) ? 0444 : 0666;
+ else
+ mode = (attrs & FILE_ATTRIBUTE_READONLY) ? 0555 : 0777;
+ }
if (len >= 4 &&
(!strcasecmp( name + len - 4, ".exe" ) || !strcasecmp( name + len - 4, ".com" )))
@@ -235,7 +244,7 @@ static struct object *create_file( struc
access = generic_file_map_access( access );
/* FIXME: should set error to STATUS_OBJECT_NAME_COLLISION if file existed before */
- fd = open_fd( root, name, flags | O_NONBLOCK | O_LARGEFILE, &mode, access, sharing, options );
+ fd = open_fd( root, name, flags | O_NONBLOCK | O_LARGEFILE, &mode, access, sharing, options, sd );
if (!fd) goto done;
if (S_ISDIR(mode))
@@ -430,9 +439,169 @@ struct security_descriptor *mode_to_sd(
return sd;
}
+struct security_descriptor *get_file_acls( int fd, const SID *user, const SID *group )
+{
+#ifdef HAVE_ATTR_XATTR_H
+ int ace_count = 0, dacl_size = sizeof(ACL), i, n;
+ char buffer[XATTR_SIZE_MAX], *p = buffer, *pn;
+ struct security_descriptor *sd;
+ ACE_HEADER *current_ace;
+ ACCESS_ALLOWED_ACE *aaa;
+ ACCESS_DENIED_ACE *ada;
+ int type, flags, mask;
+ ACL *dacl;
+ char *ptr;
+
+ n = fgetxattr( fd, "user.wine.acl", buffer, sizeof(buffer) );
+ if (n == -1) return NULL;
+ buffer[n] = 0;
+
+ do
+ {
+ int sub_authority_count = 0;
+
+ pn = strchr(p, ';');
+ if (pn) pn++;
+ sscanf(p, "%x", &type);
+ do
+ {
+ p = strchr(p, '-');
+ if (p) p++;
+ sub_authority_count++;
+ }
+ while(p && (!pn || p < pn));
+ sub_authority_count -= 3; /* Revision and IdentifierAuthority don't count */
+
+ switch (type)
+ {
+ case ACCESS_DENIED_ACE_TYPE:
+ dacl_size += FIELD_OFFSET(ACCESS_DENIED_ACE, SidStart) +
+ FIELD_OFFSET(SID, SubAuthority[sub_authority_count]);
+ break;
+ case ACCESS_ALLOWED_ACE_TYPE:
+ dacl_size += FIELD_OFFSET(ACCESS_ALLOWED_ACE, SidStart) +
+ FIELD_OFFSET(SID, SubAuthority[sub_authority_count]);
+ break;
+ default:
+ continue;
+ }
+ ace_count++;
+ p = pn;
+ }
+ while(p);
+
+ sd = mem_alloc( sizeof(struct security_descriptor) +
+ FIELD_OFFSET(SID, SubAuthority[user->SubAuthorityCount]) +
+ FIELD_OFFSET(SID, SubAuthority[group->SubAuthorityCount]) +
+ dacl_size );
+
+ sd->control = SE_DACL_PRESENT;
+ sd->owner_len = FIELD_OFFSET(SID, SubAuthority[user->SubAuthorityCount]);
+ sd->group_len = FIELD_OFFSET(SID, SubAuthority[group->SubAuthorityCount]);
+ sd->sacl_len = 0;
+ sd->dacl_len = dacl_size;
+
+ ptr = (char *)(sd + 1);
+ memcpy( ptr, user, sd->owner_len );
+ ptr += sd->owner_len;
+ memcpy( ptr, group, sd->group_len );
+ ptr += sd->group_len;
+
+ dacl = (ACL *)ptr;
+ dacl->AclRevision = ACL_REVISION;
+ dacl->Sbz1 = 0;
+ dacl->AclSize = dacl_size;
+ dacl->AceCount = ace_count;
+ dacl->Sbz2 = 0;
+ aaa = (ACCESS_ALLOWED_ACE *)(dacl + 1);
+ current_ace = &aaa->Header;
+
+ p = buffer;
+ for(i=0; i<ace_count; i++)
+ {
+ char b[sizeof(SID) + sizeof(ULONG) * SID_MAX_SUB_AUTHORITIES];
+ int sub_authority_count = 0;
+ SID *sid = (SID *)&b[0];
+ char sidtxt[100];
+ int rev, ia, sa;
+
+ if (i != 0)
+ {
+ aaa = (ACCESS_ALLOWED_ACE *)ace_next( current_ace );
+ current_ace = &aaa->Header;
+ }
+ pn = strchr(p, ';');
+ if (pn) pn++;
+ sscanf(p, "%x,%x,%x,%[^;]", &type, &flags, &mask, sidtxt);
+ sscanf(sidtxt, "S-%u-%d", &rev, &ia);
+ sid->Revision = rev;
+ sid->IdentifierAuthority.Value[0] = 0;
+ sid->IdentifierAuthority.Value[1] = 0;
+ sid->IdentifierAuthority.Value[2] = HIBYTE(HIWORD(ia));
+ sid->IdentifierAuthority.Value[3] = LOBYTE(HIWORD(ia));
+ sid->IdentifierAuthority.Value[4] = HIBYTE(LOWORD(ia));
+ sid->IdentifierAuthority.Value[5] = LOBYTE(LOWORD(ia));
+ p = strchr(sidtxt, '-')+1;
+ p = strchr(p, '-')+1; /* Revision doesn't count */
+ p = strchr(p, '-')+1; /* IdentifierAuthority doesn't count */
+ do
+ {
+ sscanf(p, "%u", &sa);
+ sid->SubAuthority[sub_authority_count] = sa;
+ p = strchr(p, '-');
+ if (p) p++;
+ sub_authority_count++;
+ }
+ while(p);
+ sid->SubAuthorityCount = sub_authority_count;
+
+ /* Convert generic rights into standard access rights */
+ if (mask & GENERIC_ALL)
+ mask |= WRITE_DAC | WRITE_OWNER | DELETE | FILE_DELETE_CHILD;
+ if (mask & (GENERIC_ALL|GENERIC_READ))
+ mask |= FILE_GENERIC_READ;
+ if (mask & (GENERIC_ALL|GENERIC_WRITE))
+ mask |= FILE_GENERIC_WRITE;
+ if (mask & (GENERIC_ALL|GENERIC_EXECUTE))
+ mask |= FILE_GENERIC_EXECUTE;
+ mask &= 0x0FFFFFFF;
+
+ /* Handle the specific ACE */
+ switch (type)
+ {
+ case ACCESS_DENIED_ACE_TYPE:
+ ada = (ACCESS_DENIED_ACE *)aaa;
+ ada->Header.AceType = type;
+ ada->Header.AceFlags = flags;
+ ada->Header.AceSize = FIELD_OFFSET(ACCESS_DENIED_ACE, SidStart) +
+ FIELD_OFFSET(SID, SubAuthority[sid->SubAuthorityCount]);
+ ada->Mask = mask;
+ memcpy( &ada->SidStart, sid, FIELD_OFFSET(SID, SubAuthority[sid->SubAuthorityCount]) );
+ break;
+ case ACCESS_ALLOWED_ACE_TYPE:
+ aaa->Header.AceType = type;
+ aaa->Header.AceFlags = flags;
+ aaa->Header.AceSize = FIELD_OFFSET(ACCESS_ALLOWED_ACE, SidStart) +
+ FIELD_OFFSET(SID, SubAuthority[sid->SubAuthorityCount]);
+ aaa->Mask = mask;
+ memcpy( &aaa->SidStart, sid, FIELD_OFFSET(SID, SubAuthority[sid->SubAuthorityCount]) );
+ break;
+ default:
+ continue;
+ }
+ p = pn;
+ }
+
+ return sd;
+#else
+ return NULL;
+#endif
+}
+
static struct security_descriptor *file_get_sd( struct object *obj )
{
struct file *file = (struct file *)obj;
+ const SID *user, *group;
struct stat st;
int unix_fd;
struct security_descriptor *sd;
@@ -449,9 +618,11 @@ static struct security_descriptor *file_
(st.st_uid == file->uid))
return obj->sd;
- sd = mode_to_sd( st.st_mode,
- security_unix_uid_to_sid( st.st_uid ),
- token_get_primary_group( current->process->token ));
+ user = security_unix_uid_to_sid( st.st_uid );
+ group = token_get_primary_group( current->process->token );
+ sd = get_file_acls( unix_fd, user, group );
+ if (!sd)
+ sd = mode_to_sd( st.st_mode, user, group);
if (!sd) return obj->sd;
file->mode = st.st_mode;
@@ -581,6 +752,8 @@ static int file_set_sd( struct object *o
mode = st.st_mode & (S_ISUID|S_ISGID|S_ISVTX);
mode |= sd_to_mode( sd, owner );
+ set_file_acls( unix_fd, sd );
+
if (((st.st_mode ^ mode) & (S_IRWXU|S_IRWXG|S_IRWXO)) && fchmod( unix_fd, mode ) == -1)
{
file_set_error();
diff -rupN wine-1.5.19/server/file.h wine-silverlight-1.5.19/server/file.h
--- wine-1.5.19/server/file.h 2012-12-07 11:17:32.000000000 -0800
+++ wine-silverlight-1.5.19/server/file.h 2012-12-20 18:16:39.789547898 -0800
@@ -56,7 +56,8 @@ extern struct fd *alloc_pseudo_fd( const
unsigned int options );
extern void set_no_fd_status( struct fd *fd, unsigned int status );
extern struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
- unsigned int access, unsigned int sharing, unsigned int options );
+ unsigned int access, unsigned int sharing, unsigned int options,
+ const struct security_descriptor *sd );
extern struct fd *create_anonymous_fd( const struct fd_ops *fd_user_ops,
int unix_fd, struct object *user, unsigned int options );
extern struct fd *dup_fd_object( struct fd *orig, unsigned int access, unsigned int sharing,
@@ -122,6 +123,8 @@ extern struct file *create_file_for_fd_o
extern void file_set_error(void);
extern struct security_descriptor *mode_to_sd( mode_t mode, const SID *user, const SID *group );
extern mode_t sd_to_mode( const struct security_descriptor *sd, const SID *owner );
+extern void set_file_acls( int fd, const struct security_descriptor *sd );
+extern struct security_descriptor *get_file_acls( int fd, const SID *user, const SID *group );
/* file mapping functions */
diff -rupN wine-1.5.19/tools/wineprefixcreate.man wine-silverlight-1.5.19/tools/wineprefixcreate.man
--- wine-1.5.19/tools/wineprefixcreate.man 1969-12-31 16:00:00.000000000 -0800
+++ wine-silverlight-1.5.19/tools/wineprefixcreate.man 2012-12-20 18:16:39.806213462 -0800
@@ -0,0 +1,82 @@
+.\" -*- nroff -*-
+.TH WINEPREFIXCREATE 1 "August 2006" "Wine 1.1.35" "Windows on Unix"
+.SH NAME
+wineprefixcreate \- create or update the Wine configuration
+.SH SYNOPSIS
+.BI wineprefixcreate\ [options]
+.SH DESCRIPTION
+.B wineprefixcreate
+creates or updates a Wine configuration directory. When running Wine,
+the base name of the configuration directory is specified in the
+WINEPREFIX variable, hence the name of this tool.
+.PP
+.B wineprefixcreate
+is launched automatically by
+.B wine(1)
+if you don't have an existing configuration. However, it can sometimes
+be useful to run it explicitly to create a different directory, or
+update an existing one.
+.SH OPTIONS
+.TP
+.BI \--prefix\ directory
+Create the specified directory (or update it if it exists already). If
+this option is not specified,
+.B wineprefixcreate
+defaults to the
+.I WINEPREFIX
+environment variable, or to
+.I $HOME/.wine
+if not set.
+.TP
+.B \-h, \--help
+Display a usage message.
+.TP
+.B \-q, \--quiet
+Don't display any status messages.
+.TP
+.B \-w, \--wait
+Wait for
+.B wineserver
+to save everything before returning. This is necessary for instance if
+you are planning to rename the directory once created; otherwise a
+running server could still try to access the directory under its old
+name.
+.SH ENVIRONMENT VARIABLES
+.TP
+.I WINEPREFIX
+If set, the content of this variable is taken as the name of the directory where
+.B wineprefixcreate
+stores its data (the default is \fI$HOME/.wine\fR). All
+.B wine
+processes using the same prefix share certain things like registry,
+shared memory and kernel objects. By setting
+.I WINEPREFIX
+to different values for different Wine processes, it is possible to
+run a number of truly independent Wine sessions.
+.SH FILES
+.TP
+.B ~/.wine
+Default location for the
+.B wine
+configuration data.
+.SH AUTHORS
+Many people have contributed to the development of Wine. Please check
+the file Changelog in the Wine distribution for the complete details.
+.SH BUGS
+If you find a bug, please submit a bug report at
+.UR http://bugs.winehq.org
+.B http://bugs.winehq.org.
+.UE
+.SH AVAILABILITY
+.B wineprefixcreate
+is part of the Wine distribution, which is available through WineHQ,
+the Wine development headquarters, at
+.UR http://www.winehq.org/
+.B http://www.winehq.org/.
+.UE
+.br
+It is distributed under the terms of the GNU Lesser General Public
+License.
+.SH "SEE ALSO"
+.BR wine (1),
+.BR wineserver (1).