vbscript: Added parser support for arrays.
[wine/multimedia.git] / aclocal.m4
blobb1315b707e6ff997dd431ccd27426c09f41dce28
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
347     wine_fn_all_rules Make.rules.in
348     wine_fn_clean_rules
350     wine_fn_append_rule \
351 ".PHONY: $ac_dir/install $ac_dir/uninstall
352 $ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir)
353         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
354 $ac_dir/uninstall::
355         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
356 install install-dev:: $ac_dir/install
357 __uninstall__: $ac_dir/uninstall
358 __builddeps__: $ac_dir
359 $ac_dir: tools/widl tools/winebuild tools/winegcc include"
362 wine_fn_config_dll ()
364     ac_name=$[1]
365     ac_dir=dlls/$ac_name
366     ac_enable=$[2]
367     ac_flags=$[3]
368     ac_implib=${4:-$ac_name}
369     ac_file=$ac_dir/lib$ac_implib
370     ac_dll=$ac_name
371     ac_deps="tools/widl tools/winebuild tools/winegcc include"
372     ac_implibflags=""
374     case $ac_name in
375       *16) ac_implibflags=" -m16" ;;
376       *.*) ;;
377       *)   ac_dll=$ac_dll.dll ;;
378     esac
380     ac_clean=
381     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
382     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
383     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
384     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
386     AS_VAR_IF([$ac_enable],[no],
387               dnl enable_win16 is special in that it disables import libs too
388               [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
389                then
390                    wine_fn_depend_rules Make.rules.in
391                    wine_fn_clean_rules $ac_clean
392                else
393                    wine_fn_disabled_rules $ac_clean
394                    return
395                fi],
397               [wine_fn_all_rules Make.rules.in
398                wine_fn_clean_rules $ac_clean
399                wine_fn_append_rule \
400 "$ac_dir: __builddeps__
401 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
402         @cd $ac_dir && \$(MAKE) \$[@]
403 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
404 install install-lib:: $ac_dir/install-lib
405 __uninstall__: $ac_dir/uninstall"
406                 if test -n "$DLLEXT"
407                 then
408                     wine_fn_append_rule \
409 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
410         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
411         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
412 $ac_dir/uninstall::
413         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
414                 else
415                     wine_fn_append_rule \
416 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir)
417         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
418 $ac_dir/uninstall::
419         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
420                 fi
422                 wine_fn_pot_rules])
424     if wine_fn_has_flag staticimplib
425     then
426         wine_fn_append_rule \
427 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
428 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
429 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
430         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
431 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
432         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
433 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
434 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
435         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
436 $ac_dir/uninstall::
437         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
438 install install-dev:: $ac_dir/install-dev
439 __uninstall__: $ac_dir/uninstall"
441         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
442         then
443             wine_fn_append_rule \
444 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
445         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
446 $ac_dir/uninstall::
447         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
448         fi
450         if test -n "$CROSSTARGET"
451         then
452             wine_fn_append_rule \
453 "__builddeps__: $ac_file.cross.a
454 $ac_file.cross.a: $ac_dir/Makefile dummy
455         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
456         fi
458     elif wine_fn_has_flag implib
459     then
460         wine_fn_append_rule \
461 "__builddeps__: $ac_file.$IMPLIBEXT
462 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
463         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
464 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
465         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
466 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
467 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
468         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
469 $ac_dir/uninstall::
470         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
471 install install-dev:: $ac_dir/install-dev
472 __uninstall__: $ac_dir/uninstall"
473         if test -n "$CROSSTARGET"
474         then
475             wine_fn_append_rule \
476 "__builddeps__: $ac_file.cross.a
477 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
478         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
479         fi
481         if test "$ac_name" != "$ac_implib"
482         then
483             wine_fn_append_rule \
484 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
485 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
486         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
487 clean::
488         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
489             if test -n "$CROSSTARGET"
490             then
491                 wine_fn_append_rule \
492 "__builddeps__: dlls/lib$ac_implib.cross.a
493 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
494         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
495 clean::
496         \$(RM) dlls/lib$ac_implib.cross.a"
497             fi
498         fi
499     fi
502 wine_fn_config_program ()
504     ac_name=$[1]
505     ac_dir=programs/$ac_name
506     ac_enable=$[2]
507     ac_flags=$[3]
508     ac_program=$ac_name
510     case $ac_name in
511       *.*) ;;
512       *)   ac_program=$ac_program.exe ;;
513     esac
515     ac_clean=
516     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
517     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
518     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
519     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
521     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
523     wine_fn_all_rules Make.rules.in
524     wine_fn_clean_rules $ac_clean
525     wine_fn_append_rule "$ac_dir: __builddeps__"
526     wine_fn_pot_rules
528     wine_fn_has_flag install || return
529     wine_fn_append_rule \
530 ".PHONY: $ac_dir/install $ac_dir/uninstall
531 install install-lib:: $ac_dir/install
532 __uninstall__: $ac_dir/uninstall"
534     if test -n "$DLLEXT"
535     then
536         wine_fn_append_rule \
537 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
538         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
539         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
540 $ac_dir/uninstall::
541         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
543         if test -z "$with_wine64" && wine_fn_has_flag installbin
544         then
545             wine_fn_append_rule \
546 "$ac_dir/install:: __tooldeps__ \$(DESTDIR)\$(bindir)
547         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
548 $ac_dir/uninstall::
549         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
550         fi
551     else
552         wine_fn_append_rule \
553 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(bindir)
554         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
555 $ac_dir/uninstall::
556         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
557     fi
559     if test -z "$with_wine64" && wine_fn_has_flag manpage
560     then
561         wine_fn_append_rule \
562 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
563         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
564 $ac_dir/uninstall::
565         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
566     fi
569 wine_fn_config_test ()
571     ac_dir=$[1]
572     ac_name=$[2]
573     ac_flags=$[3]
575     ac_clean=
576     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
577     test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
578     ac_clean="$ac_clean $ac_dir/testlist.c"
580     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
582     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
583     wine_fn_all_rules Make.rules.in
584     wine_fn_clean_rules $ac_clean
586     wine_fn_append_rule \
587 "$ac_dir: programs/winetest/Makefile __builddeps__
588 programs/winetest: $ac_dir
589 check test: $ac_dir/test
590 .PHONY: $ac_dir/test
591 $ac_dir/test: dummy
592         @cd $ac_dir && \$(MAKE) test
593 testclean::
594         \$(RM) $ac_dir/*.ok"
596         if test -n "$CROSSTARGET"
597         then
598             wine_fn_append_rule \
599 "crosstest: $ac_dir/crosstest
600 .PHONY: $ac_dir/crosstest
601 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
602         @cd $ac_dir && \$(MAKE) crosstest"
603         fi
606 wine_fn_config_tool ()
608     ac_dir=$[1]
609     ac_flags=$[2]
610     AS_VAR_IF([enable_tools],[no],[return])
612     wine_fn_all_rules
613     wine_fn_install_rules
614     wine_fn_clean_rules
616     wine_fn_append_rule "__tooldeps__: $ac_dir"
617     wine_fn_append_rule "$ac_dir: libs/port"
618     case $ac_dir in
619       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
620     esac
623 wine_fn_config_makerules ()
625     ac_rules=$[1]
626     ac_deps=$[2]
627     wine_fn_append_rule \
628 "$ac_rules: $ac_rules.in $ac_deps config.status
629         @./config.status $ac_rules
630 distclean::
631         \$(RM) $ac_rules"
634 wine_fn_config_symlink ()
636     ac_linkdir=
637     if test "x$[1]" = "x-d"
638     then
639         ac_linkdir=$[2]
640         shift; shift
641     fi
642     ac_links=$[@]
643     wine_fn_append_rule \
644 "$ac_links:
645         @./config.status \$[@]
646 distclean::
647         \$(RM) $ac_links"
648     test -n "$ac_linkdir" || return
649     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
652 if test -z "$CROSSTARGET"
653 then
654     wine_fn_append_rule \
655 "crosstest:
656         @echo \"crosstest is not supported (mingw not installed?)\" && false"
657 fi])
659 dnl **** Define helper function to append a file to a makefile file list ****
661 dnl Usage: WINE_APPEND_FILE(var,file)
663 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
665 dnl **** Define helper function to append a rule to a makefile command list ****
667 dnl Usage: WINE_APPEND_RULE(rule)
669 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
671 dnl **** Create nonexistent directories from config.status ****
673 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
675 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
676 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
678 dnl **** Create symlinks from config.status ****
680 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
682 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
683 m4_ifval([$4],[if test "x$[$4]" != xno; then
684 ])m4_foreach([f],[$3],
685 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
686 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
687 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],[
688 fi])[]dnl
689 ])])
691 dnl **** Create a make rules file from config.status ****
693 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
695 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
696 wine_fn_config_makerules $1 $3
697 $2=$1
698 AC_SUBST_FILE([$2])dnl
699 AC_CONFIG_FILES([$1])])
701 dnl **** Create a makefile from config.status ****
703 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
705 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
706 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
707 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
708 ])dnl
709 wine_fn_config_makefile [$1] ac_enable [$3]dnl
710 AS_VAR_POPDEF([ac_enable])])
712 dnl **** Create a dll makefile from config.status ****
714 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
716 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
717 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
718 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
719 ])dnl
720 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
721 AS_VAR_POPDEF([ac_enable])])
723 dnl **** Create a program makefile from config.status ****
725 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
727 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
728 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
729 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
730 ])dnl
731 wine_fn_config_program [$1] ac_enable [$3]dnl
732 AS_VAR_POPDEF([ac_enable])])
734 dnl **** Create a test makefile from config.status ****
736 dnl Usage: WINE_CONFIG_TEST(dir,flags)
738 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
739 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
740 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
741 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
742 m4_popdef([ac_suffix])dnl
743 m4_popdef([ac_name])])
745 dnl **** Create a static lib makefile from config.status ****
747 dnl Usage: WINE_CONFIG_LIB(name,flags)
749 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
750 wine_fn_config_lib [$1] [$2]])
752 dnl **** Create a tool makefile from config.status ****
754 dnl Usage: WINE_CONFIG_TOOL(name,flags)
756 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
757 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
758 ])dnl
759 wine_fn_config_tool [$1] [$2]])
761 dnl **** Add a message to the list displayed at the end ****
763 dnl Usage: WINE_NOTICE(notice)
764 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
765 dnl Usage: WINE_WARNING(warning)
766 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
767 dnl Usage: WINE_PRINT_MESSAGES
769 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
770 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
772 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
773   x)   WINE_NOTICE([$3]) ;;
774   xno) ;;
775   *)   AC_MSG_ERROR([$3
776 This is an error since --with-$1 was requested.]) ;;
777 esac])])
779 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
780   x)   WINE_WARNING([$3]) ;;
781   xno) ;;
782   *)   AC_MSG_ERROR([$3
783 This is an error since --with-$1 was requested.]) ;;
784 esac])])
786 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
787   xno) ;;
788   *)   AC_MSG_ERROR([$3
789 Use the --without-$1 option if you really want this.]) ;;
790 esac])])
792 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
793 if test "x$wine_notices != "x; then
794     echo >&AS_MESSAGE_FD
795     IFS="|"
796     for msg in $wine_notices; do
797         IFS="$ac_save_IFS"
798         if test -n "$msg"; then
799             AC_MSG_NOTICE([$msg])
800         fi
801     done
803 IFS="|"
804 for msg in $wine_warnings; do
805     IFS="$ac_save_IFS"
806     if test -n "$msg"; then
807         echo >&2
808         AC_MSG_WARN([$msg])
809     fi
810 done
811 IFS="$ac_save_IFS"])
813 dnl Local Variables:
814 dnl compile-command: "autoreconf --warnings=all"
815 dnl End: