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 ",$ac_flags," : ".*,$[1],.*" >/dev/null
216 wine_fn_depend_rules ()
219 ac_makedep="\$(MAKEDEP)"
220 ac_input=Make.vars.in:$ac_dir/Makefile.in
222 *.in) ac_input=$ac_input:$[1] ;;
223 *) ac_makedep="$[1] $ac_makedep" ;;
226 wine_fn_append_rule \
227 "$ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps \$(MAKEDEP)
228 @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
229 depend: $ac_dir/depend
230 .PHONY: $ac_dir/depend
231 $ac_dir/depend: $ac_makedep dummy
232 @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
237 test "x$with_gettextpo" = xyes || return
239 if wine_fn_has_flag mc
241 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
242 wine_fn_append_rule \
243 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
244 @cd $ac_dir && \$(MAKE) msg.pot
245 $ac_dir/msg.pot: tools/wmc include"
247 if wine_fn_has_flag po
249 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
250 wine_fn_append_rule \
251 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
252 @cd $ac_dir && \$(MAKE) rsrc.pot
253 $ac_dir/rsrc.pot: tools/wrc include"
261 wine_fn_depend_rules ${ac_rules:-Make.rules}
262 wine_fn_append_rule \
265 $ac_dir: $ac_dir/Makefile dummy
266 @cd $ac_dir && \$(MAKE)"
269 wine_fn_install_rules ()
271 wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
273 wine_fn_append_rule \
274 ".PHONY: $ac_dir/install $ac_dir/uninstall
275 $ac_dir/install:: $ac_dir
276 @cd $ac_dir && \$(MAKE) install
277 $ac_dir/uninstall:: $ac_dir/Makefile
278 @cd $ac_dir && \$(MAKE) uninstall
279 install:: $ac_dir/install
280 __uninstall__: $ac_dir/uninstall"
282 if wine_fn_has_flag install-lib
284 wine_fn_append_rule \
285 ".PHONY: $ac_dir/install-lib
286 $ac_dir/install-lib:: $ac_dir
287 @cd $ac_dir && \$(MAKE) install-lib
288 install-lib:: $ac_dir/install-lib"
291 if wine_fn_has_flag install-dev
293 wine_fn_append_rule \
294 ".PHONY: $ac_dir/install-dev
295 $ac_dir/install-dev:: $ac_dir
296 @cd $ac_dir && \$(MAKE) install-dev
297 install-dev:: $ac_dir/install-dev"
301 wine_fn_clean_rules ()
305 if wine_fn_has_flag clean
307 wine_fn_append_rule \
308 "__clean__: $ac_dir/clean
309 .PHONY: $ac_dir/clean
310 $ac_dir/clean: $ac_dir/Makefile
311 @cd $ac_dir && \$(MAKE) clean
312 \$(RM) $ac_dir/Makefile"
314 wine_fn_append_rule \
316 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_dir/Makefile"
320 wine_fn_disabled_rules ()
324 wine_fn_append_rule \
326 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_dir/Makefile"
329 wine_fn_config_makefile ()
335 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
337 wine_fn_install_rules
341 wine_fn_config_lib ()
348 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
349 wine_fn_all_rules Make.rules.in
352 wine_fn_append_rule \
353 ".PHONY: $ac_dir/install $ac_dir/uninstall
354 $ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir)
355 \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
357 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
358 install install-dev:: $ac_dir/install
359 __uninstall__: $ac_dir/uninstall
360 __builddeps__: $ac_dir
364 wine_fn_config_dll ()
370 ac_implib=${4:-$ac_name}
371 ac_file=$ac_dir/lib$ac_implib
376 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
378 *16) ac_implibflags=" -m16" ;;
380 *) ac_dll=$ac_dll.dll ;;
384 wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
385 wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
386 wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
387 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
389 AS_VAR_IF([$ac_enable],[no],
390 dnl enable_win16 is special in that it disables import libs too
391 [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
393 wine_fn_depend_rules Make.rules.in
394 wine_fn_clean_rules $ac_clean
396 wine_fn_disabled_rules $ac_clean
400 [wine_fn_all_rules Make.rules.in
401 wine_fn_clean_rules $ac_clean
402 wine_fn_append_rule \
403 "$ac_dir: __builddeps__
404 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
405 @cd $ac_dir && \$(MAKE) \$[@]
406 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
407 install install-lib:: $ac_dir/install-lib
408 __uninstall__: $ac_dir/uninstall"
411 wine_fn_append_rule \
412 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
413 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
414 \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
416 \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
418 wine_fn_append_rule \
419 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir)
420 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
422 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
427 if wine_fn_has_flag staticimplib
429 wine_fn_append_rule \
430 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
431 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
432 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
433 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
434 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
435 @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
436 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
437 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
438 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
440 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
441 install install-dev:: $ac_dir/install-dev
442 __uninstall__: $ac_dir/uninstall"
444 if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
446 wine_fn_append_rule \
447 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
448 \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
450 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
453 if test -n "$CROSSTARGET"
455 wine_fn_append_rule \
456 "__builddeps__: $ac_file.cross.a
457 $ac_file.cross.a: $ac_dir/Makefile dummy
458 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
461 elif wine_fn_has_flag implib
463 wine_fn_append_rule \
464 "__builddeps__: $ac_file.$IMPLIBEXT
465 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
466 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
467 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
468 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
469 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
470 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
471 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
473 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
474 install install-dev:: $ac_dir/install-dev
475 __uninstall__: $ac_dir/uninstall"
476 if test -n "$CROSSTARGET"
478 wine_fn_append_rule \
479 "__builddeps__: $ac_file.cross.a
480 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
481 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
484 if test "$ac_name" != "$ac_implib"
486 wine_fn_append_rule \
487 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
488 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
489 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
491 \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
492 if test -n "$CROSSTARGET"
494 wine_fn_append_rule \
495 "__builddeps__: dlls/lib$ac_implib.cross.a
496 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
497 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
499 \$(RM) dlls/lib$ac_implib.cross.a"
505 wine_fn_config_program ()
508 ac_dir=programs/$ac_name
515 *) ac_program=$ac_program.exe ;;
519 wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
520 wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
521 wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
522 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
524 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
526 wine_fn_all_rules Make.rules.in
527 wine_fn_clean_rules $ac_clean
528 wine_fn_append_rule "$ac_dir: __builddeps__"
531 wine_fn_has_flag install || return
532 wine_fn_append_rule \
533 ".PHONY: $ac_dir/install $ac_dir/uninstall
534 install install-lib:: $ac_dir/install
535 __uninstall__: $ac_dir/uninstall"
539 wine_fn_append_rule \
540 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
541 \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
542 \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
544 \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
546 if test -z "$with_wine64" && wine_fn_has_flag installbin
548 wine_fn_append_rule \
549 "$ac_dir/install:: __tooldeps__ \$(DESTDIR)\$(bindir)
550 \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
552 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
555 wine_fn_append_rule \
556 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(bindir)
557 \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
559 \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
562 if test -z "$with_wine64" && wine_fn_has_flag manpage
564 wine_fn_append_rule \
565 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
566 \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
568 \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
572 wine_fn_config_test ()
579 test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
580 test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
581 ac_clean="$ac_clean $ac_dir/testlist.c"
583 AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
585 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
586 wine_fn_all_rules Make.rules.in
587 wine_fn_clean_rules $ac_clean
589 wine_fn_append_rule \
590 "$ac_dir: programs/winetest/Makefile __builddeps__
591 programs/winetest: $ac_dir
592 check test: $ac_dir/test
595 @cd $ac_dir && \$(MAKE) test
599 if test -n "$CROSSTARGET"
601 wine_fn_append_rule \
602 "crosstest: $ac_dir/crosstest
603 .PHONY: $ac_dir/crosstest
604 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
605 @cd $ac_dir && \$(MAKE) crosstest"
609 wine_fn_config_tool ()
613 AS_VAR_IF([enable_tools],[no],[return])
616 wine_fn_install_rules
619 wine_fn_append_rule "__tooldeps__: $ac_dir"
620 wine_fn_append_rule "$ac_dir: libs/port"
622 tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
626 wine_fn_config_makerules ()
630 wine_fn_append_rule \
631 "$ac_rules: $ac_rules.in $ac_deps config.status
632 @./config.status $ac_rules
637 wine_fn_config_symlink ()
640 if test "x$[1]" = "x-d"
646 wine_fn_append_rule \
648 @./config.status \$[@]
651 test -n "$ac_linkdir" || return
652 wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
655 if test -z "$CROSSTARGET"
657 wine_fn_append_rule \
659 @echo \"crosstest is not supported (mingw not installed?)\" && false"
662 dnl **** Define helper function to append a file to a makefile file list ****
664 dnl Usage: WINE_APPEND_FILE(var,file)
666 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
668 dnl **** Define helper function to append a rule to a makefile command list ****
670 dnl Usage: WINE_APPEND_RULE(rule)
672 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
674 dnl **** Create nonexistent directories from config.status ****
676 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
678 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
679 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
681 dnl **** Create symlinks from config.status ****
683 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
685 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
686 m4_ifval([$4],[if test "x$[$4]" != xno; then
687 ])m4_foreach([f],[$3],
688 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
689 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
690 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],[
694 dnl **** Create a make rules file from config.status ****
696 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
698 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
699 wine_fn_config_makerules $1 $3
701 AC_SUBST_FILE([$2])dnl
702 AC_CONFIG_FILES([$1])])
704 dnl **** Create a makefile from config.status ****
706 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
708 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
709 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
710 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
712 wine_fn_config_makefile [$1] ac_enable [$3]dnl
713 AS_VAR_POPDEF([ac_enable])])
715 dnl **** Create a dll makefile from config.status ****
717 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
719 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
720 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
721 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
723 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
724 AS_VAR_POPDEF([ac_enable])])
726 dnl **** Create a program makefile from config.status ****
728 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
730 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
731 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
732 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
734 wine_fn_config_program [$1] ac_enable [$3]dnl
735 AS_VAR_POPDEF([ac_enable])])
737 dnl **** Create a test makefile from config.status ****
739 dnl Usage: WINE_CONFIG_TEST(dir,flags)
741 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
742 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
743 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
744 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
745 m4_popdef([ac_suffix])dnl
746 m4_popdef([ac_name])])
748 dnl **** Create a static lib makefile from config.status ****
750 dnl Usage: WINE_CONFIG_LIB(name,flags)
752 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
753 wine_fn_config_lib [$1] [$2]])
755 dnl **** Create a tool makefile from config.status ****
757 dnl Usage: WINE_CONFIG_TOOL(name,flags)
759 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
760 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
762 wine_fn_config_tool [$1] [$2]])
764 dnl **** Add a message to the list displayed at the end ****
766 dnl Usage: WINE_NOTICE(notice)
767 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
768 dnl Usage: WINE_WARNING(warning)
769 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
770 dnl Usage: WINE_PRINT_MESSAGES
772 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
773 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
775 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
776 x) WINE_NOTICE([$3]) ;;
779 This is an error since --with-$1 was requested.]) ;;
782 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
783 x) WINE_WARNING([$3]) ;;
786 This is an error since --with-$1 was requested.]) ;;
789 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
792 Use the --without-$1 option if you really want this.]) ;;
795 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
796 if test "x$wine_notices != "x; then
799 for msg in $wine_notices; do
801 if test -n "$msg"; then
802 AC_MSG_NOTICE([$msg])
807 for msg in $wine_warnings; do
809 if test -n "$msg"; then
817 dnl compile-command: "autoreconf --warnings=all"