ntdll: Use a RunOnce function to initialize directory lookup options.
[wine/multimedia.git] / aclocal.m4
blob08ba797909f68502fa10d483d47819fd52735e82
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 [ALL_MAKEFILE_DEPENDS="
197 # Rules automatically generated by configure
199 .INIT: Makefile
200 .MAKEFILEDEPS:
201 all: Makefile
202 Makefile: Makefile.in Make.vars.in Make.rules config.status
203         @./config.status Make.tmp Makefile"
205 ALL_POT_FILES=""
206 AC_SUBST(ALL_TEST_RESOURCES,"")
208 wine_fn_append_file ()
210     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
213 wine_fn_append_rule ()
215     AS_VAR_APPEND($[1],"$as_nl$[2]")
218 wine_fn_has_flag ()
220     expr ",$[2]," : ".*,$[1],.*" >/dev/null
223 wine_fn_all_dir_rules ()
225     ac_dir=$[1]
226     ac_alldeps=$[2]
227     ac_makedep="\$(MAKEDEP)"
228     ac_input=Make.vars.in:$ac_dir/Makefile.in
229     if test $ac_dir != tools
230     then
231         dnl makedep is in tools so tools makefile cannot depend on it
232         ac_alldeps="$[2] $ac_makedep"
233     else
234         ac_alldeps="$[2] include/config.h"
235     fi
236     case $[2] in
237       *.in) ac_input=$ac_input:$[2] ;;
238       *) ac_makedep="$[2] $ac_makedep" ;;
239     esac
241     wine_fn_append_file ALL_DIRS $ac_dir
242     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
243 "__clean__: $ac_dir/__clean__
244 .PHONY: $ac_dir/__clean__
245 $ac_dir/__clean__: $ac_dir/Makefile
246         @cd $ac_dir && \$(MAKE) clean
247         \$(RM) $ac_dir/Makefile
248 $ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps
249         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
250 depend: $ac_dir/__depend__
251 .PHONY: $ac_dir/__depend__
252 $ac_dir/__depend__: $ac_makedep dummy
253         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
256 wine_fn_pot_rules ()
258     ac_dir=$[1]
259     ac_flags=$[2]
261     test "x$with_gettextpo" = xyes || return
263     if wine_fn_has_flag mc $ac_flags
264     then
265         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
266         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
267 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
268         @cd $ac_dir && \$(MAKE) msg.pot
269 $ac_dir/msg.pot: tools/wmc include"
270     fi
271     if wine_fn_has_flag po $ac_flags
272     then
273         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
274         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
275 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
276         @cd $ac_dir && \$(MAKE) rsrc.pot
277 $ac_dir/rsrc.pot: tools/wrc include"
278     fi
281 wine_fn_config_makefile ()
283     ac_dir=$[1]
284     ac_enable=$[2]
285     ac_flags=$[3]
286     ac_rules=$[4]
287     AS_VAR_IF([$ac_enable],[no],[return 0])
289     wine_fn_all_dir_rules $ac_dir ${ac_rules:-Make.rules}
290     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
291 "all: $ac_dir
292 .PHONY: $ac_dir
293 $ac_dir: $ac_dir/Makefile dummy
294         @cd $ac_dir && \$(MAKE)"
296     wine_fn_has_flag install-lib $ac_flags || wine_fn_has_flag install-dev $ac_flags || return
298     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
299 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
300 $ac_dir/__install__:: $ac_dir
301         @cd $ac_dir && \$(MAKE) install
302 $ac_dir/__uninstall__:: $ac_dir/Makefile
303         @cd $ac_dir && \$(MAKE) uninstall
304 install:: $ac_dir/__install__
305 __uninstall__: $ac_dir/__uninstall__"
307     if wine_fn_has_flag install-lib $ac_flags
308     then
309         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
310 ".PHONY: $ac_dir/__install-lib__
311 $ac_dir/__install-lib__:: $ac_dir
312         @cd $ac_dir && \$(MAKE) install-lib
313 install-lib:: $ac_dir/__install-lib__"
314     fi
316     if wine_fn_has_flag install-dev $ac_flags
317     then
318         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
319 ".PHONY: $ac_dir/__install-dev
320 $ac_dir/__install-dev__:: $ac_dir
321         @cd $ac_dir && \$(MAKE) install-dev
322 install-dev:: $ac_dir/__install-dev__"
323     fi
326 wine_fn_config_lib ()
328     ac_name=$[1]
329     ac_flags=$[2]
330     ac_dir=dlls/$ac_name
331     wine_fn_config_makefile $ac_dir enable_$ac_name "$ac_flags" dlls/Makeimplib.rules
333     if wine_fn_has_flag install-dev $ac_flags
334     then :
335     else
336         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
337 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
338 $ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir)
339         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
340 $ac_dir/__uninstall__::
341         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
342 install install-dev:: $ac_dir/__install__
343 __uninstall__: $ac_dir/__uninstall__"
344     fi
346     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__builddeps__: $ac_dir"
347     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: tools/widl tools/winebuild tools/winegcc include"
350 wine_fn_config_dll ()
352     ac_name=$[1]
353     ac_dir=dlls/$ac_name
354     ac_enable=$[2]
355     ac_flags=$[3]
356     ac_implib=${4:-$ac_name}
357     ac_file=$ac_dir/lib$ac_implib
358     ac_dll=$ac_name
359     ac_deps="tools/widl tools/winebuild tools/winegcc include"
360     ac_implibflags=""
362     case $ac_name in
363       *16) ac_implibflags=" -m16" ;;
364       *.*) ;;
365       *)   ac_dll=$ac_dll.dll ;;
366     esac
368     wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" dlls/Makedll.rules
370     AS_VAR_IF([$ac_enable],[no],
371               dnl enable_win16 is special in that it disables import libs too
372               [test "$ac_enable" != enable_win16 || return 0
373                wine_fn_has_flag implib $ac_flags && wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules],
375               [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
376 "$ac_dir: __builddeps__
377 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
378         @cd $ac_dir && \$(MAKE) \$[@]"
380         if wine_fn_has_flag install-lib $ac_flags
381         then :
382         else
383             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
384 ".PHONY: $ac_dir/__install-lib__ $ac_dir/__uninstall__
385 install install-lib:: $ac_dir/__install-lib__
386 __uninstall__: $ac_dir/__uninstall__"
387             if test -n "$DLLEXT"
388             then
389                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
390 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
391         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
392         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
393 $ac_dir/__uninstall__::
394         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
395             else
396                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
397 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
398         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
399 $ac_dir/__uninstall__::
400         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
401             fi
402         fi
404         wine_fn_pot_rules $ac_dir $ac_flags])
406     if wine_fn_has_flag staticimplib $ac_flags
407     then
408         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
409 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
410 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
411 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
412         @cd $ac_dir && \$(MAKE) lib$ac_implib.def
413 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
414         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
415 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
416 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
417         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
418 $ac_dir/__uninstall__::
419         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
420 install install-dev:: $ac_dir/__install-dev__
421 __uninstall__: $ac_dir/__uninstall__"
423         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
424         then
425             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
426 "$ac_dir/__install-dev__:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
427         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
428 $ac_dir/__uninstall__::
429         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
430         fi
432         if test "x$CROSSTEST_DISABLE" = x
433         then
434             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
435 "__builddeps__: $ac_file.cross.a
436 $ac_file.cross.a: $ac_dir/Makefile dummy
437         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
438         fi
440     elif wine_fn_has_flag implib $ac_flags
441     then
442         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
443 "__builddeps__: $ac_file.$IMPLIBEXT
444 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
445         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
446 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
447         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
448 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
449 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
450         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
451 $ac_dir/__uninstall__::
452         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
453 install install-dev:: $ac_dir/__install-dev__
454 __uninstall__: $ac_dir/__uninstall__"
455         if test "x$CROSSTEST_DISABLE" = x
456         then
457             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
458 "__builddeps__: $ac_file.cross.a
459 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
460         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
461         fi
463         if test "$ac_name" != "$ac_implib"
464         then
465             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
466 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
467 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
468         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
469 clean::
470         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
471             if test "x$CROSSTEST_DISABLE" = x
472             then
473                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
474 "__builddeps__: dlls/lib$ac_implib.cross.a
475 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
476         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
477             fi
478         fi
479     fi
482 wine_fn_config_program ()
484     ac_name=$[1]
485     ac_dir=programs/$ac_name
486     ac_enable=$[2]
487     ac_flags=$[3]
488     ac_program=$ac_name
490     case $ac_name in
491       *.*) ;;
492       *)   ac_program=$ac_program.exe ;;
493     esac
495     wine_fn_config_makefile $ac_dir $ac_enable "$ac_flags" programs/Makeprog.rules
497     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
498 "$ac_dir: __builddeps__"
500     wine_fn_pot_rules $ac_dir $ac_flags
502     wine_fn_has_flag install $ac_flags || return
503     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
504 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
505 install install-lib:: $ac_dir/__install__
506 __uninstall__: $ac_dir/__uninstall__"
508     if test -n "$DLLEXT"
509     then
510         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
511 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
512         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
513         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
514 $ac_dir/__uninstall__::
515         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
517         if test "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
518         then
519             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
520 "$ac_dir/__install__:: tools \$(DESTDIR)\$(bindir)
521         \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
522 $ac_dir/__uninstall__::
523         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
524         fi
525     else
526         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
527 "$ac_dir/__install-lib__:: $ac_dir \$(DESTDIR)\$(dlldir)
528         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(dlldir)/$ac_program
529 $ac_dir/__uninstall__::
530         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program"
531     fi
533     if test "x$enable_tools" != xno && wine_fn_has_flag manpage $ac_flags
534     then
535         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
536 "$ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
537         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
538 $ac_dir/__uninstall__::
539         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
540     fi])
543 wine_fn_config_test ()
545     ac_dir=$[1]
546     ac_name=$[2]
547     ac_flags=$[3]
548     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
549     wine_fn_all_dir_rules $ac_dir Maketest.rules
551     AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
552 "all: $ac_dir
553 .PHONY: $ac_dir
554 $ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
555         @cd $ac_dir && \$(MAKE)
556 programs/winetest: $ac_dir
557 check test: $ac_dir/__test__
558 .PHONY: $ac_dir/__test__
559 $ac_dir/__test__: dummy
560         @cd $ac_dir && \$(MAKE) test
561 testclean::
562         \$(RM) $ac_dir/*.ok"
564         if test "x$CROSSTEST_DISABLE" = x
565         then
566             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
567 "crosstest: $ac_dir/__crosstest__
568 .PHONY: $ac_dir/__crosstest__
569 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
570         @cd $ac_dir && \$(MAKE) crosstest"
571         fi])
574 wine_fn_config_tool ()
576     ac_dir=$[1]
577     ac_flags=$[2]
578     AS_VAR_IF([enable_tools],[no],[return 0])
580     wine_fn_config_makefile $ac_dir enable_tools $ac_flags
582     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__tooldeps__: $ac_dir"
583     wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: libs/port"
584     case $ac_dir in
585       tools/winebuild) wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(WINEBUILD): $ac_dir" ;;
586     esac
589 wine_fn_config_makerules ()
591     ac_rules=$[1]
592     ac_deps=$[2]
593     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
594 "$ac_rules: $ac_rules.in $ac_deps config.status
595         @./config.status $ac_rules
596 distclean::
597         \$(RM) $ac_rules"
600 wine_fn_config_symlink ()
602     ac_link=$[1]
603     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
604 "$ac_link:
605         @./config.status $ac_link
606 distclean::
607         \$(RM) $ac_link"
610 if test "x$CROSSTEST_DISABLE" != x
611 then
612     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
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(var,rule)
627 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
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(name,target,enable)
640 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
641 m4_ifval([$3],[if test "x$[$3]" != xno; then
642 ])AC_CONFIG_LINKS([$1:]m4_default([$2],[$1]))dnl
643 m4_if([$2],,[test "$srcdir" = "." || ])wine_fn_config_symlink $1[]m4_ifval([$3],[
644 fi])])
646 dnl **** Create a make rules file from config.status ****
648 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
650 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
651 wine_fn_config_makerules $1 $3
652 $2=$1
653 AC_SUBST_FILE([$2])dnl
654 AC_CONFIG_FILES([$1])])
656 dnl **** Create a makefile from config.status ****
658 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
660 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
661 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
662 wine_fn_config_makefile [$1] ac_enable [$3]dnl
663 AS_VAR_POPDEF([ac_enable])])
665 dnl **** Create a dll makefile from config.status ****
667 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
669 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
670 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
671 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
672 AS_VAR_POPDEF([ac_enable])])
674 dnl **** Create a program makefile from config.status ****
676 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
678 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
679 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
680 wine_fn_config_program [$1] ac_enable [$3]dnl
681 AS_VAR_POPDEF([ac_enable])])
683 dnl **** Create a test makefile from config.status ****
685 dnl Usage: WINE_CONFIG_TEST(dir,flags)
687 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
688 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
689 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
690 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
691 m4_popdef([ac_suffix])dnl
692 m4_popdef([ac_name])])
694 dnl **** Create a static lib makefile from config.status ****
696 dnl Usage: WINE_CONFIG_LIB(name,flags)
698 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
699 wine_fn_config_lib [$1] [$2]])
701 dnl **** Create a tool makefile from config.status ****
703 dnl Usage: WINE_CONFIG_TOOL(name,flags)
705 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
706 wine_fn_config_tool [$1] [$2]])
708 dnl **** Add a message to the list displayed at the end ****
710 dnl Usage: WINE_NOTICE(notice)
711 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
712 dnl Usage: WINE_WARNING(warning)
713 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
714 dnl Usage: WINE_PRINT_MESSAGES
716 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
717 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
719 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
720   x)   WINE_NOTICE([$3]) ;;
721   xno) ;;
722   *)   AC_MSG_ERROR([$3
723 This is an error since --with-$1 was requested.]) ;;
724 esac])])
726 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
727   x)   WINE_WARNING([$3]) ;;
728   xno) ;;
729   *)   AC_MSG_ERROR([$3
730 This is an error since --with-$1 was requested.]) ;;
731 esac])])
733 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
734   xno) ;;
735   *)   AC_MSG_ERROR([$3
736 Use the --without-$1 option if you really want this.]) ;;
737 esac])])
739 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
740 if test "x$wine_notices != "x; then
741     echo >&AS_MESSAGE_FD
742     IFS="|"
743     for msg in $wine_notices; do
744         IFS="$ac_save_IFS"
745         if test -n "$msg"; then
746             AC_MSG_NOTICE([$msg])
747         fi
748     done
750 IFS="|"
751 for msg in $wine_warnings; do
752     IFS="$ac_save_IFS"
753     if test -n "$msg"; then
754         echo >&2
755         AC_MSG_WARN([$msg])
756     fi
757 done
758 IFS="$ac_save_IFS"])
760 dnl Local Variables:
761 dnl compile-command: "autoreconf --warnings=all"
762 dnl End: