winepulse: Add support for IMarshal.
[wine/multimedia.git] / aclocal.m4
blob5c2bbb8742544e46911c132bd53cae8feb72241d
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     if wine_fn_has_flag config
229     then
230         wine_fn_append_rule \
231 "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP)
232         @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir
233 depend: $ac_dir/depend
234 .PHONY: $ac_dir/depend
235 $ac_dir/depend: \$(MAKEDEP) dummy
236         @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir"
237     else
238         wine_fn_append_rule \
239 "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP)
240         \$(MAKEDEP) $ac_dir
241 depend: $ac_dir/depend
242 .PHONY: $ac_dir/depend
243 $ac_dir/depend: \$(MAKEDEP) dummy
244         \$(MAKEDEP) $ac_dir"
245     fi
248 wine_fn_pot_rules ()
250     test "x$with_gettextpo" = xyes || return
252     if wine_fn_has_flag mc
253     then
254         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
255         wine_fn_append_rule \
256 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
257         @cd $ac_dir && \$(MAKE) msg.pot
258 $ac_dir/msg.pot: tools/wmc include"
259     fi
260     if wine_fn_has_flag po
261     then
262         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
263         wine_fn_append_rule \
264 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
265         @cd $ac_dir && \$(MAKE) rsrc.pot
266 $ac_dir/rsrc.pot: tools/wrc include"
267     fi
270 wine_fn_all_rules ()
272     wine_fn_depend_rules
273     wine_fn_append_rule \
274 "all: $ac_dir
275 .PHONY: $ac_dir
276 $ac_dir: $ac_dir/Makefile dummy
277         @cd $ac_dir && \$(MAKE)"
280 wine_fn_install_rules ()
282     wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
284     wine_fn_append_rule \
285 ".PHONY: $ac_dir/install $ac_dir/uninstall
286 $ac_dir/install:: $ac_dir
287         @cd $ac_dir && \$(MAKE) install
288 $ac_dir/uninstall:: $ac_dir/Makefile
289         @cd $ac_dir && \$(MAKE) uninstall
290 install:: $ac_dir/install
291 __uninstall__: $ac_dir/uninstall"
293     if wine_fn_has_flag install-lib
294     then
295         wine_fn_append_rule \
296 ".PHONY: $ac_dir/install-lib
297 $ac_dir/install-lib:: $ac_dir
298         @cd $ac_dir && \$(MAKE) install-lib
299 install-lib:: $ac_dir/install-lib"
300     fi
302     if wine_fn_has_flag install-dev
303     then
304         wine_fn_append_rule \
305 ".PHONY: $ac_dir/install-dev
306 $ac_dir/install-dev:: $ac_dir
307         @cd $ac_dir && \$(MAKE) install-dev
308 install-dev:: $ac_dir/install-dev"
309     fi
312 wine_fn_clean_rules ()
314     ac_clean=$[@]
315     ac_extraclean="$ac_dir/Makefile"
316     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
317     case $ac_dir in
318         */tests) ac_extraclean="$ac_extraclean $ac_dir/testlist.c" ;;
319     esac
321     if wine_fn_has_flag clean
322     then
323         wine_fn_append_rule \
324 "__clean__: $ac_dir/clean
325 .PHONY: $ac_dir/clean
326 $ac_dir/clean: $ac_dir/Makefile
327         @cd $ac_dir && \$(MAKE) clean
328         \$(RM) $ac_extraclean"
329     else
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"
335     fi
338 wine_fn_disabled_rules ()
340     ac_clean=$[@]
341     ac_extraclean="$ac_dir/Makefile"
342     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
344     wine_fn_append_rule \
345 "__clean__: $ac_dir/clean
346 .PHONY: $ac_dir/clean
347 $ac_dir/clean: dummy
348         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
351 wine_fn_config_makefile ()
353     ac_dir=$[1]
354     ac_enable=$[2]
355     ac_flags=$[3]
357     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
358     wine_fn_all_rules
359     wine_fn_install_rules
360     wine_fn_clean_rules
363 wine_fn_config_lib ()
365     ac_name=$[1]
366     ac_flags=$[2]
367     ac_dir=dlls/$ac_name
368     ac_deps="include"
370     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
371     wine_fn_all_rules
372     wine_fn_clean_rules
374     wine_fn_append_rule \
375 ".PHONY: $ac_dir/install $ac_dir/uninstall
376 $ac_dir/install:: $ac_dir
377         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
378 $ac_dir/uninstall::
379         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
380 install install-dev:: $ac_dir/install
381 __uninstall__: $ac_dir/uninstall
382 __builddeps__: $ac_dir
383 $ac_dir: $ac_deps"
386 wine_fn_config_dll ()
388     ac_name=$[1]
389     ac_dir=dlls/$ac_name
390     ac_enable=$[2]
391     ac_flags=$[3]
392     ac_implib=${4:-$ac_name}
393     ac_file=$ac_dir/lib$ac_implib
394     ac_dll=$ac_name
395     ac_deps="include"
396     ac_implibflags=""
398     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
399     case $ac_name in
400       *16) ac_implibflags=" -m16" ;;
401       *.*) ;;
402       *)   ac_dll=$ac_dll.dll ;;
403     esac
405     ac_clean=
406     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
407     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
408     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
409     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
411     AS_VAR_IF([$ac_enable],[no],
412               dnl enable_win16 is special in that it disables import libs too
413               [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
414                then
415                    wine_fn_depend_rules
416                    wine_fn_clean_rules $ac_clean
417                else
418                    wine_fn_disabled_rules $ac_clean
419                    return
420                fi],
422               [wine_fn_all_rules
423                wine_fn_clean_rules $ac_clean
424                wine_fn_append_rule \
425 "$ac_dir: __builddeps__
426 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
427         @cd $ac_dir && \$(MAKE) \$[@]
428 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
429 install install-lib:: $ac_dir/install-lib
430 __uninstall__: $ac_dir/uninstall"
431                 if test -n "$DLLEXT"
432                 then
433                     wine_fn_append_rule \
434 "$ac_dir/install-lib:: $ac_dir
435         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
436         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
437 $ac_dir/uninstall::
438         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
439                 else
440                     wine_fn_append_rule \
441 "$ac_dir/install-lib:: $ac_dir
442         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
443 $ac_dir/uninstall::
444         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
445                 fi
447                 wine_fn_pot_rules])
449     if wine_fn_has_flag staticimplib
450     then
451         wine_fn_append_rule \
452 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
453 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
454 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
455         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
456 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
457         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
458 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
459 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
460         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
461 $ac_dir/uninstall::
462         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
463 install install-dev:: $ac_dir/install-dev
464 __uninstall__: $ac_dir/uninstall"
466         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
467         then
468             wine_fn_append_rule \
469 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT __builddeps__
470         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
471 $ac_dir/uninstall::
472         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
473         fi
475         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
476         then
477             wine_fn_append_rule \
478 "__builddeps__: $ac_file.cross.a
479 $ac_file.cross.a: $ac_dir/Makefile dummy
480         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
481         fi
483     elif wine_fn_has_flag implib
484     then
485         wine_fn_append_rule \
486 "__builddeps__: $ac_file.$IMPLIBEXT
487 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
488         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
489 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
490         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
491 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
492 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
493         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
494 $ac_dir/uninstall::
495         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
496 install install-dev:: $ac_dir/install-dev
497 __uninstall__: $ac_dir/uninstall"
498         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
499         then
500             wine_fn_append_rule \
501 "__builddeps__: $ac_file.cross.a
502 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
503         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
504         fi
506         if test "$ac_name" != "$ac_implib"
507         then
508             wine_fn_append_rule \
509 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
510 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
511         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
512 clean::
513         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
514             wine_fn_ignore_file "dlls/lib$ac_implib.$IMPLIBEXT"
515             if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
516             then
517                 wine_fn_append_rule \
518 "__builddeps__: dlls/lib$ac_implib.cross.a
519 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
520         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
521 clean::
522         \$(RM) dlls/lib$ac_implib.cross.a"
523                 wine_fn_ignore_file "dlls/lib$ac_implib.cross.a"
524             fi
525         fi
526     fi
529 wine_fn_config_program ()
531     ac_name=$[1]
532     ac_dir=programs/$ac_name
533     ac_enable=$[2]
534     ac_flags=$[3]
535     ac_program=$ac_name
537     case $ac_name in
538       *.*) ;;
539       *)   ac_program=$ac_program.exe ;;
540     esac
542     ac_clean=
543     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
544     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
545     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
546     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
548     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
550     wine_fn_all_rules
551     wine_fn_clean_rules $ac_clean
552     wine_fn_append_rule "$ac_dir: __builddeps__"
553     wine_fn_pot_rules
555     wine_fn_has_flag install || return
556     wine_fn_append_rule \
557 ".PHONY: $ac_dir/install $ac_dir/uninstall
558 install install-lib:: $ac_dir/install
559 __uninstall__: $ac_dir/uninstall"
561     if test -n "$DLLEXT"
562     then
563         wine_fn_append_rule \
564 "$ac_dir/install:: $ac_dir
565         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
566         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
567 $ac_dir/uninstall::
568         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
570         if test -z "$with_wine64" && wine_fn_has_flag installbin
571         then
572             wine_fn_append_rule \
573 "$ac_dir/install:: __tooldeps__
574         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
575 $ac_dir/uninstall::
576         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
577         fi
578     else
579         wine_fn_append_rule \
580 "$ac_dir/install:: $ac_dir
581         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
582 $ac_dir/uninstall::
583         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
584     fi
586     if test -z "$with_wine64" && wine_fn_has_flag manpage
587     then
588         wine_fn_append_rule \
589 "$ac_dir/install:: $ac_dir
590         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
591 $ac_dir/uninstall::
592         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
593     fi
596 wine_fn_config_test ()
598     ac_dir=$[1]
599     ac_name=$[2]
600     ac_flags=$[3]
602     ac_clean=
603     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
604     test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
606     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
608     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
609     wine_fn_all_rules
610     wine_fn_clean_rules $ac_clean
612     wine_fn_append_rule \
613 "$ac_dir: programs/winetest/Makefile __builddeps__
614 programs/winetest: $ac_dir
615 check test: $ac_dir/test
616 .PHONY: $ac_dir/test
617 $ac_dir/test: dummy
618         @cd $ac_dir && \$(MAKE) test
619 testclean::
620         \$(RM) $ac_dir/*.ok"
622         if test -n "$CROSSTARGET"
623         then
624             wine_fn_append_rule \
625 "crosstest: $ac_dir/crosstest
626 .PHONY: $ac_dir/crosstest
627 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
628         @cd $ac_dir && \$(MAKE) crosstest"
629         fi
632 wine_fn_config_tool ()
634     ac_dir=$[1]
635     ac_flags=$[2]
636     AS_VAR_IF([enable_tools],[no],[return])
638     wine_fn_all_rules
639     wine_fn_install_rules
640     wine_fn_clean_rules
642     wine_fn_append_rule "__tooldeps__: $ac_dir"
643     wine_fn_append_rule "$ac_dir: libs/port"
644     case $ac_dir in
645       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
646     esac
649 wine_fn_config_symlink ()
651     ac_linkdir=
652     if test "x$[1]" = "x-d"
653     then
654         ac_linkdir=$[2]
655         shift; shift
656     fi
657     ac_links=$[@]
658     wine_fn_append_rule \
659 "$ac_links:
660         @./config.status \$[@]
661 distclean::
662         \$(RM) $ac_links"
663     for f in $ac_links; do wine_fn_ignore_file $f; done
664     test -n "$ac_linkdir" || return
665     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
668 dnl **** Define helper function to append a file to a makefile file list ****
670 dnl Usage: WINE_APPEND_FILE(var,file)
672 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
674 dnl **** Define helper function to append a rule to a makefile command list ****
676 dnl Usage: WINE_APPEND_RULE(rule)
678 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
680 dnl **** Create symlinks from config.status ****
682 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
684 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
685 m4_ifval([$4],[if test "x$[$4]" != xno; then
686 ])m4_foreach([f],[$3],
687 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
688 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
689 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],[
690 fi])[]dnl
691 ])])
693 dnl **** Create a makefile from config.status ****
695 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
697 AC_DEFUN([WINE_CONFIG_MAKEFILE],[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_makefile [$1] ac_enable [$3]dnl
702 AS_VAR_POPDEF([ac_enable])])
704 dnl **** Create a dll makefile from config.status ****
706 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
708 AC_DEFUN([WINE_CONFIG_DLL],[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_dll [$1] ac_enable [$3] [$4]dnl
713 AS_VAR_POPDEF([ac_enable])])
715 dnl **** Create a program makefile from config.status ****
717 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
719 AC_DEFUN([WINE_CONFIG_PROGRAM],[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_program [$1] ac_enable [$3]dnl
724 AS_VAR_POPDEF([ac_enable])])
726 dnl **** Create a test makefile from config.status ****
728 dnl Usage: WINE_CONFIG_TEST(dir,flags)
730 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
731 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
732 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
733 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
734 m4_popdef([ac_suffix])dnl
735 m4_popdef([ac_name])])
737 dnl **** Create a static lib makefile from config.status ****
739 dnl Usage: WINE_CONFIG_LIB(name,flags)
741 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
742 wine_fn_config_lib [$1] [$2]])
744 dnl **** Create a tool makefile from config.status ****
746 dnl Usage: WINE_CONFIG_TOOL(name,flags)
748 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
749 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
750 ])dnl
751 wine_fn_config_tool [$1] [$2]])
753 dnl **** Append a file to the .gitignore list ****
755 dnl Usage: WINE_IGNORE_FILE(file,enable)
757 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
758 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_ignore_file $1])
760 dnl **** Add a message to the list displayed at the end ****
762 dnl Usage: WINE_NOTICE(notice)
763 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
764 dnl Usage: WINE_WARNING(warning)
765 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
766 dnl Usage: WINE_PRINT_MESSAGES
768 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
769 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
771 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
772   x)   WINE_NOTICE([$3]) ;;
773   xno) ;;
774   *)   AC_MSG_ERROR([$3
775 This is an error since --with-$1 was requested.]) ;;
776 esac])])
778 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
779   x)   WINE_WARNING([$3]) ;;
780   xno) ;;
781   *)   AC_MSG_ERROR([$3
782 This is an error since --with-$1 was requested.]) ;;
783 esac])])
785 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
786   xno) ;;
787   *)   AC_MSG_ERROR([$3
788 Use the --without-$1 option if you really want this.]) ;;
789 esac])])
791 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
792 if test "x$wine_notices" != x; then
793     echo >&AS_MESSAGE_FD
794     IFS="|"
795     for msg in $wine_notices; do
796         IFS="$ac_save_IFS"
797         AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
798     done
800 IFS="|"
801 for msg in $wine_warnings; do
802     IFS="$ac_save_IFS"
803     AS_VAR_IF([msg],[],,[echo >&2
804         AC_MSG_WARN([$msg])])
805 done
806 IFS="$ac_save_IFS"])
808 dnl Local Variables:
809 dnl compile-command: "autoreconf --warnings=all"
810 dnl End: