Release 3.0-rc5.
[wine.git] / aclocal.m4
blob2c11de08c536bd58ecc647c04d116fa39d96d99b
1 dnl Macros used to build the Wine configure script
2 dnl
3 dnl Copyright 2002 Alexandre Julliard
4 dnl
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.
9 dnl
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.
14 dnl
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
18 dnl
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
23 dnl that program.
25 dnl WINE_CHECK_HOST_TOOL(VARIABLE, PROG-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH])
26 dnl
27 dnl Like AC_CHECK_TOOL but without the broken fallback to non-prefixed name
28 dnl
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()
39 dnl
40 dnl Same as AC_HEADER_MAJOR but fixed to handle the glibc 2.25 sys/types.h breakage
41 dnl
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>.])])
52 fi])
54 dnl **** Initialize the programs used by other checks ****
55 dnl
56 dnl Usage: WINE_PATH_SONAME_TOOLS
57 dnl Usage: WINE_PATH_PKG_CONFIG
58 dnl
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 ****
68 dnl
69 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
70 dnl
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])
76 AC_CACHE_VAL(ac_Lib,
77 [ac_check_soname_save_LIBS=$LIBS
78 LIBS="-l$1 $5 $LIBS"
79   AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
80   [case "$LIBEXT" in
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'`])]) ;;
86   esac])
87   LIBS=$ac_check_soname_save_LIBS])dnl
88 AS_VAR_IF([ac_Lib],[],
89       [AC_MSG_RESULT([not found])
90        $4],
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.])
94        $3])dnl
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 ****
99 dnl
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
145 CFLAGS="$CFLAGS $1"
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
158 CFLAGS="$CFLAGS $1"
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
171 #endif],
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"
184 LIBS="$LIBS $2"
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],
193 [case "$host_cpu" in
194   arm*)
195     ac_prefix_list="armv7-w64-mingw32-clang armv7-w64-mingw32-gcc" ;;
196   i[[3456789]]86*)
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 ])
200                      mingw32-gcc" ;;
201   x86_64)
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 ])" ;;
205   *)
206     ac_prefix_list="" ;;
207 esac
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
218 AC_SUBST(SUBDIRS,"")
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
233 wine_fn_has_flag ()
235     expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
238 wine_fn_all_rules ()
240     wine_fn_append_file SUBDIRS $ac_dir
241     wine_fn_append_rule \
242 "all: $ac_dir
243 .PHONY: $ac_dir
244 $ac_dir: dummy
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
256 $ac_dir/uninstall::
257         @cd $ac_dir && \$(MAKE) uninstall
258 install:: $ac_dir/install
259 __uninstall__: $ac_dir/uninstall"
261     if wine_fn_has_flag install-lib
262     then
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"
268     fi
270     if wine_fn_has_flag install-dev
271     then
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"
277     fi
280 wine_fn_clean_rules ()
282     ac_clean=$[@]
284     if wine_fn_has_flag clean
285     then
286         wine_fn_append_rule \
287 "$ac_dir/clean: dummy
288         @cd $ac_dir && \$(MAKE) clean"
289     else
290         wine_fn_append_rule \
291 "$ac_dir/clean: dummy
292         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
293     fi
294         wine_fn_append_rule \
295 "__clean__: $ac_dir/clean
296 .PHONY: $ac_dir/clean"
299 wine_fn_disabled_rules ()
301     ac_clean=$[@]
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
308 $ac_dir/clean: dummy
309         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
312 wine_fn_config_makefile ()
314     ac_dir=$[1]
315     ac_enable=$[2]
316     ac_flags=$[3]
318     case $ac_dir in
319     dnl These are created as symlinks for wow64 builds
320     fonts|server) test -z "$with_wine64" || return ;;
321     esac
322     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
323     wine_fn_all_rules
324     wine_fn_install_rules
325     wine_fn_clean_rules
328 wine_fn_config_lib ()
330     ac_name=$[1]
331     ac_flags=$[2]
332     ac_dir=dlls/$ac_name
333     ac_deps="include"
335     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
336     wine_fn_all_rules
337     wine_fn_clean_rules
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
343 $ac_dir/uninstall::
344         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
345 install install-dev:: $ac_dir/install
346 __uninstall__: $ac_dir/uninstall
347 __builddeps__: $ac_dir
348 $ac_dir: $ac_deps"
351 wine_fn_config_dll ()
353     ac_name=$[1]
354     ac_dir=dlls/$ac_name
355     ac_enable=$[2]
356     ac_flags=$[3]
357     ac_implib=${4:-$ac_name}
358     ac_file=$ac_dir/lib$ac_implib
359     ac_dll=$ac_name
360     ac_deps="include"
361     ac_implibflags=""
363     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
364     case $ac_name in
365       *.*16) ac_implibflags=" -m16" ;;
366       *.*) ;;
367       *)   ac_dll=$ac_dll.dll ;;
368     esac
370     ac_clean=
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
377                then
378                    wine_fn_clean_rules $ac_clean
379                    wine_fn_append_file SUBDIRS $ac_dir
380                    wine_fn_append_file DISABLED_SUBDIRS $ac_dir
381                else
382                    wine_fn_disabled_rules $ac_clean
383                    return
384                fi],
386               [wine_fn_all_rules
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"
395                 if test -n "$DLLEXT"
396                 then
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
401 $ac_dir/uninstall::
402         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
403                 else
404                     wine_fn_append_rule \
405 "$ac_dir/install-lib:: $ac_dir
406         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
407 $ac_dir/uninstall::
408         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
409                 fi])
411     if wine_fn_has_flag staticimplib
412     then
413         wine_fn_append_rule \
414 "__builddeps__: $ac_file.a
415 $ac_file.a $ac_file.cross.a: $ac_deps
416 $ac_file.a: dummy
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
421 $ac_dir/uninstall::
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"
427         then
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"
432         fi
434     elif wine_fn_has_flag implib
435     then
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
445 $ac_dir/uninstall::
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"
450         then
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"
455         fi
456     fi
459 wine_fn_config_program ()
461     ac_name=$[1]
462     ac_dir=programs/$ac_name
463     ac_enable=$[2]
464     ac_flags=$[3]
465     ac_program=$ac_name
467     case $ac_name in
468       *.*) ;;
469       *)   ac_program=$ac_program.exe ;;
470     esac
472     ac_clean=
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])
478     wine_fn_all_rules
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"
488     if test -n "$DLLEXT"
489     then
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
494 $ac_dir/uninstall::
495         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
497         if test -z "$with_wine64" && wine_fn_has_flag installbin
498         then
499             wine_fn_append_rule \
500 "$ac_dir/install:: __tooldeps__
501         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
502 $ac_dir/uninstall::
503         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
504         fi
505     else
506         wine_fn_append_rule \
507 "$ac_dir/install:: $ac_dir
508         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
509 $ac_dir/uninstall::
510         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
511     fi
513     if test -z "$with_wine64" && wine_fn_has_flag manpage
514     then
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)
518 $ac_dir/uninstall::
519         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
520     fi
523 wine_fn_config_test ()
525     ac_dir=$[1]
526     ac_name=$[2]
527     ac_flags=$[3]
529     ac_clean=
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
536     wine_fn_all_rules
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
543 .PHONY: $ac_dir/test
544 $ac_dir/test: dummy
545         @cd $ac_dir && \$(MAKE) test
546 testclean::
547         \$(RM) $ac_dir/*.ok"
549         if test -n "$CROSSTARGET"
550         then
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"
556         fi
559 wine_fn_config_tool ()
561     ac_dir=$[1]
562     ac_flags=$[2]
563     AS_VAR_IF([enable_tools],[no],[wine_fn_append_file DISABLED_SUBDIRS $ac_dir; return])
565     wine_fn_all_rules
566     wine_fn_install_rules
567     wine_fn_clean_rules
569     wine_fn_append_rule "__tooldeps__: $ac_dir"
570     wine_fn_append_rule "$ac_dir: libs/port"
571     case $ac_dir in
572       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
573     esac
576 wine_fn_config_symlink ()
578     ac_linkdir=
579     if test "x$[1]" = "x-d"
580     then
581         ac_linkdir=$[2]
582         shift; shift
583     fi
584     ac_links=$[@]
585     wine_fn_append_rule \
586 "$ac_links:
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],[
615 fi])[]dnl
616 ])])
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,[
625 ])dnl
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,[
636 ])dnl
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,[
647 ])dnl
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],[
675 ])dnl
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]) ;;
699   xno) ;;
700   *)   AC_MSG_ERROR([$3
701 This is an error since --with-$1 was requested.]) ;;
702 esac
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]) ;;
707   xno) ;;
708   *)   AC_MSG_ERROR([$3
709 This is an error since --with-$1 was requested.]) ;;
710 esac
711 m4_ifval([$4],[$4=${$4:-no}])])])
713 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
714   xno) ;;
715   *)   AC_MSG_ERROR([$3
716 Use the --without-$1 option if you really want this.]) ;;
717 esac
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
722     echo >&AS_MESSAGE_FD
723     IFS="|"
724     for msg in $wine_notices; do
725         IFS="$ac_save_IFS"
726         AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
727     done
729 IFS="|"
730 for msg in $wine_warnings; do
731     IFS="$ac_save_IFS"
732     AS_VAR_IF([msg],[],,[echo >&2
733         AC_MSG_WARN([$msg])])
734 done
735 IFS="$ac_save_IFS"])
737 dnl Local Variables:
738 dnl compile-command: "autoreconf --warnings=all"
739 dnl End: