dsound: Lock the source buffer during duplication.
[wine] / aclocal.m4
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.
24
25 dnl **** Get the ldd program name; used by WINE_GET_SONAME ****
26 dnl
27 dnl Usage: WINE_PATH_LDD
28 dnl
29 AC_DEFUN([WINE_PATH_LDD],[AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)])
30
31 dnl **** Extract the soname of a library ****
32 dnl
33 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
34 dnl
35 AC_DEFUN([WINE_CHECK_SONAME],
36 [AC_REQUIRE([WINE_PATH_LDD])dnl
37 AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
38 m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
39 AC_MSG_CHECKING([for -l$1])
40 AC_CACHE_VAL(ac_Lib,
41 [ac_check_soname_save_LIBS=$LIBS
42 LIBS="-l$1 $5 $LIBS"
43   AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
44   [case "$LIBEXT" in
45     dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
46     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'`]) ;;
47     *) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest$ac_exeext | grep "ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\(ac_lib_pattern\.$LIBEXT[[^      ]]*\).*$/\1/"';2,$d'`]) ;;
48   esac])
49   LIBS=$ac_check_soname_save_LIBS])dnl
50 AS_IF([test "x]AS_VAR_GET(ac_Lib)[" = "x"],
51       [AC_MSG_RESULT([not found])
52        $4],
53       [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
54        AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
55                           [Define to the soname of the lib$1 library.])
56        $3])dnl
57 m4_popdef([ac_lib_pattern])dnl
58 AS_VAR_POPDEF([ac_Lib])])
59
60 dnl **** Link C code with an assembly file ****
61 dnl
62 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
63 dnl
64 AC_DEFUN([WINE_TRY_ASM_LINK],
65 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
66
67 dnl **** Check if we can link an empty program with special CFLAGS ****
68 dnl
69 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
70 dnl
71 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
72 dnl
73 AC_DEFUN([WINE_TRY_CFLAGS],
74 [AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
75 AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
76 [ac_wine_try_cflags_saved=$CFLAGS
77 CFLAGS="$CFLAGS $1"
78 AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]])],
79                [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
80 CFLAGS=$ac_wine_try_cflags_saved])
81 AS_IF([test AS_VAR_GET(ac_var) = yes],
82       [m4_default([$2], [EXTRACFLAGS="$EXTRACFLAGS $1"])], [$3])dnl
83 AS_VAR_POPDEF([ac_var])])
84
85 dnl **** Check if we can link an empty shared lib (no main) with special CFLAGS ****
86 dnl
87 dnl Usage: WINE_TRY_SHLIB_FLAGS(flags,[action-if-yes,[action-if-no]])
88 dnl
89 AC_DEFUN([WINE_TRY_SHLIB_FLAGS],
90 [ac_wine_try_cflags_saved=$CFLAGS
91 CFLAGS="$CFLAGS $1"
92 AC_LINK_IFELSE([AC_LANG_SOURCE([void myfunc() {}])],[$2],[$3])
93 CFLAGS=$ac_wine_try_cflags_saved])
94
95 dnl **** Check whether we need to define a symbol on the compiler command line ****
96 dnl
97 dnl Usage: WINE_CHECK_DEFINE(name),[action-if-yes,[action-if-no]])
98 dnl
99 AC_DEFUN([WINE_CHECK_DEFINE],
100 [AS_VAR_PUSHDEF([ac_var],[ac_cv_cpp_def_$1])dnl
101 AC_CACHE_CHECK([whether we need to define $1],ac_var,
102     AC_EGREP_CPP(yes,[#ifndef $1
103 yes
104 #endif],
105     [AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)]))
106 AS_IF([test AS_VAR_GET(ac_var) = yes],
107       [CFLAGS="$CFLAGS -D$1"
108   LINTFLAGS="$LINTFLAGS -D$1"])dnl
109 AS_VAR_POPDEF([ac_var])])
110
111 dnl **** Check for functions with some extra libraries ****
112 dnl
113 dnl Usage: WINE_CHECK_LIB_FUNCS(funcs,libs,[action-if-found,[action-if-not-found]])
114 dnl
115 AC_DEFUN([WINE_CHECK_LIB_FUNCS],
116 [ac_wine_check_funcs_save_LIBS="$LIBS"
117 LIBS="$LIBS $2"
118 AC_CHECK_FUNCS([$1],[$3],[$4])
119 LIBS="$ac_wine_check_funcs_save_LIBS"])
120
121 dnl **** Check for a mingw program, trying the various mingw prefixes ****
122 dnl
123 dnl Usage: WINE_CHECK_MINGW_PROG(variable,prog,[value-if-not-found],[path])
124 dnl
125 AC_DEFUN([WINE_CHECK_MINGW_PROG],
126 [case "$host_cpu" in
127   i[[3456789]]86*)
128     ac_prefix_list="m4_foreach([ac_wine_prefix],[w64-mingw32, pc-mingw32, mingw32msvc, mingw32],
129                         m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-ac_wine_prefix-$2 ]))" ;;
130   x86_64)
131     ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32, w64-mingw32, mingw32msvc],
132                         m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-ac_wine_prefix-$2 ]))" ;;
133   *)
134     ac_prefix_list="" ;;
135 esac
136 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$3],[$4])])
137
138
139 dnl **** Define helper functions for creating config.status files ****
140 dnl
141 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
142 dnl
143 AC_DEFUN([WINE_CONFIG_HELPERS],
144 [ALL_MAKEFILE_DEPENDS="
145 # Rules automatically generated by configure
146
147 .INIT: Makefile
148 .MAKEFILEDEPS:
149 all: Makefile
150 Makefile: Makefile.in Make.vars.in Make.rules config.status
151         @./config.status Make.tmp Makefile"
152
153 ALL_POT_FILES=""
154 AC_SUBST(ALL_TEST_RESOURCES,"")
155
156 wine_fn_append_file ()
157 {
158     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
159 }
160
161 wine_fn_append_rule ()
162 {
163     AS_VAR_APPEND($[1],"$as_nl$[2]")
164 }
165
166 wine_fn_has_flag ()
167 {
168     expr ",$[2]," : ".*,$[1],.*" >/dev/null
169 }
170
171 wine_fn_all_dir_rules ()
172 {
173     ac_dir=$[1]
174     ac_alldeps=$[2]
175     ac_makedep="\$(MAKEDEP)"
176     ac_input=Make.vars.in:$ac_dir/Makefile.in
177     if test $ac_dir != tools
178     then
179         dnl makedep is in tools so tools makefile cannot depend on it
180         ac_alldeps="$[2] $ac_makedep"
181     fi
182     case $[2] in
183       *.in) ac_input=$ac_input:$[2] ;;
184       *) ac_makedep="$[2] $ac_makedep" ;;
185     esac
186
187     wine_fn_append_file ALL_DIRS $ac_dir
188     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
189 "__clean__: $ac_dir/__clean__
190 .PHONY: $ac_dir/__clean__
191 $ac_dir/__clean__: $ac_dir/Makefile
192         @cd $ac_dir && \$(MAKE) clean
193         \$(RM) $ac_dir/Makefile
194 $ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps
195         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
196 depend: $ac_dir/__depend__
197 .PHONY: $ac_dir/__depend__
198 $ac_dir/__depend__: $ac_makedep dummy
199         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
200 }
201
202 wine_fn_pot_rules ()
203 {
204     ac_dir=$[1]
205     ac_flags=$[2]
206
207     test "x$with_gettextpo" = xyes || return
208
209     if wine_fn_has_flag mc $ac_flags
210     then
211         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
212         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
213 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
214         @cd $ac_dir && \$(MAKE) msg.pot
215 $ac_dir/msg.pot: tools/wmc include"
216     fi
217     if wine_fn_has_flag po $ac_flags
218     then
219         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
220         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
221 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
222         @cd $ac_dir && \$(MAKE) rsrc.pot
223 $ac_dir/rsrc.pot: tools/wrc include"
224     fi
225 }
226
227 wine_fn_config_makefile ()
228 {
229     ac_dir=$[1]
230     ac_enable=$[2]
231     ac_flags=$[3]
232     ac_rules=$[4]
233     AS_VAR_IF([$ac_enable],[no],[return 0])
234
235     wine_fn_all_dir_rules $ac_dir ${ac_rules:-Make.rules}
236     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
237 "all: $ac_dir
238 .PHONY: $ac_dir
239 $ac_dir: $ac_dir/Makefile dummy
240         @cd $ac_dir && \$(MAKE)"
241
242     wine_fn_has_flag install-lib $ac_flags || wine_fn_has_flag install-dev $ac_flags || return
243
244     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
245 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
246 $ac_dir/__install__:: $ac_dir
247         @cd $ac_dir && \$(MAKE) install
248 $ac_dir/__uninstall__:: $ac_dir/Makefile
249         @cd $ac_dir && \$(MAKE) uninstall
250 install:: $ac_dir/__install__
251 __uninstall__: $ac_dir/__uninstall__"
252
253     if wine_fn_has_flag install-lib $ac_flags
254     then
255         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
256 ".PHONY: $ac_dir/__install-lib__
257 $ac_dir/__install-lib__:: $ac_dir
258         @cd $ac_dir && \$(MAKE) install-lib
259 install-lib:: $ac_dir/__install-lib__"
260     fi
261
262     if wine_fn_has_flag install-dev $ac_flags
263     then
264         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
265 ".PHONY: $ac_dir/__install-dev
266 $ac_dir/__install-dev__:: $ac_dir
267         @cd $ac_dir && \$(MAKE) install-dev
268 install-dev:: $ac_dir/__install-dev__"
269     fi
270 }
271
272 wine_fn_config_lib ()
273 {
274     ac_name=$[1]
275     ac_flags=$[2]
276     ac_dir=dlls/$ac_name
277     wine_fn_config_makefile $ac_dir enable_$ac_name "$ac_flags" dlls/Makeimplib.rules
278
279     if wine_fn_has_flag install-dev $ac_flags
280     then :
281     else
282         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
283 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
284 $ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir)
285         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
286 $ac_dir/__uninstall__::
287         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
288 install install-dev:: $ac_dir/__install__
289 __uninstall__: $ac_dir/__uninstall__"
290     fi
291
292     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__builddeps__: $ac_dir"
293     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: tools/widl tools/winebuild tools/winegcc include"
294 }
295
296 wine_fn_config_dll ()
297 {
298     ac_name=$[1]
299     ac_dir=dlls/$ac_name
300     ac_enable=$[2]
301     ac_flags=$[3]
302     ac_implib=${4:-$ac_name}
303     ac_file=$ac_dir/lib$ac_implib
304     ac_dll=$ac_name
305     ac_deps="tools/widl tools/winebuild tools/winegcc include"
306     ac_implibflags=""
307
308     case $ac_name in
309       *16) ac_implibflags=" -m16" ;;
310       *.*) ;;
311       *)   ac_dll=$ac_dll.dll ;;
312     esac
313
314     wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" dlls/Makedll.rules
315
316     AS_VAR_IF([$ac_enable],[no],
317               dnl enable_win16 is special in that it disables import libs too
318               [test "$ac_enable" != enable_win16 || return 0
319                wine_fn_has_flag implib $ac_flags && wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules],
320
321               [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
322 "$ac_dir: __builddeps__
323 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
324         @cd $ac_dir && \$(MAKE) \$[@]"
325
326         if wine_fn_has_flag install-lib $ac_flags
327         then :
328         else
329             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
330 ".PHONY: $ac_dir/__install-lib__ $ac_dir/__uninstall__
331 install install-lib:: $ac_dir/__install-lib__
332 __uninstall__: $ac_dir/__uninstall__"
333             if test -n "$DLLEXT"
334             then
335                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
336 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
337         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
338         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
339 $ac_dir/__uninstall__::
340         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
341             else
342                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
343 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
344         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
345 $ac_dir/__uninstall__::
346         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
347             fi
348         fi
349
350         wine_fn_pot_rules $ac_dir $ac_flags])
351
352     if wine_fn_has_flag staticimplib $ac_flags
353     then
354         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
355 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
356 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
357 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
358         @cd $ac_dir && \$(MAKE) lib$ac_implib.def
359 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
360         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
361 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
362 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
363         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
364 $ac_dir/__uninstall__::
365         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
366 install install-dev:: $ac_dir/__install-dev__
367 __uninstall__: $ac_dir/__uninstall__"
368
369         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
370         then
371             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
372 "$ac_dir/__install-dev__:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
373         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
374 $ac_dir/__uninstall__::
375         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
376         fi
377
378         if test "x$CROSSTEST_DISABLE" = x
379         then
380             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
381 "__builddeps__: $ac_file.cross.a
382 $ac_file.cross.a: $ac_dir/Makefile dummy
383         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
384         fi
385
386     elif wine_fn_has_flag implib $ac_flags
387     then
388         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
389 "__builddeps__: $ac_file.$IMPLIBEXT
390 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
391         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
392 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
393         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
394 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
395 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
396         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
397 $ac_dir/__uninstall__::
398         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
399 install install-dev:: $ac_dir/__install-dev__
400 __uninstall__: $ac_dir/__uninstall__"
401         if test "x$CROSSTEST_DISABLE" = x
402         then
403             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
404 "__builddeps__: $ac_file.cross.a
405 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
406         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
407         fi
408
409         if test "$ac_name" != "$ac_implib"
410         then
411             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
412 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
413 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
414         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
415 clean::
416         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
417             if test "x$CROSSTEST_DISABLE" = x
418             then
419                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
420 "__builddeps__: dlls/lib$ac_implib.cross.a
421 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
422         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
423             fi
424         fi
425     fi
426 }
427
428 wine_fn_config_program ()
429 {
430     ac_name=$[1]
431     ac_dir=programs/$ac_name
432     ac_enable=$[2]
433     ac_flags=$[3]
434     ac_program=$ac_name
435
436     case $ac_name in
437       *.*) ;;
438       *)   ac_program=$ac_program.exe ;;
439     esac
440
441     wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" programs/Makeprog.rules
442
443     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
444 "$ac_dir: __builddeps__"
445
446     wine_fn_pot_rules $ac_dir $ac_flags
447
448     wine_fn_has_flag install $ac_flags || return
449     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
450 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
451 install install-lib:: $ac_dir/__install__
452 __uninstall__: $ac_dir/__uninstall__"
453
454     if test -n "$DLLEXT"
455     then
456         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
457 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
458         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
459         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
460 $ac_dir/__uninstall__::
461         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
462
463         if test "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
464         then
465             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
466 "$ac_dir/__install__:: tools \$(DESTDIR)\$(bindir)
467         \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
468 $ac_dir/__uninstall__::
469         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
470         fi
471     else
472         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
473 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
474         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(dlldir)/$ac_program
475 $ac_dir/__uninstall__::
476         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program"
477     fi
478
479     if test "x$enable_tools" != xno && wine_fn_has_flag manpage $ac_flags
480     then
481         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
482 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
483         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
484 $ac_dir/__uninstall__::
485         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
486     fi])
487 }
488
489 wine_fn_config_test ()
490 {
491     ac_dir=$[1]
492     ac_name=$[2]
493     ac_flags=$[3]
494     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
495     wine_fn_all_dir_rules $ac_dir Maketest.rules
496
497     AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
498 "all: $ac_dir
499 .PHONY: $ac_dir
500 $ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
501         @cd $ac_dir && \$(MAKE)
502 programs/winetest: $ac_dir
503 check test: $ac_dir/__test__
504 .PHONY: $ac_dir/__test__
505 $ac_dir/__test__: dummy
506         @cd $ac_dir && \$(MAKE) test
507 testclean::
508         \$(RM) $ac_dir/*.ok"
509
510         if test "x$CROSSTEST_DISABLE" = x
511         then
512             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
513 "crosstest: $ac_dir/__crosstest__
514 .PHONY: $ac_dir/__crosstest__
515 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
516         @cd $ac_dir && \$(MAKE) crosstest"
517         fi])
518 }
519
520 wine_fn_config_tool ()
521 {
522     ac_dir=$[1]
523     ac_flags=$[2]
524     AS_VAR_IF([enable_tools],[no],[return 0])
525
526     wine_fn_config_makefile $ac_dir enable_tools $ac_flags
527
528     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__tooldeps__: $ac_dir"
529     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: libs/port"
530     case $ac_dir in
531       tools/winebuild) wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(WINEBUILD): $ac_dir" ;;
532     esac
533 }
534
535 wine_fn_config_makerules ()
536 {
537     ac_rules=$[1]
538     ac_deps=$[2]
539     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
540 "$ac_rules: $ac_rules.in $ac_deps config.status
541         @./config.status $ac_rules
542 distclean::
543         \$(RM) $ac_rules"
544 }
545
546 wine_fn_config_symlink ()
547 {
548     ac_link=$[1]
549     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
550 "$ac_link:
551         @./config.status $ac_link
552 distclean::
553         \$(RM) $ac_link"
554 }
555
556 if test "x$CROSSTEST_DISABLE" != x
557 then
558     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
559 "crosstest:
560         @echo \"crosstest is not supported (mingw not installed?)\" && false"
561 fi])
562
563 dnl **** Define helper function to append a file to a makefile file list ****
564 dnl
565 dnl Usage: WINE_APPEND_FILE(var,file)
566 dnl
567 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
568
569 dnl **** Define helper function to append a rule to a makefile command list ****
570 dnl
571 dnl Usage: WINE_APPEND_RULE(var,rule)
572 dnl
573 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
574
575 dnl **** Create nonexistent directories from config.status ****
576 dnl
577 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
578 dnl
579 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
580 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
581
582 dnl **** Create symlinks from config.status ****
583 dnl
584 dnl Usage: WINE_CONFIG_SYMLINK(name,target,enable)
585 dnl
586 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
587 m4_ifval([$3],[if test "x$[$3]" != xno; then
588 ])AC_CONFIG_LINKS([$1:]m4_default([$2],[$1]))dnl
589 m4_if([$2],,[test "$srcdir" = "." || ])wine_fn_config_symlink $1[]m4_ifval([$3],[
590 fi])])
591
592 dnl **** Create a make rules file from config.status ****
593 dnl
594 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
595 dnl
596 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
597 wine_fn_config_makerules $1 $3
598 $2=$1
599 AC_SUBST_FILE([$2])dnl
600 AC_CONFIG_FILES([$1])])
601
602 dnl **** Create a makefile from config.status ****
603 dnl
604 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
605 dnl
606 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
607 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
608 wine_fn_config_makefile [$1] ac_enable [$3]dnl
609 AS_VAR_POPDEF([ac_enable])])
610
611 dnl **** Create a dll makefile from config.status ****
612 dnl
613 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
614 dnl
615 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
616 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
617 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
618 AS_VAR_POPDEF([ac_enable])])
619
620 dnl **** Create a program makefile from config.status ****
621 dnl
622 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
623 dnl
624 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
625 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
626 wine_fn_config_program [$1] ac_enable [$3]dnl
627 AS_VAR_POPDEF([ac_enable])])
628
629 dnl **** Create a test makefile from config.status ****
630 dnl
631 dnl Usage: WINE_CONFIG_TEST(dir,flags)
632 dnl
633 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
634 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
635 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
636 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
637 m4_popdef([ac_suffix])dnl
638 m4_popdef([ac_name])])
639
640 dnl **** Create a static lib makefile from config.status ****
641 dnl
642 dnl Usage: WINE_CONFIG_LIB(name,flags)
643 dnl
644 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
645 wine_fn_config_lib [$1] [$2]])
646
647 dnl **** Create a tool makefile from config.status ****
648 dnl
649 dnl Usage: WINE_CONFIG_TOOL(name,flags)
650 dnl
651 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
652 wine_fn_config_tool [$1] [$2]])
653
654 dnl **** Add a message to the list displayed at the end ****
655 dnl
656 dnl Usage: WINE_NOTICE(notice)
657 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
658 dnl Usage: WINE_WARNING(warning)
659 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
660 dnl Usage: WINE_PRINT_MESSAGES
661 dnl
662 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
663 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
664
665 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
666   x)   WINE_NOTICE([$3]) ;;
667   xno) ;;
668   *)   AC_MSG_ERROR([$3
669 This is an error since --with-$1 was requested.]) ;;
670 esac])])
671
672 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
673   x)   WINE_WARNING([$3]) ;;
674   xno) ;;
675   *)   AC_MSG_ERROR([$3
676 This is an error since --with-$1 was requested.]) ;;
677 esac])])
678
679 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
680   xno) ;;
681   *)   AC_MSG_ERROR([$3
682 Use the --without-$1 option if you really want this.]) ;;
683 esac])])
684
685 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
686 if test "x$wine_notices != "x; then
687     echo >&AS_MESSAGE_FD
688     IFS="|"
689     for msg in $wine_notices; do
690         IFS="$ac_save_IFS"
691         if test -n "$msg"; then
692             AC_MSG_NOTICE([$msg])
693         fi
694     done
695 fi
696 IFS="|"
697 for msg in $wine_warnings; do
698     IFS="$ac_save_IFS"
699     if test -n "$msg"; then
700         echo >&2
701         AC_MSG_WARN([$msg])
702     fi
703 done
704 IFS="$ac_save_IFS"])
705
706 dnl Local Variables:
707 dnl compile-command: "autoreconf --warnings=all"
708 dnl End: