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