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,[value-if-not-found],[path])
176 AC_DEFUN([WINE_CHECK_MINGW_PROG],
179 ac_prefix_list="armv7-w64-mingw32-clang armv7-w64-mingw32-gcc" ;;
181 ac_prefix_list="m4_foreach([ac_wine_prefix],[w64-mingw32, pc-mingw32, mingw32msvc, mingw32],
182 m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-ac_wine_prefix-gcc ]))
183 m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-w64-mingw32-clang ])
186 ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32, w64-mingw32, mingw32msvc],
187 m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-ac_wine_prefix-gcc ]))
188 m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-w64-mingw32-clang ])" ;;
192 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$2],[$3])])
195 dnl **** Define helper functions for creating config.status files ****
197 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
199 AC_DEFUN([WINE_CONFIG_HELPERS],
200 [wine_rules_file=conf$$rules.make
201 rm -f $wine_rules_file
203 AC_SUBST(DISABLED_SUBDIRS,"")
204 AC_SUBST(CONFIGURE_TARGETS,"")
205 AC_SUBST(ALL_TEST_RESOURCES,"")
207 wine_fn_append_file ()
209 AS_VAR_APPEND($[1]," \\$as_nl $[2]")
212 wine_fn_append_rule ()
214 AS_ECHO("$[1]") >>$wine_rules_file
219 expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
224 wine_fn_append_file SUBDIRS $ac_dir
225 wine_fn_append_rule \
229 @cd $ac_dir && \$(MAKE)"
232 wine_fn_install_rules ()
234 wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
236 wine_fn_append_rule \
237 ".PHONY: $ac_dir/install $ac_dir/uninstall
238 $ac_dir/install:: $ac_dir
239 @cd $ac_dir && \$(MAKE) install
241 @cd $ac_dir && \$(MAKE) uninstall
242 install:: $ac_dir/install
243 __uninstall__: $ac_dir/uninstall"
245 if wine_fn_has_flag install-lib
247 wine_fn_append_rule \
248 ".PHONY: $ac_dir/install-lib
249 $ac_dir/install-lib:: $ac_dir
250 @cd $ac_dir && \$(MAKE) install-lib
251 install-lib:: $ac_dir/install-lib"
254 if wine_fn_has_flag install-dev
256 wine_fn_append_rule \
257 ".PHONY: $ac_dir/install-dev
258 $ac_dir/install-dev:: $ac_dir
259 @cd $ac_dir && \$(MAKE) install-dev
260 install-dev:: $ac_dir/install-dev"
264 wine_fn_clean_rules ()
268 if wine_fn_has_flag clean
270 wine_fn_append_rule \
271 "$ac_dir/clean: dummy
272 @cd $ac_dir && \$(MAKE) clean"
274 wine_fn_append_rule \
275 "$ac_dir/clean: dummy
276 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
278 wine_fn_append_rule \
279 "__clean__: $ac_dir/clean
280 .PHONY: $ac_dir/clean"
283 wine_fn_disabled_rules ()
287 wine_fn_append_file SUBDIRS $ac_dir
288 wine_fn_append_file DISABLED_SUBDIRS $ac_dir
289 wine_fn_append_rule \
290 "__clean__: $ac_dir/clean
291 .PHONY: $ac_dir/clean
293 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
296 wine_fn_config_makefile ()
303 dnl These are created as symlinks for wow64 builds
304 fonts|server) test -z "$with_wine64" || return ;;
306 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
308 wine_fn_install_rules
312 wine_fn_config_lib ()
319 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
323 wine_fn_append_rule \
324 ".PHONY: $ac_dir/install $ac_dir/uninstall
325 $ac_dir/install:: $ac_dir
326 \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
328 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
329 install install-dev:: $ac_dir/install
330 __uninstall__: $ac_dir/uninstall
331 __builddeps__: $ac_dir
335 wine_fn_config_dll ()
341 ac_implib=${4:-$ac_name}
342 ac_file=$ac_dir/lib$ac_implib
347 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
349 *.*16) ac_implibflags=" -m16" ;;
351 *) ac_dll=$ac_dll.dll ;;
355 wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
356 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
358 AS_VAR_IF([$ac_enable],[no],
359 dnl enable_win16 is special in that it disables import libs too
360 [if test "$ac_enable" != enable_win16
362 wine_fn_clean_rules $ac_clean
363 wine_fn_append_file SUBDIRS $ac_dir
364 wine_fn_append_file DISABLED_SUBDIRS $ac_dir
366 wine_fn_disabled_rules $ac_clean
371 wine_fn_clean_rules $ac_clean
372 wine_fn_append_rule \
373 "$ac_dir: __builddeps__
374 manpages htmlpages sgmlpages xmlpages::
375 @cd $ac_dir && \$(MAKE) \$[@]
376 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
377 install install-lib:: $ac_dir/install-lib
378 __uninstall__: $ac_dir/uninstall"
381 wine_fn_append_rule \
382 "$ac_dir/install-lib:: $ac_dir
383 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
384 \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
386 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
388 wine_fn_append_rule \
389 "$ac_dir/install-lib:: $ac_dir
390 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
392 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
395 if wine_fn_has_flag staticimplib
397 wine_fn_append_rule \
398 "__builddeps__: $ac_file.a
399 $ac_file.a $ac_file.cross.a: $ac_deps
401 @cd $ac_dir && \$(MAKE) lib$ac_implib.a
402 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
403 $ac_dir/install-dev:: $ac_file.a
404 \$(INSTALL_DATA) $ac_file.a \$(DESTDIR)\$(dlldir)/lib$ac_implib.a
406 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.a
407 install install-dev:: $ac_dir/install-dev
408 __uninstall__: $ac_dir/uninstall"
410 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
412 wine_fn_append_rule \
413 "__builddeps__: $ac_file.cross.a
414 $ac_file.cross.a: dummy
415 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
418 elif wine_fn_has_flag implib
420 wine_fn_append_rule \
421 "__builddeps__: $ac_file.$IMPLIBEXT
422 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
423 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
424 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
425 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
426 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
427 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
428 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
430 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
431 install install-dev:: $ac_dir/install-dev
432 __uninstall__: $ac_dir/uninstall"
433 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
435 wine_fn_append_rule \
436 "__builddeps__: $ac_file.cross.a
437 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
438 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
443 wine_fn_config_program ()
446 ac_dir=programs/$ac_name
453 *) ac_program=$ac_program.exe ;;
457 wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
458 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
460 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
463 wine_fn_clean_rules $ac_clean
464 wine_fn_append_rule "$ac_dir: __builddeps__"
466 wine_fn_has_flag install || return
467 wine_fn_append_rule \
468 ".PHONY: $ac_dir/install $ac_dir/uninstall
469 install install-lib:: $ac_dir/install
470 __uninstall__: $ac_dir/uninstall"
474 wine_fn_append_rule \
475 "$ac_dir/install:: $ac_dir
476 \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
477 \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
479 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
481 if test -z "$with_wine64" && wine_fn_has_flag installbin
483 wine_fn_append_rule \
484 "$ac_dir/install:: __tooldeps__
485 \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
487 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
490 wine_fn_append_rule \
491 "$ac_dir/install:: $ac_dir
492 \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
494 \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
497 if test -z "$with_wine64" && wine_fn_has_flag manpage
499 wine_fn_append_rule \
500 "$ac_dir/install:: $ac_dir
501 \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
503 \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
507 wine_fn_config_test ()
514 test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
515 test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
517 AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
519 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
521 wine_fn_clean_rules $ac_clean
523 wine_fn_append_rule \
524 "$ac_dir: __builddeps__
525 programs/winetest: $ac_dir
526 check test: $ac_dir/test
529 @cd $ac_dir && \$(MAKE) test
533 if test -n "$CROSSTARGET"
535 wine_fn_append_rule \
536 "crosstest: $ac_dir/crosstest
537 .PHONY: $ac_dir/crosstest
538 $ac_dir/crosstest: __builddeps__ dummy
539 @cd $ac_dir && \$(MAKE) crosstest"
543 wine_fn_config_tool ()
547 AS_VAR_IF([enable_tools],[no],[wine_fn_append_file DISABLED_SUBDIRS $ac_dir; return])
550 wine_fn_install_rules
553 wine_fn_append_rule "__tooldeps__: $ac_dir"
554 wine_fn_append_rule "$ac_dir: libs/port"
556 tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
560 wine_fn_config_symlink ()
563 if test "x$[1]" = "x-d"
569 wine_fn_append_rule \
571 @./config.status \$[@]"
572 for f in $ac_links; do wine_fn_append_file CONFIGURE_TARGETS $f; done
573 test -n "$ac_linkdir" || return
574 wine_fn_append_rule "$ac_linkdir/depend: $ac_links"
577 dnl **** Define helper function to append a file to a makefile file list ****
579 dnl Usage: WINE_APPEND_FILE(var,file)
581 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
583 dnl **** Define helper function to append a rule to a makefile command list ****
585 dnl Usage: WINE_APPEND_RULE(rule)
587 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
589 dnl **** Create symlinks from config.status ****
591 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
593 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
594 m4_ifval([$4],[if test "x$[$4]" != xno; then
595 ])m4_foreach([f],[$3],
596 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
597 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
598 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],[
602 dnl **** Create a makefile from config.status ****
604 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
606 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
607 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
608 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
610 wine_fn_config_makefile [$1] ac_enable [$3]dnl
611 AS_VAR_POPDEF([ac_enable])])
613 dnl **** Create a dll makefile from config.status ****
615 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
617 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
618 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
619 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
621 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
622 AS_VAR_POPDEF([ac_enable])])
624 dnl **** Create a program makefile from config.status ****
626 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
628 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
629 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
630 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
632 wine_fn_config_program [$1] ac_enable [$3]dnl
633 AS_VAR_POPDEF([ac_enable])])
635 dnl **** Create a test makefile from config.status ****
637 dnl Usage: WINE_CONFIG_TEST(dir,flags)
639 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
640 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
641 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
642 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
643 m4_popdef([ac_suffix])dnl
644 m4_popdef([ac_name])])
646 dnl **** Create a static lib makefile from config.status ****
648 dnl Usage: WINE_CONFIG_LIB(name,flags)
650 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
651 wine_fn_config_lib [$1] [$2]])
653 dnl **** Create a tool makefile from config.status ****
655 dnl Usage: WINE_CONFIG_TOOL(name,flags)
657 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
658 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
660 wine_fn_config_tool [$1] [$2]])
662 dnl **** Append a file to the .gitignore list ****
664 dnl Usage: WINE_IGNORE_FILE(file,enable)
666 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
667 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_append_file CONFIGURE_TARGETS $1])
669 dnl **** Add a message to the list displayed at the end ****
671 dnl Usage: WINE_NOTICE(notice)
672 dnl Usage: WINE_WARNING(warning)
673 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice, enable)
674 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning, enable)
675 dnl Usage: WINE_ERROR_WITH(with_flag, test, error, enable)
676 dnl Usage: WINE_PRINT_MESSAGES
678 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
679 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
681 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
682 x) WINE_NOTICE([$3]) ;;
685 This is an error since --with-$1 was requested.]) ;;
687 m4_ifval([$4],[$4=${$4:-no}])])])
689 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
690 x) WINE_WARNING([$3]) ;;
693 This is an error since --with-$1 was requested.]) ;;
695 m4_ifval([$4],[$4=${$4:-no}])])])
697 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
700 Use the --without-$1 option if you really want this.]) ;;
702 m4_ifval([$4],[$4=${$4:-no}])])])
704 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
705 if test "x$wine_notices" != x; then
708 for msg in $wine_notices; do
710 AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
714 for msg in $wine_warnings; do
716 AS_VAR_IF([msg],[],,[echo >&2
717 AC_MSG_WARN([$msg])])
722 dnl compile-command: "autoreconf --warnings=all"