ddraw: Add a NULL callback pointer check in the EnumDevices implementations.
[wine] / aclocal.m4
CommitLineData
67e8dc68
AJ
1dnl Macros used to build the Wine configure script
2dnl
3dnl Copyright 2002 Alexandre Julliard
4dnl
5dnl This library is free software; you can redistribute it and/or
6dnl modify it under the terms of the GNU Lesser General Public
7dnl License as published by the Free Software Foundation; either
8dnl version 2.1 of the License, or (at your option) any later version.
9dnl
10dnl This library is distributed in the hope that it will be useful,
11dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13dnl Lesser General Public License for more details.
14dnl
15dnl You should have received a copy of the GNU Lesser General Public
16dnl License along with this library; if not, write to the Free Software
360a3f91 17dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
67e8dc68 18dnl
1d8d0171
AJ
19dnl As a special exception to the GNU Lesser General Public License,
20dnl if you distribute this file as part of a program that contains a
21dnl configuration script generated by Autoconf, you may include it
22dnl under the same distribution terms that you use for the rest of
23dnl that program.
67e8dc68
AJ
24
25dnl **** Get the ldd program name; used by WINE_GET_SONAME ****
26dnl
27dnl Usage: WINE_PATH_LDD
28dnl
29AC_DEFUN([WINE_PATH_LDD],[AC_PATH_PROG(LDD,ldd,true,/sbin:/usr/sbin:$PATH)])
30
31dnl **** Extract the soname of a library ****
32dnl
66afa98f 33dnl Usage: WINE_CHECK_SONAME(library, function, [action-if-found, [action-if-not-found, [other_libraries, [pattern]]]])
67e8dc68 34dnl
66afa98f 35AC_DEFUN([WINE_CHECK_SONAME],
30de3e8e
AJ
36[AC_REQUIRE([WINE_PATH_LDD])dnl
37AS_VAR_PUSHDEF([ac_Lib],[ac_cv_lib_soname_$1])dnl
66afa98f
AJ
38m4_pushdef([ac_lib_pattern],m4_default([$6],[lib$1]))dnl
39AC_MSG_CHECKING([for -l$1])
446befbb 40AC_CACHE_VAL(ac_Lib,
66afa98f
AJ
41[ac_check_soname_save_LIBS=$LIBS
42LIBS="-l$1 $5 $LIBS"
67e8dc68 43 AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
bdbffd97 44 [case "$LIBEXT" in
2b05c840 45 dll) AS_VAR_SET(ac_Lib,[`$ac_cv_path_LDD conftest.exe | grep "$1" | sed -e "s/dll.*/dll/"';2,$d'`]) ;;
66afa98f
AJ
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'`]) ;;
446befbb 48 esac])
66afa98f 49 LIBS=$ac_check_soname_save_LIBS])dnl
446befbb 50AS_IF([test "x]AS_VAR_GET(ac_Lib)[" = "x"],
66afa98f
AJ
51 [AC_MSG_RESULT([not found])
52 $4],
446befbb
AJ
53 [AC_MSG_RESULT(AS_VAR_GET(ac_Lib))
54 AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),["]AS_VAR_GET(ac_Lib)["],
66afa98f
AJ
55 [Define to the soname of the lib$1 library.])
56 $3])dnl
57m4_popdef([ac_lib_pattern])dnl
30de3e8e 58AS_VAR_POPDEF([ac_Lib])])
67e8dc68 59
67e8dc68
AJ
60dnl **** Link C code with an assembly file ****
61dnl
62dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])
63dnl
64AC_DEFUN([WINE_TRY_ASM_LINK],
9797da40 65[AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[asm($1); $3]])],[$4],[$5])])
67e8dc68
AJ
66
67dnl **** Check if we can link an empty program with special CFLAGS ****
68dnl
69dnl Usage: WINE_TRY_CFLAGS(flags,[action-if-yes,[action-if-no]])
70dnl
182d150a
AJ
71dnl The default action-if-yes is to append the flags to EXTRACFLAGS.
72dnl
67e8dc68 73AC_DEFUN([WINE_TRY_CFLAGS],
182d150a
AJ
74[AS_VAR_PUSHDEF([ac_var], ac_cv_cflags_[[$1]])dnl
75AC_CACHE_CHECK([whether the compiler supports $1], ac_var,
67e8dc68
AJ
76[ac_wine_try_cflags_saved=$CFLAGS
77CFLAGS="$CFLAGS $1"
9797da40 78AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) { return 0; }]])],
295806f9 79 [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
67e8dc68 80CFLAGS=$ac_wine_try_cflags_saved])
182d150a
AJ
81AS_IF([test AS_VAR_GET(ac_var) = yes],
82 [m4_default([$2], [EXTRACFLAGS="$EXTRACFLAGS $1"])], [$3])dnl
83AS_VAR_POPDEF([ac_var])])
67e8dc68 84
421e8b92
WB
85dnl **** Check if we can link an empty shared lib (no main) with special CFLAGS ****
86dnl
87dnl Usage: WINE_TRY_SHLIB_FLAGS(flags,[action-if-yes,[action-if-no]])
88dnl
89AC_DEFUN([WINE_TRY_SHLIB_FLAGS],
90[ac_wine_try_cflags_saved=$CFLAGS
91CFLAGS="$CFLAGS $1"
9797da40 92AC_LINK_IFELSE([AC_LANG_SOURCE([void myfunc() {}])],[$2],[$3])
421e8b92
WB
93CFLAGS=$ac_wine_try_cflags_saved])
94
05783b55
AJ
95dnl **** Check whether we need to define a symbol on the compiler command line ****
96dnl
97dnl Usage: WINE_CHECK_DEFINE(name),[action-if-yes,[action-if-no]])
98dnl
99AC_DEFUN([WINE_CHECK_DEFINE],
100[AS_VAR_PUSHDEF([ac_var],[ac_cv_cpp_def_$1])dnl
101AC_CACHE_CHECK([whether we need to define $1],ac_var,
102 AC_EGREP_CPP(yes,[#ifndef $1
103yes
104#endif],
105 [AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)]))
106AS_IF([test AS_VAR_GET(ac_var) = yes],
107 [CFLAGS="$CFLAGS -D$1"
108 LINTFLAGS="$LINTFLAGS -D$1"])dnl
109AS_VAR_POPDEF([ac_var])])
110
2d1a6274
AJ
111dnl **** Check for functions with some extra libraries ****
112dnl
113dnl Usage: WINE_CHECK_LIB_FUNCS(funcs,libs,[action-if-found,[action-if-not-found]])
114dnl
115AC_DEFUN([WINE_CHECK_LIB_FUNCS],
116[ac_wine_check_funcs_save_LIBS="$LIBS"
117LIBS="$LIBS $2"
118AC_CHECK_FUNCS([$1],[$3],[$4])
119LIBS="$ac_wine_check_funcs_save_LIBS"])
120
eae0dc23
AJ
121dnl **** Check for a mingw program, trying the various mingw prefixes ****
122dnl
123dnl Usage: WINE_CHECK_MINGW_PROG(variable,prog,[value-if-not-found],[path])
124dnl
125AC_DEFUN([WINE_CHECK_MINGW_PROG],
a91fb219
AJ
126[case "$host_cpu" in
127 i[[3456789]]86*)
0b6bfade 128 ac_prefix_list="m4_foreach([ac_wine_prefix],[w64-mingw32, pc-mingw32, mingw32msvc, mingw32],
a91fb219
AJ
129 m4_foreach([ac_wine_cpu],[i686,i586,i486,i386],[ac_wine_cpu-ac_wine_prefix-$2 ]))" ;;
130 x86_64)
d2103751
VP
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 ]))" ;;
a91fb219
AJ
133 *)
134 ac_prefix_list="" ;;
135esac
136AC_CHECK_PROGS([$1],[$ac_prefix_list],[$3],[$4])])
eae0dc23
AJ
137
138
2de10c4a
AJ
139dnl **** Define helper functions for creating config.status files ****
140dnl
141dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
142dnl
143AC_DEFUN([WINE_CONFIG_HELPERS],
39b4ba21
AJ
144[ALL_MAKEFILE_DEPENDS="
145# Rules automatically generated by configure
146
147.INIT: Makefile
39b4ba21 148.MAKEFILEDEPS:
bd3110d8 149all: Makefile
81b8ee86 150Makefile: Makefile.in Make.vars.in Make.rules config.status
39b4ba21 151 @./config.status Make.tmp Makefile"
7d831155 152
367fd228 153ALL_POT_FILES=""
9b99cd1d 154AC_SUBST(ALL_TEST_RESOURCES,"")
7d831155
AJ
155
156wine_fn_append_file ()
2de10c4a
AJ
157{
158 AS_VAR_APPEND($[1]," \\$as_nl $[2]")
159}
fc7f1c7e 160
2de10c4a
AJ
161wine_fn_append_rule ()
162{
163 AS_VAR_APPEND($[1],"$as_nl$[2]")
fc7f1c7e
AJ
164}
165
6cce7fa0
AJ
166wine_fn_has_flag ()
167{
168 expr ",$[2]," : ".*,$[1],.*" >/dev/null
169}
170
943cd739
AJ
171wine_fn_all_dir_rules ()
172{
52c9e85b
AJ
173 ac_dir=$[1]
174 ac_alldeps=$[2]
9dd743fd
AJ
175 ac_makedep="\$(MAKEDEP)"
176 ac_input=Make.vars.in:$ac_dir/Makefile.in
52c9e85b 177 if test $ac_dir != tools
c57aa38e
AJ
178 then
179 dnl makedep is in tools so tools makefile cannot depend on it
9dd743fd 180 ac_alldeps="$[2] $ac_makedep"
c57aa38e 181 fi
9dd743fd
AJ
182 case $[2] in
183 *.in) ac_input=$ac_input:$[2] ;;
184 *) ac_makedep="$[2] $ac_makedep" ;;
185 esac
c57aa38e 186
52c9e85b 187 wine_fn_append_file ALL_DIRS $ac_dir
943cd739 188 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
52c9e85b
AJ
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
9dd743fd 195 @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend
52c9e85b
AJ
196depend: $ac_dir/__depend__
197.PHONY: $ac_dir/__depend__
9dd743fd
AJ
198$ac_dir/__depend__: $ac_makedep dummy
199 @./config.status --file $ac_dir/Makefile:$ac_input && cd $ac_dir && \$(MAKE) depend"
943cd739
AJ
200}
201
fc7f1c7e
AJ
202wine_fn_config_makefile ()
203{
204 ac_dir=$[1]
03642414 205 ac_enable=$[2]
9bdd0272 206 AS_VAR_IF([$ac_enable],[no],[return 0])
e84063bf 207
c57aa38e 208 wine_fn_all_dir_rules $ac_dir Make.rules
9bdd0272 209 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
764d4c2a
AJ
210"all: $ac_dir
211.PHONY: $ac_dir
6c90aeae
AJ
212$ac_dir: $ac_dir/Makefile dummy
213 @cd $ac_dir && \$(MAKE)
e84063bf
AJ
214install:: $ac_dir
215 @cd $ac_dir && \$(MAKE) install
216install-lib:: $ac_dir
217 @cd $ac_dir && \$(MAKE) install-lib
218install-dev:: $ac_dir
219 @cd $ac_dir && \$(MAKE) install-dev
220uninstall:: $ac_dir/Makefile
9bdd0272 221 @cd $ac_dir && \$(MAKE) uninstall"
fc7f1c7e
AJ
222}
223
224wine_fn_config_lib ()
225{
226 ac_name=$[1]
b8fb1d5d 227 ac_dir=dlls/$ac_name
c57aa38e 228 wine_fn_all_dir_rules $ac_dir dlls/Makeimplib.rules
fc7f1c7e 229 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
c2c3c210 230"all __builddeps__: $ac_dir
7d2e7726 231$ac_dir: $ac_dir/Makefile tools/widl tools/winebuild tools/winegcc include dummy
6c90aeae 232 @cd $ac_dir && \$(MAKE)
c2c3c210
AJ
233install install-dev:: $ac_dir
234 @cd $ac_dir && \$(MAKE) install
235uninstall:: $ac_dir/Makefile
236 @cd $ac_dir && \$(MAKE) uninstall"
fc7f1c7e
AJ
237}
238
50231941
AJ
239wine_fn_config_dll ()
240{
52c9e85b
AJ
241 ac_name=$[1]
242 ac_dir=dlls/$ac_name
5cdd8415 243 ac_enable=$[2]
6cce7fa0 244 ac_flags=$[3]
1858f43d 245 ac_implib=${4:-$ac_name}
52c9e85b 246 ac_file=$ac_dir/lib$ac_implib
50231941 247 ac_deps="tools/widl tools/winebuild tools/winegcc include"
b0e48e1e
AJ
248 ac_implibflags=""
249
52c9e85b 250 case $ac_name in
b0e48e1e
AJ
251 *16) ac_implibflags=" -m16" ;;
252 esac
50231941 253
52c9e85b 254 wine_fn_all_dir_rules $ac_dir dlls/Makedll.rules
82b743ff 255
5cdd8415
AJ
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],
60a05ad2 259 [wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
52c9e85b
AJ
260"all: $ac_dir
261.PHONY: $ac_dir
262$ac_dir: $ac_dir/Makefile __builddeps__ dummy
263 @cd $ac_dir && \$(MAKE)
264install:: $ac_dir/Makefile __builddeps__
265 @cd $ac_dir && \$(MAKE) install
266install-lib:: $ac_dir/Makefile __builddeps__
267 @cd $ac_dir && \$(MAKE) install-lib
268uninstall manpages htmlpages sgmlpages xmlpages:: $ac_dir/Makefile
367fd228
AJ
269 @cd $ac_dir && \$(MAKE) \$[@]"
270
417b70bf 271 if test "x$enable_maintainer_mode" = xyes
367fd228 272 then
417b70bf
AJ
273 if wine_fn_has_flag mc $ac_flags
274 then
275 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
276 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
277"$ac_dir/msg.pot: $ac_dir"
278 fi
279 if wine_fn_has_flag po $ac_flags
280 then
281 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
282 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
367fd228 283"$ac_dir/rsrc.pot: $ac_dir"
417b70bf 284 fi
367fd228 285 fi])
50231941 286
6cce7fa0 287 if wine_fn_has_flag staticimplib $ac_flags
50231941
AJ
288 then
289 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
e55ff7fe 290"__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
e55ff7fe 291$ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
52c9e85b
AJ
292$ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
293 @cd $ac_dir && \$(MAKE) lib$ac_implib.def
294$ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
295 @cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
296install-dev:: $ac_dir/Makefile __builddeps__
297 @cd $ac_dir && \$(MAKE) install-dev"
faa7eae8
AJ
298 if test "x$CROSSTEST_DISABLE" = x
299 then
300 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
301"__builddeps__: $ac_file.cross.a
52c9e85b
AJ
302$ac_file.cross.a: $ac_dir/Makefile dummy
303 @cd $ac_dir && \$(MAKE) lib$ac_implib.cross.a"
faa7eae8
AJ
304 fi
305
6cce7fa0 306 elif wine_fn_has_flag implib $ac_flags
50231941
AJ
307 then
308 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
e55ff7fe 309"__builddeps__: $ac_file.$IMPLIBEXT
52c9e85b
AJ
310$ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
311 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
312$ac_file.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
313 \$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
314install-dev:: $ac_dir/Makefile __builddeps__
315 @cd $ac_dir && \$(MAKE) install-dev"
faa7eae8
AJ
316 if test "x$CROSSTEST_DISABLE" = x
317 then
318 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
319"__builddeps__: $ac_file.cross.a
52c9e85b
AJ
320$ac_file.cross.a: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
321 \$(WINEBUILD) \$(CROSSTARGET:%=-b %)$ac_implibflags -w --implib -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec"
faa7eae8 322 fi
50231941 323
52c9e85b 324 if test "$ac_name" != "$ac_implib"
50231941
AJ
325 then
326 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
e55ff7fe 327"__builddeps__: dlls/lib$ac_implib.$IMPLIBEXT
e55ff7fe 328dlls/lib$ac_implib.$IMPLIBEXT: $ac_file.$IMPLIBEXT
52c9e85b 329 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.$IMPLIBEXT \$[@]
50231941
AJ
330clean::
331 \$(RM) dlls/lib$ac_implib.$IMPLIBEXT"
faa7eae8
AJ
332 if test "x$CROSSTEST_DISABLE" = x
333 then
334 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
335"__builddeps__: dlls/lib$ac_implib.cross.a
336dlls/lib$ac_implib.cross.a: $ac_file.cross.a
52c9e85b 337 \$(RM) \$[@] && \$(LN_S) $ac_name/lib$ac_implib.cross.a \$[@]"
faa7eae8 338 fi
50231941
AJ
339 fi
340 fi
341}
342
343wine_fn_config_program ()
344{
52c9e85b
AJ
345 ac_name=$[1]
346 ac_dir=programs/$ac_name
d394e042 347 ac_enable=$[2]
6cce7fa0 348 ac_flags=$[3]
52c9e85b 349 wine_fn_all_dir_rules $ac_dir programs/Makeprog.rules
d7b387d3
AJ
350
351 AS_VAR_IF([$ac_enable],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
52c9e85b
AJ
352"all: $ac_dir
353.PHONY: $ac_dir
354$ac_dir: $ac_dir/Makefile __builddeps__ dummy
355 @cd $ac_dir && \$(MAKE)"
6c90aeae 356
417b70bf 357 if test "x$enable_maintainer_mode" = xyes
367fd228 358 then
417b70bf
AJ
359 if wine_fn_has_flag mc $ac_flags
360 then
361 wine_fn_append_file ALL_POT_FILES $ac_dir/msg.pot
362 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
363"$ac_dir/msg.pot: $ac_dir"
364 fi
365 if wine_fn_has_flag po $ac_flags
366 then
367 wine_fn_append_file ALL_POT_FILES $ac_dir/rsrc.pot
368 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
367fd228 369"$ac_dir/rsrc.pot: $ac_dir"
417b70bf 370 fi
367fd228
AJ
371 fi
372
6cce7fa0 373 wine_fn_has_flag install $ac_flags || return
2fb30218 374 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
52c9e85b
AJ
375"install install-lib:: $ac_dir/Makefile __builddeps__
376 @cd $ac_dir && \$(MAKE) install
377uninstall:: $ac_dir/Makefile
378 @cd $ac_dir && \$(MAKE) uninstall"
c1e29580 379 if test -n "$DLLEXT" -a "x$enable_tools" != xno && wine_fn_has_flag installbin $ac_flags
2fb30218
AJ
380 then
381 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
718ea42f 382"install install-lib:: tools \$(DESTDIR)\$(bindir)
52c9e85b 383 \$(INSTALL_SCRIPT) tools/wineapploader \$(DESTDIR)\$(bindir)/$ac_name
2fb30218 384uninstall::
52c9e85b 385 \$(RM) \$(DESTDIR)\$(bindir)/$ac_name"
d7b387d3 386 fi])
50231941
AJ
387}
388
fc7f1c7e
AJ
389wine_fn_config_test ()
390{
391 ac_dir=$[1]
392 ac_name=$[2]
9b99cd1d 393 wine_fn_append_file ALL_TEST_RESOURCES $ac_name.res
c57aa38e 394 wine_fn_all_dir_rules $ac_dir Maketest.rules
44cff7e9
AJ
395
396 AS_VAR_IF([enable_tests],[no],,[wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
9b99cd1d 397"all: $ac_dir
764d4c2a 398.PHONY: $ac_dir
dbbed381 399$ac_dir: $ac_dir/Makefile programs/winetest/Makefile __builddeps__ dummy
6c90aeae 400 @cd $ac_dir && \$(MAKE)
9b99cd1d 401programs/winetest: $ac_dir
e4eff85c 402check test: $ac_dir/__test__
764d4c2a 403.PHONY: $ac_dir/__test__
eab7efd1 404$ac_dir/__test__: dummy
44cff7e9
AJ
405 @cd $ac_dir && \$(MAKE) test
406testclean::
faa7eae8
AJ
407 \$(RM) $ac_dir/*.ok"
408
409 if test "x$CROSSTEST_DISABLE" = x
410 then
411 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
412"crosstest: $ac_dir/__crosstest__
413.PHONY: $ac_dir/__crosstest__
414$ac_dir/__crosstest__: $ac_dir/Makefile __builddeps__ dummy
415 @cd $ac_dir && \$(MAKE) crosstest"
faa7eae8 416 fi])
d81a8f8d
AJ
417}
418
419wine_fn_config_tool ()
420{
421 ac_dir=$[1]
84fd1f58
AJ
422 AS_VAR_IF([enable_tools],[no],[return 0])
423
c57aa38e 424 wine_fn_all_dir_rules $ac_dir Make.rules
6dbe7a03 425
84fd1f58 426 case $ac_dir in
6dbe7a03
AJ
427 dnl tools directory has both install-lib and install-dev
428 tools) wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
429"install:: $ac_dir
430 @cd $ac_dir && \$(MAKE) install
431install-lib:: $ac_dir
432 @cd $ac_dir && \$(MAKE) install-lib
433install-dev:: $ac_dir
434 @cd $ac_dir && \$(MAKE) install-dev" ;;
435 *) wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
436"install install-dev:: $ac_dir
437 @cd $ac_dir && \$(MAKE) install" ;;
84fd1f58
AJ
438 esac
439 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
6dbe7a03
AJ
440"uninstall:: $ac_dir/Makefile
441 @cd $ac_dir && \$(MAKE) uninstall
764d4c2a
AJ
442all __tooldeps__: $ac_dir
443.PHONY: $ac_dir
6c90aeae 444$ac_dir: $ac_dir/Makefile libs/port dummy
b0e48e1e 445 @cd $ac_dir && \$(MAKE)"
84fd1f58
AJ
446 case $ac_dir in
447 tools/winebuild) wine_fn_append_rule ALL_MAKEFILE_DEPENDS "\$(WINEBUILD): $ac_dir" ;;
448 esac
abfb11e1
AJ
449}
450
451wine_fn_config_makerules ()
452{
453 ac_rules=$[1]
454 ac_deps=$[2]
455 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
456"$ac_rules: $ac_rules.in $ac_deps config.status
457 @./config.status $ac_rules
458distclean::
459 \$(RM) $ac_rules"
460}
461
462wine_fn_config_symlink ()
463{
464 ac_link=$[1]
465 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
466"$ac_link:
467 @./config.status $ac_link
468distclean::
469 \$(RM) $ac_link"
a070f9b0
AJ
470}
471
472if test "x$CROSSTEST_DISABLE" != x
473then
474 wine_fn_append_rule ALL_MAKEFILE_DEPENDS \
475"crosstest:
476 @echo \"crosstest is not supported (mingw not installed?)\" && false"
477fi])
2de10c4a
AJ
478
479dnl **** Define helper function to append a file to a makefile file list ****
480dnl
481dnl Usage: WINE_APPEND_FILE(var,file)
482dnl
483AC_DEFUN([WINE_APPEND_FILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_file $1 "$2"])
484
485dnl **** Define helper function to append a rule to a makefile command list ****
486dnl
487dnl Usage: WINE_APPEND_RULE(var,rule)
488dnl
489AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])wine_fn_append_rule $1 "$2"])
490
4d801b66 491dnl **** Create nonexistent directories from config.status ****
67e8dc68
AJ
492dnl
493dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
494dnl
495AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
a1c253e0 496[AC_CONFIG_COMMANDS([$1],[test -d "$1" || { AC_MSG_NOTICE([creating $1]); AS_MKDIR_P("$1"); }])])
446befbb 497
7d020c9f
AJ
498dnl **** Create symlinks from config.status ****
499dnl
0ef63e16 500dnl Usage: WINE_CONFIG_SYMLINK(name,target,enable)
7d020c9f 501dnl
2de10c4a 502AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
0ef63e16
AJ
503m4_ifval([$3],[if test "x$[$3]" != xno; then
504])AC_CONFIG_LINKS([$1:]m4_default([$2],[$1]))dnl
505m4_if([$2],,[test "$srcdir" = "." || ])wine_fn_config_symlink $1[]m4_ifval([$3],[
506fi])])
7d020c9f 507
a360e934
AJ
508dnl **** Create a make rules file from config.status ****
509dnl
510dnl Usage: WINE_CONFIG_MAKERULES(file,var,deps)
511dnl
7d831155 512AC_DEFUN([WINE_CONFIG_MAKERULES],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
abfb11e1 513wine_fn_config_makerules $1 $3
a360e934
AJ
514$2=$1
515AC_SUBST_FILE([$2])dnl
516AC_CONFIG_FILES([$1])])
517
518dnl **** Create a makefile from config.status ****
519dnl
03642414 520dnl Usage: WINE_CONFIG_MAKEFILE(file,enable)
a360e934 521dnl
fc7f1c7e 522AC_DEFUN([WINE_CONFIG_MAKEFILE],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
03642414
AJ
523AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
524wine_fn_config_makefile [$1] ac_enable[]dnl
525AS_VAR_POPDEF([ac_enable])])
a360e934 526
aa6c4d4e
AJ
527dnl **** Create a dll makefile from config.status ****
528dnl
6cce7fa0 529dnl Usage: WINE_CONFIG_DLL(name,enable,flags,implib)
aa6c4d4e 530dnl
50231941 531AC_DEFUN([WINE_CONFIG_DLL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
5cdd8415 532AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
6cce7fa0 533wine_fn_config_dll [$1] ac_enable [$3] [$4]dnl
5cdd8415 534AS_VAR_POPDEF([ac_enable])])
aa6c4d4e
AJ
535
536dnl **** Create a program makefile from config.status ****
537dnl
6cce7fa0 538dnl Usage: WINE_CONFIG_PROGRAM(name,enable,flags)
aa6c4d4e 539dnl
50231941 540AC_DEFUN([WINE_CONFIG_PROGRAM],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
6cce7fa0
AJ
541AS_VAR_PUSHDEF([ac_enable],m4_default([$2],[enable_]$1))dnl
542wine_fn_config_program [$1] ac_enable [$3]dnl
d394e042 543AS_VAR_POPDEF([ac_enable])])
aa6c4d4e
AJ
544
545dnl **** Create a test makefile from config.status ****
546dnl
547dnl Usage: WINE_CONFIG_TEST(dir)
548dnl
fc7f1c7e
AJ
549AC_DEFUN([WINE_CONFIG_TEST],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
550m4_pushdef([ac_suffix],m4_if(m4_substr([$1],0,9),[programs/],[.exe_test],[_test]))dnl
551m4_pushdef([ac_name],[m4_bpatsubst([$1],[.*/\(.*\)/tests$],[\1])])dnl
dc3afa1f 552wine_fn_config_test $1 ac_name[]ac_suffix[]dnl
4435e995 553m4_popdef([ac_suffix])dnl
d5addea2 554m4_popdef([ac_name])])
aa6c4d4e
AJ
555
556dnl **** Create a static lib makefile from config.status ****
557dnl
558dnl Usage: WINE_CONFIG_LIB(name)
559dnl
fc7f1c7e 560AC_DEFUN([WINE_CONFIG_LIB],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
b8fb1d5d 561wine_fn_config_lib $1])
aa6c4d4e 562
d81a8f8d
AJ
563dnl **** Create a tool makefile from config.status ****
564dnl
565dnl Usage: WINE_CONFIG_TOOL(name)
566dnl
567AC_DEFUN([WINE_CONFIG_TOOL],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
568wine_fn_config_tool $1])
569
8d8c5c60
AJ
570dnl **** Add a message to the list displayed at the end ****
571dnl
572dnl Usage: WINE_NOTICE(notice)
a41f0f1b 573dnl Usage: WINE_NOTICE_WITH(with_flag, test, notice)
8d8c5c60 574dnl Usage: WINE_WARNING(warning)
a41f0f1b 575dnl Usage: WINE_WARNING_WITH(with_flag, test, warning)
8d8c5c60
AJ
576dnl Usage: WINE_PRINT_MESSAGES
577dnl
0dc503bc
AJ
578AC_DEFUN([WINE_NOTICE],[AS_VAR_APPEND([wine_notices],["|$1"])])
579AC_DEFUN([WINE_WARNING],[AS_VAR_APPEND([wine_warnings],["|$1"])])
a41f0f1b
AJ
580
581AC_DEFUN([WINE_NOTICE_WITH],[AS_IF([$2],[case "x$with_$1" in
582 x) WINE_NOTICE([$3]) ;;
583 xno) ;;
584 *) AC_MSG_ERROR([$3
585This is an error since --with-$1 was requested.]) ;;
586esac])])
587
588AC_DEFUN([WINE_WARNING_WITH],[AS_IF([$2],[case "x$with_$1" in
589 x) WINE_WARNING([$3]) ;;
590 xno) ;;
591 *) AC_MSG_ERROR([$3
592This is an error since --with-$1 was requested.]) ;;
593esac])])
8d8c5c60 594
76adea11
AJ
595AC_DEFUN([WINE_ERROR_WITH],[AS_IF([$2],[case "x$with_$1" in
596 xno) ;;
597 *) AC_MSG_ERROR([$3
598Use the --without-$1 option if you really want this.]) ;;
599esac])])
600
8d8c5c60 601AC_DEFUN([WINE_PRINT_MESSAGES],[ac_save_IFS="$IFS"
a41f0f1b
AJ
602if test "x$wine_notices != "x; then
603 echo >&AS_MESSAGE_FD
4736c993 604 IFS="|"
8d8c5c60 605 for msg in $wine_notices; do
4736c993 606 IFS="$ac_save_IFS"
8d8c5c60 607 if test -n "$msg"; then
8d8c5c60
AJ
608 AC_MSG_NOTICE([$msg])
609 fi
610 done
611fi
4736c993 612IFS="|"
8d8c5c60 613for msg in $wine_warnings; do
4736c993 614 IFS="$ac_save_IFS"
8d8c5c60
AJ
615 if test -n "$msg"; then
616 echo >&2
617 AC_MSG_WARN([$msg])
618 fi
619done
620IFS="$ac_save_IFS"])
621
446befbb
AJ
622dnl Local Variables:
623dnl compile-command: "autoreconf --warnings=all"
624dnl End: