1 dnl Macros used to build the Wine configure script
3 dnl Copyright 2002 Alexandre Julliard
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.
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.
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
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
25 dnl **** Get the ldd program name; used by WINE_GET_SONAME ****
27 dnl Usage: WINE_PATH_LDD
29 AC_DEFUN([WINE_PATH_LDD],[AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)])
31 dnl **** Extract the soname of a library ****
33 dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
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])
41 [ac_check_soname_save_LIBS=$LIBS
43 AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
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'`]) ;;
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])
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.])
57 m4_popdef([ac_lib_pattern])dnl
58 AS_VAR_POPDEF([ac_Lib])])
60 dnl **** Link C code with an assembly file ****
62 dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
64 AC_DEFUN([WINE_TRY_ASM_LINK],
65 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
67 dnl **** Check if we can link an empty program with special CFLAGS ****
69 dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
71 dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
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
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])])
85 dnl **** Check if we can link an empty shared lib (no main) with special CFLAGS ****
87 dnl Usage: WINE_TRY_SHLIB_FLAGS(flags,[action-if-yes,[action-if-no]])
89 AC_DEFUN([WINE_TRY_SHLIB_FLAGS],
90 [ac_wine_try_cflags_saved=$CFLAGS
92 AC_LINK_IFELSE([AC_LANG_SOURCE([void myfunc() {}])],[$2],[$3])
93 CFLAGS=$ac_wine_try_cflags_saved])
95 dnl **** Check whether we need to define a symbol on the compiler command line ****
97 dnl Usage: WINE_CHECK_DEFINE(name),[action-if-yes,[action-if-no]])
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
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])])
111 dnl **** Check for functions with some extra libraries ****
113 dnl Usage: WINE_CHECK_LIB_FUNCS(funcs,libs,[action-if-found,[action-if-not-found]])
115 AC_DEFUN([WINE_CHECK_LIB_FUNCS],
116 [ac_wine_check_funcs_save_LIBS="$LIBS"
118 AC_CHECK_FUNCS([$1],[$3],[$4])
119 LIBS="$ac_wine_check_funcs_save_LIBS"])
121 dnl **** Check for a mingw program, trying the various mingw prefixes ****
123 dnl Usage: WINE_CHECK_MINGW_PROG(variable,prog,[value-if-not-found],[path])
125 AC_DEFUN([WINE_CHECK_MINGW_PROG],
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 ]))" ;;
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 ]))" ;;
136 AC_CHECK_PROGS([$1],[$ac_prefix_list],[$3],[$4])])
139 dnl **** Define helper functions for creating config.status files ****
141 dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
143 AC_DEFUN([WINE_CONFIG_HELPERS],
144 [ALL_MAKEFILE_DEPENDS="
145 # Rules automatically generated by configure
150 Makefile: Makefile.in Make.vars.in Make.rules config.status
151 @./config.status Make.tmp Makefile"
154 AC_SUBST(ALL_TEST_RESOURCES,"")
156 wine_fn_append_file ()
158 AS_VAR_APPEND($[1]," \\$as_nl $[2]")
161 wine_fn_append_rule ()
163 AS_VAR_APPEND($[1],"$as_nl$[2]")
168 expr ",$[2]," : ".*,$[1],.*" >/dev/null
171 wine_fn_all_dir_rules ()
175 ac_makedep="\$(MAKEDEP)"
176 ac_input=Make.vars.in:$ac_dir/Makefile.in
177 if test $ac_dir != tools
179 dnl makedep is in tools so tools makefile cannot depend on it
180 ac_alldeps="$[2] $ac_makedep"
183 *.in) ac_input=$ac_input:$[2] ;;
184 *) ac_makedep="$[2] $ac_makedep" ;;
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"
202 wine_fn_config_makefile ()
208 AS_VAR_IF([$ac_enable],[no],[return 0])
210 wine_fn_all_dir_rules $ac_dir ${ac_rules:-Make.rules}
211 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
214 $ac_dir: $ac_dir/Makefile dummy
215 @cd $ac_dir && \$(MAKE)"
217 wine_fn_has_flag install-lib $ac_flags || wine_fn_has_flag install-dev $ac_flags || return
219 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
220 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
221 $ac_dir/__install__:: $ac_dir
222 @cd $ac_dir && \$(MAKE) install
223 $ac_dir/__uninstall__:: $ac_dir/Makefile
224 @cd $ac_dir && \$(MAKE) uninstall
225 install:: $ac_dir/__install__
226 __uninstall__: $ac_dir/__uninstall__"
228 if wine_fn_has_flag install-lib $ac_flags
230 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
231 ".PHONY: $ac_dir/__install-lib__
232 $ac_dir/__install-lib__:: $ac_dir
233 @cd $ac_dir && \$(MAKE) install-lib
234 install-lib:: $ac_dir/__install-lib__"
237 if wine_fn_has_flag install-dev $ac_flags
239 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
240 ".PHONY: $ac_dir/__install-dev
241 $ac_dir/__install-dev__:: $ac_dir
242 @cd $ac_dir && \$(MAKE) install-dev
243 install-dev:: $ac_dir/__install-dev__"
247 wine_fn_config_lib ()
252 wine_fn_config_makefile $ac_dir enable_$ac_name "$ac_flags" dlls/Makeimplib.rules
254 if wine_fn_has_flag install-dev $ac_flags
257 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
258 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
259 $ac_dir/__install__:: $ac_dir \$(DESTDIR)\$(dlldir)
260 \$(INSTALL_DATA) $ac_dir/lib$ac_name.a \$(DESTDIR)\$(dlldir)/lib$ac_name.a
261 $ac_dir/__uninstall__::
262 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_name.a
263 install install-dev:: $ac_dir/__install__
264 __uninstall__: $ac_dir/__uninstall__"
267 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__builddeps__: $ac_dir"
268 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: tools/widl tools/winebuild tools/winegcc include"
271 wine_fn_config_dll ()
277 ac_implib=${4:-$ac_name}
278 ac_file=$ac_dir/lib$ac_implib
279 ac_deps="tools/widl tools/winebuild tools/winegcc include"
283 *16) ac_implibflags=" -m16" ;;
286 wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules
288 AS_VAR_IF([$ac_enable],[no],
289 dnl enable_win16 is special in that it disables import libs too
290 [test "$ac_enable" != enable_win16 || return 0],
291 [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
293 .PHONY: $ac_dir $ac_dir/__install__ $ac_dir/__install-lib__ $ac_dir/__uninstall__
294 $ac_dir: $ac_dir/Makefile __builddeps__ dummy
295 @cd $ac_dir && \$(MAKE)
296 $ac_dir/__install__:: $ac_dir/Makefile __builddeps__
297 @cd $ac_dir && \$(MAKE) install
298 $ac_dir/__install-lib__:: $ac_dir/Makefile __builddeps__
299 @cd $ac_dir && \$(MAKE) install-lib
300 $ac_dir/__uninstall__:: $ac_dir/Makefile
301 @cd $ac_dir && \$(MAKE) uninstall
302 install:: $ac_dir/__install__
303 install-lib:: $ac_dir/__install-lib__
304 __uninstall__: $ac_dir/__uninstall__
305 manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
306 @cd $ac_dir && \$(MAKE) \$[@]"
308 if test "x$enable_maintainer_mode" = xyes
310 if wine_fn_has_flag mc $ac_flags
312 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
313 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
314 "$ac_dir/msg.pot: $ac_dir"
316 if wine_fn_has_flag po $ac_flags
318 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
319 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
320 "$ac_dir/rsrc.pot: $ac_dir"
324 if wine_fn_has_flag staticimplib $ac_flags
326 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
327 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
328 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
329 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
330 @cd $ac_dir && \$(MAKE) lib$ac_implib.def
331 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
332 @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
333 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
334 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
335 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
336 $ac_dir/__uninstall__::
337 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
338 install install-dev:: $ac_dir/__install-dev__
339 __uninstall__: $ac_dir/__uninstall__"
341 if test "$IMPLIBEXT" != "$STATIC_IMPLIBEXT"
343 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
344 "$ac_dir/__install-dev__:: $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir) __builddeps__
345 \$(INSTALL_DATA) $ac_file.$STATIC_IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT
346 $ac_dir/__uninstall__::
347 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$STATIC_IMPLIBEXT"
350 if test "x$CROSSTEST_DISABLE" = x
352 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
353 "__builddeps__: $ac_file.cross.a
354 $ac_file.cross.a: $ac_dir/Makefile dummy
355 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
358 elif wine_fn_has_flag implib $ac_flags
360 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
361 "__builddeps__: $ac_file.$IMPLIBEXT
362 $ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
363 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
364 $ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
365 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
366 .PHONY: $ac_dir/__install-dev__ $ac_dir/__uninstall__
367 $ac_dir/__install-dev__:: $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)
368 \$(INSTALL_DATA) $ac_file.$IMPLIBEXT \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
369 $ac_dir/__uninstall__::
370 \$(RM) \$(DESTDIR)\$(dlldir)/lib$ac_implib.$IMPLIBEXT
371 install install-dev:: $ac_dir/__install-dev__
372 __uninstall__: $ac_dir/__uninstall__"
373 if test "x$CROSSTEST_DISABLE" = x
375 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
376 "__builddeps__: $ac_file.cross.a
377 $ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
378 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
381 if test "$ac_name" != "$ac_implib"
383 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
384 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
385 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
386 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
388 \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
389 if test "x$CROSSTEST_DISABLE" = x
391 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
392 "__builddeps__: dlls/lib$ac_implib.cross.a
393 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
394 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
400 wine_fn_config_program ()
403 ac_dir=programs/$ac_name
406 wine_fn_all_dir_rules $ac_dir programs/Makeprog.rules
408 AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
411 $ac_dir: $ac_dir/Makefile __builddeps__ dummy
412 @cd $ac_dir && \$(MAKE)"
414 if test "x$enable_maintainer_mode" = xyes
416 if wine_fn_has_flag mc $ac_flags
418 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
419 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
420 "$ac_dir/msg.pot: $ac_dir"
422 if wine_fn_has_flag po $ac_flags
424 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
425 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
426 "$ac_dir/rsrc.pot: $ac_dir"
430 wine_fn_has_flag install $ac_flags || return
431 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
432 ".PHONY: $ac_dir/__install__ $ac_dir/__uninstall__
433 $ac_dir/__install__:: $ac_dir/Makefile __builddeps__
434 @cd $ac_dir && \$(MAKE) install
435 $ac_dir/__uninstall__:: $ac_dir/Makefile
436 @cd $ac_dir && \$(MAKE) uninstall
437 install install-lib:: $ac_dir/__install__
438 __uninstall__: $ac_dir/__uninstall__"
439 if test -n "$DLLEXT" -a "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
441 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
442 "$ac_dir/__install__:: tools \$(DESTDIR)\$(bindir)
443 \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
444 $ac_dir/__uninstall__::
445 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
449 wine_fn_config_test ()
454 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
455 wine_fn_all_dir_rules $ac_dir Maketest.rules
457 AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
460 $ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
461 @cd $ac_dir && \$(MAKE)
462 programs/winetest: $ac_dir
463 check test: $ac_dir/__test__
464 .PHONY: $ac_dir/__test__
465 $ac_dir/__test__: dummy
466 @cd $ac_dir && \$(MAKE) test
470 if test "x$CROSSTEST_DISABLE" = x
472 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
473 "crosstest: $ac_dir/__crosstest__
474 .PHONY: $ac_dir/__crosstest__
475 $ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
476 @cd $ac_dir && \$(MAKE) crosstest"
480 wine_fn_config_tool ()
484 AS_VAR_IF([enable_tools],[no],[return 0])
486 wine_fn_config_makefile $ac_dir enable_tools $ac_flags
488 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "__tooldeps__: $ac_dir"
489 wine_fn_append_rule ALL_MAKEFILE_DEPENDS "$ac_dir: libs/port"
491 tools/winebuild) wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(WINEBUILD): $ac_dir" ;;
495 wine_fn_config_makerules ()
499 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
500 "$ac_rules: $ac_rules.in $ac_deps config.status
501 @./config.status $ac_rules
506 wine_fn_config_symlink ()
509 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
511 @./config.status $ac_link
516 if test "x$CROSSTEST_DISABLE" != x
518 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
520 @echo \"crosstest is not supported (mingw not installed?)\" && false"
523 dnl **** Define helper function to append a file to a makefile file list ****
525 dnl Usage: WINE_APPEND_FILE(var,file)
527 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
529 dnl **** Define helper function to append a rule to a makefile command list ****
531 dnl Usage: WINE_APPEND_RULE(var,rule)
533 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
535 dnl **** Create nonexistent directories from config.status ****
537 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
539 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
540 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
542 dnl **** Create symlinks from config.status ****
544 dnl Usage: WINE_CONFIG_SYMLINK(name,target,enable)
546 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
547 m4_ifval([$3],[if test "x$[$3]" != xno; then
548 ])AC_CONFIG_LINKS([$1:]m4_default([$2],[$1]))dnl
549 m4_if([$2],,[test "$srcdir" = "." || ])wine_fn_config_symlink $1[]m4_ifval([$3],[
552 dnl **** Create a make rules file from config.status ****
554 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
556 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
557 wine_fn_config_makerules $1 $3
559 AC_SUBST_FILE([$2])dnl
560 AC_CONFIG_FILES([$1])])
562 dnl **** Create a makefile from config.status ****
564 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,flags)
566 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
567 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
568 wine_fn_config_makefile [$1] ac_enable [$3]dnl
569 AS_VAR_POPDEF([ac_enable])])
571 dnl **** Create a dll makefile from config.status ****
573 dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
575 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
576 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
577 wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
578 AS_VAR_POPDEF([ac_enable])])
580 dnl **** Create a program makefile from config.status ****
582 dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
584 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
585 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
586 wine_fn_config_program [$1] ac_enable [$3]dnl
587 AS_VAR_POPDEF([ac_enable])])
589 dnl **** Create a test makefile from config.status ****
591 dnl Usage: WINE_CONFIG_TEST(dir,flags)
593 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
594 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
595 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
596 wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
597 m4_popdef([ac_suffix])dnl
598 m4_popdef([ac_name])])
600 dnl **** Create a static lib makefile from config.status ****
602 dnl Usage: WINE_CONFIG_LIB(name,flags)
604 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
605 wine_fn_config_lib [$1] [$2]])
607 dnl **** Create a tool makefile from config.status ****
609 dnl Usage: WINE_CONFIG_TOOL(name,flags)
611 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
612 wine_fn_config_tool [$1] [$2]])
614 dnl **** Add a message to the list displayed at the end ****
616 dnl Usage: WINE_NOTICE(notice)
617 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
618 dnl Usage: WINE_WARNING(warning)
619 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
620 dnl Usage: WINE_PRINT_MESSAGES
622 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
623 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
625 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
626 x) WINE_NOTICE([$3]) ;;
629 This is an error since --with-$1 was requested.]) ;;
632 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
633 x) WINE_WARNING([$3]) ;;
636 This is an error since --with-$1 was requested.]) ;;
639 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
642 Use the --without-$1 option if you really want this.]) ;;
645 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
646 if test "x$wine_notices != "x; then
649 for msg in $wine_notices; do
651 if test -n "$msg"; then
652 AC_MSG_NOTICE([$msg])
657 for msg in $wine_warnings; do
659 if test -n "$msg"; then
667 dnl compile-command: "autoreconf --warnings=all"