d3d11: Implement d3d11_buffer_GetDevice().
[wine.git] / aclocal.m4
blobf7a12f13382730938a88ea35cd455e28d3643b2e
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,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"
306     case $ac_dir in
307         */tests) ac_extraclean="$ac_extraclean $ac_dir/testlist.c" ;;
308     esac
310     if wine_fn_has_flag clean
311     then
312         wine_fn_append_rule \
313 "__clean__: $ac_dir/clean
314 .PHONY: $ac_dir/clean
315 $ac_dir/clean: $ac_dir/Makefile
316         @cd $ac_dir && \$(MAKE) clean
317         \$(RM) $ac_extraclean"
318     else
319         wine_fn_append_rule \
320 "__clean__: $ac_dir/clean
321 .PHONY: $ac_dir/clean
322 $ac_dir/clean: dummy
323         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
324     fi
327 wine_fn_disabled_rules ()
329     ac_clean=$[@]
330     ac_extraclean="$ac_dir/Makefile"
331     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
333     wine_fn_append_rule \
334 "__clean__: $ac_dir/clean
335 .PHONY: $ac_dir/clean
336 $ac_dir/clean: dummy
337         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
340 wine_fn_config_makefile ()
342     ac_dir=$[1]
343     ac_enable=$[2]
344     ac_flags=$[3]
346     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
347     wine_fn_all_rules
348     wine_fn_install_rules
349     wine_fn_clean_rules
352 wine_fn_config_lib ()
354     ac_name=$[1]
355     ac_flags=$[2]
356     ac_dir=dlls/$ac_name
357     ac_deps="include"
359     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
360     wine_fn_all_rules
361     wine_fn_clean_rules
363     wine_fn_append_rule \
364 ".PHONY: $ac_dir/install $ac_dir/uninstall
365 $ac_dir/install:: $ac_dir
366         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
367 $ac_dir/uninstall::
368         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
369 install install-dev:: $ac_dir/install
370 __uninstall__: $ac_dir/uninstall
371 __builddeps__: $ac_dir
372 $ac_dir: $ac_deps"
375 wine_fn_config_dll ()
377     ac_name=$[1]
378     ac_dir=dlls/$ac_name
379     ac_enable=$[2]
380     ac_flags=$[3]
381     ac_implib=${4:-$ac_name}
382     ac_file=$ac_dir/lib$ac_implib
383     ac_dll=$ac_name
384     ac_deps="include"
385     ac_implibflags=""
387     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
388     case $ac_name in
389       *16) ac_implibflags=" -m16" ;;
390       *.*) ;;
391       *)   ac_dll=$ac_dll.dll ;;
392     esac
394     ac_clean=
395     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
396     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
397     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
398     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
400     AS_VAR_IF([$ac_enable],[no],
401               dnl enable_win16 is special in that it disables import libs too
402               [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
403                then
404                    wine_fn_depend_rules
405                    wine_fn_clean_rules $ac_clean
406                else
407                    wine_fn_disabled_rules $ac_clean
408                    return
409                fi],
411               [wine_fn_all_rules
412                wine_fn_clean_rules $ac_clean
413                wine_fn_append_rule \
414 "$ac_dir: __builddeps__
415 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
416         @cd $ac_dir && \$(MAKE) \$[@]
417 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
418 install install-lib:: $ac_dir/install-lib
419 __uninstall__: $ac_dir/uninstall"
420                 if test -n "$DLLEXT"
421                 then
422                     wine_fn_append_rule \
423 "$ac_dir/install-lib:: $ac_dir
424         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
425         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
426 $ac_dir/uninstall::
427         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
428                 else
429                     wine_fn_append_rule \
430 "$ac_dir/install-lib:: $ac_dir
431         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
432 $ac_dir/uninstall::
433         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
434                 fi
436                 wine_fn_pot_rules])
438     if wine_fn_has_flag staticimplib
439     then
440         wine_fn_append_rule \
441 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
442 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
443 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
444         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
445 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
446         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
447 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
448 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
449         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
450 $ac_dir/uninstall::
451         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
452 install install-dev:: $ac_dir/install-dev
453 __uninstall__: $ac_dir/uninstall"
455         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
456         then
457             wine_fn_append_rule \
458 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT __builddeps__
459         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
460 $ac_dir/uninstall::
461         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
462         fi
464         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
465         then
466             wine_fn_append_rule \
467 "__builddeps__: $ac_file.cross.a
468 $ac_file.cross.a: $ac_dir/Makefile dummy
469         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
470         fi
472     elif wine_fn_has_flag implib
473     then
474         wine_fn_append_rule \
475 "__builddeps__: $ac_file.$IMPLIBEXT
476 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
477         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
478 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
479         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
480 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
481 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
482         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
483 $ac_dir/uninstall::
484         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
485 install install-dev:: $ac_dir/install-dev
486 __uninstall__: $ac_dir/uninstall"
487         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
488         then
489             wine_fn_append_rule \
490 "__builddeps__: $ac_file.cross.a
491 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
492         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
493         fi
495         if test "$ac_name" != "$ac_implib"
496         then
497             wine_fn_append_rule \
498 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
499 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
500         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
501 clean::
502         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
503             wine_fn_ignore_file "dlls/lib$ac_implib.$IMPLIBEXT"
504             if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
505             then
506                 wine_fn_append_rule \
507 "__builddeps__: dlls/lib$ac_implib.cross.a
508 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
509         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
510 clean::
511         \$(RM) dlls/lib$ac_implib.cross.a"
512                 wine_fn_ignore_file "dlls/lib$ac_implib.cross.a"
513             fi
514         fi
515     fi
518 wine_fn_config_program ()
520     ac_name=$[1]
521     ac_dir=programs/$ac_name
522     ac_enable=$[2]
523     ac_flags=$[3]
524     ac_program=$ac_name
526     case $ac_name in
527       *.*) ;;
528       *)   ac_program=$ac_program.exe ;;
529     esac
531     ac_clean=
532     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
533     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
534     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
535     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
537     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
539     wine_fn_all_rules
540     wine_fn_clean_rules $ac_clean
541     wine_fn_append_rule "$ac_dir: __builddeps__"
542     wine_fn_pot_rules
544     wine_fn_has_flag install || return
545     wine_fn_append_rule \
546 ".PHONY: $ac_dir/install $ac_dir/uninstall
547 install install-lib:: $ac_dir/install
548 __uninstall__: $ac_dir/uninstall"
550     if test -n "$DLLEXT"
551     then
552         wine_fn_append_rule \
553 "$ac_dir/install:: $ac_dir
554         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
555         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
556 $ac_dir/uninstall::
557         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
559         if test -z "$with_wine64" && wine_fn_has_flag installbin
560         then
561             wine_fn_append_rule \
562 "$ac_dir/install:: __tooldeps__
563         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
564 $ac_dir/uninstall::
565         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
566         fi
567     else
568         wine_fn_append_rule \
569 "$ac_dir/install:: $ac_dir
570         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
571 $ac_dir/uninstall::
572         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
573     fi
575     if test -z "$with_wine64" && wine_fn_has_flag manpage
576     then
577         wine_fn_append_rule \
578 "$ac_dir/install:: $ac_dir
579         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
580 $ac_dir/uninstall::
581         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
582     fi
585 wine_fn_config_test ()
587     ac_dir=$[1]
588     ac_name=$[2]
589     ac_flags=$[3]
591     ac_clean=
592     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
593     test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
595     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
597     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
598     wine_fn_all_rules
599     wine_fn_clean_rules $ac_clean
601     wine_fn_append_rule \
602 "$ac_dir: programs/winetest/Makefile __builddeps__
603 programs/winetest: $ac_dir
604 check test: $ac_dir/test
605 .PHONY: $ac_dir/test
606 $ac_dir/test: dummy
607         @cd $ac_dir && \$(MAKE) test
608 testclean::
609         \$(RM) $ac_dir/*.ok"
611         if test -n "$CROSSTARGET"
612         then
613             wine_fn_append_rule \
614 "crosstest: $ac_dir/crosstest
615 .PHONY: $ac_dir/crosstest
616 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
617         @cd $ac_dir && \$(MAKE) crosstest"
618         fi
621 wine_fn_config_tool ()
623     ac_dir=$[1]
624     ac_flags=$[2]
625     AS_VAR_IF([enable_tools],[no],[return])
627     wine_fn_all_rules
628     wine_fn_install_rules
629     wine_fn_clean_rules
631     wine_fn_append_rule "__tooldeps__: $ac_dir"
632     wine_fn_append_rule "$ac_dir: libs/port"
633     case $ac_dir in
634       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
635     esac
638 wine_fn_config_symlink ()
640     ac_linkdir=
641     if test "x$[1]" = "x-d"
642     then
643         ac_linkdir=$[2]
644         shift; shift
645     fi
646     ac_links=$[@]
647     wine_fn_append_rule \
648 "$ac_links:
649         @./config.status \$[@]
650 distclean::
651         \$(RM) $ac_links"
652     for f in $ac_links; do wine_fn_ignore_file $f; done
653     test -n "$ac_linkdir" || return
654     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
657 dnl **** Define helper function to append a file to a makefile file list ****
659 dnl Usage: WINE_APPEND_FILE(var,file)
661 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
663 dnl **** Define helper function to append a rule to a makefile command list ****
665 dnl Usage: WINE_APPEND_RULE(rule)
667 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
669 dnl **** Create symlinks from config.status ****
671 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
673 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
674 m4_ifval([$4],[if test "x$[$4]" != xno; then
675 ])m4_foreach([f],[$3],
676 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
677 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
678 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],[
679 fi])[]dnl
680 ])])
682 dnl **** Create a makefile from config.status ****
684 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
686 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
687 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
688 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
689 ])dnl
690 wine_fn_config_makefile [$1] ac_enable [$3]dnl
691 AS_VAR_POPDEF([ac_enable])])
693 dnl **** Create a dll makefile from config.status ****
695 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
697 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
698 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
699 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
700 ])dnl
701 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
702 AS_VAR_POPDEF([ac_enable])])
704 dnl **** Create a program makefile from config.status ****
706 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
708 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
709 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
710 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
711 ])dnl
712 wine_fn_config_program [$1] ac_enable [$3]dnl
713 AS_VAR_POPDEF([ac_enable])])
715 dnl **** Create a test makefile from config.status ****
717 dnl Usage: WINE_CONFIG_TEST(dir,flags)
719 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
720 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
721 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
722 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
723 m4_popdef([ac_suffix])dnl
724 m4_popdef([ac_name])])
726 dnl **** Create a static lib makefile from config.status ****
728 dnl Usage: WINE_CONFIG_LIB(name,flags)
730 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
731 wine_fn_config_lib [$1] [$2]])
733 dnl **** Create a tool makefile from config.status ****
735 dnl Usage: WINE_CONFIG_TOOL(name,flags)
737 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
738 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
739 ])dnl
740 wine_fn_config_tool [$1] [$2]])
742 dnl **** Append a file to the .gitignore list ****
744 dnl Usage: WINE_IGNORE_FILE(file,enable)
746 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
747 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_ignore_file $1])
749 dnl **** Add a message to the list displayed at the end ****
751 dnl Usage: WINE_NOTICE(notice)
752 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
753 dnl Usage: WINE_WARNING(warning)
754 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
755 dnl Usage: WINE_PRINT_MESSAGES
757 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
758 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
760 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
761   x)   WINE_NOTICE([$3]) ;;
762   xno) ;;
763   *)   AC_MSG_ERROR([$3
764 This is an error since --with-$1 was requested.]) ;;
765 esac])])
767 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
768   x)   WINE_WARNING([$3]) ;;
769   xno) ;;
770   *)   AC_MSG_ERROR([$3
771 This is an error since --with-$1 was requested.]) ;;
772 esac])])
774 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
775   xno) ;;
776   *)   AC_MSG_ERROR([$3
777 Use the --without-$1 option if you really want this.]) ;;
778 esac])])
780 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
781 if test "x$wine_notices != "x; then
782     echo >&AS_MESSAGE_FD
783     IFS="|"
784     for msg in $wine_notices; do
785         IFS="$ac_save_IFS"
786         AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
787     done
789 IFS="|"
790 for msg in $wine_warnings; do
791     IFS="$ac_save_IFS"
792     AS_VAR_IF([msg],[],,[echo >&2
793         AC_MSG_WARN([$msg])])
794 done
795 IFS="$ac_save_IFS"])
797 dnl Local Variables:
798 dnl compile-command: "autoreconf --warnings=all"
799 dnl End: