msxml3: Store the DOMDocument/XMLSchemaCache object version.
[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, mingw32msvc],
132                         m4_foreach([ac_wine_cpu],[x86_64,amd64],[ac_wine_cpu-ac_wine_prefix-$2 ]))" ;;
133   *)
134     ac_prefix_list="" ;;
135 esac
136 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$3],[$4])])
137
138
139 dnl **** Define helper functions for creating config.status files ****
140 dnl
141 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
142 dnl
143 AC_DEFUN([WINE_CONFIG_HELPERS],
144 [ALL_MAKEFILE_DEPENDS="
145 # Rules automatically generated by configure
146
147 .INIT: Makefile
148 .MAKEFILEDEPS:
149 all: Makefile
150 Makefile: Makefile.in Make.vars.in Make.rules config.status
151         @./config.status Make.tmp Makefile"
152
153 AC_SUBST(ALL_WINETEST_DEPENDS,["# Test binaries"])
154 AC_SUBST(ALL_TEST_BINARIES,"")
155
156 wine_fn_append_file ()
157 {
158     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
159 }
160
161 wine_fn_append_rule ()
162 {
163     AS_VAR_APPEND($[1],"$as_nl$[2]")
164 }
165
166 wine_fn_all_dir_rules ()
167 {
168     ac_dir=$[1]
169     ac_alldeps=$[2]
170     ac_makedep="\$(MAKEDEP)"
171     ac_input=Make.vars.in:$ac_dir/Makefile.in
172     if test $ac_dir != tools
173     then
174         dnl makedep is in tools so tools makefile cannot depend on it
175         ac_alldeps="$[2] $ac_makedep"
176     fi
177     case $[2] in
178       *.in) ac_input=$ac_input:$[2] ;;
179       *) ac_makedep="$[2] $ac_makedep" ;;
180     esac
181
182     wine_fn_append_file ALL_DIRS $ac_dir
183     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
184 "__clean__: $ac_dir/__clean__
185 .PHONY: $ac_dir/__clean__
186 $ac_dir/__clean__: $ac_dir/Makefile
187         @cd $ac_dir && \$(MAKE) clean
188         \$(RM) $ac_dir/Makefile
189 $ac_dir/Makefile: $ac_dir/Makefile.in Make.vars.in config.status $ac_alldeps
190         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
191 depend: $ac_dir/__depend__
192 .PHONY: $ac_dir/__depend__
193 $ac_dir/__depend__: $ac_makedep dummy
194         @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
195 }
196
197 wine_fn_config_makefile ()
198 {
199     ac_dir=$[1]
200     ac_enable=$[2]
201     AS_VAR_IF([$ac_enable],[no],[return 0])
202
203     wine_fn_all_dir_rules $ac_dir Make.rules
204     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
205 "all: $ac_dir
206 .PHONY: $ac_dir
207 $ac_dir: $ac_dir/Makefile dummy
208         @cd $ac_dir && \$(MAKE)
209 install:: $ac_dir
210         @cd $ac_dir && \$(MAKE) install
211 install-lib:: $ac_dir
212         @cd $ac_dir && \$(MAKE) install-lib
213 install-dev:: $ac_dir
214         @cd $ac_dir && \$(MAKE) install-dev
215 uninstall:: $ac_dir/Makefile
216         @cd $ac_dir && \$(MAKE) uninstall"
217 }
218
219 wine_fn_config_lib ()
220 {
221     ac_name=$[1]
222     ac_dir=dlls/$ac_name
223     wine_fn_all_dir_rules $ac_dir dlls/Makeimplib.rules
224     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
225 "all __builddeps__: $ac_dir
226 $ac_dir: $ac_dir/Makefile tools/widl tools/winebuild tools/winegcc include dummy
227         @cd $ac_dir && \$(MAKE)
228 install install-dev:: $ac_dir
229         @cd $ac_dir && \$(MAKE) install
230 uninstall:: $ac_dir/Makefile
231         @cd $ac_dir && \$(MAKE) uninstall"
232 }
233
234 wine_fn_config_dll ()
235 {
236     ac_name=$[1]
237     ac_dir=dlls/$ac_name
238     ac_enable=$[2]
239     ac_implib=$[3]
240     ac_implibsrc=$[4]
241     ac_file=$ac_dir/lib$ac_implib
242     ac_deps="tools/widl tools/winebuild tools/winegcc include"
243     ac_implibflags=""
244
245     case $ac_name in
246       *16) ac_implibflags=" -m16" ;;
247     esac
248
249     wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules
250
251     AS_VAR_IF([$ac_enable],[no],
252               dnl enable_win16 is special in that it disables import libs too
253               [test "$ac_enable" != enable_win16 || return 0],
254               [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
255 "all: $ac_dir
256 .PHONY: $ac_dir
257 $ac_dir: $ac_dir/Makefile __builddeps__ dummy
258         @cd $ac_dir && \$(MAKE)
259 install:: $ac_dir/Makefile __builddeps__ 
260         @cd $ac_dir && \$(MAKE) install
261 install-lib:: $ac_dir/Makefile __builddeps__ 
262         @cd $ac_dir && \$(MAKE) install-lib
263 uninstall manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
264         @cd $ac_dir && \$(MAKE) \$[@]"])
265
266     if test -n "$ac_implibsrc"
267     then
268         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
269 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
270 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
271 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
272         @cd $ac_dir && \$(MAKE) lib$ac_implib.def
273 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
274         @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
275 install-dev:: $ac_dir/Makefile __builddeps__ 
276         @cd $ac_dir && \$(MAKE) install-dev"
277         if test "x$CROSSTEST_DISABLE" = x
278         then
279             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
280 "__builddeps__: $ac_file.cross.a
281 $ac_file.cross.a: $ac_dir/Makefile dummy
282         @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
283         fi
284
285     elif test -n "$ac_implib"
286     then
287         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
288 "__builddeps__: $ac_file.$IMPLIBEXT
289 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
290         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
291 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
292         \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
293 install-dev:: $ac_dir/Makefile __builddeps__ 
294         @cd $ac_dir && \$(MAKE) install-dev"
295         if test "x$CROSSTEST_DISABLE" = x
296         then
297             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
298 "__builddeps__: $ac_file.cross.a
299 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
300         \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
301         fi
302
303         if test "$ac_name" != "$ac_implib"
304         then
305             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
306 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
307 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
308         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
309 clean::
310         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
311             if test "x$CROSSTEST_DISABLE" = x
312             then
313                 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
314 "__builddeps__: dlls/lib$ac_implib.cross.a
315 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
316         \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
317             fi
318         fi
319     fi
320 }
321
322 wine_fn_config_program ()
323 {
324     ac_name=$[1]
325     ac_dir=programs/$ac_name
326     ac_enable=$[2]
327     ac_install=$[3]
328     wine_fn_all_dir_rules $ac_dir programs/Makeprog.rules
329
330     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
331 "all: $ac_dir
332 .PHONY: $ac_dir
333 $ac_dir: $ac_dir/Makefile __builddeps__ dummy
334         @cd $ac_dir && \$(MAKE)"
335
336     test -n "$ac_install" || return
337     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
338 "install install-lib:: $ac_dir/Makefile __builddeps__
339         @cd $ac_dir && \$(MAKE) install
340 uninstall:: $ac_dir/Makefile
341         @cd $ac_dir && \$(MAKE) uninstall"
342     if test "$ac_install" = installbin -a -n "$DLLEXT" -a "x$enable_tools" != xno
343     then
344         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
345 "install install-lib:: tools \$(DESTDIR)\$(bindir)
346         \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
347 uninstall::
348         \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
349     fi])
350 }
351
352 wine_fn_config_test ()
353 {
354     ac_dir=$[1]
355     ac_name=$[2]
356     wine_fn_append_file ALL_TEST_BINARIES $ac_name.exe
357     wine_fn_append_rule ALL_WINETEST_DEPENDS \
358 "$ac_name.exe: \$(top_builddir)/$ac_dir/$ac_name.exe$DLLEXT
359         cp \$(top_builddir)/$ac_dir/$ac_name.exe$DLLEXT \$[@] && \$(STRIP) \$[@]
360 $ac_name.rc:
361         echo \"$ac_name.exe TESTRES \\\"$ac_name.exe\\\"\" >\$[@] || (\$(RM) \$[@] && false)
362 $ac_name.res: $ac_name.rc $ac_name.exe"
363     wine_fn_all_dir_rules $ac_dir Maketest.rules
364
365     AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
366 "all programs/winetest: $ac_dir
367 .PHONY: $ac_dir
368 $ac_dir: $ac_dir/Makefile __builddeps__ dummy
369         @cd $ac_dir && \$(MAKE)
370 test: $ac_dir/__test__
371 .PHONY: $ac_dir/__test__
372 $ac_dir/__test__: dummy
373         @cd $ac_dir && \$(MAKE) test
374 testclean::
375         \$(RM) $ac_dir/*.ok"
376
377         if test "x$CROSSTEST_DISABLE" = x
378         then
379             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
380 "crosstest: $ac_dir/__crosstest__
381 .PHONY: $ac_dir/__crosstest__
382 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
383         @cd $ac_dir && \$(MAKE) crosstest"
384         fi])
385 }
386
387 wine_fn_config_tool ()
388 {
389     ac_dir=$[1]
390     wine_fn_all_dir_rules $ac_dir Make.rules
391
392     AS_VAR_IF([enable_tools],[no],,[case $ac_dir in
393       dnl tools directory has both install-lib and install-dev
394       tools) wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
395 "install:: $ac_dir
396         @cd $ac_dir && \$(MAKE) install
397 install-lib:: $ac_dir
398         @cd $ac_dir && \$(MAKE) install-lib
399 install-dev:: $ac_dir
400         @cd $ac_dir && \$(MAKE) install-dev" ;;
401       *)     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
402 "install install-dev:: $ac_dir
403         @cd $ac_dir && \$(MAKE) install" ;;
404       esac
405       wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
406 "uninstall:: $ac_dir/Makefile
407         @cd $ac_dir && \$(MAKE) uninstall
408 all __tooldeps__: $ac_dir
409 .PHONY: $ac_dir
410 $ac_dir: $ac_dir/Makefile libs/port dummy
411         @cd $ac_dir && \$(MAKE)"
412       case $ac_dir in
413         tools/winebuild) wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(WINEBUILD): $ac_dir" ;;
414       esac])
415 }
416
417 wine_fn_config_makerules ()
418 {
419     ac_rules=$[1]
420     ac_deps=$[2]
421     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
422 "$ac_rules: $ac_rules.in $ac_deps config.status
423         @./config.status $ac_rules
424 distclean::
425         \$(RM) $ac_rules"
426 }
427
428 wine_fn_config_symlink ()
429 {
430     ac_link=$[1]
431     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
432 "$ac_link:
433         @./config.status $ac_link
434 distclean::
435         \$(RM) $ac_link"
436 }
437
438 if test "x$CROSSTEST_DISABLE" != x
439 then
440     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
441 "crosstest:
442         @echo \"crosstest is not supported (mingw not installed?)\" && false"
443 fi])
444
445 dnl **** Define helper function to append a file to a makefile file list ****
446 dnl
447 dnl Usage: WINE_APPEND_FILE(var,file)
448 dnl
449 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
450
451 dnl **** Define helper function to append a rule to a makefile command list ****
452 dnl
453 dnl Usage: WINE_APPEND_RULE(var,rule)
454 dnl
455 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
456
457 dnl **** Create nonexistent directories from config.status ****
458 dnl
459 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
460 dnl
461 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
462 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
463
464 dnl **** Create symlinks from config.status ****
465 dnl
466 dnl Usage: WINE_CONFIG_SYMLINK(name,target,enable)
467 dnl
468 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
469 m4_ifval([$3],[if test "x$[$3]" != xno; then
470 ])AC_CONFIG_LINKS([$1:]m4_default([$2],[$1]))dnl
471 m4_if([$2],,[test "$srcdir" = "." || ])wine_fn_config_symlink $1[]m4_ifval([$3],[
472 fi])])
473
474 dnl **** Create a make rules file from config.status ****
475 dnl
476 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
477 dnl
478 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
479 wine_fn_config_makerules $1 $3
480 $2=$1
481 AC_SUBST_FILE([$2])dnl
482 AC_CONFIG_FILES([$1])])
483
484 dnl **** Create a makefile from config.status ****
485 dnl
486 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable)
487 dnl
488 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
489 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
490 wine_fn_config_makefile [$1] ac_enable[]dnl
491 AS_VAR_POPDEF([ac_enable])])
492
493 dnl **** Create a dll makefile from config.status ****
494 dnl
495 dnl Usage: WINE_CONFIG_DLL(name,enable,implib,implibsrc)
496 dnl
497 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
498 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
499 wine_fn_config_dll [$1] ac_enable [$3] m4_ifval([$4],["$4"])dnl
500 AS_VAR_POPDEF([ac_enable])])
501
502 dnl **** Create a program makefile from config.status ****
503 dnl
504 dnl Usage: WINE_CONFIG_PROGRAM(name,install,enable)
505 dnl
506 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
507 AS_VAR_PUSHDEF([ac_enable],m4_default([$3],[enable_]$1))dnl
508 wine_fn_config_program [$1] ac_enable [$2]dnl
509 AS_VAR_POPDEF([ac_enable])])
510
511 dnl **** Create a test makefile from config.status ****
512 dnl
513 dnl Usage: WINE_CONFIG_TEST(dir)
514 dnl
515 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
516 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
517 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
518 wine_fn_config_test $1 ac_name[]ac_suffix[]dnl
519 m4_popdef([ac_suffix])dnl
520 m4_popdef([ac_name])])
521
522 dnl **** Create a static lib makefile from config.status ****
523 dnl
524 dnl Usage: WINE_CONFIG_LIB(name)
525 dnl
526 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
527 wine_fn_config_lib $1])
528
529 dnl **** Create a tool makefile from config.status ****
530 dnl
531 dnl Usage: WINE_CONFIG_TOOL(name)
532 dnl
533 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
534 wine_fn_config_tool $1])
535
536 dnl **** Add a message to the list displayed at the end ****
537 dnl
538 dnl Usage: WINE_NOTICE(notice)
539 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
540 dnl Usage: WINE_WARNING(warning)
541 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
542 dnl Usage: WINE_PRINT_MESSAGES
543 dnl
544 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
545 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
546
547 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
548   x)   WINE_NOTICE([$3]) ;;
549   xno) ;;
550   *)   AC_MSG_ERROR([$3
551 This is an error since --with-$1 was requested.]) ;;
552 esac])])
553
554 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
555   x)   WINE_WARNING([$3]) ;;
556   xno) ;;
557   *)   AC_MSG_ERROR([$3
558 This is an error since --with-$1 was requested.]) ;;
559 esac])])
560
561 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
562   xno) ;;
563   *)   AC_MSG_ERROR([$3
564 Use the --without-$1 option if you really want this.]) ;;
565 esac])])
566
567 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
568 if test "x$wine_notices != "x; then
569     echo >&AS_MESSAGE_FD
570     IFS="|"
571     for msg in $wine_notices; do
572         IFS="$ac_save_IFS"
573         if test -n "$msg"; then
574             AC_MSG_NOTICE([$msg])
575         fi
576     done
577 fi
578 IFS="|"
579 for msg in $wine_warnings; do
580     IFS="$ac_save_IFS"
581     if test -n "$msg"; then
582         echo >&2
583         AC_MSG_WARN([$msg])
584     fi
585 done
586 IFS="$ac_save_IFS"])
587
588 dnl Local Variables:
589 dnl compile-command: "autoreconf --warnings=all"
590 dnl End: