user32: Properly handle WM_DEVICECHANGE in is_pointer_message().
[wine.git] / aclocal.m4
blob0769077bb523eef2fad2f580a8e4e54e9c86aebd
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 [AS_VAR_SET_IF([ac_tool_prefix],
31   AC_CHECK_PROG([$1],[${ac_tool_prefix}$2],[${ac_tool_prefix}$2],,[$4]))
32 AS_VAR_IF([ac_cv_prog_$1],[],
33   [AS_VAR_IF([cross_compiling],[yes],[],
34     [AS_UNSET([ac_cv_prog_$1])
35      AC_CHECK_PROG([$1],[$2],[$2],[$3],[$4])])],
36 [AS_VAR_COPY([$1],[ac_cv_prog_$1])])])
38 dnl **** Initialize the programs used by other checks ****
39 dnl
40 dnl Usage: WINE_PATH_SONAME_TOOLS
41 dnl Usage: WINE_PATH_PKG_CONFIG
42 dnl
43 AC_DEFUN([WINE_PATH_SONAME_TOOLS],
44 [AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)
45 AC_CHECK_TOOL(OTOOL,otool,otool)
46 AC_CHECK_TOOL(READELF,[readelf],true)])
48 AC_DEFUN([WINE_PATH_PKG_CONFIG],
49 [WINE_CHECK_HOST_TOOL(PKG_CONFIG,[pkg-config])])
51 dnl **** Extract the soname of a library ****
52 dnl
53 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
54 dnl
55 AC_DEFUN([WINE_CHECK_SONAME],
56 [AC_REQUIRE([WINE_PATH_SONAME_TOOLS])dnl
57 AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
58 m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
59 AC_MSG_CHECKING([for -l$1])
60 AC_CACHE_VAL(ac_Lib,
61 [ac_check_soname_save_LIBS=$LIBS
62 LIBS="-l$1 $5 $LIBS"
63   AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
64   [case "$LIBEXT" in
65     dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
66     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'`]) ;;
67     *) 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'`])
68        AS_VAR_IF([ac_Lib],[],
69              [AS_VAR_SET(ac_Lib,[`$LDD conftest$ac_exeext | grep "ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\(ac_lib_pattern\.$LIBEXT[[^  ]]*\).*$/\1/"';2,$d'`])]) ;;
70   esac])
71   LIBS=$ac_check_soname_save_LIBS])dnl
72 AS_VAR_IF([ac_Lib],[],
73       [AC_MSG_RESULT([not found])
74        $4],
75       [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
76        AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
77                           [Define to the soname of the lib$1 library.])
78        $3])dnl
79 m4_popdef([ac_lib_pattern])dnl
80 AS_VAR_POPDEF([ac_Lib])])
82 dnl **** Get flags from pkg-config or alternate xxx-config program ****
83 dnl
84 dnl Usage: WINE_PACKAGE_FLAGS(var,pkg-name,[default-lib,[cflags-alternate,libs-alternate,[checks]]])
85 dnl
86 AC_DEFUN([WINE_PACKAGE_FLAGS],
87 [AC_REQUIRE([WINE_PATH_PKG_CONFIG])dnl
88 AS_VAR_PUSHDEF([ac_cflags],[[$1]_CFLAGS])dnl
89 AS_VAR_PUSHDEF([ac_libs],[[$1]_LIBS])dnl
90 AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl
91 AS_VAR_IF([ac_cflags],[],
92       [AS_VAR_SET_IF([PKG_CONFIG],
93       [ac_cflags=`$PKG_CONFIG --cflags [$2] 2>/dev/null`])])
94 m4_ifval([$4],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$4]}])
95 AC_ARG_VAR(ac_libs, [Linker flags for $2, overriding pkg-config])dnl
96 AS_VAR_IF([ac_libs],[],
97       [AS_VAR_SET_IF([PKG_CONFIG],
98       [ac_libs=`$PKG_CONFIG --libs [$2] 2>/dev/null`])])
99 m4_ifval([$5],[test "$cross_compiling" = yes || ac_libs=[$]{ac_libs:-[$5]}])
100 m4_ifval([$3],[ac_libs=[$]{ac_libs:-"$3"}])
101 AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 cflags: $ac_cflags"]) >&AS_MESSAGE_LOG_FD
102 AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 libs: $ac_libs"]) >&AS_MESSAGE_LOG_FD
103 ac_save_CPPFLAGS=$CPPFLAGS
104 CPPFLAGS="$CPPFLAGS $ac_cflags"
106 CPPFLAGS=$ac_save_CPPFLAGS
107 test -z "$ac_cflags" || ac_cflags=`echo " $ac_cflags" | sed 's/ -I\([[^/]]\)/ -I\$(top_builddir)\/\1/g'`
108 test -z "$ac_libs" || ac_libs=`echo " $ac_libs" | sed 's/ -L\([[^/]]\)/ -L\$(top_builddir)\/\1/g'`
109 AS_VAR_POPDEF([ac_libs])dnl
110 AS_VAR_POPDEF([ac_cflags])])dnl
112 dnl **** Link C code with an assembly file ****
114 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
116 AC_DEFUN([WINE_TRY_ASM_LINK],
117 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
119 dnl **** Check if we can link an empty program with special CFLAGS ****
121 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
123 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
125 AC_DEFUN([WINE_TRY_CFLAGS],
126 [AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
127 AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
128 [ac_wine_try_cflags_saved=$CFLAGS
129 CFLAGS="$CFLAGS $1"
130 AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]])],
131                [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
132 CFLAGS=$ac_wine_try_cflags_saved])
133 AS_VAR_IF([ac_var],[yes],[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_VAR_IF([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,[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-gcc ]))
181                      m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-w64-mingw32-clang ])
182                      mingw32-gcc" ;;
183   x86_64)
184     ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32, w64-mingw32, mingw32msvc],
185                         m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-ac_wine_prefix-gcc ]))
186                     m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-w64-mingw32-clang ])" ;;
187   *)
188     ac_prefix_list="" ;;
189 esac
190 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$2],[$3])])
193 dnl **** Define helper functions for creating config.status files ****
195 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
197 AC_DEFUN([WINE_CONFIG_HELPERS],
198 [wine_rules_file=conf$$rules.make
199 rm -f $wine_rules_file
200 ALL_POT_FILES=""
201 GITIGNORE="# Automatically generated by configure; DO NOT EDIT!!"
202 AC_SUBST(ALL_TEST_RESOURCES,"")
204 wine_fn_append_file ()
206     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
209 wine_fn_ignore_file ()
211     case "$[1]" in
212       */*) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
213       \**) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
214       *)   AS_VAR_APPEND([GITIGNORE],"$as_nl/$[1]") ;;
215     esac
218 wine_fn_append_rule ()
220     AS_ECHO("$[1]") >>$wine_rules_file
223 wine_fn_has_flag ()
225     expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
228 wine_fn_depend_rules ()
230     wine_fn_append_rule \
231 "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP)
232         \$(MAKEDEP) $ac_dir
233 depend: $ac_dir/depend
234 .PHONY: $ac_dir/depend
235 $ac_dir/depend: \$(MAKEDEP) dummy
236         \$(MAKEDEP) $ac_dir"
239 wine_fn_pot_rules ()
241     test "x$with_gettextpo" = xyes || return
243     if wine_fn_has_flag mc
244     then
245         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
246         wine_fn_append_rule \
247 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
248         @cd $ac_dir && \$(MAKE) msg.pot
249 $ac_dir/msg.pot: tools/wmc include"
250     fi
251     if wine_fn_has_flag po
252     then
253         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
254         wine_fn_append_rule \
255 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
256         @cd $ac_dir && \$(MAKE) rsrc.pot
257 $ac_dir/rsrc.pot: tools/wrc include"
258     fi
261 wine_fn_all_rules ()
263     wine_fn_depend_rules
264     wine_fn_append_rule \
265 "all: $ac_dir
266 .PHONY: $ac_dir
267 $ac_dir: $ac_dir/Makefile dummy
268         @cd $ac_dir && \$(MAKE)"
271 wine_fn_install_rules ()
273     wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
275     wine_fn_append_rule \
276 ".PHONY: $ac_dir/install $ac_dir/uninstall
277 $ac_dir/install:: $ac_dir
278         @cd $ac_dir && \$(MAKE) install
279 $ac_dir/uninstall:: $ac_dir/Makefile
280         @cd $ac_dir && \$(MAKE) uninstall
281 install:: $ac_dir/install
282 __uninstall__: $ac_dir/uninstall"
284     if wine_fn_has_flag install-lib
285     then
286         wine_fn_append_rule \
287 ".PHONY: $ac_dir/install-lib
288 $ac_dir/install-lib:: $ac_dir
289         @cd $ac_dir && \$(MAKE) install-lib
290 install-lib:: $ac_dir/install-lib"
291     fi
293     if wine_fn_has_flag install-dev
294     then
295         wine_fn_append_rule \
296 ".PHONY: $ac_dir/install-dev
297 $ac_dir/install-dev:: $ac_dir
298         @cd $ac_dir && \$(MAKE) install-dev
299 install-dev:: $ac_dir/install-dev"
300     fi
303 wine_fn_clean_rules ()
305     ac_clean=$[@]
306     ac_extraclean="$ac_dir/Makefile"
307     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
308     case $ac_dir in
309         */tests) ac_extraclean="$ac_extraclean $ac_dir/testlist.c" ;;
310     esac
312     if wine_fn_has_flag clean
313     then
314         wine_fn_append_rule \
315 "__clean__: $ac_dir/clean
316 .PHONY: $ac_dir/clean
317 $ac_dir/clean: $ac_dir/Makefile
318         @cd $ac_dir && \$(MAKE) clean
319         \$(RM) $ac_extraclean"
320     else
321         wine_fn_append_rule \
322 "__clean__: $ac_dir/clean
323 .PHONY: $ac_dir/clean
324 $ac_dir/clean: dummy
325         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
326     fi
329 wine_fn_disabled_rules ()
331     ac_clean=$[@]
332     ac_extraclean="$ac_dir/Makefile"
333     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
335     wine_fn_append_rule \
336 "__clean__: $ac_dir/clean
337 .PHONY: $ac_dir/clean
338 $ac_dir/clean: dummy
339         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
342 wine_fn_config_makefile ()
344     ac_dir=$[1]
345     ac_enable=$[2]
346     ac_flags=$[3]
348     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
349     wine_fn_all_rules
350     wine_fn_install_rules
351     wine_fn_clean_rules
354 wine_fn_config_lib ()
356     ac_name=$[1]
357     ac_flags=$[2]
358     ac_dir=dlls/$ac_name
359     ac_deps="include"
361     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
362     wine_fn_all_rules
363     wine_fn_clean_rules
365     wine_fn_append_rule \
366 ".PHONY: $ac_dir/install $ac_dir/uninstall
367 $ac_dir/install:: $ac_dir
368         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
369 $ac_dir/uninstall::
370         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
371 install install-dev:: $ac_dir/install
372 __uninstall__: $ac_dir/uninstall
373 __builddeps__: $ac_dir
374 $ac_dir: $ac_deps"
377 wine_fn_config_dll ()
379     ac_name=$[1]
380     ac_dir=dlls/$ac_name
381     ac_enable=$[2]
382     ac_flags=$[3]
383     ac_implib=${4:-$ac_name}
384     ac_file=$ac_dir/lib$ac_implib
385     ac_dll=$ac_name
386     ac_deps="include"
387     ac_implibflags=""
389     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
390     case $ac_name in
391       *16) ac_implibflags=" -m16" ;;
392       *.*) ;;
393       *)   ac_dll=$ac_dll.dll ;;
394     esac
396     ac_clean=
397     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
398     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
399     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
400     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
402     AS_VAR_IF([$ac_enable],[no],
403               dnl enable_win16 is special in that it disables import libs too
404               [if test "$ac_enable" != enable_win16
405                then
406                    wine_fn_depend_rules
407                    wine_fn_clean_rules $ac_clean
408                    wine_fn_pot_rules
409                else
410                    wine_fn_disabled_rules $ac_clean
411                    return
412                fi],
414               [wine_fn_all_rules
415                wine_fn_clean_rules $ac_clean
416                wine_fn_append_rule \
417 "$ac_dir: __builddeps__
418 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
419         @cd $ac_dir && \$(MAKE) \$[@]
420 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
421 install install-lib:: $ac_dir/install-lib
422 __uninstall__: $ac_dir/uninstall"
423                 if test -n "$DLLEXT"
424                 then
425                     wine_fn_append_rule \
426 "$ac_dir/install-lib:: $ac_dir
427         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
428         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
429 $ac_dir/uninstall::
430         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
431                 else
432                     wine_fn_append_rule \
433 "$ac_dir/install-lib:: $ac_dir
434         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
435 $ac_dir/uninstall::
436         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
437                 fi
439                 wine_fn_pot_rules])
441     if wine_fn_has_flag staticimplib
442     then
443         wine_fn_append_rule \
444 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
445 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
446 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
447         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
448 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
449         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
450 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
451 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
452         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
453 $ac_dir/uninstall::
454         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
455 install install-dev:: $ac_dir/install-dev
456 __uninstall__: $ac_dir/uninstall"
458         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
459         then
460             wine_fn_append_rule \
461 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT __builddeps__
462         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
463 $ac_dir/uninstall::
464         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
465         fi
467         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
468         then
469             wine_fn_append_rule \
470 "__builddeps__: $ac_file.cross.a
471 $ac_file.cross.a: $ac_dir/Makefile dummy
472         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
473         fi
475     elif wine_fn_has_flag implib
476     then
477         wine_fn_append_rule \
478 "__builddeps__: $ac_file.$IMPLIBEXT
479 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
480         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
481 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
482         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
483 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
484 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
485         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
486 $ac_dir/uninstall::
487         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
488 install install-dev:: $ac_dir/install-dev
489 __uninstall__: $ac_dir/uninstall"
490         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
491         then
492             wine_fn_append_rule \
493 "__builddeps__: $ac_file.cross.a
494 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
495         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
496         fi
498         if test "$ac_name" != "$ac_implib"
499         then
500             wine_fn_append_rule \
501 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
502 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
503         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
504 clean::
505         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
506             wine_fn_ignore_file "dlls/lib$ac_implib.$IMPLIBEXT"
507             if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
508             then
509                 wine_fn_append_rule \
510 "__builddeps__: dlls/lib$ac_implib.cross.a
511 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
512         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
513 clean::
514         \$(RM) dlls/lib$ac_implib.cross.a"
515                 wine_fn_ignore_file "dlls/lib$ac_implib.cross.a"
516             fi
517         fi
518     fi
521 wine_fn_config_program ()
523     ac_name=$[1]
524     ac_dir=programs/$ac_name
525     ac_enable=$[2]
526     ac_flags=$[3]
527     ac_program=$ac_name
529     case $ac_name in
530       *.*) ;;
531       *)   ac_program=$ac_program.exe ;;
532     esac
534     ac_clean=
535     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
536     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
537     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
538     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
540     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
542     wine_fn_all_rules
543     wine_fn_clean_rules $ac_clean
544     wine_fn_append_rule "$ac_dir: __builddeps__"
545     wine_fn_pot_rules
547     wine_fn_has_flag install || return
548     wine_fn_append_rule \
549 ".PHONY: $ac_dir/install $ac_dir/uninstall
550 install install-lib:: $ac_dir/install
551 __uninstall__: $ac_dir/uninstall"
553     if test -n "$DLLEXT"
554     then
555         wine_fn_append_rule \
556 "$ac_dir/install:: $ac_dir
557         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
558         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
559 $ac_dir/uninstall::
560         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
562         if test -z "$with_wine64" && wine_fn_has_flag installbin
563         then
564             wine_fn_append_rule \
565 "$ac_dir/install:: __tooldeps__
566         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
567 $ac_dir/uninstall::
568         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
569         fi
570     else
571         wine_fn_append_rule \
572 "$ac_dir/install:: $ac_dir
573         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
574 $ac_dir/uninstall::
575         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
576     fi
578     if test -z "$with_wine64" && wine_fn_has_flag manpage
579     then
580         wine_fn_append_rule \
581 "$ac_dir/install:: $ac_dir
582         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
583 $ac_dir/uninstall::
584         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
585     fi
588 wine_fn_config_test ()
590     ac_dir=$[1]
591     ac_name=$[2]
592     ac_flags=$[3]
594     ac_clean=
595     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
596     test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
598     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
600     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
601     wine_fn_all_rules
602     wine_fn_clean_rules $ac_clean
604     wine_fn_append_rule \
605 "$ac_dir: programs/winetest/Makefile __builddeps__
606 programs/winetest: $ac_dir
607 check test: $ac_dir/test
608 .PHONY: $ac_dir/test
609 $ac_dir/test: dummy
610         @cd $ac_dir && \$(MAKE) test
611 testclean::
612         \$(RM) $ac_dir/*.ok"
614         if test -n "$CROSSTARGET"
615         then
616             wine_fn_append_rule \
617 "crosstest: $ac_dir/crosstest
618 .PHONY: $ac_dir/crosstest
619 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
620         @cd $ac_dir && \$(MAKE) crosstest"
621         fi
624 wine_fn_config_tool ()
626     ac_dir=$[1]
627     ac_flags=$[2]
628     AS_VAR_IF([enable_tools],[no],[return])
630     wine_fn_all_rules
631     wine_fn_install_rules
632     wine_fn_clean_rules
634     wine_fn_append_rule "__tooldeps__: $ac_dir"
635     wine_fn_append_rule "$ac_dir: libs/port"
636     case $ac_dir in
637       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
638     esac
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     for f in $ac_links; do wine_fn_ignore_file $f; done
656     test -n "$ac_linkdir" || return
657     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
660 dnl **** Define helper function to append a file to a makefile file list ****
662 dnl Usage: WINE_APPEND_FILE(var,file)
664 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
666 dnl **** Define helper function to append a rule to a makefile command list ****
668 dnl Usage: WINE_APPEND_RULE(rule)
670 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
672 dnl **** Create symlinks from config.status ****
674 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
676 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
677 m4_ifval([$4],[if test "x$[$4]" != xno; then
678 ])m4_foreach([f],[$3],
679 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
680 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
681 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],[
682 fi])[]dnl
683 ])])
685 dnl **** Create a makefile from config.status ****
687 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
689 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
690 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
691 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
692 ])dnl
693 wine_fn_config_makefile [$1] ac_enable [$3]dnl
694 AS_VAR_POPDEF([ac_enable])])
696 dnl **** Create a dll makefile from config.status ****
698 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
700 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
701 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
702 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
703 ])dnl
704 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
705 AS_VAR_POPDEF([ac_enable])])
707 dnl **** Create a program makefile from config.status ****
709 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
711 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
712 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
713 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
714 ])dnl
715 wine_fn_config_program [$1] ac_enable [$3]dnl
716 AS_VAR_POPDEF([ac_enable])])
718 dnl **** Create a test makefile from config.status ****
720 dnl Usage: WINE_CONFIG_TEST(dir,flags)
722 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
723 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
724 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
725 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
726 m4_popdef([ac_suffix])dnl
727 m4_popdef([ac_name])])
729 dnl **** Create a static lib makefile from config.status ****
731 dnl Usage: WINE_CONFIG_LIB(name,flags)
733 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
734 wine_fn_config_lib [$1] [$2]])
736 dnl **** Create a tool makefile from config.status ****
738 dnl Usage: WINE_CONFIG_TOOL(name,flags)
740 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
741 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
742 ])dnl
743 wine_fn_config_tool [$1] [$2]])
745 dnl **** Append a file to the .gitignore list ****
747 dnl Usage: WINE_IGNORE_FILE(file,enable)
749 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
750 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_ignore_file $1])
752 dnl **** Add a message to the list displayed at the end ****
754 dnl Usage: WINE_NOTICE(notice)
755 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
756 dnl Usage: WINE_WARNING(warning)
757 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
758 dnl Usage: WINE_PRINT_MESSAGES
760 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
761 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
763 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
764   x)   WINE_NOTICE([$3]) ;;
765   xno) ;;
766   *)   AC_MSG_ERROR([$3
767 This is an error since --with-$1 was requested.]) ;;
768 esac])])
770 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
771   x)   WINE_WARNING([$3]) ;;
772   xno) ;;
773   *)   AC_MSG_ERROR([$3
774 This is an error since --with-$1 was requested.]) ;;
775 esac])])
777 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
778   xno) ;;
779   *)   AC_MSG_ERROR([$3
780 Use the --without-$1 option if you really want this.]) ;;
781 esac])])
783 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
784 if test "x$wine_notices" != x; then
785     echo >&AS_MESSAGE_FD
786     IFS="|"
787     for msg in $wine_notices; do
788         IFS="$ac_save_IFS"
789         AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
790     done
792 IFS="|"
793 for msg in $wine_warnings; do
794     IFS="$ac_save_IFS"
795     AS_VAR_IF([msg],[],,[echo >&2
796         AC_MSG_WARN([$msg])])
797 done
798 IFS="$ac_save_IFS"])
800 dnl Local Variables:
801 dnl compile-command: "autoreconf --warnings=all"
802 dnl End: