server: Fix generic access mapping for a mutex.
[wine/multimedia.git] / aclocal.m4
blobc582890a3b16bf4565f9052248ddbe38d646e44b
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 GITIGNORE="# Automatically generated by configure; DO NOT EDIT!!"
200 AC_SUBST(ALL_TEST_RESOURCES,"")
202 wine_fn_append_file ()
204     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
207 wine_fn_ignore_file ()
209     case "$[1]" in
210       */*) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
211       \**) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
212       *)   AS_VAR_APPEND([GITIGNORE],"$as_nl/$[1]") ;;
213     esac
216 wine_fn_append_rule ()
218     AS_ECHO("$[1]") >>$wine_rules_file
221 wine_fn_has_flag ()
223     expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
226 wine_fn_depend_rules ()
228     wine_fn_append_rule \
229 "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP)
230         @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir
231 depend: $ac_dir/depend
232 .PHONY: $ac_dir/depend
233 $ac_dir/depend: \$(MAKEDEP) dummy
234         @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir"
237 wine_fn_pot_rules ()
239     test "x$with_gettextpo" = xyes || return
241     if wine_fn_has_flag mc
242     then
243         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
244         wine_fn_append_rule \
245 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
246         @cd $ac_dir && \$(MAKE) msg.pot
247 $ac_dir/msg.pot: tools/wmc include"
248     fi
249     if wine_fn_has_flag po
250     then
251         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
252         wine_fn_append_rule \
253 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
254         @cd $ac_dir && \$(MAKE) rsrc.pot
255 $ac_dir/rsrc.pot: tools/wrc include"
256     fi
259 wine_fn_all_rules ()
261     wine_fn_depend_rules
262     wine_fn_append_rule \
263 "all: $ac_dir
264 .PHONY: $ac_dir
265 $ac_dir: $ac_dir/Makefile dummy
266         @cd $ac_dir && \$(MAKE)"
269 wine_fn_install_rules ()
271     wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
273     wine_fn_append_rule \
274 ".PHONY: $ac_dir/install $ac_dir/uninstall
275 $ac_dir/install:: $ac_dir
276         @cd $ac_dir && \$(MAKE) install
277 $ac_dir/uninstall:: $ac_dir/Makefile
278         @cd $ac_dir && \$(MAKE) uninstall
279 install:: $ac_dir/install
280 __uninstall__: $ac_dir/uninstall"
282     if wine_fn_has_flag install-lib
283     then
284         wine_fn_append_rule \
285 ".PHONY: $ac_dir/install-lib
286 $ac_dir/install-lib:: $ac_dir
287         @cd $ac_dir && \$(MAKE) install-lib
288 install-lib:: $ac_dir/install-lib"
289     fi
291     if wine_fn_has_flag install-dev
292     then
293         wine_fn_append_rule \
294 ".PHONY: $ac_dir/install-dev
295 $ac_dir/install-dev:: $ac_dir
296         @cd $ac_dir && \$(MAKE) install-dev
297 install-dev:: $ac_dir/install-dev"
298     fi
301 wine_fn_clean_rules ()
303     ac_clean=$[@]
304     ac_extraclean="$ac_dir/Makefile"
305     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
307     if wine_fn_has_flag clean
308     then
309         wine_fn_append_rule \
310 "__clean__: $ac_dir/clean
311 .PHONY: $ac_dir/clean
312 $ac_dir/clean: $ac_dir/Makefile
313         @cd $ac_dir && \$(MAKE) clean
314         \$(RM) $ac_extraclean"
315     else
316         wine_fn_append_rule \
317 "__clean__: $ac_dir/clean
318 .PHONY: $ac_dir/clean
319 $ac_dir/clean: dummy
320         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
321     fi
324 wine_fn_disabled_rules ()
326     ac_clean=$[@]
327     ac_extraclean="$ac_dir/Makefile"
328     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
330     wine_fn_append_rule \
331 "__clean__: $ac_dir/clean
332 .PHONY: $ac_dir/clean
333 $ac_dir/clean: dummy
334         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
337 wine_fn_config_makefile ()
339     ac_dir=$[1]
340     ac_enable=$[2]
341     ac_flags=$[3]
343     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
344     wine_fn_all_rules
345     wine_fn_install_rules
346     wine_fn_clean_rules
349 wine_fn_config_lib ()
351     ac_name=$[1]
352     ac_flags=$[2]
353     ac_dir=dlls/$ac_name
354     ac_deps="include"
356     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
357     wine_fn_all_rules
358     wine_fn_clean_rules
360     wine_fn_append_rule \
361 ".PHONY: $ac_dir/install $ac_dir/uninstall
362 $ac_dir/install:: $ac_dir
363         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
364 $ac_dir/uninstall::
365         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
366 install install-dev:: $ac_dir/install
367 __uninstall__: $ac_dir/uninstall
368 __builddeps__: $ac_dir
369 $ac_dir: $ac_deps"
372 wine_fn_config_dll ()
374     ac_name=$[1]
375     ac_dir=dlls/$ac_name
376     ac_enable=$[2]
377     ac_flags=$[3]
378     ac_implib=${4:-$ac_name}
379     ac_file=$ac_dir/lib$ac_implib
380     ac_dll=$ac_name
381     ac_deps="include"
382     ac_implibflags=""
384     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
385     case $ac_name in
386       *16) ac_implibflags=" -m16" ;;
387       *.*) ;;
388       *)   ac_dll=$ac_dll.dll ;;
389     esac
391     ac_clean=
392     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
393     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
394     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
395     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
397     AS_VAR_IF([$ac_enable],[no],
398               dnl enable_win16 is special in that it disables import libs too
399               [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
400                then
401                    wine_fn_depend_rules
402                    wine_fn_clean_rules $ac_clean
403                else
404                    wine_fn_disabled_rules $ac_clean
405                    return
406                fi],
408               [wine_fn_all_rules
409                wine_fn_clean_rules $ac_clean
410                wine_fn_append_rule \
411 "$ac_dir: __builddeps__
412 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
413         @cd $ac_dir && \$(MAKE) \$[@]
414 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
415 install install-lib:: $ac_dir/install-lib
416 __uninstall__: $ac_dir/uninstall"
417                 if test -n "$DLLEXT"
418                 then
419                     wine_fn_append_rule \
420 "$ac_dir/install-lib:: $ac_dir
421         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
422         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
423 $ac_dir/uninstall::
424         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
425                 else
426                     wine_fn_append_rule \
427 "$ac_dir/install-lib:: $ac_dir
428         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
429 $ac_dir/uninstall::
430         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
431                 fi
433                 wine_fn_pot_rules])
435     if wine_fn_has_flag staticimplib
436     then
437         wine_fn_append_rule \
438 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
439 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
440 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
441         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
442 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
443         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
444 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
445 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
446         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
447 $ac_dir/uninstall::
448         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
449 install install-dev:: $ac_dir/install-dev
450 __uninstall__: $ac_dir/uninstall"
452         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
453         then
454             wine_fn_append_rule \
455 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT __builddeps__
456         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
457 $ac_dir/uninstall::
458         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
459         fi
461         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
462         then
463             wine_fn_append_rule \
464 "__builddeps__: $ac_file.cross.a
465 $ac_file.cross.a: $ac_dir/Makefile dummy
466         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
467         fi
469     elif wine_fn_has_flag implib
470     then
471         wine_fn_append_rule \
472 "__builddeps__: $ac_file.$IMPLIBEXT
473 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
474         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
475 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
476         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
477 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
478 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
479         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
480 $ac_dir/uninstall::
481         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
482 install install-dev:: $ac_dir/install-dev
483 __uninstall__: $ac_dir/uninstall"
484         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
485         then
486             wine_fn_append_rule \
487 "__builddeps__: $ac_file.cross.a
488 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
489         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
490         fi
492         if test "$ac_name" != "$ac_implib"
493         then
494             wine_fn_append_rule \
495 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
496 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
497         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
498 clean::
499         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
500             wine_fn_ignore_file "dlls/lib$ac_implib.$IMPLIBEXT"
501             if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
502             then
503                 wine_fn_append_rule \
504 "__builddeps__: dlls/lib$ac_implib.cross.a
505 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
506         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
507 clean::
508         \$(RM) dlls/lib$ac_implib.cross.a"
509                 wine_fn_ignore_file "dlls/lib$ac_implib.cross.a"
510             fi
511         fi
512     fi
515 wine_fn_config_program ()
517     ac_name=$[1]
518     ac_dir=programs/$ac_name
519     ac_enable=$[2]
520     ac_flags=$[3]
521     ac_program=$ac_name
523     case $ac_name in
524       *.*) ;;
525       *)   ac_program=$ac_program.exe ;;
526     esac
528     ac_clean=
529     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
530     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
531     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
532     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
534     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
536     wine_fn_all_rules
537     wine_fn_clean_rules $ac_clean
538     wine_fn_append_rule "$ac_dir: __builddeps__"
539     wine_fn_pot_rules
541     wine_fn_has_flag install || return
542     wine_fn_append_rule \
543 ".PHONY: $ac_dir/install $ac_dir/uninstall
544 install install-lib:: $ac_dir/install
545 __uninstall__: $ac_dir/uninstall"
547     if test -n "$DLLEXT"
548     then
549         wine_fn_append_rule \
550 "$ac_dir/install:: $ac_dir
551         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
552         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
553 $ac_dir/uninstall::
554         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
556         if test -z "$with_wine64" && wine_fn_has_flag installbin
557         then
558             wine_fn_append_rule \
559 "$ac_dir/install:: __tooldeps__
560         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
561 $ac_dir/uninstall::
562         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
563         fi
564     else
565         wine_fn_append_rule \
566 "$ac_dir/install:: $ac_dir
567         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
568 $ac_dir/uninstall::
569         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
570     fi
572     if test -z "$with_wine64" && wine_fn_has_flag manpage
573     then
574         wine_fn_append_rule \
575 "$ac_dir/install:: $ac_dir
576         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
577 $ac_dir/uninstall::
578         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
579     fi
582 wine_fn_config_test ()
584     ac_dir=$[1]
585     ac_name=$[2]
586     ac_flags=$[3]
588     ac_clean=
589     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
590     test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
591     ac_clean="$ac_clean $ac_dir/testlist.c"
593     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
595     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
596     wine_fn_all_rules
597     wine_fn_clean_rules $ac_clean
599     wine_fn_append_rule \
600 "$ac_dir: programs/winetest/Makefile __builddeps__
601 programs/winetest: $ac_dir
602 check test: $ac_dir/test
603 .PHONY: $ac_dir/test
604 $ac_dir/test: dummy
605         @cd $ac_dir && \$(MAKE) test
606 testclean::
607         \$(RM) $ac_dir/*.ok"
609         if test -n "$CROSSTARGET"
610         then
611             wine_fn_append_rule \
612 "crosstest: $ac_dir/crosstest
613 .PHONY: $ac_dir/crosstest
614 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
615         @cd $ac_dir && \$(MAKE) crosstest"
616         fi
619 wine_fn_config_tool ()
621     ac_dir=$[1]
622     ac_flags=$[2]
623     AS_VAR_IF([enable_tools],[no],[return])
625     wine_fn_all_rules
626     wine_fn_install_rules
627     wine_fn_clean_rules
629     wine_fn_append_rule "__tooldeps__: $ac_dir"
630     wine_fn_append_rule "$ac_dir: libs/port"
631     case $ac_dir in
632       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
633     esac
636 wine_fn_config_symlink ()
638     ac_linkdir=
639     if test "x$[1]" = "x-d"
640     then
641         ac_linkdir=$[2]
642         shift; shift
643     fi
644     ac_links=$[@]
645     wine_fn_append_rule \
646 "$ac_links:
647         @./config.status \$[@]
648 distclean::
649         \$(RM) $ac_links"
650     for f in $ac_links; do wine_fn_ignore_file $f; done
651     test -n "$ac_linkdir" || return
652     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
655 dnl **** Define helper function to append a file to a makefile file list ****
657 dnl Usage: WINE_APPEND_FILE(var,file)
659 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
661 dnl **** Define helper function to append a rule to a makefile command list ****
663 dnl Usage: WINE_APPEND_RULE(rule)
665 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
667 dnl **** Create symlinks from config.status ****
669 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
671 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
672 m4_ifval([$4],[if test "x$[$4]" != xno; then
673 ])m4_foreach([f],[$3],
674 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
675 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
676 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],[
677 fi])[]dnl
678 ])])
680 dnl **** Create a makefile from config.status ****
682 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
684 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
685 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
686 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
687 ])dnl
688 wine_fn_config_makefile [$1] ac_enable [$3]dnl
689 AS_VAR_POPDEF([ac_enable])])
691 dnl **** Create a dll makefile from config.status ****
693 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
695 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
696 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
697 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
698 ])dnl
699 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
700 AS_VAR_POPDEF([ac_enable])])
702 dnl **** Create a program makefile from config.status ****
704 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
706 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
707 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
708 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
709 ])dnl
710 wine_fn_config_program [$1] ac_enable [$3]dnl
711 AS_VAR_POPDEF([ac_enable])])
713 dnl **** Create a test makefile from config.status ****
715 dnl Usage: WINE_CONFIG_TEST(dir,flags)
717 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
718 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
719 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
720 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
721 m4_popdef([ac_suffix])dnl
722 m4_popdef([ac_name])])
724 dnl **** Create a static lib makefile from config.status ****
726 dnl Usage: WINE_CONFIG_LIB(name,flags)
728 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
729 wine_fn_config_lib [$1] [$2]])
731 dnl **** Create a tool makefile from config.status ****
733 dnl Usage: WINE_CONFIG_TOOL(name,flags)
735 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
736 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
737 ])dnl
738 wine_fn_config_tool [$1] [$2]])
740 dnl **** Append a file to the .gitignore list ****
742 dnl Usage: WINE_IGNORE_FILE(file,enable)
744 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
745 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_ignore_file $1])
747 dnl **** Add a message to the list displayed at the end ****
749 dnl Usage: WINE_NOTICE(notice)
750 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
751 dnl Usage: WINE_WARNING(warning)
752 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
753 dnl Usage: WINE_PRINT_MESSAGES
755 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
756 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
758 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
759   x)   WINE_NOTICE([$3]) ;;
760   xno) ;;
761   *)   AC_MSG_ERROR([$3
762 This is an error since --with-$1 was requested.]) ;;
763 esac])])
765 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
766   x)   WINE_WARNING([$3]) ;;
767   xno) ;;
768   *)   AC_MSG_ERROR([$3
769 This is an error since --with-$1 was requested.]) ;;
770 esac])])
772 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
773   xno) ;;
774   *)   AC_MSG_ERROR([$3
775 Use the --without-$1 option if you really want this.]) ;;
776 esac])])
778 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
779 if test "x$wine_notices != "x; then
780     echo >&AS_MESSAGE_FD
781     IFS="|"
782     for msg in $wine_notices; do
783         IFS="$ac_save_IFS"
784         if test -n "$msg"; then
785             AC_MSG_NOTICE([$msg])
786         fi
787     done
789 IFS="|"
790 for msg in $wine_warnings; do
791     IFS="$ac_save_IFS"
792     if test -n "$msg"; then
793         echo >&2
794         AC_MSG_WARN([$msg])
795     fi
796 done
797 IFS="$ac_save_IFS"])
799 dnl Local Variables:
800 dnl compile-command: "autoreconf --warnings=all"
801 dnl End: