msvcp71: Share the ios.c implementation with msvcp90.
[wine.git] / aclocal.m4
bloba40d9512617bead0a67029f23d577bd78a93518d
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 [if test -n "$ac_tool_prefix"; then
31   AC_CHECK_PROG([$1],[${ac_tool_prefix}$2],[${ac_tool_prefix}$2],,[$4])
33 if test -n "$ac_cv_prog_$1"; then
34   $1="$ac_cv_prog_$1"
35 elif test "$cross_compiling" != yes; then
36   unset ac_cv_prog_$1
37   AC_CHECK_PROG([$1],[$2],[$2],[$3],[$4])
38 fi])
40 dnl **** Initialize the programs used by other checks ****
41 dnl
42 dnl Usage: WINE_PATH_SONAME_TOOLS
43 dnl Usage: WINE_PATH_PKG_CONFIG
44 dnl
45 AC_DEFUN([WINE_PATH_SONAME_TOOLS],
46 [AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)
47 AC_CHECK_TOOL(READELF,[readelf],true)])
49 AC_DEFUN([WINE_PATH_PKG_CONFIG],
50 [WINE_CHECK_HOST_TOOL(PKG_CONFIG,[pkg-config])])
52 dnl **** Extract the soname of a library ****
53 dnl
54 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
55 dnl
56 AC_DEFUN([WINE_CHECK_SONAME],
57 [AC_REQUIRE([WINE_PATH_SONAME_TOOLS])dnl
58 AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
59 m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
60 AC_MSG_CHECKING([for -l$1])
61 AC_CACHE_VAL(ac_Lib,
62 [ac_check_soname_save_LIBS=$LIBS
63 LIBS="-l$1 $5 $LIBS"
64   AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
65   [case "$LIBEXT" in
66     dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
67     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'`]) ;;
68     *) 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'`])
69        AS_IF([test "x]AS_VAR_GET(ac_Lib)[" = x],
70              [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   esac])
72   LIBS=$ac_check_soname_save_LIBS])dnl
73 AS_IF([test "x]AS_VAR_GET(ac_Lib)[" = "x"],
74       [AC_MSG_RESULT([not found])
75        $4],
76       [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
77        AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
78                           [Define to the soname of the lib$1 library.])
79        $3])dnl
80 m4_popdef([ac_lib_pattern])dnl
81 AS_VAR_POPDEF([ac_Lib])])
83 dnl **** Get flags from pkg-config or alternate xxx-config program ****
84 dnl
85 dnl Usage: WINE_PACKAGE_FLAGS(var,pkg-name,[default-lib,[cflags-alternate,libs-alternate,[checks]]])
86 dnl
87 AC_DEFUN([WINE_PACKAGE_FLAGS],
88 [AC_REQUIRE([WINE_PATH_PKG_CONFIG])dnl
89 AS_VAR_PUSHDEF([ac_cflags],[[$1]_CFLAGS])dnl
90 AS_VAR_PUSHDEF([ac_libs],[[$1]_LIBS])dnl
91 AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl
92 AS_IF([test -n "$ac_cflags"],[],
93       [test -n "$PKG_CONFIG"],
94       [ac_cflags=`$PKG_CONFIG --cflags [$2] 2>/dev/null`])
95 m4_ifval([$4],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$4]}])
96 AC_ARG_VAR(ac_libs, [Linker flags for $2, overriding pkg-config])dnl
97 AS_IF([test -n "$ac_libs"],[],
98       [test -n "$PKG_CONFIG"],
99       [ac_libs=`$PKG_CONFIG --libs [$2] 2>/dev/null`])
100 m4_ifval([$5],[test "$cross_compiling" = yes || ac_libs=[$]{ac_libs:-[$5]}])
101 m4_ifval([$3],[ac_libs=[$]{ac_libs:-"$3"}])
102 ac_save_CPPFLAGS=$CPPFLAGS
103 CPPFLAGS="$CPPFLAGS $ac_cflags"
105 CPPFLAGS=$ac_save_CPPFLAGS
106 test -z "$ac_cflags" || ac_cflags=`echo " $ac_cflags" | sed 's/ -I\([[^/]]\)/ -I\$(top_builddir)\/\1/g'`
107 test -z "$ac_libs" || ac_libs=`echo " $ac_libs" | sed 's/ -L\([[^/]]\)/ -L\$(top_builddir)\/\1/g'`
108 AS_VAR_POPDEF([ac_libs])dnl
109 AS_VAR_POPDEF([ac_cflags])])dnl
111 dnl **** Link C code with an assembly file ****
113 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
115 AC_DEFUN([WINE_TRY_ASM_LINK],
116 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
118 dnl **** Check if we can link an empty program with special CFLAGS ****
120 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
122 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
124 AC_DEFUN([WINE_TRY_CFLAGS],
125 [AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
126 AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
127 [ac_wine_try_cflags_saved=$CFLAGS
128 CFLAGS="$CFLAGS $1"
129 AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]])],
130                [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
131 CFLAGS=$ac_wine_try_cflags_saved])
132 AS_IF([test AS_VAR_GET(ac_var) = yes],
133       [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
142 CFLAGS="$CFLAGS $1"
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
155 #endif],
156     [AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)]))
157 AS_IF([test AS_VAR_GET(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"
168 LIBS="$LIBS $2"
169 AC_CHECK_FUNCS([$1],[$3],[$4])
170 LIBS="$ac_wine_check_funcs_save_LIBS"])
172 dnl **** Check for a mingw program, trying the various mingw prefixes ****
174 dnl Usage: WINE_CHECK_MINGW_PROG(variable,prog,[value-if-not-found],[path])
176 AC_DEFUN([WINE_CHECK_MINGW_PROG],
177 [case "$host_cpu" in
178   i[[3456789]]86*)
179     ac_prefix_list="m4_foreach([ac_wine_prefix],[w64-mingw32, pc-mingw32, mingw32msvc, mingw32],
180                         m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-ac_wine_prefix-$2 ]))
181                         mingw32-$2" ;;
182   x86_64)
183     ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32, w64-mingw32, mingw32msvc],
184                         m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-ac_wine_prefix-$2 ]))" ;;
185   *)
186     ac_prefix_list="" ;;
187 esac
188 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$3],[$4])])
191 dnl **** Define helper functions for creating config.status files ****
193 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
195 AC_DEFUN([WINE_CONFIG_HELPERS],
196 [wine_rules_file=conf$$rules.make
197 rm -f $wine_rules_file
198 ALL_POT_FILES=""
199 GITIGNORE="# Automatically generated by configure; DO NOT EDIT!!"
200 AC_SUBST(ALL_TEST_RESOURCES,"")
202 wine_fn_append_file ()
204     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
207 wine_fn_ignore_file ()
209     case "$[1]" in
210       */*) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
211       \**) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
212       *)   AS_VAR_APPEND([GITIGNORE],"$as_nl/$[1]") ;;
213     esac
216 wine_fn_append_rule ()
218     AS_ECHO("$[1]") >>$wine_rules_file
221 wine_fn_has_flag ()
223     expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
226 wine_fn_depend_rules ()
228     ac_alldeps=$[1]
229     ac_makedep="\$(MAKEDEP)"
230     ac_input=Make.vars.in:$ac_dir/Makefile.in
231     case $[1] in
232       *.in)
233           ac_input=$ac_input:$[1]
234           test "$srcdir" = . || ac_alldeps="$srcdir/$ac_alldeps" ;;
235       *)
236           ac_makedep="$[1] $ac_makedep" ;;
237     esac
239     wine_fn_append_rule \
240 "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in $srcdir/Make.vars.in config.status $ac_alldeps \$(MAKEDEP)
241         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
242 depend: $ac_dir/depend
243 .PHONY: $ac_dir/depend
244 $ac_dir/depend: $ac_makedep dummy
245         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
248 wine_fn_pot_rules ()
250     test "x$with_gettextpo" = xyes || return
252     if wine_fn_has_flag mc
253     then
254         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
255         wine_fn_append_rule \
256 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
257         @cd $ac_dir && \$(MAKE) msg.pot
258 $ac_dir/msg.pot: tools/wmc include"
259     fi
260     if wine_fn_has_flag po
261     then
262         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
263         wine_fn_append_rule \
264 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
265         @cd $ac_dir && \$(MAKE) rsrc.pot
266 $ac_dir/rsrc.pot: tools/wrc include"
267     fi
270 wine_fn_all_rules ()
272     ac_rules=$[1]
274     wine_fn_depend_rules ${ac_rules:-Make.rules}
275     wine_fn_append_rule \
276 "all: $ac_dir
277 .PHONY: $ac_dir
278 $ac_dir: $ac_dir/Makefile dummy
279         @cd $ac_dir && \$(MAKE)"
282 wine_fn_install_rules ()
284     wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
286     wine_fn_append_rule \
287 ".PHONY: $ac_dir/install $ac_dir/uninstall
288 $ac_dir/install:: $ac_dir
289         @cd $ac_dir && \$(MAKE) install
290 $ac_dir/uninstall:: $ac_dir/Makefile
291         @cd $ac_dir && \$(MAKE) uninstall
292 install:: $ac_dir/install
293 __uninstall__: $ac_dir/uninstall"
295     if wine_fn_has_flag install-lib
296     then
297         wine_fn_append_rule \
298 ".PHONY: $ac_dir/install-lib
299 $ac_dir/install-lib:: $ac_dir
300         @cd $ac_dir && \$(MAKE) install-lib
301 install-lib:: $ac_dir/install-lib"
302     fi
304     if wine_fn_has_flag install-dev
305     then
306         wine_fn_append_rule \
307 ".PHONY: $ac_dir/install-dev
308 $ac_dir/install-dev:: $ac_dir
309         @cd $ac_dir && \$(MAKE) install-dev
310 install-dev:: $ac_dir/install-dev"
311     fi
314 wine_fn_clean_rules ()
316     ac_clean=$[@]
317     ac_extraclean="$ac_dir/Makefile"
318     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
320     if wine_fn_has_flag clean
321     then
322         wine_fn_append_rule \
323 "__clean__: $ac_dir/clean
324 .PHONY: $ac_dir/clean
325 $ac_dir/clean: $ac_dir/Makefile
326         @cd $ac_dir && \$(MAKE) clean
327         \$(RM) $ac_extraclean"
328     else
329         wine_fn_append_rule \
330 "__clean__: $ac_dir/clean
331 .PHONY: $ac_dir/clean
332 $ac_dir/clean: dummy
333         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
334     fi
337 wine_fn_disabled_rules ()
339     ac_clean=$[@]
340     ac_extraclean="$ac_dir/Makefile"
341     test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore"
343     wine_fn_append_rule \
344 "__clean__: $ac_dir/clean
345 .PHONY: $ac_dir/clean
346 $ac_dir/clean: dummy
347         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_extraclean"
350 wine_fn_config_makefile ()
352     ac_dir=$[1]
353     ac_enable=$[2]
354     ac_flags=$[3]
356     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
357     wine_fn_all_rules
358     wine_fn_install_rules
359     wine_fn_clean_rules
362 wine_fn_config_lib ()
364     ac_name=$[1]
365     ac_flags=$[2]
366     ac_dir=dlls/$ac_name
367     ac_deps="include"
369     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
370     wine_fn_all_rules Make.rules.in
371     wine_fn_clean_rules
373     wine_fn_append_rule \
374 ".PHONY: $ac_dir/install $ac_dir/uninstall
375 $ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir)
376         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
377 $ac_dir/uninstall::
378         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
379 install install-dev:: $ac_dir/install
380 __uninstall__: $ac_dir/uninstall
381 __builddeps__: $ac_dir
382 $ac_dir: $ac_deps"
385 wine_fn_config_dll ()
387     ac_name=$[1]
388     ac_dir=dlls/$ac_name
389     ac_enable=$[2]
390     ac_flags=$[3]
391     ac_implib=${4:-$ac_name}
392     ac_file=$ac_dir/lib$ac_implib
393     ac_dll=$ac_name
394     ac_deps="include"
395     ac_implibflags=""
397     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
398     case $ac_name in
399       *16) ac_implibflags=" -m16" ;;
400       *.*) ;;
401       *)   ac_dll=$ac_dll.dll ;;
402     esac
404     ac_clean=
405     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
406     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
407     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
408     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
410     AS_VAR_IF([$ac_enable],[no],
411               dnl enable_win16 is special in that it disables import libs too
412               [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
413                then
414                    wine_fn_depend_rules Make.rules.in
415                    wine_fn_clean_rules $ac_clean
416                else
417                    wine_fn_disabled_rules $ac_clean
418                    return
419                fi],
421               [wine_fn_all_rules Make.rules.in
422                wine_fn_clean_rules $ac_clean
423                wine_fn_append_rule \
424 "$ac_dir: __builddeps__
425 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
426         @cd $ac_dir && \$(MAKE) \$[@]
427 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
428 install install-lib:: $ac_dir/install-lib
429 __uninstall__: $ac_dir/uninstall"
430                 if test -n "$DLLEXT"
431                 then
432                     wine_fn_append_rule \
433 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
434         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
435         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
436 $ac_dir/uninstall::
437         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
438                 else
439                     wine_fn_append_rule \
440 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir)
441         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
442 $ac_dir/uninstall::
443         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
444                 fi
446                 wine_fn_pot_rules])
448     if wine_fn_has_flag staticimplib
449     then
450         wine_fn_append_rule \
451 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
452 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
453 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
454         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
455 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
456         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
457 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
458 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
459         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
460 $ac_dir/uninstall::
461         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
462 install install-dev:: $ac_dir/install-dev
463 __uninstall__: $ac_dir/uninstall"
465         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
466         then
467             wine_fn_append_rule \
468 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
469         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
470 $ac_dir/uninstall::
471         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
472         fi
474         if test -n "$CROSSTARGET"
475         then
476             wine_fn_append_rule \
477 "__builddeps__: $ac_file.cross.a
478 $ac_file.cross.a: $ac_dir/Makefile dummy
479         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
480         fi
482     elif wine_fn_has_flag implib
483     then
484         wine_fn_append_rule \
485 "__builddeps__: $ac_file.$IMPLIBEXT
486 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
487         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
488 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
489         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
490 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
491 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
492         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
493 $ac_dir/uninstall::
494         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
495 install install-dev:: $ac_dir/install-dev
496 __uninstall__: $ac_dir/uninstall"
497         if test -n "$CROSSTARGET"
498         then
499             wine_fn_append_rule \
500 "__builddeps__: $ac_file.cross.a
501 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
502         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
503         fi
505         if test "$ac_name" != "$ac_implib"
506         then
507             wine_fn_append_rule \
508 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
509 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
510         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
511 clean::
512         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
513             wine_fn_ignore_file "dlls/lib$ac_implib.$IMPLIBEXT"
514             if test -n "$CROSSTARGET"
515             then
516                 wine_fn_append_rule \
517 "__builddeps__: dlls/lib$ac_implib.cross.a
518 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
519         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
520 clean::
521         \$(RM) dlls/lib$ac_implib.cross.a"
522                 wine_fn_ignore_file "dlls/lib$ac_implib.cross.a"
523             fi
524         fi
525     fi
528 wine_fn_config_program ()
530     ac_name=$[1]
531     ac_dir=programs/$ac_name
532     ac_enable=$[2]
533     ac_flags=$[3]
534     ac_program=$ac_name
536     case $ac_name in
537       *.*) ;;
538       *)   ac_program=$ac_program.exe ;;
539     esac
541     ac_clean=
542     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
543     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
544     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
545     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
547     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
549     wine_fn_all_rules Make.rules.in
550     wine_fn_clean_rules $ac_clean
551     wine_fn_append_rule "$ac_dir: __builddeps__"
552     wine_fn_pot_rules
554     wine_fn_has_flag install || return
555     wine_fn_append_rule \
556 ".PHONY: $ac_dir/install $ac_dir/uninstall
557 install install-lib:: $ac_dir/install
558 __uninstall__: $ac_dir/uninstall"
560     if test -n "$DLLEXT"
561     then
562         wine_fn_append_rule \
563 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
564         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
565         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
566 $ac_dir/uninstall::
567         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
569         if test -z "$with_wine64" && wine_fn_has_flag installbin
570         then
571             wine_fn_append_rule \
572 "$ac_dir/install:: __tooldeps__ \$(DESTDIR)\$(bindir)
573         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
574 $ac_dir/uninstall::
575         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
576         fi
577     else
578         wine_fn_append_rule \
579 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(bindir)
580         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
581 $ac_dir/uninstall::
582         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
583     fi
585     if test -z "$with_wine64" && wine_fn_has_flag manpage
586     then
587         wine_fn_append_rule \
588 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
589         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
590 $ac_dir/uninstall::
591         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
592     fi
595 wine_fn_config_test ()
597     ac_dir=$[1]
598     ac_name=$[2]
599     ac_flags=$[3]
601     ac_clean=
602     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
603     test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
604     ac_clean="$ac_clean $ac_dir/testlist.c"
606     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
608     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
609     wine_fn_all_rules Make.rules.in
610     wine_fn_clean_rules $ac_clean
612     wine_fn_append_rule \
613 "$ac_dir: programs/winetest/Makefile __builddeps__
614 programs/winetest: $ac_dir
615 check test: $ac_dir/test
616 .PHONY: $ac_dir/test
617 $ac_dir/test: dummy
618         @cd $ac_dir && \$(MAKE) test
619 testclean::
620         \$(RM) $ac_dir/*.ok"
622         if test -n "$CROSSTARGET"
623         then
624             wine_fn_append_rule \
625 "crosstest: $ac_dir/crosstest
626 .PHONY: $ac_dir/crosstest
627 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
628         @cd $ac_dir && \$(MAKE) crosstest"
629         fi
632 wine_fn_config_tool ()
634     ac_dir=$[1]
635     ac_flags=$[2]
636     AS_VAR_IF([enable_tools],[no],[return])
638     wine_fn_all_rules
639     wine_fn_install_rules
640     wine_fn_clean_rules
642     wine_fn_append_rule "__tooldeps__: $ac_dir"
643     wine_fn_append_rule "$ac_dir: libs/port"
644     case $ac_dir in
645       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
646     esac
647     case $ac_dir in
648       tools/*) wine_fn_ignore_file $ac_dir/`expr $ac_dir : tools/"\\(.*\\)"`$ac_exeext ;;
649     esac
652 wine_fn_config_makerules ()
654     ac_rules=$[1]
655     ac_deps=$[2]
656     wine_fn_append_rule \
657 "$ac_rules: $srcdir/$ac_rules.in $ac_deps config.status
658         @./config.status $ac_rules
659 distclean::
660         \$(RM) $ac_rules"
661     wine_fn_ignore_file $ac_rules
664 wine_fn_config_symlink ()
666     ac_linkdir=
667     if test "x$[1]" = "x-d"
668     then
669         ac_linkdir=$[2]
670         shift; shift
671     fi
672     ac_links=$[@]
673     wine_fn_append_rule \
674 "$ac_links:
675         @./config.status \$[@]
676 distclean::
677         \$(RM) $ac_links"
678     for f in $ac_links; do wine_fn_ignore_file $f; done
679     test -n "$ac_linkdir" || return
680     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
683 dnl **** Define helper function to append a file to a makefile file list ****
685 dnl Usage: WINE_APPEND_FILE(var,file)
687 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
689 dnl **** Define helper function to append a rule to a makefile command list ****
691 dnl Usage: WINE_APPEND_RULE(rule)
693 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
695 dnl **** Create symlinks from config.status ****
697 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
699 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
700 m4_ifval([$4],[if test "x$[$4]" != xno; then
701 ])m4_foreach([f],[$3],
702 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
703 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
704 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],[
705 fi])[]dnl
706 ])])
708 dnl **** Create a make rules file from config.status ****
710 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
712 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
713 wine_fn_config_makerules $1 $3
714 $2=$1
715 AC_SUBST_FILE([$2])dnl
716 AC_CONFIG_FILES([$1])])
718 dnl **** Create a makefile from config.status ****
720 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
722 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
723 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
724 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
725 ])dnl
726 wine_fn_config_makefile [$1] ac_enable [$3]dnl
727 AS_VAR_POPDEF([ac_enable])])
729 dnl **** Create a dll makefile from config.status ****
731 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
733 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
734 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
735 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
736 ])dnl
737 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
738 AS_VAR_POPDEF([ac_enable])])
740 dnl **** Create a program makefile from config.status ****
742 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
744 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
745 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
746 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
747 ])dnl
748 wine_fn_config_program [$1] ac_enable [$3]dnl
749 AS_VAR_POPDEF([ac_enable])])
751 dnl **** Create a test makefile from config.status ****
753 dnl Usage: WINE_CONFIG_TEST(dir,flags)
755 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
756 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
757 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
758 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
759 m4_popdef([ac_suffix])dnl
760 m4_popdef([ac_name])])
762 dnl **** Create a static lib makefile from config.status ****
764 dnl Usage: WINE_CONFIG_LIB(name,flags)
766 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
767 wine_fn_config_lib [$1] [$2]])
769 dnl **** Create a tool makefile from config.status ****
771 dnl Usage: WINE_CONFIG_TOOL(name,flags)
773 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
774 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
775 ])dnl
776 wine_fn_config_tool [$1] [$2]])
778 dnl **** Append a file to the .gitignore list ****
780 dnl Usage: WINE_IGNORE_FILE(file,enable)
782 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
783 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_ignore_file $1])
785 dnl **** Add a message to the list displayed at the end ****
787 dnl Usage: WINE_NOTICE(notice)
788 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
789 dnl Usage: WINE_WARNING(warning)
790 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
791 dnl Usage: WINE_PRINT_MESSAGES
793 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
794 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
796 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
797   x)   WINE_NOTICE([$3]) ;;
798   xno) ;;
799   *)   AC_MSG_ERROR([$3
800 This is an error since --with-$1 was requested.]) ;;
801 esac])])
803 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
804   x)   WINE_WARNING([$3]) ;;
805   xno) ;;
806   *)   AC_MSG_ERROR([$3
807 This is an error since --with-$1 was requested.]) ;;
808 esac])])
810 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
811   xno) ;;
812   *)   AC_MSG_ERROR([$3
813 Use the --without-$1 option if you really want this.]) ;;
814 esac])])
816 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
817 if test "x$wine_notices != "x; then
818     echo >&AS_MESSAGE_FD
819     IFS="|"
820     for msg in $wine_notices; do
821         IFS="$ac_save_IFS"
822         if test -n "$msg"; then
823             AC_MSG_NOTICE([$msg])
824         fi
825     done
827 IFS="|"
828 for msg in $wine_warnings; do
829     IFS="$ac_save_IFS"
830     if test -n "$msg"; then
831         echo >&2
832         AC_MSG_WARN([$msg])
833     fi
834 done
835 IFS="$ac_save_IFS"])
837 dnl Local Variables:
838 dnl compile-command: "autoreconf --warnings=all"
839 dnl End: