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