makefiles: Always build the static cross libraries if crosstest is supported.
[wine] / aclocal.m4
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.
24
25 dnl **** Get the ldd program name; used by WINE_GET_SONAME ****
26 dnl
27 dnl Usage: WINE_PATH_LDD
28 dnl
29 AC_DEFUN([WINE_PATH_LDD],[AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)])
30
31 dnl **** Extract the soname of a library ****
32 dnl
33 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
34 dnl
35 AC_DEFUN([WINE_CHECK_SONAME],
36 [AC_REQUIRE([WINE_PATH_LDD])dnl
37 AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
38 m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
39 AC_MSG_CHECKING([for -l$1])
40 AC_CACHE_VAL(ac_Lib,
41 [ac_check_soname_save_LIBS=$LIBS
42 LIBS="-l$1 $5 $LIBS"
43   AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
44   [case "$LIBEXT" in
45     dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
46     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'`]) ;;
47     *) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest$ac_exeext | grep "ac_lib_pattern\\.$LIBEXT" | sed -e "s/^.*\(ac_lib_pattern\.$LIBEXT[[^      ]]*\).*$/\1/"';2,$d'`]) ;;
48   esac])
49   LIBS=$ac_check_soname_save_LIBS])dnl
50 AS_IF([test "x]AS_VAR_GET(ac_Lib)[" = "x"],
51       [AC_MSG_RESULT([not found])
52        $4],
53       [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
54        AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
55                           [Define to the soname of the lib$1 library.])
56        $3])dnl
57 m4_popdef([ac_lib_pattern])dnl
58 AS_VAR_POPDEF([ac_Lib])])
59
60 dnl **** Link C code with an assembly file ****
61 dnl
62 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
63 dnl
64 AC_DEFUN([WINE_TRY_ASM_LINK],
65 [AC_LINK_IFELSE(AC_LANG_PROGRAM([[$2]],[[asm($1); $3]]),[$4],[$5])])
66
67 dnl **** Check if we can link an empty program with special CFLAGS ****
68 dnl
69 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
70 dnl
71 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
72 dnl
73 AC_DEFUN([WINE_TRY_CFLAGS],
74 [AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
75 AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
76 [ac_wine_try_cflags_saved=$CFLAGS
77 CFLAGS="$CFLAGS $1"
78 AC_LINK_IFELSE(AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]]),
79                [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
80 CFLAGS=$ac_wine_try_cflags_saved])
81 AS_IF([test AS_VAR_GET(ac_var) = yes],
82       [m4_default([$2], [EXTRACFLAGS="$EXTRACFLAGS $1"])], [$3])dnl
83 AS_VAR_POPDEF([ac_var])])
84
85 dnl **** Check if we can link an empty shared lib (no main) with special CFLAGS ****
86 dnl
87 dnl Usage: WINE_TRY_SHLIB_FLAGS(flags,[action-if-yes,[action-if-no]])
88 dnl
89 AC_DEFUN([WINE_TRY_SHLIB_FLAGS],
90 [ac_wine_try_cflags_saved=$CFLAGS
91 CFLAGS="$CFLAGS $1"
92 AC_LINK_IFELSE([void myfunc() {}],[$2],[$3])
93 CFLAGS=$ac_wine_try_cflags_saved])
94
95 dnl **** Check whether we need to define a symbol on the compiler command line ****
96 dnl
97 dnl Usage: WINE_CHECK_DEFINE(name),[action-if-yes,[action-if-no]])
98 dnl
99 AC_DEFUN([WINE_CHECK_DEFINE],
100 [AS_VAR_PUSHDEF([ac_var],[ac_cv_cpp_def_$1])dnl
101 AC_CACHE_CHECK([whether we need to define $1],ac_var,
102     AC_EGREP_CPP(yes,[#ifndef $1
103 yes
104 #endif],
105     [AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)]))
106 AS_IF([test AS_VAR_GET(ac_var) = yes],
107       [CFLAGS="$CFLAGS -D$1"
108   LINTFLAGS="$LINTFLAGS -D$1"])dnl
109 AS_VAR_POPDEF([ac_var])])
110
111 dnl **** Check for functions with some extra libraries ****
112 dnl
113 dnl Usage: WINE_CHECK_LIB_FUNCS(funcs,libs,[action-if-found,[action-if-not-found]])
114 dnl
115 AC_DEFUN([WINE_CHECK_LIB_FUNCS],
116 [ac_wine_check_funcs_save_LIBS="$LIBS"
117 LIBS="$LIBS $2"
118 AC_CHECK_FUNCS([$1],[$3],[$4])
119 LIBS="$ac_wine_check_funcs_save_LIBS"])
120
121 dnl **** Check for a mingw program, trying the various mingw prefixes ****
122 dnl
123 dnl Usage: WINE_CHECK_MINGW_PROG(variable,prog,[value-if-not-found],[path])
124 dnl
125 AC_DEFUN([WINE_CHECK_MINGW_PROG],
126 [case "$host_cpu" in
127   i[[3456789]]86*)
128     ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32, mingw32msvc, mingw32],
129                         m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-ac_wine_prefix-$2 ]))" ;;
130   x86_64)
131     ac_prefix_list="m4_foreach([ac_wine_prefix],[pc-mingw32,w64-mingw32],[x86_64-ac_wine_prefix-$2 ])" ;;
132   *)
133     ac_prefix_list="" ;;
134 esac
135 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$3],[$4])])
136
137
138 dnl **** Define helper functions for creating config.status files ****
139 dnl
140 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
141 dnl
142 AC_DEFUN([WINE_CONFIG_HELPERS],
143 [ALL_MAKEFILE_DEPENDS="
144 # Rules automatically generated by configure
145
146 .INIT: Makefile
147 .MAKEFILEDEPS:
148 all: Makefile
149 Makefile: Makefile.in Make.rules config.status
150         @./config.status Make.tmp Makefile"
151
152 AC_SUBST(ALL_WINETEST_DEPENDS,["# Test binaries"])
153 AC_SUBST(ALL_TEST_BINARIES,"")
154
155 wine_fn_append_file ()
156 {
157     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
158 }
159
160 wine_fn_append_rule ()
161 {
162     AS_VAR_APPEND($[1],"$as_nl$[2]")
163 }
164
165 wine_fn_all_dir_rules ()
166 {
167     wine_fn_append_file ALL_DIRS $[1]
168     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
169 "__clean__: $[1]/__clean__
170 .PHONY: $[1]/__clean__
171 $[1]/__clean__: $[1]/Makefile
172         @cd $[1] && \$(MAKE) clean
173         \$(RM) $[1]/Makefile
174 $[1]/Makefile: $[1]/Makefile.in config.status $[2]
175         @./config.status --file $[1]/Makefile && cd $[1] && \$(MAKE) depend
176 depend: $[1]/__depend__
177 .PHONY: $[1]/__depend__
178 $[1]/__depend__: \$(MAKEDEP) dummy
179         @./config.status --file $[1]/Makefile && cd $[1] && \$(MAKE) depend"
180 }
181
182 wine_fn_config_makefile ()
183 {
184     ac_dir=$[1]
185     ac_enable=$[2]
186     AS_VAR_IF([$ac_enable],[no],[return 0])
187
188     wine_fn_all_dir_rules $ac_dir "Make.rules \$(MAKEDEP)"
189     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
190 "all: $ac_dir
191 .PHONY: $ac_dir
192 $ac_dir: $ac_dir/Makefile dummy
193         @cd $ac_dir && \$(MAKE)
194 install:: $ac_dir
195         @cd $ac_dir && \$(MAKE) install
196 install-lib:: $ac_dir
197         @cd $ac_dir && \$(MAKE) install-lib
198 install-dev:: $ac_dir
199         @cd $ac_dir && \$(MAKE) install-dev
200 uninstall:: $ac_dir/Makefile
201         @cd $ac_dir && \$(MAKE) uninstall"
202 }
203
204 wine_fn_config_lib ()
205 {
206     ac_name=$[1]
207     ac_dir=dlls/$ac_name
208     wine_fn_all_dir_rules $ac_dir "dlls/Makeimplib.rules \$(MAKEDEP)"
209     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
210 "all __builddeps__: $ac_dir
211 $ac_dir: $ac_dir/Makefile tools/widl tools/winebuild tools/winegcc include dummy
212         @cd $ac_dir && \$(MAKE)
213 install install-dev:: $ac_dir
214         @cd $ac_dir && \$(MAKE) install
215 uninstall:: $ac_dir/Makefile
216         @cd $ac_dir && \$(MAKE) uninstall"
217 }
218
219 wine_fn_config_dll ()
220 {
221     ac_dir=$[1]
222     ac_enable=$[2]
223     ac_implib=$[3]
224     ac_implibsrc=$[4]
225     ac_file="dlls/$ac_dir/lib$ac_implib"
226     ac_deps="tools/widl tools/winebuild tools/winegcc include"
227
228     wine_fn_all_dir_rules dlls/$ac_dir "dlls/Makedll.rules \$(MAKEDEP)"
229
230     AS_VAR_IF([$ac_enable],[no],
231               dnl enable_win16 is special in that it disables import libs too
232               [test "$ac_enable" != enable_win16 || return 0],
233               [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
234 "all: dlls/$ac_dir
235 .PHONY: dlls/$ac_dir
236 dlls/$ac_dir: dlls/$ac_dir/Makefile __builddeps__ dummy
237         @cd dlls/$ac_dir && \$(MAKE)
238 install:: dlls/$ac_dir/Makefile __builddeps__ 
239         @cd dlls/$ac_dir && \$(MAKE) install
240 install-lib:: dlls/$ac_dir/Makefile __builddeps__ 
241         @cd dlls/$ac_dir && \$(MAKE) install-lib
242 uninstall manpages htmlpages sgmlpages xmlpages:: dlls/$ac_dir/Makefile
243         @cd dlls/$ac_dir && \$(MAKE) \$[@]"])
244
245     if test -n "$ac_implibsrc"
246     then
247         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
248 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
249 __buildcrossdeps__: $ac_file.cross.a
250 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
251 $ac_file.def: dlls/$ac_dir/$ac_dir.spec dlls/$ac_dir/Makefile
252         @cd dlls/$ac_dir && \$(MAKE) \`basename \$[@]\`
253 $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: dlls/$ac_dir/Makefile dummy
254         @cd dlls/$ac_dir && \$(MAKE) \`basename \$[@]\`
255 install-dev:: dlls/$ac_dir/Makefile __builddeps__ 
256         @cd dlls/$ac_dir && \$(MAKE) install-dev"
257     elif test -n "$ac_implib"
258     then
259         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
260 "__builddeps__: $ac_file.$IMPLIBEXT
261 __buildcrossdeps__: $ac_file.cross.a
262 $ac_file.$IMPLIBEXT $ac_file.cross.a: dlls/$ac_dir/$ac_dir.spec dlls/$ac_dir/Makefile $ac_deps
263         @cd dlls/$ac_dir && \$(MAKE) \`basename \$[@]\`
264 install-dev:: dlls/$ac_dir/Makefile __builddeps__ 
265         @cd dlls/$ac_dir && \$(MAKE) install-dev"
266
267         if test "$ac_dir" != "$ac_implib"
268         then
269             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
270 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
271 __buildcrossdeps__: dlls/lib$ac_implib.cross.a
272 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
273         \$(RM) \$[@] && \$(LN_S) $ac_dir/lib$ac_implib.$IMPLIBEXT \$[@]
274 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
275         \$(RM) \$[@] && \$(LN_S) $ac_dir/lib$ac_implib.cross.a \$[@]
276 clean::
277         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
278         fi
279     fi
280 }
281
282 wine_fn_config_program ()
283 {
284     ac_dir=$[1]
285     ac_enable=$[2]
286     ac_install=$[3]
287     wine_fn_all_dir_rules programs/$ac_dir "programs/Makeprog.rules \$(MAKEDEP)"
288
289     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
290 "all: programs/$ac_dir
291 .PHONY: programs/$ac_dir
292 programs/$ac_dir: programs/$ac_dir/Makefile __builddeps__ dummy
293         @cd programs/$ac_dir && \$(MAKE)"
294
295     test -n "$ac_install" || return
296     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
297 "install install-lib:: programs/$ac_dir/Makefile __builddeps__
298         @cd programs/$ac_dir && \$(MAKE) install
299 uninstall:: programs/$ac_dir/Makefile
300         @cd programs/$ac_dir && \$(MAKE) uninstall"
301     if test "$ac_install" = installbin -a -n "$DLLEXT" -a "x$enable_tools" != xno
302     then
303         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
304 "install install-lib:: tools \$(DESTDIR)\$(bindir)
305         \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_dir
306 uninstall::
307         \$(RM) \$(DESTDIR)\$(bindir)/$ac_dir"
308     fi])
309 }
310
311 wine_fn_config_test ()
312 {
313     ac_dir=$[1]
314     ac_name=$[2]
315     wine_fn_append_file ALL_TEST_BINARIES $ac_name.exe
316     wine_fn_append_rule ALL_WINETEST_DEPENDS \
317 "$ac_name.exe: \$(TOPOBJDIR)/$ac_dir/$ac_name.exe$DLLEXT
318         cp \$(TOPOBJDIR)/$ac_dir/$ac_name.exe$DLLEXT \$[@] && \$(STRIP) \$[@]
319 $ac_name.rc:
320         echo \"$ac_name.exe TESTRES \\\"$ac_name.exe\\\"\" >\$[@] || (\$(RM) \$[@] && false)
321 $ac_name.res: $ac_name.rc $ac_name.exe"
322     wine_fn_all_dir_rules $ac_dir "Maketest.rules \$(MAKEDEP)"
323
324     AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
325 "all programs/winetest: $ac_dir
326 .PHONY: $ac_dir
327 $ac_dir: $ac_dir/Makefile __builddeps__ dummy
328         @cd $ac_dir && \$(MAKE)
329 crosstest: $ac_dir/__crosstest__
330 .PHONY: $ac_dir/__crosstest__
331 $ac_dir/__crosstest__: $ac_dir/Makefile __buildcrossdeps__ dummy
332         @cd $ac_dir && \$(MAKE) crosstest
333 test: $ac_dir/__test__
334 .PHONY: $ac_dir/__test__
335 $ac_dir/__test__: dummy
336         @cd $ac_dir && \$(MAKE) test
337 testclean::
338         \$(RM) $ac_dir/*.ok"])
339 }
340
341 wine_fn_config_tool ()
342 {
343     ac_dir=$[1]
344     ac_deps="Make.rules"
345     if test "$ac_dir" != tools
346     then
347         dnl makedep is in tools so tools makefile cannot depend on it
348         ac_deps="$ac_deps \$(MAKEDEP)"
349     fi
350     wine_fn_all_dir_rules $ac_dir "$ac_deps"
351
352     AS_VAR_IF([enable_tools],[no],,[case $ac_dir in
353       dnl tools directory has both install-lib and install-dev
354       tools) wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
355 "install:: $ac_dir
356         @cd $ac_dir && \$(MAKE) install
357 install-lib:: $ac_dir
358         @cd $ac_dir && \$(MAKE) install-lib
359 install-dev:: $ac_dir
360         @cd $ac_dir && \$(MAKE) install-dev" ;;
361       *)     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
362 "install install-dev:: $ac_dir
363         @cd $ac_dir && \$(MAKE) install" ;;
364       esac
365       wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
366 "uninstall:: $ac_dir/Makefile
367         @cd $ac_dir && \$(MAKE) uninstall
368 all __tooldeps__: $ac_dir
369 .PHONY: $ac_dir
370 $ac_dir: $ac_dir/Makefile libs/port dummy
371         @cd $ac_dir && \$(MAKE)"])
372 }
373
374 wine_fn_config_makerules ()
375 {
376     ac_rules=$[1]
377     ac_deps=$[2]
378     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
379 "$ac_rules: $ac_rules.in $ac_deps config.status
380         @./config.status $ac_rules
381 distclean::
382         \$(RM) $ac_rules"
383 }
384
385 wine_fn_config_symlink ()
386 {
387     ac_link=$[1]
388     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
389 "$ac_link:
390         @./config.status $ac_link
391 distclean::
392         \$(RM) $ac_link"
393 }])
394
395 dnl **** Define helper function to append a file to a makefile file list ****
396 dnl
397 dnl Usage: WINE_APPEND_FILE(var,file)
398 dnl
399 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
400
401 dnl **** Define helper function to append a rule to a makefile command list ****
402 dnl
403 dnl Usage: WINE_APPEND_RULE(var,rule)
404 dnl
405 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
406
407 dnl **** Create nonexistent directories from config.status ****
408 dnl
409 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
410 dnl
411 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
412 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
413
414 dnl **** Create symlinks from config.status ****
415 dnl
416 dnl Usage: WINE_CONFIG_SYMLINK(name,target,enable)
417 dnl
418 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
419 m4_ifval([$3],[if test "x$[$3]" != xno; then
420 ])AC_CONFIG_LINKS([$1:]m4_default([$2],[$1]))dnl
421 m4_if([$2],,[test "$srcdir" = "." || ])wine_fn_config_symlink $1[]m4_ifval([$3],[
422 fi])])
423
424 dnl **** Create a make rules file from config.status ****
425 dnl
426 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
427 dnl
428 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
429 wine_fn_config_makerules $1 $3
430 $2=$1
431 AC_SUBST_FILE([$2])dnl
432 AC_CONFIG_FILES([$1])])
433
434 dnl **** Create a makefile from config.status ****
435 dnl
436 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable)
437 dnl
438 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
439 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
440 wine_fn_config_makefile [$1] ac_enable[]dnl
441 AS_VAR_POPDEF([ac_enable])])
442
443 dnl **** Create a dll makefile from config.status ****
444 dnl
445 dnl Usage: WINE_CONFIG_DLL(name,enable,implib,implibsrc)
446 dnl
447 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
448 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
449 wine_fn_config_dll [$1] ac_enable [$3] m4_ifval([$4],["$4"])dnl
450 AS_VAR_POPDEF([ac_enable])])
451
452 dnl **** Create a program makefile from config.status ****
453 dnl
454 dnl Usage: WINE_CONFIG_PROGRAM(name,install,enable)
455 dnl
456 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
457 AS_VAR_PUSHDEF([ac_enable],m4_default([$3],[enable_]$1))dnl
458 wine_fn_config_program [$1] ac_enable [$2]dnl
459 AS_VAR_POPDEF([ac_enable])])
460
461 dnl **** Create a test makefile from config.status ****
462 dnl
463 dnl Usage: WINE_CONFIG_TEST(dir)
464 dnl
465 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
466 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
467 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
468 wine_fn_config_test $1 ac_name[]ac_suffix[]dnl
469 m4_popdef([ac_suffix])dnl
470 m4_popdef([ac_name])])
471
472 dnl **** Create a static lib makefile from config.status ****
473 dnl
474 dnl Usage: WINE_CONFIG_LIB(name)
475 dnl
476 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
477 wine_fn_config_lib $1])
478
479 dnl **** Create a tool makefile from config.status ****
480 dnl
481 dnl Usage: WINE_CONFIG_TOOL(name)
482 dnl
483 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
484 wine_fn_config_tool $1])
485
486 dnl **** Add a message to the list displayed at the end ****
487 dnl
488 dnl Usage: WINE_NOTICE(notice)
489 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
490 dnl Usage: WINE_WARNING(warning)
491 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
492 dnl Usage: WINE_PRINT_MESSAGES
493 dnl
494 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
495 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
496
497 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
498   x)   WINE_NOTICE([$3]) ;;
499   xno) ;;
500   *)   AC_MSG_ERROR([$3
501 This is an error since --with-$1 was requested.]) ;;
502 esac])])
503
504 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
505   x)   WINE_WARNING([$3]) ;;
506   xno) ;;
507   *)   AC_MSG_ERROR([$3
508 This is an error since --with-$1 was requested.]) ;;
509 esac])])
510
511 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
512   xno) ;;
513   *)   AC_MSG_ERROR([$3
514 Use the --without-$1 option if you really want this.]) ;;
515 esac])])
516
517 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
518 if test "x$wine_notices != "x; then
519     echo >&AS_MESSAGE_FD
520     IFS="|"
521     for msg in $wine_notices; do
522         IFS="$ac_save_IFS"
523         if test -n "$msg"; then
524             AC_MSG_NOTICE([$msg])
525         fi
526     done
527 fi
528 IFS="|"
529 for msg in $wine_warnings; do
530     IFS="$ac_save_IFS"
531     if test -n "$msg"; then
532         echo >&2
533         AC_MSG_WARN([$msg])
534     fi
535 done
536 IFS="$ac_save_IFS"])
537
538 dnl Local Variables:
539 dnl compile-command: "autoreconf --warnings=all"
540 dnl End: