dbghelp: Add debug logging to some error paths in the Mach-O support.
[wine/multimedia.git] / aclocal.m4
blobd6f57905c95d16e6d9bfcd67b8f291ce1ef0a6fd
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 ",$ac_flags," : ".*,$[1],.*" >/dev/null
216 wine_fn_depend_rules ()
218     ac_alldeps=$[1]
219     ac_makedep="\$(MAKEDEP)"
220     ac_input=Make.vars.in:$ac_dir/Makefile.in
221     case $[1] in
222       *.in) ac_input=$ac_input:$[1] ;;
223       *) ac_makedep="$[1] $ac_makedep" ;;
224     esac
226     wine_fn_append_rule \
227 "$ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps \$(MAKEDEP)
228         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
229 depend: $ac_dir/depend
230 .PHONY: $ac_dir/depend
231 $ac_dir/depend: $ac_makedep dummy
232         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
235 wine_fn_pot_rules ()
237     test "x$with_gettextpo" = xyes || return
239     if wine_fn_has_flag mc
240     then
241         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
242         wine_fn_append_rule \
243 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
244         @cd $ac_dir && \$(MAKE) msg.pot
245 $ac_dir/msg.pot: tools/wmc include"
246     fi
247     if wine_fn_has_flag po
248     then
249         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
250         wine_fn_append_rule \
251 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
252         @cd $ac_dir && \$(MAKE) rsrc.pot
253 $ac_dir/rsrc.pot: tools/wrc include"
254     fi
257 wine_fn_all_rules ()
259     ac_rules=$[1]
261     wine_fn_depend_rules ${ac_rules:-Make.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=$[@]
305     if wine_fn_has_flag clean
306     then
307         wine_fn_append_rule \
308 "__clean__: $ac_dir/clean
309 .PHONY: $ac_dir/clean
310 $ac_dir/clean: $ac_dir/Makefile
311         @cd $ac_dir && \$(MAKE) clean
312         \$(RM) $ac_dir/Makefile"
313     else
314         wine_fn_append_rule \
315 "clean::
316         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_dir/Makefile"
317     fi
320 wine_fn_disabled_rules ()
322     ac_clean=$[@]
324     wine_fn_append_rule \
325 "clean::
326         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_dir/Makefile"
329 wine_fn_config_makefile ()
331     ac_dir=$[1]
332     ac_enable=$[2]
333     ac_flags=$[3]
335     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
336     wine_fn_all_rules
337     wine_fn_install_rules
338     wine_fn_clean_rules
341 wine_fn_config_lib ()
343     ac_name=$[1]
344     ac_flags=$[2]
345     ac_dir=dlls/$ac_name
346     ac_deps="include"
348     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
349     wine_fn_all_rules Make.rules.in
350     wine_fn_clean_rules
352     wine_fn_append_rule \
353 ".PHONY: $ac_dir/install $ac_dir/uninstall
354 $ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir)
355         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
356 $ac_dir/uninstall::
357         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
358 install install-dev:: $ac_dir/install
359 __uninstall__: $ac_dir/uninstall
360 __builddeps__: $ac_dir
361 $ac_dir: $ac_deps"
364 wine_fn_config_dll ()
366     ac_name=$[1]
367     ac_dir=dlls/$ac_name
368     ac_enable=$[2]
369     ac_flags=$[3]
370     ac_implib=${4:-$ac_name}
371     ac_file=$ac_dir/lib$ac_implib
372     ac_dll=$ac_name
373     ac_deps="include"
374     ac_implibflags=""
376     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
377     case $ac_name in
378       *16) ac_implibflags=" -m16" ;;
379       *.*) ;;
380       *)   ac_dll=$ac_dll.dll ;;
381     esac
383     ac_clean=
384     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
385     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
386     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
387     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
389     AS_VAR_IF([$ac_enable],[no],
390               dnl enable_win16 is special in that it disables import libs too
391               [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
392                then
393                    wine_fn_depend_rules Make.rules.in
394                    wine_fn_clean_rules $ac_clean
395                else
396                    wine_fn_disabled_rules $ac_clean
397                    return
398                fi],
400               [wine_fn_all_rules Make.rules.in
401                wine_fn_clean_rules $ac_clean
402                wine_fn_append_rule \
403 "$ac_dir: __builddeps__
404 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
405         @cd $ac_dir && \$(MAKE) \$[@]
406 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
407 install install-lib:: $ac_dir/install-lib
408 __uninstall__: $ac_dir/uninstall"
409                 if test -n "$DLLEXT"
410                 then
411                     wine_fn_append_rule \
412 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
413         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
414         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
415 $ac_dir/uninstall::
416         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
417                 else
418                     wine_fn_append_rule \
419 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir)
420         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
421 $ac_dir/uninstall::
422         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
423                 fi
425                 wine_fn_pot_rules])
427     if wine_fn_has_flag staticimplib
428     then
429         wine_fn_append_rule \
430 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
431 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
432 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
433         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
434 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
435         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
436 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
437 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
438         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
439 $ac_dir/uninstall::
440         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
441 install install-dev:: $ac_dir/install-dev
442 __uninstall__: $ac_dir/uninstall"
444         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
445         then
446             wine_fn_append_rule \
447 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
448         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
449 $ac_dir/uninstall::
450         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
451         fi
453         if test -n "$CROSSTARGET"
454         then
455             wine_fn_append_rule \
456 "__builddeps__: $ac_file.cross.a
457 $ac_file.cross.a: $ac_dir/Makefile dummy
458         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
459         fi
461     elif wine_fn_has_flag implib
462     then
463         wine_fn_append_rule \
464 "__builddeps__: $ac_file.$IMPLIBEXT
465 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
466         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
467 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
468         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
469 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
470 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
471         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
472 $ac_dir/uninstall::
473         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
474 install install-dev:: $ac_dir/install-dev
475 __uninstall__: $ac_dir/uninstall"
476         if test -n "$CROSSTARGET"
477         then
478             wine_fn_append_rule \
479 "__builddeps__: $ac_file.cross.a
480 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
481         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
482         fi
484         if test "$ac_name" != "$ac_implib"
485         then
486             wine_fn_append_rule \
487 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
488 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
489         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
490 clean::
491         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
492             if test -n "$CROSSTARGET"
493             then
494                 wine_fn_append_rule \
495 "__builddeps__: dlls/lib$ac_implib.cross.a
496 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
497         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
498 clean::
499         \$(RM) dlls/lib$ac_implib.cross.a"
500             fi
501         fi
502     fi
505 wine_fn_config_program ()
507     ac_name=$[1]
508     ac_dir=programs/$ac_name
509     ac_enable=$[2]
510     ac_flags=$[3]
511     ac_program=$ac_name
513     case $ac_name in
514       *.*) ;;
515       *)   ac_program=$ac_program.exe ;;
516     esac
518     ac_clean=
519     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
520     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
521     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
522     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
524     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
526     wine_fn_all_rules Make.rules.in
527     wine_fn_clean_rules $ac_clean
528     wine_fn_append_rule "$ac_dir: __builddeps__"
529     wine_fn_pot_rules
531     wine_fn_has_flag install || return
532     wine_fn_append_rule \
533 ".PHONY: $ac_dir/install $ac_dir/uninstall
534 install install-lib:: $ac_dir/install
535 __uninstall__: $ac_dir/uninstall"
537     if test -n "$DLLEXT"
538     then
539         wine_fn_append_rule \
540 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
541         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
542         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
543 $ac_dir/uninstall::
544         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
546         if test -z "$with_wine64" && wine_fn_has_flag installbin
547         then
548             wine_fn_append_rule \
549 "$ac_dir/install:: __tooldeps__ \$(DESTDIR)\$(bindir)
550         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
551 $ac_dir/uninstall::
552         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
553         fi
554     else
555         wine_fn_append_rule \
556 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(bindir)
557         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
558 $ac_dir/uninstall::
559         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
560     fi
562     if test -z "$with_wine64" && wine_fn_has_flag manpage
563     then
564         wine_fn_append_rule \
565 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
566         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
567 $ac_dir/uninstall::
568         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
569     fi
572 wine_fn_config_test ()
574     ac_dir=$[1]
575     ac_name=$[2]
576     ac_flags=$[3]
578     ac_clean=
579     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
580     test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
581     ac_clean="$ac_clean $ac_dir/testlist.c"
583     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
585     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
586     wine_fn_all_rules Make.rules.in
587     wine_fn_clean_rules $ac_clean
589     wine_fn_append_rule \
590 "$ac_dir: programs/winetest/Makefile __builddeps__
591 programs/winetest: $ac_dir
592 check test: $ac_dir/test
593 .PHONY: $ac_dir/test
594 $ac_dir/test: dummy
595         @cd $ac_dir && \$(MAKE) test
596 testclean::
597         \$(RM) $ac_dir/*.ok"
599         if test -n "$CROSSTARGET"
600         then
601             wine_fn_append_rule \
602 "crosstest: $ac_dir/crosstest
603 .PHONY: $ac_dir/crosstest
604 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
605         @cd $ac_dir && \$(MAKE) crosstest"
606         fi
609 wine_fn_config_tool ()
611     ac_dir=$[1]
612     ac_flags=$[2]
613     AS_VAR_IF([enable_tools],[no],[return])
615     wine_fn_all_rules
616     wine_fn_install_rules
617     wine_fn_clean_rules
619     wine_fn_append_rule "__tooldeps__: $ac_dir"
620     wine_fn_append_rule "$ac_dir: libs/port"
621     case $ac_dir in
622       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
623     esac
626 wine_fn_config_makerules ()
628     ac_rules=$[1]
629     ac_deps=$[2]
630     wine_fn_append_rule \
631 "$ac_rules: $ac_rules.in $ac_deps config.status
632         @./config.status $ac_rules
633 distclean::
634         \$(RM) $ac_rules"
637 wine_fn_config_symlink ()
639     ac_linkdir=
640     if test "x$[1]" = "x-d"
641     then
642         ac_linkdir=$[2]
643         shift; shift
644     fi
645     ac_links=$[@]
646     wine_fn_append_rule \
647 "$ac_links:
648         @./config.status \$[@]
649 distclean::
650         \$(RM) $ac_links"
651     test -n "$ac_linkdir" || return
652     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
655 if test -z "$CROSSTARGET"
656 then
657     wine_fn_append_rule \
658 "crosstest:
659         @echo \"crosstest is not supported (mingw not installed?)\" && false"
660 fi])
662 dnl **** Define helper function to append a file to a makefile file list ****
664 dnl Usage: WINE_APPEND_FILE(var,file)
666 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
668 dnl **** Define helper function to append a rule to a makefile command list ****
670 dnl Usage: WINE_APPEND_RULE(rule)
672 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
674 dnl **** Create nonexistent directories from config.status ****
676 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
678 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
679 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
681 dnl **** Create symlinks from config.status ****
683 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
685 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
686 m4_ifval([$4],[if test "x$[$4]" != xno; then
687 ])m4_foreach([f],[$3],
688 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
689 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
690 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],[
691 fi])[]dnl
692 ])])
694 dnl **** Create a make rules file from config.status ****
696 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
698 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
699 wine_fn_config_makerules $1 $3
700 $2=$1
701 AC_SUBST_FILE([$2])dnl
702 AC_CONFIG_FILES([$1])])
704 dnl **** Create a makefile from config.status ****
706 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
708 AC_DEFUN([WINE_CONFIG_MAKEFILE],[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_makefile [$1] ac_enable [$3]dnl
713 AS_VAR_POPDEF([ac_enable])])
715 dnl **** Create a dll makefile from config.status ****
717 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
719 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
720 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
721 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
722 ])dnl
723 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
724 AS_VAR_POPDEF([ac_enable])])
726 dnl **** Create a program makefile from config.status ****
728 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
730 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
731 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
732 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
733 ])dnl
734 wine_fn_config_program [$1] ac_enable [$3]dnl
735 AS_VAR_POPDEF([ac_enable])])
737 dnl **** Create a test makefile from config.status ****
739 dnl Usage: WINE_CONFIG_TEST(dir,flags)
741 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
742 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
743 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
744 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
745 m4_popdef([ac_suffix])dnl
746 m4_popdef([ac_name])])
748 dnl **** Create a static lib makefile from config.status ****
750 dnl Usage: WINE_CONFIG_LIB(name,flags)
752 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
753 wine_fn_config_lib [$1] [$2]])
755 dnl **** Create a tool makefile from config.status ****
757 dnl Usage: WINE_CONFIG_TOOL(name,flags)
759 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
760 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
761 ])dnl
762 wine_fn_config_tool [$1] [$2]])
764 dnl **** Add a message to the list displayed at the end ****
766 dnl Usage: WINE_NOTICE(notice)
767 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
768 dnl Usage: WINE_WARNING(warning)
769 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
770 dnl Usage: WINE_PRINT_MESSAGES
772 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
773 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
775 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
776   x)   WINE_NOTICE([$3]) ;;
777   xno) ;;
778   *)   AC_MSG_ERROR([$3
779 This is an error since --with-$1 was requested.]) ;;
780 esac])])
782 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
783   x)   WINE_WARNING([$3]) ;;
784   xno) ;;
785   *)   AC_MSG_ERROR([$3
786 This is an error since --with-$1 was requested.]) ;;
787 esac])])
789 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
790   xno) ;;
791   *)   AC_MSG_ERROR([$3
792 Use the --without-$1 option if you really want this.]) ;;
793 esac])])
795 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
796 if test "x$wine_notices != "x; then
797     echo >&AS_MESSAGE_FD
798     IFS="|"
799     for msg in $wine_notices; do
800         IFS="$ac_save_IFS"
801         if test -n "$msg"; then
802             AC_MSG_NOTICE([$msg])
803         fi
804     done
806 IFS="|"
807 for msg in $wine_warnings; do
808     IFS="$ac_save_IFS"
809     if test -n "$msg"; then
810         echo >&2
811         AC_MSG_WARN([$msg])
812     fi
813 done
814 IFS="$ac_save_IFS"])
816 dnl Local Variables:
817 dnl compile-command: "autoreconf --warnings=all"
818 dnl End: