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 WINE_HEADER_MAJOR()
40 dnl Same as AC_HEADER_MAJOR but fixed to handle the glibc 2.25 sys/types.h breakage
42 AC_DEFUN([WINE_HEADER_MAJOR],
43 [AC_CHECK_HEADER(sys/mkdev.h,
44 [AC_DEFINE(MAJOR_IN_MKDEV, 1,
45 [Define to 1 if `major', `minor', and `makedev' are
46 declared in <mkdev.h>.])])
47 if test $ac_cv_header_sys_mkdev_h = no; then
48 AC_CHECK_HEADER(sys/sysmacros.h,
49 [AC_DEFINE(MAJOR_IN_SYSMACROS, 1,
50 [Define to 1 if `major', `minor', and `makedev'
51 are declared in <sysmacros.h>.])])
54 dnl **** Initialize the programs used by other checks ****
56 dnl Usage: WINE_PATH_SONAME_TOOLS
57 dnl Usage: WINE_PATH_PKG_CONFIG
59 AC_DEFUN([WINE_PATH_SONAME_TOOLS],
60 [AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)
61 AC_CHECK_TOOL(OTOOL,otool,otool)
62 AC_CHECK_TOOL(READELF,[readelf],true)])
64 AC_DEFUN([WINE_PATH_PKG_CONFIG],
65 [WINE_CHECK_HOST_TOOL(PKG_CONFIG,[pkg-config])])
67 dnl **** Extract the soname of a library ****
69 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
71 AC_DEFUN([WINE_CHECK_SONAME],
72 [AC_REQUIRE([WINE_PATH_SONAME_TOOLS])dnl
73 AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
74 m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
75 AC_MSG_CHECKING([for -l$1])
77 [ac_check_soname_save_LIBS=$LIBS
79 AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
81 dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
82 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'`]) ;;
83 *) 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'`])
84 AS_VAR_IF([ac_Lib],[],
85 [AS_VAR_SET(ac_Lib,[`$LDD conftest$ac_exeext | grep "ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\(ac_lib_pattern\.$LIBEXT[[^ ]]*\).*$/\1/"';2,$d'`])]) ;;
87 LIBS=$ac_check_soname_save_LIBS])dnl
88 AS_VAR_IF([ac_Lib],[],
89 [AC_MSG_RESULT([not found])
91 [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
92 AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
93 [Define to the soname of the lib$1 library.])
95 m4_popdef([ac_lib_pattern])dnl
96 AS_VAR_POPDEF([ac_Lib])])
98 dnl **** Get flags from pkg-config or alternate xxx-config program ****
100 dnl Usage: WINE_PACKAGE_FLAGS(var,pkg-name,[default-lib,[cflags-alternate,libs-alternate,[checks]]])
102 AC_DEFUN([WINE_PACKAGE_FLAGS],
103 [AC_REQUIRE([WINE_PATH_PKG_CONFIG])dnl
104 AS_VAR_PUSHDEF([ac_cflags],[[$1]_CFLAGS])dnl
105 AS_VAR_PUSHDEF([ac_libs],[[$1]_LIBS])dnl
106 AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl
107 AS_VAR_IF([ac_cflags],[],
108 [AS_VAR_SET_IF([PKG_CONFIG],
109 [ac_cflags=`$PKG_CONFIG --cflags [$2] 2>/dev/null`])])
110 m4_ifval([$4],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$4]}])
111 AC_ARG_VAR(ac_libs, [Linker flags for $2, overriding pkg-config])dnl
112 AS_VAR_IF([ac_libs],[],
113 [AS_VAR_SET_IF([PKG_CONFIG],
114 [ac_libs=`$PKG_CONFIG --libs [$2] 2>/dev/null`])])
115 m4_ifval([$5],[test "$cross_compiling" = yes || ac_libs=[$]{ac_libs:-[$5]}])
116 m4_ifval([$3],[ac_libs=[$]{ac_libs:-"$3"}])
117 AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 cflags: $ac_cflags"]) >&AS_MESSAGE_LOG_FD
118 AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 libs: $ac_libs"]) >&AS_MESSAGE_LOG_FD
119 ac_save_CPPFLAGS=$CPPFLAGS
120 CPPFLAGS="$CPPFLAGS $ac_cflags"
122 CPPFLAGS=$ac_save_CPPFLAGS
123 test -z "$ac_cflags" || ac_cflags=`echo " $ac_cflags" | sed 's/ -I\([[^/]]\)/ -I\$(top_builddir)\/\1/g'`
124 test -z "$ac_libs" || ac_libs=`echo " $ac_libs" | sed 's/ -L\([[^/]]\)/ -L\$(top_builddir)\/\1/g'`
125 AS_VAR_POPDEF([ac_libs])dnl
126 AS_VAR_POPDEF([ac_cflags])])dnl
128 dnl **** Link C code with an assembly file ****
130 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
132 AC_DEFUN([WINE_TRY_ASM_LINK],
133 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
135 dnl **** Check if we can link an empty program with special CFLAGS ****
137 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
139 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
141 AC_DEFUN([WINE_TRY_CFLAGS],
142 [AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
143 AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
144 [ac_wine_try_cflags_saved=$CFLAGS
146 AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]])],
147 [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
148 CFLAGS=$ac_wine_try_cflags_saved])
149 AS_VAR_IF([ac_var],[yes],[m4_default([$2], [EXTRACFLAGS="$EXTRACFLAGS $1"])], [$3])dnl
150 AS_VAR_POPDEF([ac_var])])
152 dnl **** Check if we can link an empty shared lib (no main) with special CFLAGS ****
154 dnl Usage: WINE_TRY_SHLIB_FLAGS(flags,[action-if-yes,[action-if-no]])
156 AC_DEFUN([WINE_TRY_SHLIB_FLAGS],
157 [ac_wine_try_cflags_saved=$CFLAGS
159 AC_LINK_IFELSE([AC_LANG_SOURCE([void myfunc() {}])],[$2],[$3])
160 CFLAGS=$ac_wine_try_cflags_saved])
162 dnl **** Check whether we need to define a symbol on the compiler command line ****
164 dnl Usage: WINE_CHECK_DEFINE(name),[action-if-yes,[action-if-no]])
166 AC_DEFUN([WINE_CHECK_DEFINE],
167 [AS_VAR_PUSHDEF([ac_var],[ac_cv_cpp_def_$1])dnl
168 AC_CACHE_CHECK([whether we need to define $1],ac_var,
169 AC_EGREP_CPP(yes,[#ifndef $1
172 [AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)]))
173 AS_VAR_IF([ac_var],[yes],
174 [CFLAGS="$CFLAGS -D$1"
175 LINTFLAGS="$LINTFLAGS -D$1"])dnl
176 AS_VAR_POPDEF([ac_var])])
178 dnl **** Check for functions with some extra libraries ****
180 dnl Usage: WINE_CHECK_LIB_FUNCS(funcs,libs,[action-if-found,[action-if-not-found]])
182 AC_DEFUN([WINE_CHECK_LIB_FUNCS],
183 [ac_wine_check_funcs_save_LIBS="$LIBS"
185 AC_CHECK_FUNCS([$1],[$3],[$4])
186 LIBS="$ac_wine_check_funcs_save_LIBS"])
188 dnl **** Check for a mingw program, trying the various mingw prefixes ****
190 dnl Usage: WINE_CHECK_MINGW_PROG(variable,[value-if-not-found],[path])
192 AC_DEFUN([WINE_CHECK_MINGW_PROG],
195 ac_prefix_list="armv7-w64-mingw32-clang armv7-w64-mingw32-gcc" ;;
197 ac_prefix_list="m4_foreach([ac_wine_prefix],[w64-mingw32, pc-mingw32, mingw32msvc, mingw32],
198 m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-ac_wine_prefix-gcc ]))
199 m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-w64-mingw32-clang ])
202 ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32, w64-mingw32, mingw32msvc],
203 m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-ac_wine_prefix-gcc ]))
204 m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-w64-mingw32-clang ])" ;;
208 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$2],[$3])])
211 dnl **** Define helper functions for creating config.status files ****
213 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
215 AC_DEFUN([WINE_CONFIG_HELPERS],
216 [wine_rules_file=conf$$rules.make
217 rm -f $wine_rules_file
219 AC_SUBST(DISABLED_SUBDIRS,"")
220 AC_SUBST(CONFIGURE_TARGETS,"")
221 AC_SUBST(ALL_TEST_RESOURCES,"")
223 wine_fn_append_file ()
225 AS_VAR_APPEND($[1]," \\$as_nl $[2]")
228 wine_fn_append_rule ()
230 AS_ECHO("$[1]") >>$wine_rules_file
235 expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
240 wine_fn_append_file SUBDIRS $ac_dir
241 wine_fn_append_rule \
245 @cd $ac_dir && \$(MAKE)"
248 wine_fn_install_rules ()
250 wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
252 wine_fn_append_rule \
253 ".PHONY: $ac_dir/install $ac_dir/uninstall
254 $ac_dir/install:: $ac_dir
255 @cd $ac_dir && \$(MAKE) install
257 @cd $ac_dir && \$(MAKE) uninstall
258 install:: $ac_dir/install
259 __uninstall__: $ac_dir/uninstall"
261 if wine_fn_has_flag install-lib
263 wine_fn_append_rule \
264 ".PHONY: $ac_dir/install-lib
265 $ac_dir/install-lib:: $ac_dir
266 @cd $ac_dir && \$(MAKE) install-lib
267 install-lib:: $ac_dir/install-lib"
270 if wine_fn_has_flag install-dev
272 wine_fn_append_rule \
273 ".PHONY: $ac_dir/install-dev
274 $ac_dir/install-dev:: $ac_dir
275 @cd $ac_dir && \$(MAKE) install-dev
276 install-dev:: $ac_dir/install-dev"
280 wine_fn_clean_rules ()
284 if wine_fn_has_flag clean
286 wine_fn_append_rule \
287 "$ac_dir/clean: dummy
288 @cd $ac_dir && \$(MAKE) clean"
290 wine_fn_append_rule \
291 "$ac_dir/clean: dummy
292 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
294 wine_fn_append_rule \
295 "__clean__: $ac_dir/clean
296 .PHONY: $ac_dir/clean"
299 wine_fn_disabled_rules ()
303 wine_fn_append_file SUBDIRS $ac_dir
304 wine_fn_append_file DISABLED_SUBDIRS $ac_dir
305 wine_fn_append_rule \
306 "__clean__: $ac_dir/clean
307 .PHONY: $ac_dir/clean
309 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
312 wine_fn_config_makefile ()
319 dnl These are created as symlinks for wow64 builds
320 fonts|server) test -z "$with_wine64" || return ;;
322 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
324 wine_fn_install_rules
328 wine_fn_config_lib ()
335 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
339 wine_fn_append_rule \
340 ".PHONY: $ac_dir/install $ac_dir/uninstall
341 $ac_dir/install:: $ac_dir
342 \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
344 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
345 install install-dev:: $ac_dir/install
346 __uninstall__: $ac_dir/uninstall
347 __builddeps__: $ac_dir
351 wine_fn_config_dll ()
357 ac_implib=${4:-$ac_name}
358 ac_file=$ac_dir/lib$ac_implib
363 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
365 *.*16) ac_implibflags=" -m16" ;;
367 *) ac_dll=$ac_dll.dll ;;
371 wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
372 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
374 AS_VAR_IF([$ac_enable],[no],
375 dnl enable_win16 is special in that it disables import libs too
376 [if test "$ac_enable" != enable_win16
378 wine_fn_clean_rules $ac_clean
379 wine_fn_append_file SUBDIRS $ac_dir
380 wine_fn_append_file DISABLED_SUBDIRS $ac_dir
382 wine_fn_disabled_rules $ac_clean
387 wine_fn_clean_rules $ac_clean
388 wine_fn_append_rule \
389 "$ac_dir: __builddeps__
390 manpages htmlpages sgmlpages xmlpages::
391 @cd $ac_dir && \$(MAKE) \$[@]
392 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
393 install install-lib:: $ac_dir/install-lib
394 __uninstall__: $ac_dir/uninstall"
397 wine_fn_append_rule \
398 "$ac_dir/install-lib:: $ac_dir
399 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
400 \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
402 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
404 wine_fn_append_rule \
405 "$ac_dir/install-lib:: $ac_dir
406 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
408 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
411 if wine_fn_has_flag staticimplib
413 wine_fn_append_rule \
414 "__builddeps__: $ac_file.a
415 $ac_file.a $ac_file.cross.a: $ac_deps
417 @cd $ac_dir && \$(MAKE) lib$ac_implib.a
418 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
419 $ac_dir/install-dev:: $ac_file.a
420 \$(INSTALL_DATA) $ac_file.a \$(DESTDIR)\$(dlldir)/lib$ac_implib.a
422 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.a
423 install install-dev:: $ac_dir/install-dev
424 __uninstall__: $ac_dir/uninstall"
426 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
428 wine_fn_append_rule \
429 "__builddeps__: $ac_file.cross.a
430 $ac_file.cross.a: dummy
431 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
434 elif wine_fn_has_flag implib
436 wine_fn_append_rule \
437 "__builddeps__: $ac_file.$IMPLIBEXT
438 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
439 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
440 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
441 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
442 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
443 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
444 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
446 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
447 install install-dev:: $ac_dir/install-dev
448 __uninstall__: $ac_dir/uninstall"
449 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
451 wine_fn_append_rule \
452 "__builddeps__: $ac_file.cross.a
453 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
454 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
459 wine_fn_config_program ()
462 ac_dir=programs/$ac_name
469 *) ac_program=$ac_program.exe ;;
473 wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
474 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
476 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
479 wine_fn_clean_rules $ac_clean
480 wine_fn_append_rule "$ac_dir: __builddeps__"
482 wine_fn_has_flag install || return
483 wine_fn_append_rule \
484 ".PHONY: $ac_dir/install $ac_dir/uninstall
485 install install-lib:: $ac_dir/install
486 __uninstall__: $ac_dir/uninstall"
490 wine_fn_append_rule \
491 "$ac_dir/install:: $ac_dir
492 \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
493 \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
495 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
497 if test -z "$with_wine64" && wine_fn_has_flag installbin
499 wine_fn_append_rule \
500 "$ac_dir/install:: __tooldeps__
501 \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
503 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
506 wine_fn_append_rule \
507 "$ac_dir/install:: $ac_dir
508 \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
510 \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
513 if test -z "$with_wine64" && wine_fn_has_flag manpage
515 wine_fn_append_rule \
516 "$ac_dir/install:: $ac_dir
517 \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
519 \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
523 wine_fn_config_test ()
530 test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
531 test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
533 AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
535 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
537 wine_fn_clean_rules $ac_clean
539 wine_fn_append_rule \
540 "$ac_dir: __builddeps__
541 programs/winetest: $ac_dir
542 check test: $ac_dir/test
545 @cd $ac_dir && \$(MAKE) test
549 if test -n "$CROSSTARGET"
551 wine_fn_append_rule \
552 "crosstest: $ac_dir/crosstest
553 .PHONY: $ac_dir/crosstest
554 $ac_dir/crosstest: __builddeps__ dummy
555 @cd $ac_dir && \$(MAKE) crosstest"
559 wine_fn_config_tool ()
563 AS_VAR_IF([enable_tools],[no],[wine_fn_append_file DISABLED_SUBDIRS $ac_dir; return])
566 wine_fn_install_rules
569 wine_fn_append_rule "__tooldeps__: $ac_dir"
570 wine_fn_append_rule "$ac_dir: libs/port"
572 tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
576 wine_fn_config_symlink ()
579 if test "x$[1]" = "x-d"
585 wine_fn_append_rule \
587 @./config.status \$[@]"
588 for f in $ac_links; do wine_fn_append_file CONFIGURE_TARGETS $f; done
589 test -n "$ac_linkdir" || return
590 wine_fn_append_rule "$ac_linkdir/depend: $ac_links"
593 dnl **** Define helper function to append a file to a makefile file list ****
595 dnl Usage: WINE_APPEND_FILE(var,file)
597 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
599 dnl **** Define helper function to append a rule to a makefile command list ****
601 dnl Usage: WINE_APPEND_RULE(rule)
603 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
605 dnl **** Create symlinks from config.status ****
607 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
609 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
610 m4_ifval([$4],[if test "x$[$4]" != xno; then
611 ])m4_foreach([f],[$3],
612 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
613 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
614 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],[
618 dnl **** Create a makefile from config.status ****
620 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
622 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
623 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
624 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
626 wine_fn_config_makefile [$1] ac_enable [$3]dnl
627 AS_VAR_POPDEF([ac_enable])])
629 dnl **** Create a dll makefile from config.status ****
631 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
633 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
634 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
635 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
637 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
638 AS_VAR_POPDEF([ac_enable])])
640 dnl **** Create a program makefile from config.status ****
642 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
644 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
645 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
646 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
648 wine_fn_config_program [$1] ac_enable [$3]dnl
649 AS_VAR_POPDEF([ac_enable])])
651 dnl **** Create a test makefile from config.status ****
653 dnl Usage: WINE_CONFIG_TEST(dir,flags)
655 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
656 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
657 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
658 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
659 m4_popdef([ac_suffix])dnl
660 m4_popdef([ac_name])])
662 dnl **** Create a static lib makefile from config.status ****
664 dnl Usage: WINE_CONFIG_LIB(name,flags)
666 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
667 wine_fn_config_lib [$1] [$2]])
669 dnl **** Create a tool makefile from config.status ****
671 dnl Usage: WINE_CONFIG_TOOL(name,flags)
673 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
674 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
676 wine_fn_config_tool [$1] [$2]])
678 dnl **** Append a file to the .gitignore list ****
680 dnl Usage: WINE_IGNORE_FILE(file,enable)
682 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
683 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_append_file CONFIGURE_TARGETS $1])
685 dnl **** Add a message to the list displayed at the end ****
687 dnl Usage: WINE_NOTICE(notice)
688 dnl Usage: WINE_WARNING(warning)
689 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice, enable)
690 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning, enable)
691 dnl Usage: WINE_ERROR_WITH(with_flag, test, error, enable)
692 dnl Usage: WINE_PRINT_MESSAGES
694 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
695 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
697 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
698 x) WINE_NOTICE([$3]) ;;
701 This is an error since --with-$1 was requested.]) ;;
703 m4_ifval([$4],[$4=${$4:-no}])])])
705 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
706 x) WINE_WARNING([$3]) ;;
709 This is an error since --with-$1 was requested.]) ;;
711 m4_ifval([$4],[$4=${$4:-no}])])])
713 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
716 Use the --without-$1 option if you really want this.]) ;;
718 m4_ifval([$4],[$4=${$4:-no}])])])
720 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
721 if test "x$wine_notices" != x; then
724 for msg in $wine_notices; do
726 AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
730 for msg in $wine_warnings; do
732 AS_VAR_IF([msg],[],,[echo >&2
733 AC_MSG_WARN([$msg])])
738 dnl compile-command: "autoreconf --warnings=all"