makefiles: Output the top-level installation rules explicitly for each module.
[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 [AC_SUBST(ALL_MAKEFILE_DEPENDS,["# Makefile dependencies
144 Makefile: Makefile.in Make.rules config.status"])
145 AC_SUBST(ALL_WINETEST_DEPENDS,["# Test binaries"])
146
147 AC_SUBST(ALL_MAKERULES,"")
148 AC_SUBST(ALL_SYMLINKS,"")
149 AC_SUBST(ALL_DIRS,"")
150 AC_SUBST(ALL_TEST_BINARIES,"")
151 AC_SUBST(ALL_PROGRAM_BIN_INSTALL_DIRS,"")
152
153 wine_fn_append_file ()
154 {
155     AS_VAR_APPEND($[1]," \\$as_nl       $[2]")
156 }
157
158 wine_fn_append_rule ()
159 {
160     AS_VAR_APPEND($[1],"$as_nl$[2]")
161 }
162
163 wine_fn_config_makefile ()
164 {
165     ac_dir=$[1]
166     ac_enable=$[2]
167     wine_fn_append_file ALL_DIRS $ac_dir
168     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
169 "$ac_dir/__clean__: $ac_dir/Makefile
170 $ac_dir/Makefile $ac_dir/__depend__: $ac_dir/Makefile.in config.status Make.rules \$(MAKEDEP)
171         @./config.status --file $ac_dir/Makefile && cd $ac_dir && \$(MAKE) depend"
172
173     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
174 "all: $ac_dir
175 $ac_dir: $ac_dir/Makefile
176 install:: $ac_dir
177         @cd $ac_dir && \$(MAKE) install
178 install-lib:: $ac_dir
179         @cd $ac_dir && \$(MAKE) install-lib
180 install-dev:: $ac_dir
181         @cd $ac_dir && \$(MAKE) install-dev
182 uninstall:: $ac_dir/Makefile
183         @cd $ac_dir && \$(MAKE) uninstall"])
184 }
185
186 wine_fn_config_lib ()
187 {
188     ac_name=$[1]
189     ac_dir=dlls/$ac_name
190     wine_fn_append_file ALL_DIRS $ac_dir
191     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
192 "all __builddeps__: $ac_dir
193 __buildcrossdeps__: $ac_dir/lib$ac_name.cross.a
194 $ac_dir $ac_dir/lib$ac_name.cross.a: $ac_dir/Makefile tools/widl tools/winebuild tools/winegcc include
195 $ac_dir/lib$ac_name.cross.a: dummy
196         @cd $ac_dir && \$(MAKE) lib$ac_name.cross.a
197 $ac_dir/__clean__: $ac_dir/Makefile
198 $ac_dir/Makefile $ac_dir/__depend__: $ac_dir/Makefile.in config.status dlls/Makeimplib.rules \$(MAKEDEP)
199         @./config.status --file $ac_dir/Makefile && cd $ac_dir && \$(MAKE) depend
200 install install-dev:: $ac_dir
201         @cd $ac_dir && \$(MAKE) install
202 uninstall:: $ac_dir/Makefile
203         @cd $ac_dir && \$(MAKE) uninstall"
204 }
205
206 wine_fn_config_dll ()
207 {
208     ac_dir=$[1]
209     ac_enable=$[2]
210     ac_implib=$[3]
211     ac_implibsrc=$[4]
212     ac_file="dlls/$ac_dir/lib$ac_implib"
213     ac_deps="tools/widl tools/winebuild tools/winegcc include"
214
215     wine_fn_append_file ALL_DIRS dlls/$ac_dir
216     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
217 "dlls/$ac_dir/__clean__: dlls/$ac_dir/Makefile
218 dlls/$ac_dir/Makefile dlls/$ac_dir/__depend__: dlls/$ac_dir/Makefile.in config.status dlls/Makedll.rules \$(MAKEDEP)
219         @./config.status --file dlls/$ac_dir/Makefile && cd dlls/$ac_dir && \$(MAKE) depend"
220
221     AS_VAR_IF([$ac_enable],[no],
222               dnl enable_win16 is special in that it disables import libs too
223               [test "$ac_enable" != enable_win16 || return 0],
224               [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
225 "all: dlls/$ac_dir
226 dlls/$ac_dir: dlls/$ac_dir/Makefile __builddeps__ 
227 install:: dlls/$ac_dir/Makefile __builddeps__ 
228         @cd dlls/$ac_dir && \$(MAKE) install
229 install-lib:: dlls/$ac_dir/Makefile __builddeps__ 
230         @cd dlls/$ac_dir && \$(MAKE) install-lib
231 uninstall manpages htmlpages sgmlpages xmlpages:: dlls/$ac_dir/Makefile
232         @cd dlls/$ac_dir && \$(MAKE) \$[@]"])
233
234     if test -n "$ac_implibsrc"
235     then
236         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
237 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
238 __buildcrossdeps__: $ac_file.cross.a
239 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
240 $ac_file.def: dlls/$ac_dir/$ac_dir.spec dlls/$ac_dir/Makefile
241         @cd dlls/$ac_dir && \$(MAKE) \`basename \$[@]\`
242 $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: dlls/$ac_dir/Makefile dummy
243         @cd dlls/$ac_dir && \$(MAKE) \`basename \$[@]\`
244 install-dev:: dlls/$ac_dir/Makefile __builddeps__ 
245         @cd dlls/$ac_dir && \$(MAKE) install-dev"
246     elif test -n "$ac_implib"
247     then
248         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
249 "__builddeps__: $ac_file.$IMPLIBEXT
250 __buildcrossdeps__: $ac_file.cross.a
251 $ac_file.$IMPLIBEXT $ac_file.cross.a: dlls/$ac_dir/$ac_dir.spec dlls/$ac_dir/Makefile $ac_deps
252         @cd dlls/$ac_dir && \$(MAKE) \`basename \$[@]\`
253 install-dev:: dlls/$ac_dir/Makefile __builddeps__ 
254         @cd dlls/$ac_dir && \$(MAKE) install-dev"
255
256         if test "$ac_dir" != "$ac_implib"
257         then
258             wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
259 "__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
260 __buildcrossdeps__: dlls/lib$ac_implib.cross.a
261 dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
262         \$(RM) \$[@] && \$(LN_S) $ac_dir/lib$ac_implib.$IMPLIBEXT \$[@]
263 dlls/lib$ac_implib.cross.a: $ac_file.cross.a
264         \$(RM) \$[@] && \$(LN_S) $ac_dir/lib$ac_implib.cross.a \$[@]
265 clean::
266         \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
267         fi
268     fi
269 }
270
271 wine_fn_config_program ()
272 {
273     ac_dir=$[1]
274     ac_enable=$[2]
275     ac_install=$[3]
276     wine_fn_append_file ALL_DIRS programs/$ac_dir
277     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
278 "programs/$ac_dir/__clean__: programs/$ac_dir/Makefile
279 programs/$ac_dir/Makefile programs/$ac_dir/__depend__: programs/$ac_dir/Makefile.in config.status programs/Makeprog.rules \$(MAKEDEP)
280         @./config.status --file programs/$ac_dir/Makefile && cd programs/$ac_dir && \$(MAKE) depend"
281
282     AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
283 "all: programs/$ac_dir
284 programs/$ac_dir: programs/$ac_dir/Makefile __builddeps__"
285     if test -n "$ac_install"
286     then
287         wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
288 "install install-lib:: programs/$ac_dir/Makefile __builddeps__
289         @cd programs/$ac_dir && \$(MAKE) install
290 uninstall:: programs/$ac_dir/Makefile
291         @cd programs/$ac_dir && \$(MAKE) uninstall"
292         test "$ac_install" != installbin || wine_fn_append_file ALL_PROGRAM_BIN_INSTALL_DIRS programs/$ac_dir
293     fi])
294 }
295
296 wine_fn_config_test ()
297 {
298     ac_dir=$[1]
299     ac_name=$[2]
300     wine_fn_append_file ALL_TEST_BINARIES $ac_name.exe
301     wine_fn_append_rule ALL_WINETEST_DEPENDS \
302 "$ac_name.exe: \$(TOPOBJDIR)/$ac_dir/$ac_name.exe$DLLEXT
303         cp \$(TOPOBJDIR)/$ac_dir/$ac_name.exe$DLLEXT \$[@] && \$(STRIP) \$[@]
304 $ac_name.rc:
305         echo \"$ac_name.exe TESTRES \\\"$ac_name.exe\\\"\" >\$[@] || (\$(RM) \$[@] && false)
306 $ac_name.res: $ac_name.rc $ac_name.exe"
307     wine_fn_append_file ALL_DIRS $ac_dir
308     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
309 "$ac_dir/__clean__: $ac_dir/Makefile
310 $ac_dir/Makefile $ac_dir/__depend__: $ac_dir/Makefile.in config.status Maketest.rules \$(MAKEDEP)
311         @./config.status --file $ac_dir/Makefile && cd $ac_dir && \$(MAKE) depend"
312
313     AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
314 "all programs/winetest: $ac_dir
315 $ac_dir: $ac_dir/Makefile __builddeps__
316 crosstest .PHONY: $ac_dir/__crosstest__
317 $ac_dir/__crosstest__: $ac_dir/Makefile __buildcrossdeps__ dummy
318         @cd $ac_dir && \$(MAKE) crosstest
319 test .PHONY: $ac_dir/__test__
320 $ac_dir/__test__: dummy
321         @cd $ac_dir && \$(MAKE) test
322 testclean::
323         \$(RM) $ac_dir/*.ok"])
324 }
325
326 wine_fn_config_tool ()
327 {
328     ac_dir=$[1]
329     ac_deps="Make.rules"
330     if test "$ac_dir" != tools
331     then
332         dnl makedep is in tools so tools makefile cannot depend on it
333         ac_deps="$ac_deps \$(MAKEDEP)"
334     fi
335     wine_fn_append_file ALL_DIRS $ac_dir
336     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
337 "$ac_dir/__clean__: $ac_dir/Makefile
338 $ac_dir/Makefile $ac_dir/__depend__: $ac_dir/Makefile.in config.status $ac_deps
339         @./config.status --file $ac_dir/Makefile && cd $ac_dir && \$(MAKE) depend"
340
341     AS_VAR_IF([enable_tools],[no],,[case $ac_dir in
342       dnl tools directory has both install-lib and install-dev
343       tools) wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
344 "install:: $ac_dir
345         @cd $ac_dir && \$(MAKE) install
346 install-lib:: $ac_dir
347         @cd $ac_dir && \$(MAKE) install-lib
348 install-dev:: $ac_dir
349         @cd $ac_dir && \$(MAKE) install-dev" ;;
350       *)     wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
351 "install install-dev:: $ac_dir
352         @cd $ac_dir && \$(MAKE) install" ;;
353       esac
354       wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
355 "uninstall:: $ac_dir/Makefile
356         @cd $ac_dir && \$(MAKE) uninstall
357 all __tooldeps__: $ac_dir
358 $ac_dir: $ac_dir/Makefile libs/port"])
359 }])
360
361 dnl **** Define helper function to append a file to a makefile file list ****
362 dnl
363 dnl Usage: WINE_APPEND_FILE(var,file)
364 dnl
365 AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
366
367 dnl **** Define helper function to append a rule to a makefile command list ****
368 dnl
369 dnl Usage: WINE_APPEND_RULE(var,rule)
370 dnl
371 AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
372
373 dnl **** Create nonexistent directories from config.status ****
374 dnl
375 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
376 dnl
377 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
378 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
379
380 dnl **** Create symlinks from config.status ****
381 dnl
382 dnl Usage: WINE_CONFIG_SYMLINK(name,target)
383 dnl
384 AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
385 AC_CONFIG_LINKS([$1:]m4_default([$2],[$1]))dnl
386 m4_if([$2],,[test "$srcdir" = "." || ])WINE_APPEND_FILE(ALL_SYMLINKS,[$1])])
387
388 dnl **** Create a make rules file from config.status ****
389 dnl
390 dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
391 dnl
392 AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
393 WINE_APPEND_FILE(ALL_MAKERULES,[$1])
394 WINE_APPEND_RULE(ALL_MAKEFILE_DEPENDS,[$1: m4_ifval([$3],[$1.in $3],[$1.in]) config.status])
395 $2=$1
396 AC_SUBST_FILE([$2])dnl
397 AC_CONFIG_FILES([$1])])
398
399 dnl **** Create a makefile from config.status ****
400 dnl
401 dnl Usage: WINE_CONFIG_MAKEFILE(file,enable)
402 dnl
403 AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
404 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
405 wine_fn_config_makefile [$1] ac_enable[]dnl
406 AS_VAR_POPDEF([ac_enable])])
407
408 dnl **** Create a dll makefile from config.status ****
409 dnl
410 dnl Usage: WINE_CONFIG_DLL(name,enable,implib,implibsrc)
411 dnl
412 AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
413 AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
414 wine_fn_config_dll [$1] ac_enable [$3] m4_ifval([$4],["$4"])dnl
415 AS_VAR_POPDEF([ac_enable])])
416
417 dnl **** Create a program makefile from config.status ****
418 dnl
419 dnl Usage: WINE_CONFIG_PROGRAM(name,install,enable)
420 dnl
421 AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
422 AS_VAR_PUSHDEF([ac_enable],m4_default([$3],[enable_]$1))dnl
423 wine_fn_config_program [$1] ac_enable [$2]dnl
424 AS_VAR_POPDEF([ac_enable])])
425
426 dnl **** Create a test makefile from config.status ****
427 dnl
428 dnl Usage: WINE_CONFIG_TEST(dir)
429 dnl
430 AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
431 m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
432 m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
433 wine_fn_config_test $1 ac_name[]ac_suffix[]dnl
434 m4_popdef([ac_suffix])dnl
435 m4_popdef([ac_name])])
436
437 dnl **** Create a static lib makefile from config.status ****
438 dnl
439 dnl Usage: WINE_CONFIG_LIB(name)
440 dnl
441 AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
442 wine_fn_config_lib $1])
443
444 dnl **** Create a tool makefile from config.status ****
445 dnl
446 dnl Usage: WINE_CONFIG_TOOL(name)
447 dnl
448 AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
449 wine_fn_config_tool $1])
450
451 dnl **** Add a message to the list displayed at the end ****
452 dnl
453 dnl Usage: WINE_NOTICE(notice)
454 dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
455 dnl Usage: WINE_WARNING(warning)
456 dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
457 dnl Usage: WINE_PRINT_MESSAGES
458 dnl
459 AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
460 AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
461
462 AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
463   x)   WINE_NOTICE([$3]) ;;
464   xno) ;;
465   *)   AC_MSG_ERROR([$3
466 This is an error since --with-$1 was requested.]) ;;
467 esac])])
468
469 AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
470   x)   WINE_WARNING([$3]) ;;
471   xno) ;;
472   *)   AC_MSG_ERROR([$3
473 This is an error since --with-$1 was requested.]) ;;
474 esac])])
475
476 AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
477   xno) ;;
478   *)   AC_MSG_ERROR([$3
479 Use the --without-$1 option if you really want this.]) ;;
480 esac])])
481
482 AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
483 if test "x$wine_notices != "x; then
484     echo >&AS_MESSAGE_FD
485     IFS="|"
486     for msg in $wine_notices; do
487         IFS="$ac_save_IFS"
488         if test -n "$msg"; then
489             AC_MSG_NOTICE([$msg])
490         fi
491     done
492 fi
493 IFS="|"
494 for msg in $wine_warnings; do
495     IFS="$ac_save_IFS"
496     if test -n "$msg"; then
497         echo >&2
498         AC_MSG_WARN([$msg])
499     fi
500 done
501 IFS="$ac_save_IFS"])
502
503 dnl Local Variables:
504 dnl compile-command: "autoreconf --warnings=all"
505 dnl End: