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