1dnl
2dnl This file provides the following macros
3dnl
4dnl     LT_LIB_XTHREADS
5dnl	AM_FUNC_VOID_SPRINTF
6dnl	WEAK_ALIAS_SUPPORT
7dnl
8
9dnl This should be the canonical approach to check for XTHREADS.
10dnl (see "man XtToolkitThreadInitialize")
11AC_DEFUN([LT_LIB_XTHREADS],
12[AC_REQUIRE([AC_PATH_X])
13AC_CACHE_CHECK(whether libXt was compiled with -DXTHREADS, lt_cv_xthreads,
14[lt_save_CFLAGS="$CFLAGS"
15lt_save_CPPFLAGS="$CPPFLAGS"
16lt_save_LIBS="$LIBS"
17LIBS="$X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS"
18CFLAGS="$X_CFLAGS $CFLAGS"
19CPPFLAGS="$X_CFLAGS $CPPFLAGS"
20AC_TRY_RUN([
21#include <X11/Intrinsic.h>
22int main() {
23Boolean brc;
24brc=XtToolkitThreadInitialize();
25if (True==brc)
26  exit(0);
27else
28  exit(1);
29}
30],
31lt_cv_xthreads=yes,
32lt_cv_xthreads=no,
33lt_cv_xthreads=dunno)
34CFLAGS="$lt_save_CFLAGS"
35CPPFLAGS="$lt_save_CPPFLAGS"
36LIBS="$lt_save_LIBS"
37])
38if test $lt_cv_xthreads = dunno; then
39  AC_MSG_WARN(Can't check for XTHREADS if cross-compiling. Assume XTHREADS)
40  AC_DEFINE(XTHREADS,1,"Has XThreads")
41  AC_DEFINE(XUSE_MTSAFE_API,1,"API is MTSAFE")
42fi
43if test $lt_cv_xthreads = yes; then
44  AC_DEFINE(XTHREADS,1,"Has XThreads")
45  AC_DEFINE(XUSE_MTSAFE_API,1,"API is MTSAFE")
46fi
47])
48
49dnl This test is not very reliable probably ...
50AC_DEFUN([AM_FUNC_VOID_SPRINTF],
51[AC_CACHE_CHECK(whether sprintf returns void, ac_cv_func_void_sprintf,
52[AC_TRY_RUN([#include <stdio.h>
53int sprintf(); main() { exit(sprintf(".")); }],
54  ac_cv_func_void_sprintf=no, ac_cv_func_void_sprintf=yes, ac_cv_func_void_sprintf=yes)])
55if test $ac_cv_func_void_sprintf = no; then
56  AC_DEFINE(VOID_SPRINTF,1,
57  [Define if sprintf doesn't return the number of chars written])
58fi
59])
60
61dnl This tests whether weak aliases are supported.
62AC_DEFUN([WEAK_ALIAS_SUPPORT],
63[AC_CACHE_CHECK(whether weak aliases are supported, ac_cv_weak_alias_support,
64[AC_TRY_COMPILE([
65int get_value(int *value) {
66  return *value;
67}
68int get_value_alias(int *high) __attribute__((__weak__,alias("get_value")));
69],
70[],
71ac_cv_weak_alias_support=yes,
72ac_cv_weak_alias_support=no)])
73if test $ac_cv_weak_alias_support = no; then
74  AC_DEFINE(NO_WEAK_ALIASES,1,[Define if weak aliases are not supported])
75fi
76])
77
78dnl
79dnl End of special macros.
80dnl
81