mshtml: Added IHTMLEventObj::y implementation.
[wine.git] / aclocal.m4
blob1713b167ad08cbcbc31e04843032ae372c37b5d7
1 dnl Macros used to build the Wine configure script
2 dnl
3 dnl Copyright 2002 Alexandre Julliard
4 dnl
5 dnl This library is free software; you can redistribute it and/or
6 dnl modify it under the terms of the GNU Lesser General Public
7 dnl License as published by the Free Software Foundation; either
8 dnl version 2.1 of the License, or (at your option) any later version.
9 dnl
10 dnl This library is distributed in the hope that it will be useful,
11 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 dnl Lesser General Public License for more details.
14 dnl
15 dnl You should have received a copy of the GNU Lesser General Public
16 dnl License along with this library; if not, write to the Free Software
17 dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 dnl
19 dnl As a special exception to the GNU Lesser General Public License,
20 dnl if you distribute this file as part of a program that contains a
21 dnl configuration script generated by Autoconf, you may include it
22 dnl under the same distribution terms that you use for the rest of
23 dnl that program.
25 dnl WINE_CHECK_HOST_TOOL(VARIABLE, PROG-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH])
26 dnl
27 dnl Like AC_CHECK_TOOL but without the broken fallback to non-prefixed name
28 dnl
29 AC_DEFUN([WINE_CHECK_HOST_TOOL],
30 [if test -n "$ac_tool_prefix"; then
31   AC_CHECK_PROG([$1],[${ac_tool_prefix}$2],[${ac_tool_prefix}$2],,[$4])
33 if test -n "$ac_cv_prog_$1"; then
34   $1="$ac_cv_prog_$1"
35 elif test "$cross_compiling" != yes; then
36   unset ac_cv_prog_$1
37   AC_CHECK_PROG([$1],[$2],[$2],[$3],[$4])
38 fi])
40 dnl **** Initialize the programs used by other checks ****
41 dnl
42 dnl Usage: WINE_PATH_SONAME_TOOLS
43 dnl Usage: WINE_PATH_PKG_CONFIG
44 dnl
45 AC_DEFUN([WINE_PATH_SONAME_TOOLS],
46 [AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)
47 AC_CHECK_TOOL(READELF,[readelf],true)])
49 AC_DEFUN([WINE_PATH_PKG_CONFIG],
50 [WINE_CHECK_HOST_TOOL(PKG_CONFIG,[pkg-config])])
52 dnl **** Extract the soname of a library ****
53 dnl
54 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
55 dnl
56 AC_DEFUN([WINE_CHECK_SONAME],
57 [AC_REQUIRE([WINE_PATH_SONAME_TOOLS])dnl
58 AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
59 m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
60 AC_MSG_CHECKING([for -l$1])
61 AC_CACHE_VAL(ac_Lib,
62 [ac_check_soname_save_LIBS=$LIBS
63 LIBS="-l$1 $5 $LIBS"
64   AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
65   [case "$LIBEXT" in
66     dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
67     dylib) AS_VAR_SET(ac_Lib,[`otool -L conftest$ac_exeext | grep "ac_lib_pattern\\.[[0-9A-Za-z.]]*dylib" | sed -e "s/^.*\/\(ac_lib_pattern\.[[0-9A-Za-z.]]*dylib\).*$/\1/"';2,$d'`]) ;;
68     *) AS_VAR_SET(ac_Lib,[`$READELF -d conftest$ac_exeext | grep "NEEDED.*ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\\m4_dquote(\\(ac_lib_pattern\\.$LIBEXT[[^    ]]*\\)\\).*$/\1/"';2,$d'`])
69        AS_IF([test "x]AS_VAR_GET(ac_Lib)[" = x],
70              [AS_VAR_SET(ac_Lib,[`$LDD conftest$ac_exeext | grep "ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\(ac_lib_pattern\.$LIBEXT[[^  ]]*\).*$/\1/"';2,$d'`])]) ;;
71   esac])
72   LIBS=$ac_check_soname_save_LIBS])dnl
73 AS_IF([test "x]AS_VAR_GET(ac_Lib)[" = "x"],
74       [AC_MSG_RESULT([not found])
75        $4],
76       [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
77        AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
78                           [Define to the soname of the lib$1 library.])
79        $3])dnl
80 m4_popdef([ac_lib_pattern])dnl
81 AS_VAR_POPDEF([ac_Lib])])
83 dnl **** Get flags from pkg-config or alternate xxx-config program ****
84 dnl
85 dnl Usage: WINE_PACKAGE_FLAGS(var,pkg-name,[default-lib,[cflags-alternate,libs-alternate,[checks]]])
86 dnl
87 AC_DEFUN([WINE_PACKAGE_FLAGS],
88 [AC_REQUIRE([WINE_PATH_PKG_CONFIG])dnl
89 AS_VAR_PUSHDEF([ac_cflags],[[$1]_CFLAGS])dnl
90 AS_VAR_PUSHDEF([ac_libs],[[$1]_LIBS])dnl
91 AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl
92 AS_IF([test -n "$ac_cflags"],[],
93       [test -n "$PKG_CONFIG"],
94       [ac_cflags=`$PKG_CONFIG --cflags [$2] 2>/dev/null`])
95 m4_ifval([$4],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$4]}])
96 AC_ARG_VAR(ac_libs, [Linker flags for $2, overriding pkg-config])dnl
97 AS_IF([test -n "$ac_libs"],[],
98       [test -n "$PKG_CONFIG"],
99       [ac_libs=`$PKG_CONFIG --libs [$2] 2>/dev/null`])
100 m4_ifval([$5],[test "$cross_compiling" = yes || ac_libs=[$]{ac_libs:-[$5]}])
101 m4_ifval([$3],[ac_libs=[$]{ac_libs:-"$3"}])
102 ac_save_CPPFLAGS=$CPPFLAGS
103 CPPFLAGS="$CPPFLAGS $ac_cflags"
105 CPPFLAGS=$ac_save_CPPFLAGS
106 test -z "$ac_cflags" || ac_cflags=`echo " $ac_cflags" | sed 's/ -I\([[^/]]\)/ -I\$(top_builddir)\/\1/g'`
107 test -z "$ac_libs" || ac_libs=`echo " $ac_libs" | sed 's/ -L\([[^/]]\)/ -L\$(top_builddir)\/\1/g'`
108 AS_VAR_POPDEF([ac_libs])dnl
109 AS_VAR_POPDEF([ac_cflags])])dnl
111 dnl **** Link C code with an assembly file ****
113 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
115 AC_DEFUN([WINE_TRY_ASM_LINK],
116 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
118 dnl **** Check if we can link an empty program with special CFLAGS ****
120 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
122 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
124 AC_DEFUN([WINE_TRY_CFLAGS],
125 [AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
126 AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
127 [ac_wine_try_cflags_saved=$CFLAGS
128 CFLAGS="$CFLAGS $1"
129 AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]])],
130                [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
131 CFLAGS=$ac_wine_try_cflags_saved])
132 AS_IF([test AS_VAR_GET(ac_var) = yes],
133       [m4_default([$2], [EXTRACFLAGS="$EXTRACFLAGS $1"])], [$3])dnl
134 AS_VAR_POPDEF([ac_var])])
136 dnl **** Check if we can link an empty shared lib (no main) with special CFLAGS ****
138 dnl Usage: WINE_TRY_SHLIB_FLAGS(flags,[action-if-yes,[action-if-no]])
140 AC_DEFUN([WINE_TRY_SHLIB_FLAGS],
141 [ac_wine_try_cflags_saved=$CFLAGS
142 CFLAGS="$CFLAGS $1"
143 AC_LINK_IFELSE([AC_LANG_SOURCE([void myfunc() {}])],[$2],[$3])
144 CFLAGS=$ac_wine_try_cflags_saved])
146 dnl **** Check whether we need to define a symbol on the compiler command line ****
148 dnl Usage: WINE_CHECK_DEFINE(name),[action-if-yes,[action-if-no]])
150 AC_DEFUN([WINE_CHECK_DEFINE],
151 [AS_VAR_PUSHDEF([ac_var],[ac_cv_cpp_def_$1])dnl
152 AC_CACHE_CHECK([whether we need to define $1],ac_var,
153     AC_EGREP_CPP(yes,[#ifndef $1
155 #endif],
156     [AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)]))
157 AS_IF([test AS_VAR_GET(ac_var) = yes],
158       [CFLAGS="$CFLAGS -D$1"
159   LINTFLAGS="$LINTFLAGS -D$1"])dnl
160 AS_VAR_POPDEF([ac_var])])
162 dnl **** Check for functions with some extra libraries ****
164 dnl Usage: WINE_CHECK_LIB_FUNCS(funcs,libs,[action-if-found,[action-if-not-found]])
166 AC_DEFUN([WINE_CHECK_LIB_FUNCS],
167 [ac_wine_check_funcs_save_LIBS="$LIBS"
168 LIBS="$LIBS $2"
169 AC_CHECK_FUNCS([$1],[$3],[$4])
170 LIBS="$ac_wine_check_funcs_save_LIBS"])
172 dnl **** Check for a mingw program, trying the various mingw prefixes ****
174 dnl Usage: WINE_CHECK_MINGW_PROG(variable,prog,[value-if-not-found],[path])
176 AC_DEFUN([WINE_CHECK_MINGW_PROG],
177 [case "$host_cpu" in
178   i[[3456789]]86*)
179     ac_prefix_list="m4_foreach([ac_wine_prefix],[w64-mingw32, pc-mingw32, mingw32msvc, mingw32],
180                         m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-ac_wine_prefix-$2 ]))
181                         mingw32-$2" ;;
182   x86_64)
183     ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32, w64-mingw32, mingw32msvc],
184                         m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-ac_wine_prefix-$2 ]))" ;;
185   *)
186     ac_prefix_list="" ;;
187 esac
188 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$3],[$4])])
191 dnl **** Define helper functions for creating config.status files ****
193 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
195 AC_DEFUN([WINE_CONFIG_HELPERS],
196 [wine_rules_file=conf$$rules.make
197 rm -f $wine_rules_file
198 ALL_POT_FILES=""
199 AC_SUBST(ALL_TEST_RESOURCES,"")
201 wine_fn_append_file ()
203     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
206 wine_fn_append_rule ()
208     AS_ECHO("$[1]") >>$wine_rules_file
211 wine_fn_has_flag ()
213     expr ",$[2]," : ".*,$[1],.*" >/dev/null
216 wine_fn_all_dir_rules ()
218     ac_dir=$[1]
219     ac_alldeps=$[2]
220     ac_makedep="\$(MAKEDEP)"
221     ac_input=Make.vars.in:$ac_dir/Makefile.in
222     if test $ac_dir != tools
223     then
224         dnl makedep is in tools so tools makefile cannot depend on it
225         ac_alldeps="$[2] $ac_makedep"
226     else
227         ac_alldeps="$[2] include/config.h"
228     fi
229     case $[2] in
230       *.in) ac_input=$ac_input:$[2] ;;
231       *) ac_makedep="$[2] $ac_makedep" ;;
232     esac
234     wine_fn_append_rule \
235 "$ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps
236         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
237 depend: $ac_dir/__depend__
238 .PHONY: $ac_dir/__depend__
239 $ac_dir/__depend__: $ac_makedep dummy
240         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
243 wine_fn_pot_rules ()
245     ac_dir=$[1]
246     ac_flags=$[2]
248     test "x$with_gettextpo" = xyes || return
250     if wine_fn_has_flag mc $ac_flags
251     then
252         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
253         wine_fn_append_rule \
254 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
255         @cd $ac_dir && \$(MAKE) msg.pot
256 $ac_dir/msg.pot: tools/wmc include"
257     fi
258     if wine_fn_has_flag po $ac_flags
259     then
260         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
261         wine_fn_append_rule \
262 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
263         @cd $ac_dir && \$(MAKE) rsrc.pot
264 $ac_dir/rsrc.pot: tools/wrc include"
265     fi
268 wine_fn_config_all_make_rules ()
270     ac_dir=$[1]
271     ac_enable=$[2]
272     ac_flags=$[3]
273     ac_rules=$[4]
274     AS_VAR_IF([$ac_enable],[no],[return 0])
276     wine_fn_all_dir_rules $ac_dir ${ac_rules:-Make.rules}
277     wine_fn_append_rule \
278 "all: $ac_dir
279 .PHONY: $ac_dir
280 $ac_dir: $ac_dir/Makefile dummy
281         @cd $ac_dir && \$(MAKE)"
283     wine_fn_has_flag install-lib $ac_flags || wine_fn_has_flag install-dev $ac_flags || return
285     wine_fn_append_rule \
286 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
287 $ac_dir/__install__:: $ac_dir
288         @cd $ac_dir && \$(MAKE) install
289 $ac_dir/__uninstall__:: $ac_dir/Makefile
290         @cd $ac_dir && \$(MAKE) uninstall
291 install:: $ac_dir/__install__
292 __uninstall__: $ac_dir/__uninstall__"
294     if wine_fn_has_flag install-lib $ac_flags
295     then
296         wine_fn_append_rule \
297 ".PHONY: $ac_dir/__install-lib__
298 $ac_dir/__install-lib__:: $ac_dir
299         @cd $ac_dir && \$(MAKE) install-lib
300 install-lib:: $ac_dir/__install-lib__"
301     fi
303     if wine_fn_has_flag install-dev $ac_flags
304     then
305         wine_fn_append_rule \
306 ".PHONY: $ac_dir/__install-dev
307 $ac_dir/__install-dev__:: $ac_dir
308         @cd $ac_dir && \$(MAKE) install-dev
309 install-dev:: $ac_dir/__install-dev__"
310     fi
313 wine_fn_clean_rules ()
315     ac_dir=$[1]
316     ac_flags=$[2]
317     shift; shift
318     ac_clean=$[@]
320     if wine_fn_has_flag clean $ac_flags
321     then
322         wine_fn_append_rule \
323 "__clean__: $ac_dir/__clean__
324 .PHONY: $ac_dir/__clean__
325 $ac_dir/__clean__: $ac_dir/Makefile
326         @cd $ac_dir && \$(MAKE) clean
327         \$(RM) $ac_dir/Makefile"
328     else
329         wine_fn_append_rule \
330 "clean::
331         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_dir/Makefile"
332     fi
335 wine_fn_config_makefile ()
337     ac_dir=$[1]
338     ac_enable=$[2]
339     ac_flags=$[3]
341     wine_fn_config_all_make_rules $ac_dir $ac_enable $ac_flags
342     wine_fn_clean_rules $ac_dir $ac_flags
345 wine_fn_config_lib ()
347     ac_name=$[1]
348     ac_flags=$[2]
349     ac_dir=dlls/$ac_name
350     wine_fn_config_all_make_rules $ac_dir enable_$ac_name "$ac_flags" dlls/Makeimplib.rules
351     wine_fn_clean_rules $ac_dir $ac_flags
353     if wine_fn_has_flag install-dev $ac_flags
354     then :
355     else
356         wine_fn_append_rule \
357 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
358 $ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir)
359         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
360 $ac_dir/__uninstall__::
361         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
362 install install-dev:: $ac_dir/__install__
363 __uninstall__: $ac_dir/__uninstall__"
364     fi
366     wine_fn_append_rule \
367 "__builddeps__: $ac_dir
368 $ac_dir: tools/widl tools/winebuild tools/winegcc include"
371 wine_fn_config_dll ()
373     ac_name=$[1]
374     ac_dir=dlls/$ac_name
375     ac_enable=$[2]
376     ac_flags=$[3]
377     ac_implib=${4:-$ac_name}
378     ac_file=$ac_dir/lib$ac_implib
379     ac_dll=$ac_name
380     ac_deps="tools/widl tools/winebuild tools/winegcc include"
381     ac_implibflags=""
383     case $ac_name in
384       *16) ac_implibflags=" -m16" ;;
385       *.*) ;;
386       *)   ac_dll=$ac_dll.dll ;;
387     esac
389     wine_fn_config_all_make_rules $ac_dir $ac_enable "$ac_flags" dlls/Makedll.rules
391     ac_clean=
392     wine_fn_has_flag implib $ac_flags && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
393     wine_fn_has_flag mc $ac_flags && ac_clean="$ac_clean $ac_dir/msg.pot"
394     wine_fn_has_flag po $ac_flags && ac_clean="$ac_clean $ac_dir/rsrc.pot"
395     wine_fn_clean_rules $ac_dir "$ac_flags" $ac_clean
397     AS_VAR_IF([$ac_enable],[no],
398               dnl enable_win16 is special in that it disables import libs too
399               [test "$ac_enable" != enable_win16 || return 0
400                wine_fn_has_flag implib $ac_flags && wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules],
402               [wine_fn_append_rule \
403 "$ac_dir: __builddeps__
404 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
405         @cd $ac_dir && \$(MAKE) \$[@]"
407         if wine_fn_has_flag install-lib $ac_flags
408         then :
409         else
410             wine_fn_append_rule \
411 ".PHONY: $ac_dir/__install-lib__ $ac_dir/__uninstall__
412 install install-lib:: $ac_dir/__install-lib__
413 __uninstall__: $ac_dir/__uninstall__"
414             if test -n "$DLLEXT"
415             then
416                 wine_fn_append_rule \
417 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
418         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
419         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
420 $ac_dir/__uninstall__::
421         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
422             else
423                 wine_fn_append_rule \
424 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
425         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
426 $ac_dir/__uninstall__::
427         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
428             fi
429         fi
431         wine_fn_pot_rules $ac_dir $ac_flags])
433     if wine_fn_has_flag staticimplib $ac_flags
434     then
435         wine_fn_append_rule \
436 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
437 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
438 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
439         @cd $ac_dir && \$(MAKE) lib$ac_implib.def
440 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
441         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
442 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
443 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
444         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
445 $ac_dir/__uninstall__::
446         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
447 install install-dev:: $ac_dir/__install-dev__
448 __uninstall__: $ac_dir/__uninstall__"
450         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
451         then
452             wine_fn_append_rule \
453 "$ac_dir/__install-dev__:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
454         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
455 $ac_dir/__uninstall__::
456         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
457         fi
459         if test "x$CROSSTEST_DISABLE" = x
460         then
461             wine_fn_append_rule \
462 "__builddeps__: $ac_file.cross.a
463 $ac_file.cross.a: $ac_dir/Makefile dummy
464         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
465         fi
467     elif wine_fn_has_flag implib $ac_flags
468     then
469         wine_fn_append_rule \
470 "__builddeps__: $ac_file.$IMPLIBEXT
471 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
472         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
473 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
474         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
475 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
476 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
477         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
478 $ac_dir/__uninstall__::
479         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
480 install install-dev:: $ac_dir/__install-dev__
481 __uninstall__: $ac_dir/__uninstall__"
482         if test "x$CROSSTEST_DISABLE" = x
483         then
484             wine_fn_append_rule \
485 "__builddeps__: $ac_file.cross.a
486 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
487         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
488         fi
490         if test "$ac_name" != "$ac_implib"
491         then
492             wine_fn_append_rule \
493 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
494 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
495         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
496 clean::
497         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
498             if test "x$CROSSTEST_DISABLE" = x
499             then
500                 wine_fn_append_rule \
501 "__builddeps__: dlls/lib$ac_implib.cross.a
502 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
503         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
504             fi
505         fi
506     fi
509 wine_fn_config_program ()
511     ac_name=$[1]
512     ac_dir=programs/$ac_name
513     ac_enable=$[2]
514     ac_flags=$[3]
515     ac_program=$ac_name
517     case $ac_name in
518       *.*) ;;
519       *)   ac_program=$ac_program.exe ;;
520     esac
522     wine_fn_config_all_make_rules $ac_dir $ac_enable "$ac_flags" programs/Makeprog.rules
524     ac_clean=
525     wine_fn_has_flag mc $ac_flags && ac_clean="$ac_clean $ac_dir/msg.pot"
526     wine_fn_has_flag po $ac_flags && ac_clean="$ac_clean $ac_dir/rsrc.pot"
527     wine_fn_has_flag manpage $ac_flags && ac_clean="$ac_clean $ac_dir/$ac_name.man"
528     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
529     wine_fn_clean_rules $ac_dir "$ac_flags" $ac_clean
531     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule "$ac_dir: __builddeps__"
533     wine_fn_pot_rules $ac_dir $ac_flags
535     wine_fn_has_flag install $ac_flags || return
536     wine_fn_append_rule \
537 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
538 install install-lib:: $ac_dir/__install__
539 __uninstall__: $ac_dir/__uninstall__"
541     if test -n "$DLLEXT"
542     then
543         wine_fn_append_rule \
544 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
545         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
546         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
547 $ac_dir/__uninstall__::
548         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
550         if test "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
551         then
552             wine_fn_append_rule \
553 "$ac_dir/__install__:: tools \$(DESTDIR)\$(bindir)
554         \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
555 $ac_dir/__uninstall__::
556         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
557         fi
558     else
559         wine_fn_append_rule \
560 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
561         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(dlldir)/$ac_program
562 $ac_dir/__uninstall__::
563         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program"
564     fi
566     if test "x$enable_tools" != xno && wine_fn_has_flag manpage $ac_flags
567     then
568         wine_fn_append_rule \
569 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
570         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
571 $ac_dir/__uninstall__::
572         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
573     fi])
576 wine_fn_config_test ()
578     ac_dir=$[1]
579     ac_name=$[2]
580     ac_flags=$[3]
582     ac_clean=
583     test "x$CROSSTEST_DISABLE" = x && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
584     test -n "$DLLEXT" || ac_clean=$ac_dir/${ac_name}.exe
585     ac_clean="$ac_clean $ac_dir/*.ok $ac_dir/testlist.c"
587     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
588     wine_fn_all_dir_rules $ac_dir Maketest.rules
589     wine_fn_clean_rules $ac_dir "$ac_flags" $ac_clean
591     AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule \
592 "all: $ac_dir
593 .PHONY: $ac_dir
594 $ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
595         @cd $ac_dir && \$(MAKE)
596 programs/winetest: $ac_dir
597 check test: $ac_dir/__test__
598 .PHONY: $ac_dir/__test__
599 $ac_dir/__test__: dummy
600         @cd $ac_dir && \$(MAKE) test
601 testclean::
602         \$(RM) $ac_dir/*.ok"
604         if test "x$CROSSTEST_DISABLE" = x
605         then
606             wine_fn_append_rule \
607 "crosstest: $ac_dir/__crosstest__
608 .PHONY: $ac_dir/__crosstest__
609 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
610         @cd $ac_dir && \$(MAKE) crosstest"
611         fi])
614 wine_fn_config_tool ()
616     ac_dir=$[1]
617     ac_flags=$[2]
618     AS_VAR_IF([enable_tools],[no],[return 0])
620     wine_fn_config_all_make_rules $ac_dir enable_tools $ac_flags
621     wine_fn_clean_rules $ac_dir $ac_flags
623     wine_fn_append_rule "__tooldeps__: $ac_dir"
624     wine_fn_append_rule "$ac_dir: libs/port"
625     case $ac_dir in
626       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
627     esac
630 wine_fn_config_makerules ()
632     ac_rules=$[1]
633     ac_deps=$[2]
634     wine_fn_append_rule \
635 "$ac_rules: $ac_rules.in $ac_deps config.status
636         @./config.status $ac_rules
637 distclean::
638         \$(RM) $ac_rules"
641 wine_fn_config_symlink ()
643     ac_linkdir=
644     if test "x$[1]" = "x-d"
645     then
646         ac_linkdir=$[2]
647         shift; shift
648     fi
649     ac_links=$[@]
650     wine_fn_append_rule \
651 "$ac_links:
652         @./config.status \$[@]
653 distclean::
654         \$(RM) $ac_links"
655     test -n "$ac_linkdir" || return
656     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/__depend__: $ac_links"
659 if test "x$CROSSTEST_DISABLE" != x
660 then
661     wine_fn_append_rule \
662 "crosstest:
663         @echo \"crosstest is not supported (mingw not installed?)\" && false"
664 fi])
666 dnl **** Define helper function to append a file to a makefile file list ****
668 dnl Usage: WINE_APPEND_FILE(var,file)
670 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
672 dnl **** Define helper function to append a rule to a makefile command list ****
674 dnl Usage: WINE_APPEND_RULE(rule)
676 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
678 dnl **** Create nonexistent directories from config.status ****
680 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
682 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
683 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])dnl
684 wine_fn_append_rule \
685 "clean::
686         \$(RM) \$(CLEAN_FILES:%=[$1]/%)"])
688 dnl **** Create symlinks from config.status ****
690 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
692 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
693 m4_ifval([$4],[if test "x$[$4]" != xno; then
694 ])m4_foreach([f],[$3],
695 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
696 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
697 wine_fn_config_symlink[]m4_if([$1],[$2],,m4_ifval([$1],[ -d $1]))[]m4_foreach([f],[$3],[ ]m4_ifval([$1],[$1/])f)m4_ifval([$4],[
698 fi])[]dnl
699 ])])
701 dnl **** Create a make rules file from config.status ****
703 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
705 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
706 wine_fn_config_makerules $1 $3
707 $2=$1
708 AC_SUBST_FILE([$2])dnl
709 AC_CONFIG_FILES([$1])])
711 dnl **** Create a makefile from config.status ****
713 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
715 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
716 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
717 wine_fn_config_makefile [$1] ac_enable [$3]dnl
718 AS_VAR_POPDEF([ac_enable])])
720 dnl **** Create a dll makefile from config.status ****
722 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
724 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
725 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
726 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
727 AS_VAR_POPDEF([ac_enable])])
729 dnl **** Create a program makefile from config.status ****
731 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
733 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
734 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
735 wine_fn_config_program [$1] ac_enable [$3]dnl
736 AS_VAR_POPDEF([ac_enable])])
738 dnl **** Create a test makefile from config.status ****
740 dnl Usage: WINE_CONFIG_TEST(dir,flags)
742 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
743 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
744 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
745 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
746 m4_popdef([ac_suffix])dnl
747 m4_popdef([ac_name])])
749 dnl **** Create a static lib makefile from config.status ****
751 dnl Usage: WINE_CONFIG_LIB(name,flags)
753 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
754 wine_fn_config_lib [$1] [$2]])
756 dnl **** Create a tool makefile from config.status ****
758 dnl Usage: WINE_CONFIG_TOOL(name,flags)
760 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
761 wine_fn_config_tool [$1] [$2]])
763 dnl **** Add a message to the list displayed at the end ****
765 dnl Usage: WINE_NOTICE(notice)
766 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
767 dnl Usage: WINE_WARNING(warning)
768 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
769 dnl Usage: WINE_PRINT_MESSAGES
771 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
772 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
774 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
775   x)   WINE_NOTICE([$3]) ;;
776   xno) ;;
777   *)   AC_MSG_ERROR([$3
778 This is an error since --with-$1 was requested.]) ;;
779 esac])])
781 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
782   x)   WINE_WARNING([$3]) ;;
783   xno) ;;
784   *)   AC_MSG_ERROR([$3
785 This is an error since --with-$1 was requested.]) ;;
786 esac])])
788 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
789   xno) ;;
790   *)   AC_MSG_ERROR([$3
791 Use the --without-$1 option if you really want this.]) ;;
792 esac])])
794 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
795 if test "x$wine_notices != "x; then
796     echo >&AS_MESSAGE_FD
797     IFS="|"
798     for msg in $wine_notices; do
799         IFS="$ac_save_IFS"
800         if test -n "$msg"; then
801             AC_MSG_NOTICE([$msg])
802         fi
803     done
805 IFS="|"
806 for msg in $wine_warnings; do
807     IFS="$ac_save_IFS"
808     if test -n "$msg"; then
809         echo >&2
810         AC_MSG_WARN([$msg])
811     fi
812 done
813 IFS="$ac_save_IFS"])
815 dnl Local Variables:
816 dnl compile-command: "autoreconf --warnings=all"
817 dnl End: