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 [AS_VAR_SET_IF([ac_tool_prefix],
31 AC_CHECK_PROG([$1],[${ac_tool_prefix}$2],[${ac_tool_prefix}$2],,[$4]))
32 AS_VAR_IF([ac_cv_prog_$1],[],
33 [AS_VAR_IF([cross_compiling],[yes],[],
34 [AS_UNSET([ac_cv_prog_$1])
35 AC_CHECK_PROG([$1],[$2],[$2],[$3],[$4])])],
36 [AS_VAR_COPY([$1],[ac_cv_prog_$1])])])
38 dnl **** Initialize the programs used by other checks ****
40 dnl Usage: WINE_PATH_SONAME_TOOLS
41 dnl Usage: WINE_PATH_PKG_CONFIG
43 AC_DEFUN([WINE_PATH_SONAME_TOOLS],
44 [AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)
45 AC_CHECK_TOOL(OTOOL,otool,otool)
46 AC_CHECK_TOOL(READELF,[readelf],true)])
48 AC_DEFUN([WINE_PATH_PKG_CONFIG],
49 [WINE_CHECK_HOST_TOOL(PKG_CONFIG,[pkg-config])])
51 dnl **** Extract the soname of a library ****
53 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
55 AC_DEFUN([WINE_CHECK_SONAME],
56 [AC_REQUIRE([WINE_PATH_SONAME_TOOLS])dnl
57 AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
58 m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
59 AC_MSG_CHECKING([for -l$1])
61 [ac_check_soname_save_LIBS=$LIBS
63 AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
65 dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
66 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'`]) ;;
67 *) 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'`])
68 AS_VAR_IF([ac_Lib],[],
69 [AS_VAR_SET(ac_Lib,[`$LDD conftest$ac_exeext | grep "ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\(ac_lib_pattern\.$LIBEXT[[^ ]]*\).*$/\1/"';2,$d'`])]) ;;
71 LIBS=$ac_check_soname_save_LIBS])dnl
72 AS_VAR_IF([ac_Lib],[],
73 [AC_MSG_RESULT([not found])
75 [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
76 AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
77 [Define to the soname of the lib$1 library.])
79 m4_popdef([ac_lib_pattern])dnl
80 AS_VAR_POPDEF([ac_Lib])])
82 dnl **** Get flags from pkg-config or alternate xxx-config program ****
84 dnl Usage: WINE_PACKAGE_FLAGS(var,pkg-name,[default-lib,[cflags-alternate,libs-alternate,[checks]]])
86 AC_DEFUN([WINE_PACKAGE_FLAGS],
87 [AC_REQUIRE([WINE_PATH_PKG_CONFIG])dnl
88 AS_VAR_PUSHDEF([ac_cflags],[[$1]_CFLAGS])dnl
89 AS_VAR_PUSHDEF([ac_libs],[[$1]_LIBS])dnl
90 AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl
91 AS_VAR_IF([ac_cflags],[],
92 [AS_VAR_SET_IF([PKG_CONFIG],
93 [ac_cflags=`$PKG_CONFIG --cflags [$2] 2>/dev/null`])])
94 m4_ifval([$4],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$4]}])
95 AC_ARG_VAR(ac_libs, [Linker flags for $2, overriding pkg-config])dnl
96 AS_VAR_IF([ac_libs],[],
97 [AS_VAR_SET_IF([PKG_CONFIG],
98 [ac_libs=`$PKG_CONFIG --libs [$2] 2>/dev/null`])])
99 m4_ifval([$5],[test "$cross_compiling" = yes || ac_libs=[$]{ac_libs:-[$5]}])
100 m4_ifval([$3],[ac_libs=[$]{ac_libs:-"$3"}])
101 AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 cflags: $ac_cflags"]) >&AS_MESSAGE_LOG_FD
102 AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 libs: $ac_libs"]) >&AS_MESSAGE_LOG_FD
103 ac_save_CPPFLAGS=$CPPFLAGS
104 CPPFLAGS="$CPPFLAGS $ac_cflags"
106 CPPFLAGS=$ac_save_CPPFLAGS
107 test -z "$ac_cflags" || ac_cflags=`echo " $ac_cflags" | sed 's/ -I\([[^/]]\)/ -I\$(top_builddir)\/\1/g'`
108 test -z "$ac_libs" || ac_libs=`echo " $ac_libs" | sed 's/ -L\([[^/]]\)/ -L\$(top_builddir)\/\1/g'`
109 AS_VAR_POPDEF([ac_libs])dnl
110 AS_VAR_POPDEF([ac_cflags])])dnl
112 dnl **** Link C code with an assembly file ****
114 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
116 AC_DEFUN([WINE_TRY_ASM_LINK],
117 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
119 dnl **** Check if we can link an empty program with special CFLAGS ****
121 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
123 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
125 AC_DEFUN([WINE_TRY_CFLAGS],
126 [AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
127 AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
128 [ac_wine_try_cflags_saved=$CFLAGS
130 AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]])],
131 [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
132 CFLAGS=$ac_wine_try_cflags_saved])
133 AS_VAR_IF([ac_var],[yes],[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_VAR_IF([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 GITIGNORE="# Automatically generated by configure; DO NOT EDIT!!"
200 AC_SUBST(ALL_TEST_RESOURCES,"")
202 wine_fn_append_file ()
204 AS_VAR_APPEND($[1]," \\$as_nl $[2]")
207 wine_fn_ignore_file ()
210 */*) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
211 \**) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
212 *) AS_VAR_APPEND([GITIGNORE],"$as_nl/$[1]") ;;
216 wine_fn_append_rule ()
218 AS_ECHO("$[1]") >>$wine_rules_file
223 expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
226 wine_fn_depend_rules ()
228 wine_fn_append_rule \
229 "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP)
231 depend: $ac_dir/depend
232 .PHONY: $ac_dir/depend
233 $ac_dir/depend: \$(MAKEDEP) dummy
239 test "x$with_gettextpo" = xyes || return
241 if wine_fn_has_flag mc
243 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
244 wine_fn_append_rule \
245 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
246 @cd $ac_dir && \$(MAKE) msg.pot
247 $ac_dir/msg.pot: tools/wmc include"
249 if wine_fn_has_flag po
251 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
252 wine_fn_append_rule \
253 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
254 @cd $ac_dir && \$(MAKE) rsrc.pot
255 $ac_dir/rsrc.pot: tools/wrc include"
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 ()
304 ac_extraclean="$ac_dir/Makefile"
305 test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
307 */tests) ac_extraclean="$ac_extraclean $ac_dir/testlist.c" ;;
310 if wine_fn_has_flag clean
312 wine_fn_append_rule \
313 "__clean__: $ac_dir/clean
314 .PHONY: $ac_dir/clean
315 $ac_dir/clean: $ac_dir/Makefile
316 @cd $ac_dir && \$(MAKE) clean
317 \$(RM) $ac_extraclean"
319 wine_fn_append_rule \
320 "__clean__: $ac_dir/clean
321 .PHONY: $ac_dir/clean
323 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
327 wine_fn_disabled_rules ()
330 ac_extraclean="$ac_dir/Makefile"
331 test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
333 wine_fn_append_rule \
334 "__clean__: $ac_dir/clean
335 .PHONY: $ac_dir/clean
337 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
340 wine_fn_config_makefile ()
346 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
348 wine_fn_install_rules
352 wine_fn_config_lib ()
359 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
363 wine_fn_append_rule \
364 ".PHONY: $ac_dir/install $ac_dir/uninstall
365 $ac_dir/install:: $ac_dir
366 \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
368 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
369 install install-dev:: $ac_dir/install
370 __uninstall__: $ac_dir/uninstall
371 __builddeps__: $ac_dir
375 wine_fn_config_dll ()
381 ac_implib=${4:-$ac_name}
382 ac_file=$ac_dir/lib$ac_implib
387 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
389 *16) ac_implibflags=" -m16" ;;
391 *) ac_dll=$ac_dll.dll ;;
395 wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
396 wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
397 wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
398 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
400 AS_VAR_IF([$ac_enable],[no],
401 dnl enable_win16 is special in that it disables import libs too
402 [if test "$ac_enable" != enable_win16
405 wine_fn_clean_rules $ac_clean
408 wine_fn_disabled_rules $ac_clean
413 wine_fn_clean_rules $ac_clean
414 wine_fn_append_rule \
415 "$ac_dir: __builddeps__
416 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
417 @cd $ac_dir && \$(MAKE) \$[@]
418 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
419 install install-lib:: $ac_dir/install-lib
420 __uninstall__: $ac_dir/uninstall"
423 wine_fn_append_rule \
424 "$ac_dir/install-lib:: $ac_dir
425 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
426 \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
428 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
430 wine_fn_append_rule \
431 "$ac_dir/install-lib:: $ac_dir
432 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
434 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
439 if wine_fn_has_flag staticimplib
441 wine_fn_append_rule \
442 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
443 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
444 $ac_file.def: $srcdir/$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.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
447 @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
448 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
449 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
450 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
452 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
453 install install-dev:: $ac_dir/install-dev
454 __uninstall__: $ac_dir/uninstall"
456 if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
458 wine_fn_append_rule \
459 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT __builddeps__
460 \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
462 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
465 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
467 wine_fn_append_rule \
468 "__builddeps__: $ac_file.cross.a
469 $ac_file.cross.a: $ac_dir/Makefile dummy
470 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
473 elif wine_fn_has_flag implib
475 wine_fn_append_rule \
476 "__builddeps__: $ac_file.$IMPLIBEXT
477 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
478 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
479 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
480 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
481 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
482 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
483 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
485 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
486 install install-dev:: $ac_dir/install-dev
487 __uninstall__: $ac_dir/uninstall"
488 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
490 wine_fn_append_rule \
491 "__builddeps__: $ac_file.cross.a
492 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
493 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
496 if test "$ac_name" != "$ac_implib"
498 wine_fn_append_rule \
499 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
500 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
501 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
503 \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
504 wine_fn_ignore_file "dlls/lib$ac_implib.$IMPLIBEXT"
505 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
507 wine_fn_append_rule \
508 "__builddeps__: dlls/lib$ac_implib.cross.a
509 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
510 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
512 \$(RM) dlls/lib$ac_implib.cross.a"
513 wine_fn_ignore_file "dlls/lib$ac_implib.cross.a"
519 wine_fn_config_program ()
522 ac_dir=programs/$ac_name
529 *) ac_program=$ac_program.exe ;;
533 wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
534 wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
535 wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
536 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
538 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
541 wine_fn_clean_rules $ac_clean
542 wine_fn_append_rule "$ac_dir: __builddeps__"
545 wine_fn_has_flag install || return
546 wine_fn_append_rule \
547 ".PHONY: $ac_dir/install $ac_dir/uninstall
548 install install-lib:: $ac_dir/install
549 __uninstall__: $ac_dir/uninstall"
553 wine_fn_append_rule \
554 "$ac_dir/install:: $ac_dir
555 \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
556 \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
558 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
560 if test -z "$with_wine64" && wine_fn_has_flag installbin
562 wine_fn_append_rule \
563 "$ac_dir/install:: __tooldeps__
564 \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
566 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
569 wine_fn_append_rule \
570 "$ac_dir/install:: $ac_dir
571 \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
573 \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
576 if test -z "$with_wine64" && wine_fn_has_flag manpage
578 wine_fn_append_rule \
579 "$ac_dir/install:: $ac_dir
580 \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
582 \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
586 wine_fn_config_test ()
593 test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
594 test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
596 AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
598 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
600 wine_fn_clean_rules $ac_clean
602 wine_fn_append_rule \
603 "$ac_dir: programs/winetest/Makefile __builddeps__
604 programs/winetest: $ac_dir
605 check test: $ac_dir/test
608 @cd $ac_dir && \$(MAKE) test
612 if test -n "$CROSSTARGET"
614 wine_fn_append_rule \
615 "crosstest: $ac_dir/crosstest
616 .PHONY: $ac_dir/crosstest
617 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
618 @cd $ac_dir && \$(MAKE) crosstest"
622 wine_fn_config_tool ()
626 AS_VAR_IF([enable_tools],[no],[return])
629 wine_fn_install_rules
632 wine_fn_append_rule "__tooldeps__: $ac_dir"
633 wine_fn_append_rule "$ac_dir: libs/port"
635 tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
639 wine_fn_config_symlink ()
642 if test "x$[1]" = "x-d"
648 wine_fn_append_rule \
650 @./config.status \$[@]
653 for f in $ac_links; do wine_fn_ignore_file $f; done
654 test -n "$ac_linkdir" || return
655 wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
658 dnl **** Define helper function to append a file to a makefile file list ****
660 dnl Usage: WINE_APPEND_FILE(var,file)
662 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
664 dnl **** Define helper function to append a rule to a makefile command list ****
666 dnl Usage: WINE_APPEND_RULE(rule)
668 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
670 dnl **** Create symlinks from config.status ****
672 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
674 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
675 m4_ifval([$4],[if test "x$[$4]" != xno; then
676 ])m4_foreach([f],[$3],
677 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
678 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
679 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],[
683 dnl **** Create a makefile from config.status ****
685 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
687 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
688 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
689 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
691 wine_fn_config_makefile [$1] ac_enable [$3]dnl
692 AS_VAR_POPDEF([ac_enable])])
694 dnl **** Create a dll makefile from config.status ****
696 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
698 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
699 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
700 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
702 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
703 AS_VAR_POPDEF([ac_enable])])
705 dnl **** Create a program makefile from config.status ****
707 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
709 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
710 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
711 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
713 wine_fn_config_program [$1] ac_enable [$3]dnl
714 AS_VAR_POPDEF([ac_enable])])
716 dnl **** Create a test makefile from config.status ****
718 dnl Usage: WINE_CONFIG_TEST(dir,flags)
720 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
721 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
722 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
723 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
724 m4_popdef([ac_suffix])dnl
725 m4_popdef([ac_name])])
727 dnl **** Create a static lib makefile from config.status ****
729 dnl Usage: WINE_CONFIG_LIB(name,flags)
731 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
732 wine_fn_config_lib [$1] [$2]])
734 dnl **** Create a tool makefile from config.status ****
736 dnl Usage: WINE_CONFIG_TOOL(name,flags)
738 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
739 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
741 wine_fn_config_tool [$1] [$2]])
743 dnl **** Append a file to the .gitignore list ****
745 dnl Usage: WINE_IGNORE_FILE(file,enable)
747 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
748 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_ignore_file $1])
750 dnl **** Add a message to the list displayed at the end ****
752 dnl Usage: WINE_NOTICE(notice)
753 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
754 dnl Usage: WINE_WARNING(warning)
755 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
756 dnl Usage: WINE_PRINT_MESSAGES
758 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
759 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
761 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
762 x) WINE_NOTICE([$3]) ;;
765 This is an error since --with-$1 was requested.]) ;;
768 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
769 x) WINE_WARNING([$3]) ;;
772 This is an error since --with-$1 was requested.]) ;;
775 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
778 Use the --without-$1 option if you really want this.]) ;;
781 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
782 if test "x$wine_notices" != x; then
785 for msg in $wine_notices; do
787 AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
791 for msg in $wine_warnings; do
793 AS_VAR_IF([msg],[],,[echo >&2
794 AC_MSG_WARN([$msg])])
799 dnl compile-command: "autoreconf --warnings=all"