shell32/tests: Reorder the functions to avoid forward declarations.
[wine.git] / aclocal.m4
blobd09d91b7affa0ff02acb41b97c88840e8dcc6090
1 dnl Macros used to build the Wine configure script
2 dnl
3 dnl Copyright 2002 Alexandre Julliard
4 dnl
5 dnl This library is free software; you can redistribute it and/or
6 dnl modify it under the terms of the GNU Lesser General Public
7 dnl License as published by the Free Software Foundation; either
8 dnl version 2.1 of the License, or (at your option) any later version.
9 dnl
10 dnl This library is distributed in the hope that it will be useful,
11 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 dnl Lesser General Public License for more details.
14 dnl
15 dnl You should have received a copy of the GNU Lesser General Public
16 dnl License along with this library; if not, write to the Free Software
17 dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 dnl
19 dnl As a special exception to the GNU Lesser General Public License,
20 dnl if you distribute this file as part of a program that contains a
21 dnl configuration script generated by Autoconf, you may include it
22 dnl under the same distribution terms that you use for the rest of
23 dnl that program.
25 dnl WINE_CHECK_HOST_TOOL(VARIABLE, PROG-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH])
26 dnl
27 dnl Like AC_CHECK_TOOL but without the broken fallback to non-prefixed name
28 dnl
29 AC_DEFUN([WINE_CHECK_HOST_TOOL],
30 [AS_VAR_SET_IF([ac_tool_prefix],
31   AC_CHECK_PROG([$1],[${ac_tool_prefix}$2],[${ac_tool_prefix}$2],,[$4]))
32 AS_VAR_IF([ac_cv_prog_$1],[],
33   [AS_VAR_IF([cross_compiling],[yes],[],
34     [AS_UNSET([ac_cv_prog_$1])
35      AC_CHECK_PROG([$1],[$2],[$2],[$3],[$4])])],
36 [AS_VAR_COPY([$1],[ac_cv_prog_$1])])])
38 dnl **** Initialize the programs used by other checks ****
39 dnl
40 dnl Usage: WINE_PATH_SONAME_TOOLS
41 dnl Usage: WINE_PATH_PKG_CONFIG
42 dnl
43 AC_DEFUN([WINE_PATH_SONAME_TOOLS],
44 [AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)
45 AC_CHECK_TOOL(OTOOL,otool,otool)
46 AC_CHECK_TOOL(READELF,[readelf],true)])
48 AC_DEFUN([WINE_PATH_PKG_CONFIG],
49 [WINE_CHECK_HOST_TOOL(PKG_CONFIG,[pkg-config])])
51 dnl **** Extract the soname of a library ****
52 dnl
53 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
54 dnl
55 AC_DEFUN([WINE_CHECK_SONAME],
56 [AC_REQUIRE([WINE_PATH_SONAME_TOOLS])dnl
57 AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
58 m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
59 AC_MSG_CHECKING([for -l$1])
60 AC_CACHE_VAL(ac_Lib,
61 [ac_check_soname_save_LIBS=$LIBS
62 LIBS="-l$1 $5 $LIBS"
63   AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
64   [case "$LIBEXT" in
65     dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
66     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'`]) ;;
67     *) 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'`])
68        AS_VAR_IF([ac_Lib],[],
69              [AS_VAR_SET(ac_Lib,[`$LDD conftest$ac_exeext | grep "ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\(ac_lib_pattern\.$LIBEXT[[^  ]]*\).*$/\1/"';2,$d'`])]) ;;
70   esac])
71   LIBS=$ac_check_soname_save_LIBS])dnl
72 AS_VAR_IF([ac_Lib],[],
73       [AC_MSG_RESULT([not found])
74        $4],
75       [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
76        AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
77                           [Define to the soname of the lib$1 library.])
78        $3])dnl
79 m4_popdef([ac_lib_pattern])dnl
80 AS_VAR_POPDEF([ac_Lib])])
82 dnl **** Get flags from pkg-config or alternate xxx-config program ****
83 dnl
84 dnl Usage: WINE_PACKAGE_FLAGS(var,pkg-name,[default-lib,[cflags-alternate,libs-alternate,[checks]]])
85 dnl
86 AC_DEFUN([WINE_PACKAGE_FLAGS],
87 [AC_REQUIRE([WINE_PATH_PKG_CONFIG])dnl
88 AS_VAR_PUSHDEF([ac_cflags],[[$1]_CFLAGS])dnl
89 AS_VAR_PUSHDEF([ac_libs],[[$1]_LIBS])dnl
90 AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl
91 AS_VAR_IF([ac_cflags],[],
92       [AS_VAR_SET_IF([PKG_CONFIG],
93       [ac_cflags=`$PKG_CONFIG --cflags [$2] 2>/dev/null`])])
94 m4_ifval([$4],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$4]}])
95 AC_ARG_VAR(ac_libs, [Linker flags for $2, overriding pkg-config])dnl
96 AS_VAR_IF([ac_libs],[],
97       [AS_VAR_SET_IF([PKG_CONFIG],
98       [ac_libs=`$PKG_CONFIG --libs [$2] 2>/dev/null`])])
99 m4_ifval([$5],[test "$cross_compiling" = yes || ac_libs=[$]{ac_libs:-[$5]}])
100 m4_ifval([$3],[ac_libs=[$]{ac_libs:-"$3"}])
101 AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 cflags: $ac_cflags"]) >&AS_MESSAGE_LOG_FD
102 AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 libs: $ac_libs"]) >&AS_MESSAGE_LOG_FD
103 ac_save_CPPFLAGS=$CPPFLAGS
104 CPPFLAGS="$CPPFLAGS $ac_cflags"
106 CPPFLAGS=$ac_save_CPPFLAGS
107 test -z "$ac_cflags" || ac_cflags=`echo " $ac_cflags" | sed 's/ -I\([[^/]]\)/ -I\$(top_builddir)\/\1/g'`
108 test -z "$ac_libs" || ac_libs=`echo " $ac_libs" | sed 's/ -L\([[^/]]\)/ -L\$(top_builddir)\/\1/g'`
109 AS_VAR_POPDEF([ac_libs])dnl
110 AS_VAR_POPDEF([ac_cflags])])dnl
112 dnl **** Link C code with an assembly file ****
114 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
116 AC_DEFUN([WINE_TRY_ASM_LINK],
117 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
119 dnl **** Check if we can link an empty program with special CFLAGS ****
121 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
123 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
125 AC_DEFUN([WINE_TRY_CFLAGS],
126 [AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
127 AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
128 [ac_wine_try_cflags_saved=$CFLAGS
129 CFLAGS="$CFLAGS $1"
130 AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]])],
131                [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
132 CFLAGS=$ac_wine_try_cflags_saved])
133 AS_VAR_IF([ac_var],[yes],[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_VAR_IF([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,[value-if-not-found],[path])
176 AC_DEFUN([WINE_CHECK_MINGW_PROG],
177 [case "$host_cpu" in
178   arm*)
179     ac_prefix_list="armv7-w64-mingw32-clang armv7-w64-mingw32-gcc" ;;
180   i[[3456789]]86*)
181     ac_prefix_list="m4_foreach([ac_wine_prefix],[w64-mingw32, pc-mingw32, mingw32msvc, mingw32],
182                         m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-ac_wine_prefix-gcc ]))
183                      m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-w64-mingw32-clang ])
184                      mingw32-gcc" ;;
185   x86_64)
186     ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32, w64-mingw32, mingw32msvc],
187                         m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-ac_wine_prefix-gcc ]))
188                     m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-w64-mingw32-clang ])" ;;
189   *)
190     ac_prefix_list="" ;;
191 esac
192 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$2],[$3])])
195 dnl **** Define helper functions for creating config.status files ****
197 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
199 AC_DEFUN([WINE_CONFIG_HELPERS],
200 [wine_rules_file=conf$$rules.make
201 rm -f $wine_rules_file
202 ALL_POT_FILES=""
203 GITIGNORE="# Automatically generated by configure; DO NOT EDIT!!"
204 AC_SUBST(SUBDIRS,"")
205 AC_SUBST(ALL_TEST_RESOURCES,"")
207 wine_fn_append_file ()
209     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
212 wine_fn_ignore_file ()
214     case "$[1]" in
215       */*) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
216       \**) AS_VAR_APPEND([GITIGNORE],"$as_nl$[1]") ;;
217       *)   AS_VAR_APPEND([GITIGNORE],"$as_nl/$[1]") ;;
218     esac
221 wine_fn_append_rule ()
223     AS_ECHO("$[1]") >>$wine_rules_file
226 wine_fn_has_flag ()
228     expr ",$ac_flags," : ".*,$[1],.*" >/dev/null
231 wine_fn_depend_rules ()
233     wine_fn_append_file SUBDIRS $ac_dir
236 wine_fn_pot_rules ()
238     test "x$with_gettextpo" = xyes || return
240     if wine_fn_has_flag mc
241     then
242         wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
243         wine_fn_append_rule \
244 "$ac_dir/msg.pot: dummy
245         @cd $ac_dir && \$(MAKE) msg.pot
246 $ac_dir/msg.pot: tools/wmc include"
247     fi
248     if wine_fn_has_flag po
249     then
250         wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
251         wine_fn_append_rule \
252 "$ac_dir/rsrc.pot: dummy
253         @cd $ac_dir && \$(MAKE) rsrc.pot
254 $ac_dir/rsrc.pot: tools/wrc include"
255     fi
258 wine_fn_all_rules ()
260     wine_fn_depend_rules
261     wine_fn_append_rule \
262 "all: $ac_dir
263 .PHONY: $ac_dir
264 $ac_dir: dummy
265         @cd $ac_dir && \$(MAKE)"
268 wine_fn_install_rules ()
270     wine_fn_has_flag install-lib || wine_fn_has_flag install-dev || return
272     wine_fn_append_rule \
273 ".PHONY: $ac_dir/install $ac_dir/uninstall
274 $ac_dir/install:: $ac_dir
275         @cd $ac_dir && \$(MAKE) install
276 $ac_dir/uninstall::
277         @cd $ac_dir && \$(MAKE) uninstall
278 install:: $ac_dir/install
279 __uninstall__: $ac_dir/uninstall"
281     if wine_fn_has_flag install-lib
282     then
283         wine_fn_append_rule \
284 ".PHONY: $ac_dir/install-lib
285 $ac_dir/install-lib:: $ac_dir
286         @cd $ac_dir && \$(MAKE) install-lib
287 install-lib:: $ac_dir/install-lib"
288     fi
290     if wine_fn_has_flag install-dev
291     then
292         wine_fn_append_rule \
293 ".PHONY: $ac_dir/install-dev
294 $ac_dir/install-dev:: $ac_dir
295         @cd $ac_dir && \$(MAKE) install-dev
296 install-dev:: $ac_dir/install-dev"
297     fi
300 wine_fn_clean_rules ()
302     ac_clean=$[@]
304     if wine_fn_has_flag clean
305     then
306         wine_fn_append_rule \
307 "$ac_dir/clean: dummy
308         @cd $ac_dir && \$(MAKE) clean"
309     else
310         wine_fn_append_rule \
311 "$ac_dir/clean: dummy
312         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
313     fi
314         wine_fn_append_rule \
315 "__clean__: $ac_dir/clean
316 .PHONY: $ac_dir/clean"
319 wine_fn_disabled_rules ()
321     ac_clean=$[@]
323     wine_fn_append_rule \
324 "__clean__: $ac_dir/clean
325 .PHONY: $ac_dir/clean
326 $ac_dir/clean: dummy
327         \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean"
330 wine_fn_config_makefile ()
332     ac_dir=$[1]
333     ac_enable=$[2]
334     ac_flags=$[3]
336     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules; return])
337     wine_fn_all_rules
338     wine_fn_install_rules
339     wine_fn_clean_rules
342 wine_fn_config_lib ()
344     ac_name=$[1]
345     ac_flags=$[2]
346     ac_dir=dlls/$ac_name
347     ac_deps="include"
349     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
350     wine_fn_all_rules
351     wine_fn_clean_rules
353     wine_fn_append_rule \
354 ".PHONY: $ac_dir/install $ac_dir/uninstall
355 $ac_dir/install:: $ac_dir
356         \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
357 $ac_dir/uninstall::
358         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
359 install install-dev:: $ac_dir/install
360 __uninstall__: $ac_dir/uninstall
361 __builddeps__: $ac_dir
362 $ac_dir: $ac_deps"
365 wine_fn_config_dll ()
367     ac_name=$[1]
368     ac_dir=dlls/$ac_name
369     ac_enable=$[2]
370     ac_flags=$[3]
371     ac_implib=${4:-$ac_name}
372     ac_file=$ac_dir/lib$ac_implib
373     ac_dll=$ac_name
374     ac_deps="include"
375     ac_implibflags=""
377     AS_VAR_IF([enable_tools],[no],,[ac_deps="tools/widl tools/winebuild tools/winegcc $ac_deps"])
378     case $ac_name in
379       *16) ac_implibflags=" -m16" ;;
380       *.*) ;;
381       *)   ac_dll=$ac_dll.dll ;;
382     esac
384     ac_clean=
385     wine_fn_has_flag implib && ac_clean="$ac_clean $ac_file.$IMPLIBEXT"
386     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
387     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
388     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_dll"
390     AS_VAR_IF([$ac_enable],[no],
391               dnl enable_win16 is special in that it disables import libs too
392               [if test "$ac_enable" != enable_win16
393                then
394                    wine_fn_depend_rules
395                    wine_fn_clean_rules $ac_clean
396                    wine_fn_pot_rules
397                else
398                    wine_fn_disabled_rules $ac_clean
399                    return
400                fi],
402               [wine_fn_all_rules
403                wine_fn_clean_rules $ac_clean
404                wine_fn_append_rule \
405 "$ac_dir: __builddeps__
406 manpages htmlpages sgmlpages xmlpages::
407         @cd $ac_dir && \$(MAKE) \$[@]
408 .PHONY: $ac_dir/install-lib $ac_dir/uninstall
409 install install-lib:: $ac_dir/install-lib
410 __uninstall__: $ac_dir/uninstall"
411                 if test -n "$DLLEXT"
412                 then
413                     wine_fn_append_rule \
414 "$ac_dir/install-lib:: $ac_dir
415         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT
416         \$(INSTALL_DATA) $ac_dir/$ac_dll.fake \$(DESTDIR)\$(fakedlldir)/$ac_dll
417 $ac_dir/uninstall::
418         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_dll"
419                 else
420                     wine_fn_append_rule \
421 "$ac_dir/install-lib:: $ac_dir
422         \$(INSTALL_PROGRAM) $ac_dir/$ac_dll \$(DESTDIR)\$(dlldir)/$ac_dll
423 $ac_dir/uninstall::
424         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_dll"
425                 fi
427                 wine_fn_pot_rules])
429     if wine_fn_has_flag staticimplib
430     then
431         wine_fn_append_rule \
432 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
433 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
434 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
435         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
436 $ac_file.$STATIC_IMPLIBEXT: dummy
437         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
438 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
439 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
440         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
441 $ac_dir/uninstall::
442         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
443 install install-dev:: $ac_dir/install-dev
444 __uninstall__: $ac_dir/uninstall"
446         if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
447         then
448             wine_fn_append_rule \
449 "$ac_dir/install-dev:: $ac_file.$STATIC_IMPLIBEXT __builddeps__
450         \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
451 $ac_dir/uninstall::
452         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
453         fi
455         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
456         then
457             wine_fn_append_rule \
458 "__builddeps__: $ac_file.cross.a
459 $ac_file.cross.a: dummy
460         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
461         fi
463     elif wine_fn_has_flag implib
464     then
465         wine_fn_append_rule \
466 "__builddeps__: $ac_file.$IMPLIBEXT
467 $ac_file.def: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
468         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
469 $ac_file.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
470         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec
471 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
472 $ac_dir/install-dev:: $ac_file.$IMPLIBEXT
473         \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
474 $ac_dir/uninstall::
475         \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
476 install install-dev:: $ac_dir/install-dev
477 __uninstall__: $ac_dir/uninstall"
478         if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
479         then
480             wine_fn_append_rule \
481 "__builddeps__: $ac_file.cross.a
482 $ac_file.cross.a: $srcdir/$ac_dir/$ac_name.spec \$(WINEBUILD)
483         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export $srcdir/$ac_dir/$ac_name.spec"
484         fi
486         if test "$ac_name" != "$ac_implib"
487         then
488             wine_fn_append_rule \
489 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
490 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
491         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
492 clean::
493         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
494             wine_fn_ignore_file "dlls/lib$ac_implib.$IMPLIBEXT"
495             if test -n "$CROSSTARGET" -a -z "$ac_implibflags"
496             then
497                 wine_fn_append_rule \
498 "__builddeps__: dlls/lib$ac_implib.cross.a
499 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
500         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]
501 clean::
502         \$(RM) dlls/lib$ac_implib.cross.a"
503                 wine_fn_ignore_file "dlls/lib$ac_implib.cross.a"
504             fi
505         fi
506     fi
509 wine_fn_config_program ()
511     ac_name=$[1]
512     ac_dir=programs/$ac_name
513     ac_enable=$[2]
514     ac_flags=$[3]
515     ac_program=$ac_name
517     case $ac_name in
518       *.*) ;;
519       *)   ac_program=$ac_program.exe ;;
520     esac
522     ac_clean=
523     wine_fn_has_flag mc && ac_clean="$ac_clean $ac_dir/msg.pot"
524     wine_fn_has_flag po && ac_clean="$ac_clean $ac_dir/rsrc.pot"
525     wine_fn_has_flag manpage && ac_clean="$ac_clean $ac_dir/$ac_name.man"
526     test -n "$DLLEXT" || ac_clean="$ac_clean $ac_dir/$ac_program"
528     AS_VAR_IF([$ac_enable],[no],[wine_fn_disabled_rules $ac_clean; return])
530     wine_fn_all_rules
531     wine_fn_clean_rules $ac_clean
532     wine_fn_append_rule "$ac_dir: __builddeps__"
533     wine_fn_pot_rules
535     wine_fn_has_flag install || return
536     wine_fn_append_rule \
537 ".PHONY: $ac_dir/install $ac_dir/uninstall
538 install install-lib:: $ac_dir/install
539 __uninstall__: $ac_dir/uninstall"
541     if test -n "$DLLEXT"
542     then
543         wine_fn_append_rule \
544 "$ac_dir/install:: $ac_dir
545         \$(INSTALL_PROGRAM) $ac_dir/$ac_program$DLLEXT \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT
546         \$(INSTALL_DATA) $ac_dir/$ac_program.fake \$(DESTDIR)\$(fakedlldir)/$ac_program
547 $ac_dir/uninstall::
548         \$(RM) \$(DESTDIR)\$(dlldir)/$ac_program$DLLEXT \$(DESTDIR)\$(fakedlldir)/$ac_program"
550         if test -z "$with_wine64" && wine_fn_has_flag installbin
551         then
552             wine_fn_append_rule \
553 "$ac_dir/install:: __tooldeps__
554         \$(INSTALL_SCRIPT) \$(TOOLSDIR)/tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
555 $ac_dir/uninstall::
556         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
557         fi
558     else
559         wine_fn_append_rule \
560 "$ac_dir/install:: $ac_dir
561         \$(INSTALL_PROGRAM) $ac_dir/$ac_program \$(DESTDIR)\$(bindir)/$ac_program
562 $ac_dir/uninstall::
563         \$(RM) \$(DESTDIR)\$(bindir)/$ac_program"
564     fi
566     if test -z "$with_wine64" && wine_fn_has_flag manpage
567     then
568         wine_fn_append_rule \
569 "$ac_dir/install:: $ac_dir
570         \$(INSTALL_DATA) $ac_dir/$ac_name.man \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)
571 $ac_dir/uninstall::
572         \$(RM) \$(DESTDIR)\$(mandir)/man\$(prog_manext)/$ac_name.\$(prog_manext)"
573     fi
576 wine_fn_config_test ()
578     ac_dir=$[1]
579     ac_name=$[2]
580     ac_flags=$[3]
582     ac_clean=
583     test -n "$CROSSTARGET" && ac_clean=`expr $ac_dir/${ac_name} : "\\(.*\\)_test"`_crosstest.exe
584     test -n "$DLLEXT" || ac_clean="$ac_dir/${ac_name}.exe $ac_dir/${ac_name}-stripped.exe"
586     AS_VAR_IF([enable_tests],[no],[wine_fn_disabled_rules $ac_clean; return])
588     wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
589     wine_fn_all_rules
590     wine_fn_clean_rules $ac_clean
592     wine_fn_append_rule \
593 "$ac_dir: __builddeps__
594 programs/winetest: $ac_dir
595 check test: $ac_dir/test
596 .PHONY: $ac_dir/test
597 $ac_dir/test: dummy
598         @cd $ac_dir && \$(MAKE) test
599 testclean::
600         \$(RM) $ac_dir/*.ok"
602         if test -n "$CROSSTARGET"
603         then
604             wine_fn_append_rule \
605 "crosstest: $ac_dir/crosstest
606 .PHONY: $ac_dir/crosstest
607 $ac_dir/crosstest: __builddeps__ dummy
608         @cd $ac_dir && \$(MAKE) crosstest"
609         fi
612 wine_fn_config_tool ()
614     ac_dir=$[1]
615     ac_flags=$[2]
616     AS_VAR_IF([enable_tools],[no],[return])
618     wine_fn_all_rules
619     wine_fn_install_rules
620     wine_fn_clean_rules
622     wine_fn_append_rule "__tooldeps__: $ac_dir"
623     wine_fn_append_rule "$ac_dir: libs/port"
624     case $ac_dir in
625       tools/winebuild) wine_fn_append_rule "\$(WINEBUILD): $ac_dir" ;;
626     esac
629 wine_fn_config_symlink ()
631     ac_linkdir=
632     if test "x$[1]" = "x-d"
633     then
634         ac_linkdir=$[2]
635         shift; shift
636     fi
637     ac_links=$[@]
638     wine_fn_append_rule \
639 "$ac_links:
640         @./config.status \$[@]
641 distclean::
642         \$(RM) $ac_links"
643     for f in $ac_links; do wine_fn_ignore_file $f; done
644     test -n "$ac_linkdir" || return
645     wine_fn_append_rule "$ac_linkdir/depend: $ac_links"
648 dnl **** Define helper function to append a file to a makefile file list ****
650 dnl Usage: WINE_APPEND_FILE(var,file)
652 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
654 dnl **** Define helper function to append a rule to a makefile command list ****
656 dnl Usage: WINE_APPEND_RULE(rule)
658 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule "$1"])
660 dnl **** Create symlinks from config.status ****
662 dnl Usage: WINE_CONFIG_SYMLINK(target,src,files,enable,srcfile)
664 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
665 m4_ifval([$4],[if test "x$[$4]" != xno; then
666 ])m4_foreach([f],[$3],
667 [AC_CONFIG_LINKS(m4_ifval([$1],[$1/])f[:]m4_ifval([$2],[$2/])m4_ifval([$5],[$5],f))])dnl
668 m4_if([$1],[$2],[test "$srcdir" = "." || ])dnl
669 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],[
670 fi])[]dnl
671 ])])
673 dnl **** Create a makefile from config.status ****
675 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
677 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
678 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
679 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
680 ])dnl
681 wine_fn_config_makefile [$1] ac_enable [$3]dnl
682 AS_VAR_POPDEF([ac_enable])])
684 dnl **** Create a dll makefile from config.status ****
686 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
688 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
689 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
690 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
691 ])dnl
692 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
693 AS_VAR_POPDEF([ac_enable])])
695 dnl **** Create a program makefile from config.status ****
697 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
699 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
700 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
701 m4_append_uniq([_AC_USER_OPTS],ac_enable,[
702 ])dnl
703 wine_fn_config_program [$1] ac_enable [$3]dnl
704 AS_VAR_POPDEF([ac_enable])])
706 dnl **** Create a test makefile from config.status ****
708 dnl Usage: WINE_CONFIG_TEST(dir,flags)
710 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
711 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
712 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
713 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
714 m4_popdef([ac_suffix])dnl
715 m4_popdef([ac_name])])
717 dnl **** Create a static lib makefile from config.status ****
719 dnl Usage: WINE_CONFIG_LIB(name,flags)
721 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
722 wine_fn_config_lib [$1] [$2]])
724 dnl **** Create a tool makefile from config.status ****
726 dnl Usage: WINE_CONFIG_TOOL(name,flags)
728 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
729 m4_append_uniq([_AC_USER_OPTS],[enable_tools],[
730 ])dnl
731 wine_fn_config_tool [$1] [$2]])
733 dnl **** Append a file to the .gitignore list ****
735 dnl Usage: WINE_IGNORE_FILE(file,enable)
737 AC_DEFUN([WINE_IGNORE_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
738 m4_ifval([$2],[test "x$[$2]" = xno || ])wine_fn_ignore_file $1])
740 dnl **** Add a message to the list displayed at the end ****
742 dnl Usage: WINE_NOTICE(notice)
743 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
744 dnl Usage: WINE_WARNING(warning)
745 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
746 dnl Usage: WINE_PRINT_MESSAGES
748 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
749 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
751 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
752   x)   WINE_NOTICE([$3]) ;;
753   xno) ;;
754   *)   AC_MSG_ERROR([$3
755 This is an error since --with-$1 was requested.]) ;;
756 esac])])
758 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
759   x)   WINE_WARNING([$3]) ;;
760   xno) ;;
761   *)   AC_MSG_ERROR([$3
762 This is an error since --with-$1 was requested.]) ;;
763 esac])])
765 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
766   xno) ;;
767   *)   AC_MSG_ERROR([$3
768 Use the --without-$1 option if you really want this.]) ;;
769 esac])])
771 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
772 if test "x$wine_notices" != x; then
773     echo >&AS_MESSAGE_FD
774     IFS="|"
775     for msg in $wine_notices; do
776         IFS="$ac_save_IFS"
777         AS_VAR_IF([msg],[],,[AC_MSG_NOTICE([$msg])])
778     done
780 IFS="|"
781 for msg in $wine_warnings; do
782     IFS="$ac_save_IFS"
783     AS_VAR_IF([msg],[],,[echo >&2
784         AC_MSG_WARN([$msg])])
785 done
786 IFS="$ac_save_IFS"])
788 dnl Local Variables:
789 dnl compile-command: "autoreconf --warnings=all"
790 dnl End: