winemac: Implement support for global hot keys.
[wine/wine-gecko.git] / aclocal.m4
blobee67b8398e595d120f1288fd563ac5d6d69b30d7
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 AC_SUBST(ALL_TEST_RESOURCES,"")
201 wine_fn_append_file ()
203     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
206 wine_fn_append_rule ()
208     AS_ECHO("$[1]") >>$wine_rules_file
211 wine_fn_has_flag ()
213     expr ",$[2]," : ".*,$[1],.*" >/dev/null
216 wine_fn_all_dir_rules ()
218     ac_dir=$[1]
219     ac_alldeps=$[2]
220     ac_makedep="\$(MAKEDEP)"
221     ac_input=Make.vars.in:$ac_dir/Makefile.in
222     if test $ac_dir != tools
223     then
224         dnl makedep is in tools so tools makefile cannot depend on it
225         ac_alldeps="$[2] $ac_makedep"
226     else
227         ac_alldeps="$[2] include/config.h"
228     fi
229     case $[2] in
230       *.in) ac_input=$ac_input:$[2] ;;
231       *) ac_makedep="$[2] $ac_makedep" ;;
232     esac
234     wine_fn_append_rule \
235 "__clean__: $ac_dir/__clean__
236 .PHONY: $ac_dir/__clean__
237 $ac_dir/__clean__: $ac_dir/Makefile
238         @cd $ac_dir && \$(MAKE) clean
239         \$(RM) $ac_dir/Makefile
240 $ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps
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     ac_dir=$[1]
251     ac_flags=$[2]
253     test "x$with_gettextpo" = xyes || return
255     if wine_fn_has_flag mc $ac_flags
256     then
257         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
258         wine_fn_append_rule \
259 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
260         @cd $ac_dir && \$(MAKE) msg.pot
261 $ac_dir/msg.pot: tools/wmc include"
262     fi
263     if wine_fn_has_flag po $ac_flags
264     then
265         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
266         wine_fn_append_rule \
267 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
268         @cd $ac_dir && \$(MAKE) rsrc.pot
269 $ac_dir/rsrc.pot: tools/wrc include"
270     fi
273 wine_fn_config_makefile ()
275     ac_dir=$[1]
276     ac_enable=$[2]
277     ac_flags=$[3]
278     ac_rules=$[4]
279     AS_VAR_IF([$ac_enable],[no],[return 0])
281     wine_fn_all_dir_rules $ac_dir ${ac_rules:-Make.rules}
282     wine_fn_append_rule \
283 "all: $ac_dir
284 .PHONY: $ac_dir
285 $ac_dir: $ac_dir/Makefile dummy
286         @cd $ac_dir && \$(MAKE)"
288     wine_fn_has_flag install-lib $ac_flags || wine_fn_has_flag install-dev $ac_flags || return
290     wine_fn_append_rule \
291 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
292 $ac_dir/__install__:: $ac_dir
293         @cd $ac_dir && \$(MAKE) install
294 $ac_dir/__uninstall__:: $ac_dir/Makefile
295         @cd $ac_dir && \$(MAKE) uninstall
296 install:: $ac_dir/__install__
297 __uninstall__: $ac_dir/__uninstall__"
299     if wine_fn_has_flag install-lib $ac_flags
300     then
301         wine_fn_append_rule \
302 ".PHONY: $ac_dir/__install-lib__
303 $ac_dir/__install-lib__:: $ac_dir
304         @cd $ac_dir && \$(MAKE) install-lib
305 install-lib:: $ac_dir/__install-lib__"
306     fi
308     if wine_fn_has_flag install-dev $ac_flags
309     then
310         wine_fn_append_rule \
311 ".PHONY: $ac_dir/__install-dev
312 $ac_dir/__install-dev__:: $ac_dir
313         @cd $ac_dir && \$(MAKE) install-dev
314 install-dev:: $ac_dir/__install-dev__"
315     fi
318 wine_fn_config_lib ()
320     ac_name=$[1]
321     ac_flags=$[2]
322     ac_dir=dlls/$ac_name
323     wine_fn_config_makefile $ac_dir enable_$ac_name "$ac_flags" dlls/Makeimplib.rules
325     if wine_fn_has_flag install-dev $ac_flags
326     then :
327     else
328         wine_fn_append_rule \
329 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
330 $ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir)
331         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
332 $ac_dir/__uninstall__::
333         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
334 install install-dev:: $ac_dir/__install__
335 __uninstall__: $ac_dir/__uninstall__"
336     fi
338     wine_fn_append_rule \
339 "__builddeps__: $ac_dir
340 $ac_dir: tools/widl tools/winebuild tools/winegcc include"
343 wine_fn_config_dll ()
345     ac_name=$[1]
346     ac_dir=dlls/$ac_name
347     ac_enable=$[2]
348     ac_flags=$[3]
349     ac_implib=${4:-$ac_name}
350     ac_file=$ac_dir/lib$ac_implib
351     ac_dll=$ac_name
352     ac_deps="tools/widl tools/winebuild tools/winegcc include"
353     ac_implibflags=""
355     case $ac_name in
356       *16) ac_implibflags=" -m16" ;;
357       *.*) ;;
358       *)   ac_dll=$ac_dll.dll ;;
359     esac
361     wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" dlls/Makedll.rules
363     AS_VAR_IF([$ac_enable],[no],
364               dnl enable_win16 is special in that it disables import libs too
365               [test "$ac_enable" != enable_win16 || return 0
366                wine_fn_has_flag implib $ac_flags && wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules],
368               [wine_fn_append_rule \
369 "$ac_dir: __builddeps__
370 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
371         @cd $ac_dir && \$(MAKE) \$[@]"
373         if wine_fn_has_flag install-lib $ac_flags
374         then :
375         else
376             wine_fn_append_rule \
377 ".PHONY: $ac_dir/__install-lib__ $ac_dir/__uninstall__
378 install install-lib:: $ac_dir/__install-lib__
379 __uninstall__: $ac_dir/__uninstall__"
380             if test -n "$DLLEXT"
381             then
382                 wine_fn_append_rule \
383 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
384         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
385         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
386 $ac_dir/__uninstall__::
387         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
388             else
389                 wine_fn_append_rule \
390 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
391         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
392 $ac_dir/__uninstall__::
393         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
394             fi
395         fi
397         wine_fn_pot_rules $ac_dir $ac_flags])
399     if wine_fn_has_flag staticimplib $ac_flags
400     then
401         wine_fn_append_rule \
402 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
403 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
404 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
405         @cd $ac_dir && \$(MAKE) lib$ac_implib.def
406 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
407         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
408 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
409 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
410         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
411 $ac_dir/__uninstall__::
412         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
413 install install-dev:: $ac_dir/__install-dev__
414 __uninstall__: $ac_dir/__uninstall__"
416         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
417         then
418             wine_fn_append_rule \
419 "$ac_dir/__install-dev__:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
420         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
421 $ac_dir/__uninstall__::
422         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
423         fi
425         if test "x$CROSSTEST_DISABLE" = x
426         then
427             wine_fn_append_rule \
428 "__builddeps__: $ac_file.cross.a
429 $ac_file.cross.a: $ac_dir/Makefile dummy
430         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
431         fi
433     elif wine_fn_has_flag implib $ac_flags
434     then
435         wine_fn_append_rule \
436 "__builddeps__: $ac_file.$IMPLIBEXT
437 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
438         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
439 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
440         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
441 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
442 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
443         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
444 $ac_dir/__uninstall__::
445         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
446 install install-dev:: $ac_dir/__install-dev__
447 __uninstall__: $ac_dir/__uninstall__"
448         if test "x$CROSSTEST_DISABLE" = x
449         then
450             wine_fn_append_rule \
451 "__builddeps__: $ac_file.cross.a
452 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
453         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
454         fi
456         if test "$ac_name" != "$ac_implib"
457         then
458             wine_fn_append_rule \
459 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
460 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
461         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
462 clean::
463         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
464             if test "x$CROSSTEST_DISABLE" = x
465             then
466                 wine_fn_append_rule \
467 "__builddeps__: dlls/lib$ac_implib.cross.a
468 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
469         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
470             fi
471         fi
472     fi
475 wine_fn_config_program ()
477     ac_name=$[1]
478     ac_dir=programs/$ac_name
479     ac_enable=$[2]
480     ac_flags=$[3]
481     ac_program=$ac_name
483     case $ac_name in
484       *.*) ;;
485       *)   ac_program=$ac_program.exe ;;
486     esac
488     wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" programs/Makeprog.rules
490     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule "$ac_dir: __builddeps__"
492     wine_fn_pot_rules $ac_dir $ac_flags
494     wine_fn_has_flag install $ac_flags || return
495     wine_fn_append_rule \
496 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
497 install install-lib:: $ac_dir/__install__
498 __uninstall__: $ac_dir/__uninstall__"
500     if test -n "$DLLEXT"
501     then
502         wine_fn_append_rule \
503 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
504         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
505         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
506 $ac_dir/__uninstall__::
507         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
509         if test "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
510         then
511             wine_fn_append_rule \
512 "$ac_dir/__install__:: tools \$(DESTDIR)\$(bindir)
513         \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
514 $ac_dir/__uninstall__::
515         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
516         fi
517     else
518         wine_fn_append_rule \
519 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
520         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(dlldir)/$ac_program
521 $ac_dir/__uninstall__::
522         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program"
523     fi
525     if test "x$enable_tools" != xno && wine_fn_has_flag manpage $ac_flags
526     then
527         wine_fn_append_rule \
528 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
529         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
530 $ac_dir/__uninstall__::
531         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
532     fi])
535 wine_fn_config_test ()
537     ac_dir=$[1]
538     ac_name=$[2]
539     ac_flags=$[3]
540     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
541     wine_fn_all_dir_rules $ac_dir Maketest.rules
543     AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule \
544 "all: $ac_dir
545 .PHONY: $ac_dir
546 $ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
547         @cd $ac_dir && \$(MAKE)
548 programs/winetest: $ac_dir
549 check test: $ac_dir/__test__
550 .PHONY: $ac_dir/__test__
551 $ac_dir/__test__: dummy
552         @cd $ac_dir && \$(MAKE) test
553 testclean::
554         \$(RM) $ac_dir/*.ok"
556         if test "x$CROSSTEST_DISABLE" = x
557         then
558             wine_fn_append_rule \
559 "crosstest: $ac_dir/__crosstest__
560 .PHONY: $ac_dir/__crosstest__
561 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
562         @cd $ac_dir && \$(MAKE) crosstest"
563         fi])
566 wine_fn_config_tool ()
568     ac_dir=$[1]
569     ac_flags=$[2]
570     AS_VAR_IF([enable_tools],[no],[return 0])
572     wine_fn_config_makefile $ac_dir enable_tools $ac_flags
574     wine_fn_append_rule "__tooldeps__: $ac_dir"
575     wine_fn_append_rule "$ac_dir: libs/port"
576     case $ac_dir in
577       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
578     esac
581 wine_fn_config_makerules ()
583     ac_rules=$[1]
584     ac_deps=$[2]
585     wine_fn_append_rule \
586 "$ac_rules: $ac_rules.in $ac_deps config.status
587         @./config.status $ac_rules
588 distclean::
589         \$(RM) $ac_rules"
592 wine_fn_config_symlink ()
594     ac_linkdir=
595     if test "x$[1]" = "x-d"
596     then
597         ac_linkdir=$[2]
598         shift; shift
599     fi
600     ac_links=$[@]
601     wine_fn_append_rule \
602 "$ac_links:
603         @./config.status \$[@]
604 distclean::
605         \$(RM) $ac_links"
606     test -n "$ac_linkdir" || return
607     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/__depend__: $ac_links"
610 if test "x$CROSSTEST_DISABLE" != x
611 then
612     wine_fn_append_rule \
613 "crosstest:
614         @echo \"crosstest is not supported (mingw not installed?)\" && false"
615 fi])
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 nonexistent directories from config.status ****
631 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
633 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
634 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
636 dnl **** Create symlinks from config.status ****
638 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
640 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
641 m4_ifval([$4],[if test "x$[$4]" != xno; then
642 ])m4_foreach([f],[$3],
643 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
644 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
645 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],[
646 fi])[]dnl
647 ])])
649 dnl **** Create a make rules file from config.status ****
651 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
653 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
654 wine_fn_config_makerules $1 $3
655 $2=$1
656 AC_SUBST_FILE([$2])dnl
657 AC_CONFIG_FILES([$1])])
659 dnl **** Create a makefile from config.status ****
661 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
663 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
664 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
665 wine_fn_config_makefile [$1] ac_enable [$3]dnl
666 AS_VAR_POPDEF([ac_enable])])
668 dnl **** Create a dll makefile from config.status ****
670 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
672 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
673 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
674 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
675 AS_VAR_POPDEF([ac_enable])])
677 dnl **** Create a program makefile from config.status ****
679 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
681 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
682 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
683 wine_fn_config_program [$1] ac_enable [$3]dnl
684 AS_VAR_POPDEF([ac_enable])])
686 dnl **** Create a test makefile from config.status ****
688 dnl Usage: WINE_CONFIG_TEST(dir,flags)
690 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
691 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
692 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
693 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
694 m4_popdef([ac_suffix])dnl
695 m4_popdef([ac_name])])
697 dnl **** Create a static lib makefile from config.status ****
699 dnl Usage: WINE_CONFIG_LIB(name,flags)
701 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
702 wine_fn_config_lib [$1] [$2]])
704 dnl **** Create a tool makefile from config.status ****
706 dnl Usage: WINE_CONFIG_TOOL(name,flags)
708 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
709 wine_fn_config_tool [$1] [$2]])
711 dnl **** Add a message to the list displayed at the end ****
713 dnl Usage: WINE_NOTICE(notice)
714 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
715 dnl Usage: WINE_WARNING(warning)
716 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
717 dnl Usage: WINE_PRINT_MESSAGES
719 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
720 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
722 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
723   x)   WINE_NOTICE([$3]) ;;
724   xno) ;;
725   *)   AC_MSG_ERROR([$3
726 This is an error since --with-$1 was requested.]) ;;
727 esac])])
729 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
730   x)   WINE_WARNING([$3]) ;;
731   xno) ;;
732   *)   AC_MSG_ERROR([$3
733 This is an error since --with-$1 was requested.]) ;;
734 esac])])
736 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
737   xno) ;;
738   *)   AC_MSG_ERROR([$3
739 Use the --without-$1 option if you really want this.]) ;;
740 esac])])
742 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
743 if test "x$wine_notices != "x; then
744     echo >&AS_MESSAGE_FD
745     IFS="|"
746     for msg in $wine_notices; do
747         IFS="$ac_save_IFS"
748         if test -n "$msg"; then
749             AC_MSG_NOTICE([$msg])
750         fi
751     done
753 IFS="|"
754 for msg in $wine_warnings; do
755     IFS="$ac_save_IFS"
756     if test -n "$msg"; then
757         echo >&2
758         AC_MSG_WARN([$msg])
759     fi
760 done
761 IFS="$ac_save_IFS"])
763 dnl Local Variables:
764 dnl compile-command: "autoreconf --warnings=all"
765 dnl End: