mshtml: Downgrade GetAsciiHost FIXME to WARN.
[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_config_makefile ()
203 {
204     ac_dir=$[1]
205     ac_enable=$[2]
206     ac_flags=$[3]
207     ac_rules=$[4]
208     AS_VAR_IF([$ac_enable],[no],[return 0])
209
210     wine_fn_all_dir_rules $ac_dir ${ac_rules:-Make.rules}
211     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
212 "all: $ac_dir
213 .PHONY: $ac_dir
214 $ac_dir: $ac_dir/Makefile dummy
215         @cd $ac_dir && \$(MAKE)"
216
217     wine_fn_has_flag install-lib $ac_flags || wine_fn_has_flag install-dev $ac_flags || return
218
219     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
220 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
221 $ac_dir/__install__:: $ac_dir
222         @cd $ac_dir && \$(MAKE) install
223 $ac_dir/__uninstall__:: $ac_dir/Makefile
224         @cd $ac_dir && \$(MAKE) uninstall
225 install:: $ac_dir/__install__
226 __uninstall__: $ac_dir/__uninstall__"
227
228     if wine_fn_has_flag install-lib $ac_flags
229     then
230         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
231 ".PHONY: $ac_dir/__install-lib__
232 $ac_dir/__install-lib__:: $ac_dir
233         @cd $ac_dir && \$(MAKE) install-lib
234 install-lib:: $ac_dir/__install-lib__"
235     fi
236
237     if wine_fn_has_flag install-dev $ac_flags
238     then
239         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
240 ".PHONY: $ac_dir/__install-dev
241 $ac_dir/__install-dev__:: $ac_dir
242         @cd $ac_dir && \$(MAKE) install-dev
243 install-dev:: $ac_dir/__install-dev__"
244     fi
245 }
246
247 wine_fn_config_lib ()
248 {
249     ac_name=$[1]
250     ac_flags=$[2]
251     ac_dir=dlls/$ac_name
252     wine_fn_config_makefile $ac_dir enable_$ac_name "$ac_flags" dlls/Makeimplib.rules
253
254     if wine_fn_has_flag install-dev $ac_flags
255     then :
256     else
257         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
258 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
259 $ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir)
260         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
261 $ac_dir/__uninstall__::
262         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
263 install install-dev:: $ac_dir/__install__
264 __uninstall__: $ac_dir/__uninstall__"
265     fi
266
267     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__builddeps__: $ac_dir"
268     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: tools/widl tools/winebuild tools/winegcc include"
269 }
270
271 wine_fn_config_dll ()
272 {
273     ac_name=$[1]
274     ac_dir=dlls/$ac_name
275     ac_enable=$[2]
276     ac_flags=$[3]
277     ac_implib=${4:-$ac_name}
278     ac_file=$ac_dir/lib$ac_implib
279     ac_deps="tools/widl tools/winebuild tools/winegcc include"
280     ac_implibflags=""
281
282     case $ac_name in
283       *16) ac_implibflags=" -m16" ;;
284     esac
285
286     wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules
287
288     AS_VAR_IF([$ac_enable],[no],
289               dnl enable_win16 is special in that it disables import libs too
290               [test "$ac_enable" != enable_win16 || return 0],
291               [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
292 "all: $ac_dir
293 .PHONY: $ac_dir $ac_dir/__install__ $ac_dir/__install-lib__ $ac_dir/__uninstall__
294 $ac_dir: $ac_dir/Makefile __builddeps__ dummy
295         @cd $ac_dir && \$(MAKE)
296 $ac_dir/__install__:: $ac_dir/Makefile __builddeps__ 
297         @cd $ac_dir && \$(MAKE) install
298 $ac_dir/__install-lib__:: $ac_dir/Makefile __builddeps__ 
299         @cd $ac_dir && \$(MAKE) install-lib
300 $ac_dir/__uninstall__:: $ac_dir/Makefile
301         @cd $ac_dir && \$(MAKE) uninstall
302 install:: $ac_dir/__install__
303 install-lib:: $ac_dir/__install-lib__
304 __uninstall__: $ac_dir/__uninstall__
305 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
306         @cd $ac_dir && \$(MAKE) \$[@]"
307
308         if test "x$enable_maintainer_mode" = xyes
309         then
310             if wine_fn_has_flag mc $ac_flags
311             then
312                 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
313                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
314 "$ac_dir/msg.pot: $ac_dir"
315             fi
316             if wine_fn_has_flag po $ac_flags
317             then
318                 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
319                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
320 "$ac_dir/rsrc.pot: $ac_dir"
321             fi
322         fi])
323
324     if wine_fn_has_flag staticimplib $ac_flags
325     then
326         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
327 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
328 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
329 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
330         @cd $ac_dir && \$(MAKE) lib$ac_implib.def
331 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
332         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
333 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
334 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
335         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
336 $ac_dir/__uninstall__::
337         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
338 install install-dev:: $ac_dir/__install-dev__
339 __uninstall__: $ac_dir/__uninstall__"
340
341         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
342         then
343             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
344 "$ac_dir/__install-dev__:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
345         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
346 $ac_dir/__uninstall__::
347         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
348         fi
349
350         if test "x$CROSSTEST_DISABLE" = x
351         then
352             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
353 "__builddeps__: $ac_file.cross.a
354 $ac_file.cross.a: $ac_dir/Makefile dummy
355         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
356         fi
357
358     elif wine_fn_has_flag implib $ac_flags
359     then
360         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
361 "__builddeps__: $ac_file.$IMPLIBEXT
362 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
363         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
364 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
365         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
366 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
367 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
368         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
369 $ac_dir/__uninstall__::
370         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
371 install install-dev:: $ac_dir/__install-dev__
372 __uninstall__: $ac_dir/__uninstall__"
373         if test "x$CROSSTEST_DISABLE" = x
374         then
375             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
376 "__builddeps__: $ac_file.cross.a
377 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
378         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
379         fi
380
381         if test "$ac_name" != "$ac_implib"
382         then
383             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
384 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
385 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
386         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
387 clean::
388         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
389             if test "x$CROSSTEST_DISABLE" = x
390             then
391                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
392 "__builddeps__: dlls/lib$ac_implib.cross.a
393 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
394         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
395             fi
396         fi
397     fi
398 }
399
400 wine_fn_config_program ()
401 {
402     ac_name=$[1]
403     ac_dir=programs/$ac_name
404     ac_enable=$[2]
405     ac_flags=$[3]
406     wine_fn_all_dir_rules $ac_dir programs/Makeprog.rules
407
408     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
409 "all: $ac_dir
410 .PHONY: $ac_dir
411 $ac_dir: $ac_dir/Makefile __builddeps__ dummy
412         @cd $ac_dir && \$(MAKE)"
413
414     if test "x$enable_maintainer_mode" = xyes
415     then
416         if wine_fn_has_flag mc $ac_flags
417         then
418             wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
419             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
420 "$ac_dir/msg.pot: $ac_dir"
421         fi
422         if wine_fn_has_flag po $ac_flags
423         then
424             wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
425             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
426 "$ac_dir/rsrc.pot: $ac_dir"
427         fi
428     fi
429
430     wine_fn_has_flag install $ac_flags || return
431     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
432 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
433 $ac_dir/__install__:: $ac_dir/Makefile __builddeps__
434         @cd $ac_dir && \$(MAKE) install
435 $ac_dir/__uninstall__:: $ac_dir/Makefile
436         @cd $ac_dir && \$(MAKE) uninstall
437 install install-lib:: $ac_dir/__install__
438 __uninstall__: $ac_dir/__uninstall__"
439     if test -n "$DLLEXT" -a "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
440     then
441         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
442 "$ac_dir/__install__:: tools \$(DESTDIR)\$(bindir)
443         \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
444 $ac_dir/__uninstall__::
445         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
446     fi])
447 }
448
449 wine_fn_config_test ()
450 {
451     ac_dir=$[1]
452     ac_name=$[2]
453     ac_flags=$[3]
454     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
455     wine_fn_all_dir_rules $ac_dir Maketest.rules
456
457     AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
458 "all: $ac_dir
459 .PHONY: $ac_dir
460 $ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
461         @cd $ac_dir && \$(MAKE)
462 programs/winetest: $ac_dir
463 check test: $ac_dir/__test__
464 .PHONY: $ac_dir/__test__
465 $ac_dir/__test__: dummy
466         @cd $ac_dir && \$(MAKE) test
467 testclean::
468         \$(RM) $ac_dir/*.ok"
469
470         if test "x$CROSSTEST_DISABLE" = x
471         then
472             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
473 "crosstest: $ac_dir/__crosstest__
474 .PHONY: $ac_dir/__crosstest__
475 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
476         @cd $ac_dir && \$(MAKE) crosstest"
477         fi])
478 }
479
480 wine_fn_config_tool ()
481 {
482     ac_dir=$[1]
483     ac_flags=$[2]
484     AS_VAR_IF([enable_tools],[no],[return 0])
485
486     wine_fn_config_makefile $ac_dir enable_tools $ac_flags
487
488     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__tooldeps__: $ac_dir"
489     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: libs/port"
490     case $ac_dir in
491       tools/winebuild) wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(WINEBUILD): $ac_dir" ;;
492     esac
493 }
494
495 wine_fn_config_makerules ()
496 {
497     ac_rules=$[1]
498     ac_deps=$[2]
499     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
500 "$ac_rules: $ac_rules.in $ac_deps config.status
501         @./config.status $ac_rules
502 distclean::
503         \$(RM) $ac_rules"
504 }
505
506 wine_fn_config_symlink ()
507 {
508     ac_link=$[1]
509     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
510 "$ac_link:
511         @./config.status $ac_link
512 distclean::
513         \$(RM) $ac_link"
514 }
515
516 if test "x$CROSSTEST_DISABLE" != x
517 then
518     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
519 "crosstest:
520         @echo \"crosstest is not supported (mingw not installed?)\" && false"
521 fi])
522
523 dnl **** Define helper function to append a file to a makefile file list ****
524 dnl
525 dnl Usage: WINE_APPEND_FILE(var,file)
526 dnl
527 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
528
529 dnl **** Define helper function to append a rule to a makefile command list ****
530 dnl
531 dnl Usage: WINE_APPEND_RULE(var,rule)
532 dnl
533 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
534
535 dnl **** Create nonexistent directories from config.status ****
536 dnl
537 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
538 dnl
539 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
540 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
541
542 dnl **** Create symlinks from config.status ****
543 dnl
544 dnl Usage: WINE_CONFIG_SYMLINK(name,target,enable)
545 dnl
546 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
547 m4_ifval([$3],[if test "x$[$3]" != xno; then
548 ])AC_CONFIG_LINKS([$1:]m4_default([$2],[$1]))dnl
549 m4_if([$2],,[test "$srcdir" = "." || ])wine_fn_config_symlink $1[]m4_ifval([$3],[
550 fi])])
551
552 dnl **** Create a make rules file from config.status ****
553 dnl
554 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
555 dnl
556 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
557 wine_fn_config_makerules $1 $3
558 $2=$1
559 AC_SUBST_FILE([$2])dnl
560 AC_CONFIG_FILES([$1])])
561
562 dnl **** Create a makefile from config.status ****
563 dnl
564 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
565 dnl
566 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
567 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
568 wine_fn_config_makefile [$1] ac_enable [$3]dnl
569 AS_VAR_POPDEF([ac_enable])])
570
571 dnl **** Create a dll makefile from config.status ****
572 dnl
573 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
574 dnl
575 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
576 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
577 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
578 AS_VAR_POPDEF([ac_enable])])
579
580 dnl **** Create a program makefile from config.status ****
581 dnl
582 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
583 dnl
584 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
585 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
586 wine_fn_config_program [$1] ac_enable [$3]dnl
587 AS_VAR_POPDEF([ac_enable])])
588
589 dnl **** Create a test makefile from config.status ****
590 dnl
591 dnl Usage: WINE_CONFIG_TEST(dir,flags)
592 dnl
593 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
594 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
595 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
596 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
597 m4_popdef([ac_suffix])dnl
598 m4_popdef([ac_name])])
599
600 dnl **** Create a static lib makefile from config.status ****
601 dnl
602 dnl Usage: WINE_CONFIG_LIB(name,flags)
603 dnl
604 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
605 wine_fn_config_lib [$1] [$2]])
606
607 dnl **** Create a tool makefile from config.status ****
608 dnl
609 dnl Usage: WINE_CONFIG_TOOL(name,flags)
610 dnl
611 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
612 wine_fn_config_tool [$1] [$2]])
613
614 dnl **** Add a message to the list displayed at the end ****
615 dnl
616 dnl Usage: WINE_NOTICE(notice)
617 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
618 dnl Usage: WINE_WARNING(warning)
619 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
620 dnl Usage: WINE_PRINT_MESSAGES
621 dnl
622 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
623 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
624
625 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
626   x)   WINE_NOTICE([$3]) ;;
627   xno) ;;
628   *)   AC_MSG_ERROR([$3
629 This is an error since --with-$1 was requested.]) ;;
630 esac])])
631
632 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
633   x)   WINE_WARNING([$3]) ;;
634   xno) ;;
635   *)   AC_MSG_ERROR([$3
636 This is an error since --with-$1 was requested.]) ;;
637 esac])])
638
639 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
640   xno) ;;
641   *)   AC_MSG_ERROR([$3
642 Use the --without-$1 option if you really want this.]) ;;
643 esac])])
644
645 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
646 if test "x$wine_notices != "x; then
647     echo >&AS_MESSAGE_FD
648     IFS="|"
649     for msg in $wine_notices; do
650         IFS="$ac_save_IFS"
651         if test -n "$msg"; then
652             AC_MSG_NOTICE([$msg])
653         fi
654     done
655 fi
656 IFS="|"
657 for msg in $wine_warnings; do
658     IFS="$ac_save_IFS"
659     if test -n "$msg"; then
660         echo >&2
661         AC_MSG_WARN([$msg])
662     fi
663 done
664 IFS="$ac_save_IFS"])
665
666 dnl Local Variables:
667 dnl compile-command: "autoreconf --warnings=all"
668 dnl End: