1 dnl Macros used to build the Wine configure script
3 dnl Copyright 2002 Alexandre Julliard
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.
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.
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
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
25 dnl WINE_CHECK_HOST_TOOL(VARIABLE, PROG-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH])
27 dnl Like AC_CHECK_TOOL but without the broken fallback to non-prefixed name
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
35 elif test "$cross_compiling" != yes; then
37 AC_CHECK_PROG([$1],[$2],[$2],[$3],[$4])
40 dnl **** Initialize the programs used by other checks ****
42 dnl Usage: WINE_PATH_SONAME_TOOLS
43 dnl Usage: WINE_PATH_PKG_CONFIG
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 ****
54 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
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])
62 [ac_check_soname_save_LIBS=$LIBS
64 AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
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'`])]) ;;
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])
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.])
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 ****
85 dnl Usage: WINE_PACKAGE_FLAGS(var,pkg-name,[default-lib,[cflags-alternate,libs-alternate,[checks]]])
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
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
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
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"
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],
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 ]))
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 ]))" ;;
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
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
213 expr ",$[2]," : ".*,$[1],.*" >/dev/null
216 wine_fn_all_dir_rules ()
220 ac_makedep="\$(MAKEDEP)"
221 ac_input=Make.vars.in:$ac_dir/Makefile.in
222 if test $ac_dir != tools
224 dnl makedep is in tools so tools makefile cannot depend on it
225 ac_alldeps="$[2] $ac_makedep"
227 ac_alldeps="$[2] include/config.h"
230 *.in) ac_input=$ac_input:$[2] ;;
231 *) ac_makedep="$[2] $ac_makedep" ;;
234 wine_fn_append_rule \
235 "__clean__: $ac_dir/__clean__
236 .PHONY: $ac_dir/__clean__
237 $ac_dir/__clean__: $ac_dir/Makefile
238 @cd $ac_dir && \$(MAKE) clean
239 \$(RM) $ac_dir/Makefile
240 $ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps
241 @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
242 depend: $ac_dir/__depend__
243 .PHONY: $ac_dir/__depend__
244 $ac_dir/__depend__: $ac_makedep dummy
245 @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
253 test "x$with_gettextpo" = xyes || return
255 if wine_fn_has_flag mc $ac_flags
257 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
258 wine_fn_append_rule \
259 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
260 @cd $ac_dir && \$(MAKE) msg.pot
261 $ac_dir/msg.pot: tools/wmc include"
263 if wine_fn_has_flag po $ac_flags
265 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
266 wine_fn_append_rule \
267 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
268 @cd $ac_dir && \$(MAKE) rsrc.pot
269 $ac_dir/rsrc.pot: tools/wrc include"
273 wine_fn_config_makefile ()
279 AS_VAR_IF([$ac_enable],[no],[return 0])
281 wine_fn_all_dir_rules $ac_dir ${ac_rules:-Make.rules}
282 wine_fn_append_rule \
285 $ac_dir: $ac_dir/Makefile dummy
286 @cd $ac_dir && \$(MAKE)"
288 wine_fn_has_flag install-lib $ac_flags || wine_fn_has_flag install-dev $ac_flags || return
290 wine_fn_append_rule \
291 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
292 $ac_dir/__install__:: $ac_dir
293 @cd $ac_dir && \$(MAKE) install
294 $ac_dir/__uninstall__:: $ac_dir/Makefile
295 @cd $ac_dir && \$(MAKE) uninstall
296 install:: $ac_dir/__install__
297 __uninstall__: $ac_dir/__uninstall__"
299 if wine_fn_has_flag install-lib $ac_flags
301 wine_fn_append_rule \
302 ".PHONY: $ac_dir/__install-lib__
303 $ac_dir/__install-lib__:: $ac_dir
304 @cd $ac_dir && \$(MAKE) install-lib
305 install-lib:: $ac_dir/__install-lib__"
308 if wine_fn_has_flag install-dev $ac_flags
310 wine_fn_append_rule \
311 ".PHONY: $ac_dir/__install-dev
312 $ac_dir/__install-dev__:: $ac_dir
313 @cd $ac_dir && \$(MAKE) install-dev
314 install-dev:: $ac_dir/__install-dev__"
318 wine_fn_config_lib ()
323 wine_fn_config_makefile $ac_dir enable_$ac_name "$ac_flags" dlls/Makeimplib.rules
325 if wine_fn_has_flag install-dev $ac_flags
328 wine_fn_append_rule \
329 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
330 $ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir)
331 \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
332 $ac_dir/__uninstall__::
333 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
334 install install-dev:: $ac_dir/__install__
335 __uninstall__: $ac_dir/__uninstall__"
338 wine_fn_append_rule \
339 "__builddeps__: $ac_dir
340 $ac_dir: tools/widl tools/winebuild tools/winegcc include"
343 wine_fn_config_dll ()
349 ac_implib=${4:-$ac_name}
350 ac_file=$ac_dir/lib$ac_implib
352 ac_deps="tools/widl tools/winebuild tools/winegcc include"
356 *16) ac_implibflags=" -m16" ;;
358 *) ac_dll=$ac_dll.dll ;;
361 wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" dlls/Makedll.rules
363 AS_VAR_IF([$ac_enable],[no],
364 dnl enable_win16 is special in that it disables import libs too
365 [test "$ac_enable" != enable_win16 || return 0
366 wine_fn_has_flag implib $ac_flags && wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules],
368 [wine_fn_append_rule \
369 "$ac_dir: __builddeps__
370 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
371 @cd $ac_dir && \$(MAKE) \$[@]"
373 if wine_fn_has_flag install-lib $ac_flags
376 wine_fn_append_rule \
377 ".PHONY: $ac_dir/__install-lib__ $ac_dir/__uninstall__
378 install install-lib:: $ac_dir/__install-lib__
379 __uninstall__: $ac_dir/__uninstall__"
382 wine_fn_append_rule \
383 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
384 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
385 \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
386 $ac_dir/__uninstall__::
387 \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
389 wine_fn_append_rule \
390 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
391 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
392 $ac_dir/__uninstall__::
393 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
397 wine_fn_pot_rules $ac_dir $ac_flags])
399 if wine_fn_has_flag staticimplib $ac_flags
401 wine_fn_append_rule \
402 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
403 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
404 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
405 @cd $ac_dir && \$(MAKE) lib$ac_implib.def
406 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
407 @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
408 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
409 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
410 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
411 $ac_dir/__uninstall__::
412 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
413 install install-dev:: $ac_dir/__install-dev__
414 __uninstall__: $ac_dir/__uninstall__"
416 if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
418 wine_fn_append_rule \
419 "$ac_dir/__install-dev__:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
420 \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
421 $ac_dir/__uninstall__::
422 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
425 if test "x$CROSSTEST_DISABLE" = x
427 wine_fn_append_rule \
428 "__builddeps__: $ac_file.cross.a
429 $ac_file.cross.a: $ac_dir/Makefile dummy
430 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
433 elif wine_fn_has_flag implib $ac_flags
435 wine_fn_append_rule \
436 "__builddeps__: $ac_file.$IMPLIBEXT
437 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
438 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
439 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
440 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
441 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
442 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
443 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
444 $ac_dir/__uninstall__::
445 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
446 install install-dev:: $ac_dir/__install-dev__
447 __uninstall__: $ac_dir/__uninstall__"
448 if test "x$CROSSTEST_DISABLE" = x
450 wine_fn_append_rule \
451 "__builddeps__: $ac_file.cross.a
452 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
453 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
456 if test "$ac_name" != "$ac_implib"
458 wine_fn_append_rule \
459 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
460 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
461 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
463 \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
464 if test "x$CROSSTEST_DISABLE" = x
466 wine_fn_append_rule \
467 "__builddeps__: dlls/lib$ac_implib.cross.a
468 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
469 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
475 wine_fn_config_program ()
478 ac_dir=programs/$ac_name
485 *) ac_program=$ac_program.exe ;;
488 wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" programs/Makeprog.rules
490 AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule "$ac_dir: __builddeps__"
492 wine_fn_pot_rules $ac_dir $ac_flags
494 wine_fn_has_flag install $ac_flags || return
495 wine_fn_append_rule \
496 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
497 install install-lib:: $ac_dir/__install__
498 __uninstall__: $ac_dir/__uninstall__"
502 wine_fn_append_rule \
503 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
504 \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
505 \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
506 $ac_dir/__uninstall__::
507 \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
509 if test "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
511 wine_fn_append_rule \
512 "$ac_dir/__install__:: tools \$(DESTDIR)\$(bindir)
513 \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
514 $ac_dir/__uninstall__::
515 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
518 wine_fn_append_rule \
519 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
520 \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(dlldir)/$ac_program
521 $ac_dir/__uninstall__::
522 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program"
525 if test "x$enable_tools" != xno && wine_fn_has_flag manpage $ac_flags
527 wine_fn_append_rule \
528 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
529 \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
530 $ac_dir/__uninstall__::
531 \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
535 wine_fn_config_test ()
540 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
541 wine_fn_all_dir_rules $ac_dir Maketest.rules
543 AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule \
546 $ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
547 @cd $ac_dir && \$(MAKE)
548 programs/winetest: $ac_dir
549 check test: $ac_dir/__test__
550 .PHONY: $ac_dir/__test__
551 $ac_dir/__test__: dummy
552 @cd $ac_dir && \$(MAKE) test
556 if test "x$CROSSTEST_DISABLE" = x
558 wine_fn_append_rule \
559 "crosstest: $ac_dir/__crosstest__
560 .PHONY: $ac_dir/__crosstest__
561 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
562 @cd $ac_dir && \$(MAKE) crosstest"
566 wine_fn_config_tool ()
570 AS_VAR_IF([enable_tools],[no],[return 0])
572 wine_fn_config_makefile $ac_dir enable_tools $ac_flags
574 wine_fn_append_rule "__tooldeps__: $ac_dir"
575 wine_fn_append_rule "$ac_dir: libs/port"
577 tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
581 wine_fn_config_makerules ()
585 wine_fn_append_rule \
586 "$ac_rules: $ac_rules.in $ac_deps config.status
587 @./config.status $ac_rules
592 wine_fn_config_symlink ()
595 if test "x$[1]" = "x-d"
601 wine_fn_append_rule \
603 @./config.status \$[@]
606 test -n "$ac_linkdir" || return
607 wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/__depend__: $ac_links"
610 if test "x$CROSSTEST_DISABLE" != x
612 wine_fn_append_rule \
614 @echo \"crosstest is not supported (mingw not installed?)\" && false"
617 dnl **** Define helper function to append a file to a makefile file list ****
619 dnl Usage: WINE_APPEND_FILE(var,file)
621 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
623 dnl **** Define helper function to append a rule to a makefile command list ****
625 dnl Usage: WINE_APPEND_RULE(rule)
627 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
629 dnl **** Create nonexistent directories from config.status ****
631 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
633 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
634 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
636 dnl **** Create symlinks from config.status ****
638 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
640 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
641 m4_ifval([$4],[if test "x$[$4]" != xno; then
642 ])m4_foreach([f],[$3],
643 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
644 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
645 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],[
649 dnl **** Create a make rules file from config.status ****
651 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
653 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
654 wine_fn_config_makerules $1 $3
656 AC_SUBST_FILE([$2])dnl
657 AC_CONFIG_FILES([$1])])
659 dnl **** Create a makefile from config.status ****
661 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
663 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
664 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
665 wine_fn_config_makefile [$1] ac_enable [$3]dnl
666 AS_VAR_POPDEF([ac_enable])])
668 dnl **** Create a dll makefile from config.status ****
670 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
672 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
673 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
674 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
675 AS_VAR_POPDEF([ac_enable])])
677 dnl **** Create a program makefile from config.status ****
679 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
681 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
682 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
683 wine_fn_config_program [$1] ac_enable [$3]dnl
684 AS_VAR_POPDEF([ac_enable])])
686 dnl **** Create a test makefile from config.status ****
688 dnl Usage: WINE_CONFIG_TEST(dir,flags)
690 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
691 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
692 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
693 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
694 m4_popdef([ac_suffix])dnl
695 m4_popdef([ac_name])])
697 dnl **** Create a static lib makefile from config.status ****
699 dnl Usage: WINE_CONFIG_LIB(name,flags)
701 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
702 wine_fn_config_lib [$1] [$2]])
704 dnl **** Create a tool makefile from config.status ****
706 dnl Usage: WINE_CONFIG_TOOL(name,flags)
708 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
709 wine_fn_config_tool [$1] [$2]])
711 dnl **** Add a message to the list displayed at the end ****
713 dnl Usage: WINE_NOTICE(notice)
714 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
715 dnl Usage: WINE_WARNING(warning)
716 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
717 dnl Usage: WINE_PRINT_MESSAGES
719 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
720 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
722 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
723 x) WINE_NOTICE([$3]) ;;
726 This is an error since --with-$1 was requested.]) ;;
729 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
730 x) WINE_WARNING([$3]) ;;
733 This is an error since --with-$1 was requested.]) ;;
736 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
739 Use the --without-$1 option if you really want this.]) ;;
742 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
743 if test "x$wine_notices != "x; then
746 for msg in $wine_notices; do
748 if test -n "$msg"; then
749 AC_MSG_NOTICE([$msg])
754 for msg in $wine_warnings; do
756 if test -n "$msg"; then
764 dnl compile-command: "autoreconf --warnings=all"