user32: Get the graphics driver name from the desktop window registry entry.
[wine.git] / aclocal.m4
blobca52b48aa211a2d426050dc1a07c2906fc611790
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 ",$ac_flags," : ".*,$[1],.*" >/dev/null
216 wine_fn_depend_rules ()
218     ac_alldeps=$[1]
219     ac_makedep="\$(MAKEDEP)"
220     ac_input=Make.vars.in:$ac_dir/Makefile.in
221     case $[1] in
222       *.in) ac_input=$ac_input:$[1] ;;
223       *) ac_makedep="$[1] $ac_makedep" ;;
224     esac
226     wine_fn_append_rule \
227 "$ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps \$(MAKEDEP)
228         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
229 depend: $ac_dir/depend
230 .PHONY: $ac_dir/depend
231 $ac_dir/depend: $ac_makedep dummy
232         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
235 wine_fn_pot_rules ()
237     test "x$with_gettextpo" = xyes || return
239     if wine_fn_has_flag mc
240     then
241         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
242         wine_fn_append_rule \
243 "$ac_dir/msg.pot: $ac_dir/Makefile dummy
244         @cd $ac_dir && \$(MAKE) msg.pot
245 $ac_dir/msg.pot: tools/wmc include"
246     fi
247     if wine_fn_has_flag po
248     then
249         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
250         wine_fn_append_rule \
251 "$ac_dir/rsrc.pot: $ac_dir/Makefile dummy
252         @cd $ac_dir && \$(MAKE) rsrc.pot
253 $ac_dir/rsrc.pot: tools/wrc include"
254     fi
257 wine_fn_all_rules ()
259     ac_rules=$[1]
261     wine_fn_depend_rules ${ac_rules:-Make.rules}
262     wine_fn_append_rule \
263 "all: $ac_dir
264 .PHONY: $ac_dir
265 $ac_dir: $ac_dir/Makefile dummy
266         @cd $ac_dir && \$(MAKE)"
269 wine_fn_install_rules ()
271     wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
273     wine_fn_append_rule \
274 ".PHONY: $ac_dir/install $ac_dir/uninstall
275 $ac_dir/install:: $ac_dir
276         @cd $ac_dir && \$(MAKE) install
277 $ac_dir/uninstall:: $ac_dir/Makefile
278         @cd $ac_dir && \$(MAKE) uninstall
279 install:: $ac_dir/install
280 __uninstall__: $ac_dir/uninstall"
282     if wine_fn_has_flag install-lib
283     then
284         wine_fn_append_rule \
285 ".PHONY: $ac_dir/install-lib
286 $ac_dir/install-lib:: $ac_dir
287         @cd $ac_dir && \$(MAKE) install-lib
288 install-lib:: $ac_dir/install-lib"
289     fi
291     if wine_fn_has_flag install-dev
292     then
293         wine_fn_append_rule \
294 ".PHONY: $ac_dir/install-dev
295 $ac_dir/install-dev:: $ac_dir
296         @cd $ac_dir && \$(MAKE) install-dev
297 install-dev:: $ac_dir/install-dev"
298     fi
301 wine_fn_clean_rules ()
303     ac_clean=$[@]
305     if wine_fn_has_flag clean
306     then
307         wine_fn_append_rule \
308 "__clean__: $ac_dir/clean
309 .PHONY: $ac_dir/clean
310 $ac_dir/clean: $ac_dir/Makefile
311         @cd $ac_dir && \$(MAKE) clean
312         \$(RM) $ac_dir/Makefile"
313     else
314         wine_fn_append_rule \
315 "clean::
316         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_dir/Makefile"
317     fi
320 wine_fn_disabled_rules ()
322     ac_clean=$[@]
324     wine_fn_append_rule \
325 "clean::
326         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean $ac_dir/Makefile"
329 wine_fn_config_makefile ()
331     ac_dir=$[1]
332     ac_enable=$[2]
333     ac_flags=$[3]
335     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
336     wine_fn_all_rules
337     wine_fn_install_rules
338     wine_fn_clean_rules
341 wine_fn_config_lib ()
343     ac_name=$[1]
344     ac_flags=$[2]
345     ac_dir=dlls/$ac_name
347     wine_fn_all_rules Make.rules.in
348     wine_fn_clean_rules
350     wine_fn_append_rule \
351 ".PHONY: $ac_dir/install $ac_dir/uninstall
352 $ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir)
353         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
354 $ac_dir/uninstall::
355         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
356 install install-dev:: $ac_dir/install
357 __uninstall__: $ac_dir/uninstall
358 __builddeps__: $ac_dir
359 $ac_dir: tools/widl tools/winebuild tools/winegcc include"
362 wine_fn_config_dll ()
364     ac_name=$[1]
365     ac_dir=dlls/$ac_name
366     ac_enable=$[2]
367     ac_flags=$[3]
368     ac_implib=${4:-$ac_name}
369     ac_file=$ac_dir/lib$ac_implib
370     ac_dll=$ac_name
371     ac_deps="tools/widl tools/winebuild tools/winegcc include"
372     ac_implibflags=""
374     case $ac_name in
375       *16) ac_implibflags=" -m16" ;;
376       *.*) ;;
377       *)   ac_dll=$ac_dll.dll ;;
378     esac
380     ac_clean=
381     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
382     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
383     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
385     AS_VAR_IF([$ac_enable],[no],
386               dnl enable_win16 is special in that it disables import libs too
387               [if wine_fn_has_flag implib && test "$ac_enable" != enable_win16
388                then
389                    wine_fn_depend_rules Make.rules.in
390                    wine_fn_clean_rules $ac_clean
391                else
392                    wine_fn_disabled_rules $ac_clean
393                    return
394                fi],
396               [wine_fn_all_rules Make.rules.in
397                wine_fn_clean_rules $ac_clean
398                wine_fn_append_rule \
399 "$ac_dir: __builddeps__
400 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
401         @cd $ac_dir && \$(MAKE) \$[@]
402 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
403 install install-lib:: $ac_dir/install-lib
404 __uninstall__: $ac_dir/uninstall"
405                 if test -n "$DLLEXT"
406                 then
407                     wine_fn_append_rule \
408 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
409         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT
410         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
411 $ac_dir/uninstall::
412         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
413                 else
414                     wine_fn_append_rule \
415 "$ac_dir/install-lib:: $ac_dir \$(DESTDIR)\$(dlldir)
416         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
417 $ac_dir/uninstall::
418         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
419                 fi
421                 wine_fn_pot_rules])
423     if wine_fn_has_flag staticimplib
424     then
425         wine_fn_append_rule \
426 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
427 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
428 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
429         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
430 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
431         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
432 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
433 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
434         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
435 $ac_dir/uninstall::
436         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
437 install install-dev:: $ac_dir/install-dev
438 __uninstall__: $ac_dir/uninstall"
440         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
441         then
442             wine_fn_append_rule \
443 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
444         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
445 $ac_dir/uninstall::
446         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
447         fi
449         if test -n "$CROSSTARGET"
450         then
451             wine_fn_append_rule \
452 "__builddeps__: $ac_file.cross.a
453 $ac_file.cross.a: $ac_dir/Makefile dummy
454         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
455         fi
457     elif wine_fn_has_flag implib
458     then
459         wine_fn_append_rule \
460 "__builddeps__: $ac_file.$IMPLIBEXT
461 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
462         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
463 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
464         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
465 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
466 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
467         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
468 $ac_dir/uninstall::
469         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
470 install install-dev:: $ac_dir/install-dev
471 __uninstall__: $ac_dir/uninstall"
472         if test -n "$CROSSTARGET"
473         then
474             wine_fn_append_rule \
475 "__builddeps__: $ac_file.cross.a
476 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
477         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
478         fi
480         if test "$ac_name" != "$ac_implib"
481         then
482             wine_fn_append_rule \
483 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
484 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
485         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
486 clean::
487         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
488             if test -n "$CROSSTARGET"
489             then
490                 wine_fn_append_rule \
491 "__builddeps__: dlls/lib$ac_implib.cross.a
492 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
493         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
494             fi
495         fi
496     fi
499 wine_fn_config_program ()
501     ac_name=$[1]
502     ac_dir=programs/$ac_name
503     ac_enable=$[2]
504     ac_flags=$[3]
505     ac_program=$ac_name
507     case $ac_name in
508       *.*) ;;
509       *)   ac_program=$ac_program.exe ;;
510     esac
512     ac_clean=
513     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
514     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
515     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
516     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
518     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
520     wine_fn_all_rules Make.rules.in
521     wine_fn_clean_rules $ac_clean
522     wine_fn_append_rule "$ac_dir: __builddeps__"
523     wine_fn_pot_rules
525     wine_fn_has_flag install || return
526     wine_fn_append_rule \
527 ".PHONY: $ac_dir/install $ac_dir/uninstall
528 install install-lib:: $ac_dir/install
529 __uninstall__: $ac_dir/uninstall"
531     if test -n "$DLLEXT"
532     then
533         wine_fn_append_rule \
534 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(dlldir) \$(DESTDIR)\$(fakedlldir)
535         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT
536         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
537 $ac_dir/uninstall::
538         \$(RM) \$(DESTDIR)\$(dlldir)/$DLLPREFIX$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
540         if test -z "$with_wine64" && wine_fn_has_flag installbin
541         then
542             wine_fn_append_rule \
543 "$ac_dir/install:: __tooldeps__ \$(DESTDIR)\$(bindir)
544         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
545 $ac_dir/uninstall::
546         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
547         fi
548     else
549         wine_fn_append_rule \
550 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(bindir)
551         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
552 $ac_dir/uninstall::
553         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
554     fi
556     if test -z "$with_wine64" && wine_fn_has_flag manpage
557     then
558         wine_fn_append_rule \
559 "$ac_dir/install:: $ac_dir \$(DESTDIR)\$(mandir)/man\$(prog_manext)
560         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
561 $ac_dir/uninstall::
562         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
563     fi
566 wine_fn_config_test ()
568     ac_dir=$[1]
569     ac_name=$[2]
570     ac_flags=$[3]
572     ac_clean=
573     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
574     test -n "$DLLEXT" || ac_clean=$ac_dir/${ac_name}.exe
575     ac_clean="$ac_clean $ac_dir/testlist.c"
577     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
579     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
580     wine_fn_all_rules Make.rules.in
581     wine_fn_clean_rules $ac_clean
583     wine_fn_append_rule \
584 "$ac_dir: programs/winetest/Makefile __builddeps__
585 programs/winetest: $ac_dir
586 check test: $ac_dir/test
587 .PHONY: $ac_dir/test
588 $ac_dir/test: dummy
589         @cd $ac_dir && \$(MAKE) test
590 testclean::
591         \$(RM) $ac_dir/*.ok"
593         if test -n "$CROSSTARGET"
594         then
595             wine_fn_append_rule \
596 "crosstest: $ac_dir/crosstest
597 .PHONY: $ac_dir/crosstest
598 $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
599         @cd $ac_dir && \$(MAKE) crosstest"
600         fi
603 wine_fn_config_tool ()
605     ac_dir=$[1]
606     ac_flags=$[2]
607     AS_VAR_IF([enable_tools],[no],[return])
609     wine_fn_all_rules
610     wine_fn_install_rules
611     wine_fn_clean_rules
613     wine_fn_append_rule "__tooldeps__: $ac_dir"
614     wine_fn_append_rule "$ac_dir: libs/port"
615     case $ac_dir in
616       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
617     esac
620 wine_fn_config_makerules ()
622     ac_rules=$[1]
623     ac_deps=$[2]
624     wine_fn_append_rule \
625 "$ac_rules: $ac_rules.in $ac_deps config.status
626         @./config.status $ac_rules
627 distclean::
628         \$(RM) $ac_rules"
631 wine_fn_config_symlink ()
633     ac_linkdir=
634     if test "x$[1]" = "x-d"
635     then
636         ac_linkdir=$[2]
637         shift; shift
638     fi
639     ac_links=$[@]
640     wine_fn_append_rule \
641 "$ac_links:
642         @./config.status \$[@]
643 distclean::
644         \$(RM) $ac_links"
645     test -n "$ac_linkdir" || return
646     wine_fn_append_rule "$ac_linkdir/Makefile $ac_linkdir/depend: $ac_links"
649 if test -z "$CROSSTARGET"
650 then
651     wine_fn_append_rule \
652 "crosstest:
653         @echo \"crosstest is not supported (mingw not installed?)\" && false"
654 fi])
656 dnl **** Define helper function to append a file to a makefile file list ****
658 dnl Usage: WINE_APPEND_FILE(var,file)
660 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
662 dnl **** Define helper function to append a rule to a makefile command list ****
664 dnl Usage: WINE_APPEND_RULE(rule)
666 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
668 dnl **** Create nonexistent directories from config.status ****
670 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
672 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
673 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])dnl
674 wine_fn_append_rule \
675 "clean::
676         \$(RM) \$(CLEAN_FILES:%=[$1]/%)"])
678 dnl **** Create symlinks from config.status ****
680 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
682 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
683 m4_ifval([$4],[if test "x$[$4]" != xno; then
684 ])m4_foreach([f],[$3],
685 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
686 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
687 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],[
688 fi])[]dnl
689 ])])
691 dnl **** Create a make rules file from config.status ****
693 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
695 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
696 wine_fn_config_makerules $1 $3
697 $2=$1
698 AC_SUBST_FILE([$2])dnl
699 AC_CONFIG_FILES([$1])])
701 dnl **** Create a makefile from config.status ****
703 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
705 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
706 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
707 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
708 ])dnl
709 wine_fn_config_makefile [$1] ac_enable [$3]dnl
710 AS_VAR_POPDEF([ac_enable])])
712 dnl **** Create a dll makefile from config.status ****
714 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
716 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
717 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
718 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
719 ])dnl
720 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
721 AS_VAR_POPDEF([ac_enable])])
723 dnl **** Create a program makefile from config.status ****
725 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
727 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
728 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
729 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
730 ])dnl
731 wine_fn_config_program [$1] ac_enable [$3]dnl
732 AS_VAR_POPDEF([ac_enable])])
734 dnl **** Create a test makefile from config.status ****
736 dnl Usage: WINE_CONFIG_TEST(dir,flags)
738 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
739 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
740 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
741 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
742 m4_popdef([ac_suffix])dnl
743 m4_popdef([ac_name])])
745 dnl **** Create a static lib makefile from config.status ****
747 dnl Usage: WINE_CONFIG_LIB(name,flags)
749 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
750 wine_fn_config_lib [$1] [$2]])
752 dnl **** Create a tool makefile from config.status ****
754 dnl Usage: WINE_CONFIG_TOOL(name,flags)
756 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
757 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
758 ])dnl
759 wine_fn_config_tool [$1] [$2]])
761 dnl **** Add a message to the list displayed at the end ****
763 dnl Usage: WINE_NOTICE(notice)
764 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
765 dnl Usage: WINE_WARNING(warning)
766 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
767 dnl Usage: WINE_PRINT_MESSAGES
769 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
770 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
772 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
773   x)   WINE_NOTICE([$3]) ;;
774   xno) ;;
775   *)   AC_MSG_ERROR([$3
776 This is an error since --with-$1 was requested.]) ;;
777 esac])])
779 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
780   x)   WINE_WARNING([$3]) ;;
781   xno) ;;
782   *)   AC_MSG_ERROR([$3
783 This is an error since --with-$1 was requested.]) ;;
784 esac])])
786 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
787   xno) ;;
788   *)   AC_MSG_ERROR([$3
789 Use the --without-$1 option if you really want this.]) ;;
790 esac])])
792 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
793 if test "x$wine_notices != "x; then
794     echo >&AS_MESSAGE_FD
795     IFS="|"
796     for msg in $wine_notices; do
797         IFS="$ac_save_IFS"
798         if test -n "$msg"; then
799             AC_MSG_NOTICE([$msg])
800         fi
801     done
803 IFS="|"
804 for msg in $wine_warnings; do
805     IFS="$ac_save_IFS"
806     if test -n "$msg"; then
807         echo >&2
808         AC_MSG_WARN([$msg])
809     fi
810 done
811 IFS="$ac_save_IFS"])
813 dnl Local Variables:
814 dnl compile-command: "autoreconf --warnings=all"
815 dnl End: