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 [ALL_MAKEFILE_DEPENDS="
197 # Rules automatically generated by configure
202 Makefile: Makefile.in Make.vars.in Make.rules config.status
203 @./config.status Make.tmp Makefile"
206 AC_SUBST(ALL_TEST_RESOURCES,"")
208 wine_fn_append_file ()
210 AS_VAR_APPEND($[1]," \\$as_nl $[2]")
213 wine_fn_append_rule ()
215 AS_VAR_APPEND($[1],"$as_nl$[2]")
220 expr ",$[2]," : ".*,$[1],.*" >/dev/null
223 wine_fn_all_dir_rules ()
227 ac_makedep="\$(MAKEDEP)"
228 ac_input=Make.vars.in:$ac_dir/Makefile.in
229 if test $ac_dir != tools
231 dnl makedep is in tools so tools makefile cannot depend on it
232 ac_alldeps="$[2] $ac_makedep"
234 ac_alldeps="$[2] include/config.h"
237 *.in) ac_input=$ac_input:$[2] ;;
238 *) ac_makedep="$[2] $ac_makedep" ;;
241 wine_fn_append_file ALL_DIRS $ac_dir
242 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
243 "__clean__: $ac_dir/__clean__
244 .PHONY: $ac_dir/__clean__
245 $ac_dir/__clean__: $ac_dir/Makefile
246 @cd $ac_dir && \$(MAKE) clean
247 \$(RM) $ac_dir/Makefile
248 $ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps
249 @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
250 depend: $ac_dir/__depend__
251 .PHONY: $ac_dir/__depend__
252 $ac_dir/__depend__: $ac_makedep dummy
253 @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
261 test "x$with_gettextpo" = xyes || return
263 if wine_fn_has_flag mc $ac_flags
265 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
266 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
267 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
268 @cd $ac_dir && \$(MAKE) msg.pot
269 $ac_dir/msg.pot: tools/wmc include"
271 if wine_fn_has_flag po $ac_flags
273 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
274 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
275 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
276 @cd $ac_dir && \$(MAKE) rsrc.pot
277 $ac_dir/rsrc.pot: tools/wrc include"
281 wine_fn_config_makefile ()
287 AS_VAR_IF([$ac_enable],[no],[return 0])
289 wine_fn_all_dir_rules $ac_dir ${ac_rules:-Make.rules}
290 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
293 $ac_dir: $ac_dir/Makefile dummy
294 @cd $ac_dir && \$(MAKE)"
296 wine_fn_has_flag install-lib $ac_flags || wine_fn_has_flag install-dev $ac_flags || return
298 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
299 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
300 $ac_dir/__install__:: $ac_dir
301 @cd $ac_dir && \$(MAKE) install
302 $ac_dir/__uninstall__:: $ac_dir/Makefile
303 @cd $ac_dir && \$(MAKE) uninstall
304 install:: $ac_dir/__install__
305 __uninstall__: $ac_dir/__uninstall__"
307 if wine_fn_has_flag install-lib $ac_flags
309 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
310 ".PHONY: $ac_dir/__install-lib__
311 $ac_dir/__install-lib__:: $ac_dir
312 @cd $ac_dir && \$(MAKE) install-lib
313 install-lib:: $ac_dir/__install-lib__"
316 if wine_fn_has_flag install-dev $ac_flags
318 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
319 ".PHONY: $ac_dir/__install-dev
320 $ac_dir/__install-dev__:: $ac_dir
321 @cd $ac_dir && \$(MAKE) install-dev
322 install-dev:: $ac_dir/__install-dev__"
326 wine_fn_config_lib ()
331 wine_fn_config_makefile $ac_dir enable_$ac_name "$ac_flags" dlls/Makeimplib.rules
333 if wine_fn_has_flag install-dev $ac_flags
336 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
337 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
338 $ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir)
339 \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
340 $ac_dir/__uninstall__::
341 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
342 install install-dev:: $ac_dir/__install__
343 __uninstall__: $ac_dir/__uninstall__"
346 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__builddeps__: $ac_dir"
347 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: tools/widl tools/winebuild tools/winegcc include"
350 wine_fn_config_dll ()
356 ac_implib=${4:-$ac_name}
357 ac_file=$ac_dir/lib$ac_implib
359 ac_deps="tools/widl tools/winebuild tools/winegcc include"
363 *16) ac_implibflags=" -m16" ;;
365 *) ac_dll=$ac_dll.dll ;;
368 wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" dlls/Makedll.rules
370 AS_VAR_IF([$ac_enable],[no],
371 dnl enable_win16 is special in that it disables import libs too
372 [test "$ac_enable" != enable_win16 || return 0
373 wine_fn_has_flag implib $ac_flags && wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules],
375 [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
376 "$ac_dir: __builddeps__
377 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
378 @cd $ac_dir && \$(MAKE) \$[@]"
380 if wine_fn_has_flag install-lib $ac_flags
383 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
384 ".PHONY: $ac_dir/__install-lib__ $ac_dir/__uninstall__
385 install install-lib:: $ac_dir/__install-lib__
386 __uninstall__: $ac_dir/__uninstall__"
389 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
390 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
391 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
392 \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
393 $ac_dir/__uninstall__::
394 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
396 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
397 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
398 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
399 $ac_dir/__uninstall__::
400 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
404 wine_fn_pot_rules $ac_dir $ac_flags])
406 if wine_fn_has_flag staticimplib $ac_flags
408 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
409 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
410 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
411 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
412 @cd $ac_dir && \$(MAKE) lib$ac_implib.def
413 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
414 @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
415 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
416 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
417 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
418 $ac_dir/__uninstall__::
419 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
420 install install-dev:: $ac_dir/__install-dev__
421 __uninstall__: $ac_dir/__uninstall__"
423 if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
425 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
426 "$ac_dir/__install-dev__:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
427 \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
428 $ac_dir/__uninstall__::
429 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
432 if test "x$CROSSTEST_DISABLE" = x
434 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
435 "__builddeps__: $ac_file.cross.a
436 $ac_file.cross.a: $ac_dir/Makefile dummy
437 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
440 elif wine_fn_has_flag implib $ac_flags
442 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
443 "__builddeps__: $ac_file.$IMPLIBEXT
444 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
445 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
446 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
447 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
448 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
449 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
450 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
451 $ac_dir/__uninstall__::
452 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
453 install install-dev:: $ac_dir/__install-dev__
454 __uninstall__: $ac_dir/__uninstall__"
455 if test "x$CROSSTEST_DISABLE" = x
457 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
458 "__builddeps__: $ac_file.cross.a
459 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
460 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
463 if test "$ac_name" != "$ac_implib"
465 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
466 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
467 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
468 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
470 \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
471 if test "x$CROSSTEST_DISABLE" = x
473 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
474 "__builddeps__: dlls/lib$ac_implib.cross.a
475 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
476 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
482 wine_fn_config_program ()
485 ac_dir=programs/$ac_name
492 *) ac_program=$ac_program.exe ;;
495 wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" programs/Makeprog.rules
497 AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
498 "$ac_dir: __builddeps__"
500 wine_fn_pot_rules $ac_dir $ac_flags
502 wine_fn_has_flag install $ac_flags || return
503 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
504 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
505 install install-lib:: $ac_dir/__install__
506 __uninstall__: $ac_dir/__uninstall__"
510 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
511 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
512 \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
513 \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
514 $ac_dir/__uninstall__::
515 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
517 if test "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
519 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
520 "$ac_dir/__install__:: tools \$(DESTDIR)\$(bindir)
521 \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
522 $ac_dir/__uninstall__::
523 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
526 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
527 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
528 \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(dlldir)/$ac_program
529 $ac_dir/__uninstall__::
530 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program"
533 if test "x$enable_tools" != xno && wine_fn_has_flag manpage $ac_flags
535 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
536 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
537 \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
538 $ac_dir/__uninstall__::
539 \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
543 wine_fn_config_test ()
548 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
549 wine_fn_all_dir_rules $ac_dir Maketest.rules
551 AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
554 $ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
555 @cd $ac_dir && \$(MAKE)
556 programs/winetest: $ac_dir
557 check test: $ac_dir/__test__
558 .PHONY: $ac_dir/__test__
559 $ac_dir/__test__: dummy
560 @cd $ac_dir && \$(MAKE) test
564 if test "x$CROSSTEST_DISABLE" = x
566 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
567 "crosstest: $ac_dir/__crosstest__
568 .PHONY: $ac_dir/__crosstest__
569 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
570 @cd $ac_dir && \$(MAKE) crosstest"
574 wine_fn_config_tool ()
578 AS_VAR_IF([enable_tools],[no],[return 0])
580 wine_fn_config_makefile $ac_dir enable_tools $ac_flags
582 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__tooldeps__: $ac_dir"
583 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: libs/port"
585 tools/winebuild) wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(WINEBUILD): $ac_dir" ;;
589 wine_fn_config_makerules ()
593 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
594 "$ac_rules: $ac_rules.in $ac_deps config.status
595 @./config.status $ac_rules
600 wine_fn_config_symlink ()
603 if test "x$[1]" = "x-d"
609 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
611 @./config.status \$[@]
614 test -n "$ac_linkdir" || return
615 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_linkdir/Makefile $ac_linkdir/__depend__: $ac_links"
618 if test "x$CROSSTEST_DISABLE" != x
620 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
622 @echo \"crosstest is not supported (mingw not installed?)\" && false"
625 dnl **** Define helper function to append a file to a makefile file list ****
627 dnl Usage: WINE_APPEND_FILE(var,file)
629 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
631 dnl **** Define helper function to append a rule to a makefile command list ****
633 dnl Usage: WINE_APPEND_RULE(var,rule)
635 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
637 dnl **** Create nonexistent directories from config.status ****
639 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
641 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
642 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
644 dnl **** Create symlinks from config.status ****
646 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
648 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
649 m4_ifval([$4],[if test "x$[$4]" != xno; then
650 ])m4_foreach([f],[$3],
651 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
652 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
653 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],[
657 dnl **** Create a make rules file from config.status ****
659 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
661 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
662 wine_fn_config_makerules $1 $3
664 AC_SUBST_FILE([$2])dnl
665 AC_CONFIG_FILES([$1])])
667 dnl **** Create a makefile from config.status ****
669 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
671 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
672 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
673 wine_fn_config_makefile [$1] ac_enable [$3]dnl
674 AS_VAR_POPDEF([ac_enable])])
676 dnl **** Create a dll makefile from config.status ****
678 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
680 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
681 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
682 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
683 AS_VAR_POPDEF([ac_enable])])
685 dnl **** Create a program makefile from config.status ****
687 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
689 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
690 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
691 wine_fn_config_program [$1] ac_enable [$3]dnl
692 AS_VAR_POPDEF([ac_enable])])
694 dnl **** Create a test makefile from config.status ****
696 dnl Usage: WINE_CONFIG_TEST(dir,flags)
698 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
699 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
700 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
701 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
702 m4_popdef([ac_suffix])dnl
703 m4_popdef([ac_name])])
705 dnl **** Create a static lib makefile from config.status ****
707 dnl Usage: WINE_CONFIG_LIB(name,flags)
709 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
710 wine_fn_config_lib [$1] [$2]])
712 dnl **** Create a tool makefile from config.status ****
714 dnl Usage: WINE_CONFIG_TOOL(name,flags)
716 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
717 wine_fn_config_tool [$1] [$2]])
719 dnl **** Add a message to the list displayed at the end ****
721 dnl Usage: WINE_NOTICE(notice)
722 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
723 dnl Usage: WINE_WARNING(warning)
724 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
725 dnl Usage: WINE_PRINT_MESSAGES
727 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
728 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
730 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
731 x) WINE_NOTICE([$3]) ;;
734 This is an error since --with-$1 was requested.]) ;;
737 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
738 x) WINE_WARNING([$3]) ;;
741 This is an error since --with-$1 was requested.]) ;;
744 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
747 Use the --without-$1 option if you really want this.]) ;;
750 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
751 if test "x$wine_notices != "x; then
754 for msg in $wine_notices; do
756 if test -n "$msg"; then
757 AC_MSG_NOTICE([$msg])
762 for msg in $wine_warnings; do
764 if test -n "$msg"; then
772 dnl compile-command: "autoreconf --warnings=all"