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
202 GITIGNORE="# Automatically generated by configure; DO NOT EDIT!!"
204 AC_SUBST(ALL_TEST_RESOURCES,"")
206 wine_fn_append_file ()
208 AS_VAR_APPEND($[1]," \\$as_nl $[2]")
211 wine_fn_ignore_file ()
214 */*) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
215 \**) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
216 *) AS_VAR_APPEND([GITIGNORE],"$as_nl/$[1]") ;;
220 wine_fn_append_rule ()
222 AS_ECHO("$[1]") >>$wine_rules_file
227 expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
230 wine_fn_depend_rules ()
232 wine_fn_append_file SUBDIRS $ac_dir
238 wine_fn_append_rule \
242 @cd $ac_dir && \$(MAKE)"
245 wine_fn_install_rules ()
247 wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
249 wine_fn_append_rule \
250 ".PHONY: $ac_dir/install $ac_dir/uninstall
251 $ac_dir/install:: $ac_dir
252 @cd $ac_dir && \$(MAKE) install
254 @cd $ac_dir && \$(MAKE) uninstall
255 install:: $ac_dir/install
256 __uninstall__: $ac_dir/uninstall"
258 if wine_fn_has_flag install-lib
260 wine_fn_append_rule \
261 ".PHONY: $ac_dir/install-lib
262 $ac_dir/install-lib:: $ac_dir
263 @cd $ac_dir && \$(MAKE) install-lib
264 install-lib:: $ac_dir/install-lib"
267 if wine_fn_has_flag install-dev
269 wine_fn_append_rule \
270 ".PHONY: $ac_dir/install-dev
271 $ac_dir/install-dev:: $ac_dir
272 @cd $ac_dir && \$(MAKE) install-dev
273 install-dev:: $ac_dir/install-dev"
277 wine_fn_clean_rules ()
281 if wine_fn_has_flag clean
283 wine_fn_append_rule \
284 "$ac_dir/clean: dummy
285 @cd $ac_dir && \$(MAKE) clean"
287 wine_fn_append_rule \
288 "$ac_dir/clean: dummy
289 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
291 wine_fn_append_rule \
292 "__clean__: $ac_dir/clean
293 .PHONY: $ac_dir/clean"
296 wine_fn_disabled_rules ()
300 wine_fn_append_rule \
301 "__clean__: $ac_dir/clean
302 .PHONY: $ac_dir/clean
304 \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
307 wine_fn_config_makefile ()
313 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
315 wine_fn_install_rules
319 wine_fn_config_lib ()
326 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
330 wine_fn_append_rule \
331 ".PHONY: $ac_dir/install $ac_dir/uninstall
332 $ac_dir/install:: $ac_dir
333 \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
335 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
336 install install-dev:: $ac_dir/install
337 __uninstall__: $ac_dir/uninstall
338 __builddeps__: $ac_dir
342 wine_fn_config_dll ()
348 ac_implib=${4:-$ac_name}
349 ac_file=$ac_dir/lib$ac_implib
354 AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
356 *16) ac_implibflags=" -m16" ;;
358 *) ac_dll=$ac_dll.dll ;;
362 wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
363 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
365 AS_VAR_IF([$ac_enable],[no],
366 dnl enable_win16 is special in that it disables import libs too
367 [if test "$ac_enable" != enable_win16
370 wine_fn_clean_rules $ac_clean
372 wine_fn_disabled_rules $ac_clean
377 wine_fn_clean_rules $ac_clean
378 wine_fn_append_rule \
379 "$ac_dir: __builddeps__
380 manpages htmlpages sgmlpages xmlpages::
381 @cd $ac_dir && \$(MAKE) \$[@]
382 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
383 install install-lib:: $ac_dir/install-lib
384 __uninstall__: $ac_dir/uninstall"
387 wine_fn_append_rule \
388 "$ac_dir/install-lib:: $ac_dir
389 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
390 \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
392 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
394 wine_fn_append_rule \
395 "$ac_dir/install-lib:: $ac_dir
396 \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
398 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
401 if wine_fn_has_flag staticimplib
403 wine_fn_append_rule \
404 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
405 $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
406 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
407 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
408 $ac_file.$STATIC_IMPLIBEXT: dummy
409 @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
410 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
411 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
412 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
414 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
415 install install-dev:: $ac_dir/install-dev
416 __uninstall__: $ac_dir/uninstall"
418 if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
420 wine_fn_append_rule \
421 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT __builddeps__
422 \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
424 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
427 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
429 wine_fn_append_rule \
430 "__builddeps__: $ac_file.cross.a
431 $ac_file.cross.a: dummy
432 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
435 elif wine_fn_has_flag implib
437 wine_fn_append_rule \
438 "__builddeps__: $ac_file.$IMPLIBEXT
439 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
440 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
441 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
442 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
443 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
444 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
445 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
447 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
448 install install-dev:: $ac_dir/install-dev
449 __uninstall__: $ac_dir/uninstall"
450 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
452 wine_fn_append_rule \
453 "__builddeps__: $ac_file.cross.a
454 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
455 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
458 if test "$ac_name" != "$ac_implib"
460 wine_fn_append_rule \
461 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
462 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
463 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
465 \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
466 wine_fn_ignore_file "dlls/lib$ac_implib.$IMPLIBEXT"
467 if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
469 wine_fn_append_rule \
470 "__builddeps__: dlls/lib$ac_implib.cross.a
471 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
472 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
474 \$(RM) dlls/lib$ac_implib.cross.a"
475 wine_fn_ignore_file "dlls/lib$ac_implib.cross.a"
481 wine_fn_config_program ()
484 ac_dir=programs/$ac_name
491 *) ac_program=$ac_program.exe ;;
495 wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
496 test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
498 AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
501 wine_fn_clean_rules $ac_clean
502 wine_fn_append_rule "$ac_dir: __builddeps__"
504 wine_fn_has_flag install || return
505 wine_fn_append_rule \
506 ".PHONY: $ac_dir/install $ac_dir/uninstall
507 install install-lib:: $ac_dir/install
508 __uninstall__: $ac_dir/uninstall"
512 wine_fn_append_rule \
513 "$ac_dir/install:: $ac_dir
514 \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
515 \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
517 \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
519 if test -z "$with_wine64" && wine_fn_has_flag installbin
521 wine_fn_append_rule \
522 "$ac_dir/install:: __tooldeps__
523 \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
525 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
528 wine_fn_append_rule \
529 "$ac_dir/install:: $ac_dir
530 \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
532 \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
535 if test -z "$with_wine64" && wine_fn_has_flag manpage
537 wine_fn_append_rule \
538 "$ac_dir/install:: $ac_dir
539 \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
541 \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
545 wine_fn_config_test ()
552 test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
553 test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
555 AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
557 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
559 wine_fn_clean_rules $ac_clean
561 wine_fn_append_rule \
562 "$ac_dir: __builddeps__
563 programs/winetest: $ac_dir
564 check test: $ac_dir/test
567 @cd $ac_dir && \$(MAKE) test
571 if test -n "$CROSSTARGET"
573 wine_fn_append_rule \
574 "crosstest: $ac_dir/crosstest
575 .PHONY: $ac_dir/crosstest
576 $ac_dir/crosstest: __builddeps__ dummy
577 @cd $ac_dir && \$(MAKE) crosstest"
581 wine_fn_config_tool ()
585 AS_VAR_IF([enable_tools],[no],[return])
588 wine_fn_install_rules
591 wine_fn_append_rule "__tooldeps__: $ac_dir"
592 wine_fn_append_rule "$ac_dir: libs/port"
594 tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
598 wine_fn_config_symlink ()
601 if test "x$[1]" = "x-d"
607 wine_fn_append_rule \
609 @./config.status \$[@]
612 for f in $ac_links; do wine_fn_ignore_file $f; done
613 test -n "$ac_linkdir" || return
614 wine_fn_append_rule "$ac_linkdir/depend: $ac_links"
617 dnl **** Define helper function to append a file to a makefile file list ****
619 dnl Usage: WINE_APPEND_FILE(var,file)
621 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
623 dnl **** Define helper function to append a rule to a makefile command list ****
625 dnl Usage: WINE_APPEND_RULE(rule)
627 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
629 dnl **** Create symlinks from config.status ****
631 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
633 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
634 m4_ifval([$4],[if test "x$[$4]" != xno; then
635 ])m4_foreach([f],[$3],
636 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
637 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
638 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],[
642 dnl **** Create a makefile from config.status ****
644 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
646 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
647 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
648 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
650 wine_fn_config_makefile [$1] ac_enable [$3]dnl
651 AS_VAR_POPDEF([ac_enable])])
653 dnl **** Create a dll makefile from config.status ****
655 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
657 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
658 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
659 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
661 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
662 AS_VAR_POPDEF([ac_enable])])
664 dnl **** Create a program makefile from config.status ****
666 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
668 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
669 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
670 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
672 wine_fn_config_program [$1] ac_enable [$3]dnl
673 AS_VAR_POPDEF([ac_enable])])
675 dnl **** Create a test makefile from config.status ****
677 dnl Usage: WINE_CONFIG_TEST(dir,flags)
679 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
680 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
681 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
682 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
683 m4_popdef([ac_suffix])dnl
684 m4_popdef([ac_name])])
686 dnl **** Create a static lib makefile from config.status ****
688 dnl Usage: WINE_CONFIG_LIB(name,flags)
690 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
691 wine_fn_config_lib [$1] [$2]])
693 dnl **** Create a tool makefile from config.status ****
695 dnl Usage: WINE_CONFIG_TOOL(name,flags)
697 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
698 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
700 wine_fn_config_tool [$1] [$2]])
702 dnl **** Append a file to the .gitignore list ****
704 dnl Usage: WINE_IGNORE_FILE(file,enable)
706 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
707 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_ignore_file $1])
709 dnl **** Add a message to the list displayed at the end ****
711 dnl Usage: WINE_NOTICE(notice)
712 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
713 dnl Usage: WINE_WARNING(warning)
714 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
715 dnl Usage: WINE_PRINT_MESSAGES
717 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
718 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
720 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
721 x) WINE_NOTICE([$3]) ;;
724 This is an error since --with-$1 was requested.]) ;;
727 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
728 x) WINE_WARNING([$3]) ;;
731 This is an error since --with-$1 was requested.]) ;;
734 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
737 Use the --without-$1 option if you really want this.]) ;;
740 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
741 if test "x$wine_notices" != x; then
744 for msg in $wine_notices; do
746 AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
750 for msg in $wine_warnings; do
752 AS_VAR_IF([msg],[],,[echo >&2
753 AC_MSG_WARN([$msg])])
758 dnl compile-command: "autoreconf --warnings=all"