configure.ac revision eb411b4b
1
2# Initialize Autoconf
3AC_PREREQ([2.60])
4AC_INIT([libX11], [1.5.99.902],
5        [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libX11])
6AC_CONFIG_SRCDIR([Makefile.am])
7AC_CONFIG_HEADERS([src/config.h include/X11/XlibConf.h])
8AC_CONFIG_MACRO_DIR([m4])
9AC_CANONICAL_BUILD
10AC_CANONICAL_HOST
11# Set common system defines for POSIX extensions, such as _GNU_SOURCE
12# Must be called before any macros that run the compiler (like AC_PROG_LIBTOOL)
13# to avoid autoconf errors.
14AC_USE_SYSTEM_EXTENSIONS
15
16# Initialize Automake
17AM_INIT_AUTOMAKE([foreign dist-bzip2])
18
19# Initialize libtool
20AC_PROG_LIBTOOL
21
22# Require xorg-macros minimum of 1.15 for fop minimum version
23m4_ifndef([XORG_MACROS_VERSION],
24          [m4_fatal([must install xorg-macros 1.15 or later before running autoconf/autogen])])
25XORG_MACROS_VERSION(1.15)
26XORG_DEFAULT_OPTIONS
27XORG_ENABLE_SPECS
28XORG_WITH_XMLTO(0.0.22)
29XORG_WITH_FOP([],[no])
30XORG_WITH_XSLTPROC
31XORG_CHECK_SGML_DOCTOOLS(1.10)
32XORG_PROG_RAWCPP
33XORG_WITH_PERL
34
35# Required when PKG_CHECK_MODULES called within an if statement
36PKG_PROG_PKG_CONFIG
37
38if test x"$CC_FOR_BUILD" = x; then
39	if test x"$cross_compiling" = xyes; then
40	       AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
41	else
42	       CC_FOR_BUILD="$CC"
43	fi
44fi
45AC_SUBST([CC_FOR_BUILD])
46
47if test x"$CPPFLAGS_FOR_BUILD" = x; then
48	if test ! x"$cross_compiling" = xyes; then
49		CPPFLAGS_FOR_BUILD=${CPPFLAGS}
50	fi
51fi
52AC_SUBST(CPPFLAGS_FOR_BUILD)
53
54if test x"$CFLAGS_FOR_BUILD" = x; then
55	if test ! x"$cross_compiling" = xyes; then
56		CFLAGS_FOR_BUILD=${CFLAGS}
57	fi
58fi
59AC_SUBST(CFLAGS_FOR_BUILD)
60
61if test x"$LDFLAGS_FOR_BUILD" = x; then
62	if test ! x"$cross_compiling" = xyes; then
63		LDFLAGS_FOR_BUILD=${LDFLAGS}
64	fi
65fi
66AC_SUBST(LDFLAGS_FOR_BUILD)
67
68# Checks for pkg-config packages
69
70# Always required
71X11_REQUIRES='xproto >= 7.0.17 xextproto xtrans xcb >= 1.1.92'
72X11_EXTRA_DEPS="xcb >= 1.1.92"
73
74PKG_PROG_PKG_CONFIG()
75
76AC_SUBST(X11_EXTRA_DEPS)
77
78# Issue an error if xtrans.m4 was not found and XTRANS_CONNECTION_FLAGS macro
79# was not expanded, since libX11 with no transport types is rather useless.
80#
81# If you're seeing an error here, be sure you installed the lib/xtrans module
82# first and if it's not in the default location, that you set the ACLOCAL
83# environment variable to find it, such as:
84#	ACLOCAL="aclocal -I ${PREFIX}/share/aclocal"
85m4_pattern_forbid([^XTRANS_CONNECTION_FLAGS$])
86
87# Transport selection macro from xtrans.m4
88XTRANS_CONNECTION_FLAGS
89
90# Secure RPC detection macro from xtrans.m4
91XTRANS_SECURE_RPC_FLAGS
92
93# Preferred order to try transports for local connections
94AC_MSG_CHECKING([what order to try transports in for local connections])
95DEFAULT_LOCAL_TRANS=""
96case $host_os in
97	solaris*)
98		# On Solaris 2.6 through 9, named pipes (LOCAL_TRANS) were
99		# faster than Unix domain sockets, but on Solaris 10 & later,
100		# Unix domain sockets are faster now.
101		if test "$UNIXCONN" = "yes" ; then
102			if test ! "x$DEFAULT_LOCAL_TRANS" = "x" ; then
103				DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS},"
104			fi
105			DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS}UNIX_TRANS"
106		fi
107		if test "$LOCALCONN" = "yes" ; then
108			if test ! "x$DEFAULT_LOCAL_TRANS" = "x" ; then
109				DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS},"
110			fi
111			DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS}LOCAL_TRANS"
112		fi
113		if test "$TCPCONN" = "yes" ; then
114			if test ! "x$DEFAULT_LOCAL_TRANS" = "x" ; then
115				DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS},"
116			fi
117			DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS}TCP_TRANS"
118		fi
119		;;
120	linux*)
121		# LOCAL_TRANS is used for abstract sockets.
122		if test "$UNIXCONN" = "yes" ; then
123			if test ! "x$DEFAULT_LOCAL_TRANS" = "x" ; then
124				DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS},"
125			fi
126			DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS}LOCAL_TRANS,UNIX_TRANS"
127		fi
128		if test "$TCPCONN" = "yes" ; then
129			if test ! "x$DEFAULT_LOCAL_TRANS" = "x" ; then
130				DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS},"
131			fi
132			DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS}TCP_TRANS"
133		fi
134		;;
135	*)
136		if test "$LOCALCONN" = "yes" ; then
137			if test ! "x$DEFAULT_LOCAL_TRANS" = "x" ; then
138				DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS},"
139			fi
140			DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS}LOCAL_TRANS"
141		fi
142		if test "$UNIXCONN" = "yes" ; then
143			if test ! "x$DEFAULT_LOCAL_TRANS" = "x" ; then
144				DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS},"
145			fi
146			DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS}UNIX_TRANS"
147		fi
148		if test "$TCPCONN" = "yes" ; then
149			if test ! "x$DEFAULT_LOCAL_TRANS" = "x" ; then
150				DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS},"
151			fi
152			DEFAULT_LOCAL_TRANS="${DEFAULT_LOCAL_TRANS}TCP_TRANS"
153		fi
154		;;
155esac
156
157AC_ARG_WITH(local-transport-order,
158	AS_HELP_STRING([--with-local-transport-order=LIST], [preference sorted list of transport types to try for local connections]),
159	[LOCAL_TRANSPORT_LIST=$withval],
160	[LOCAL_TRANSPORT_LIST=$DEFAULT_LOCAL_TRANS])
161AC_DEFINE_UNQUOTED([LOCAL_TRANSPORT_LIST], [$LOCAL_TRANSPORT_LIST],
162   [preference sorted list of transport types to try for local connections])
163AC_MSG_RESULT([$LOCAL_TRANSPORT_LIST])
164
165# Check for dlopen
166AC_MSG_CHECKING([if run-time linking is supported])
167AC_SEARCH_LIBS(dlopen,[dl svld])
168if test "x$ac_cv_search_dlopen" = xno; then
169	AC_SEARCH_LIBS(shl_load,[dld])
170	if test "x$ac_cv_search_shl_load" != xno; then
171		AC_DEFINE(HAVE_SHL_LOAD,1,
172			  [Use shl_load to load shared libraries])
173		AC_CHECK_HEADERS([dl.h])
174	fi
175else
176	AC_DEFINE(HAVE_DLOPEN,1,[Use dlopen to load shared libraries])
177	AC_CHECK_HEADERS([dlfcn.h])
178fi
179if test "x$ac_cv_header_dlfcn_h" = xyes -o "x$ac_cv_header_dl_h" = xyes; then
180	HAVE_LOADABLE_MODULES=yes
181else
182	HAVE_LOADABLE_MODULES=no
183fi
184AC_MSG_RESULT($HAVE_LOADABLE_MODULES)
185
186AC_MSG_CHECKING([if loadable i18n module support should be enabled])
187AC_ARG_ENABLE(loadable-i18n,
188	      AS_HELP_STRING([--enable-loadable-i18n],
189	       [Controls loadable i18n module support]),
190	       [XLIB_LOADABLE_I18N=$enableval],
191	       [XLIB_LOADABLE_I18N="no"])
192if test x$XLIB_LOADABLE_I18N = xyes; then
193	if test x$HAVE_LOADABLE_MODULES = xno; then
194		AC_MSG_ERROR([Loadable module support is required to enable loadable i18n module support])
195	fi
196	AC_DEFINE(USE_DYNAMIC_LC,1,
197		  [Split some i18n functions into loadable modules])
198	AC_SUBST(I18N_MODULE_LIBS,'${top_builddir}/src/libX11.la')
199fi
200AC_MSG_RESULT($XLIB_LOADABLE_I18N)
201
202AM_CONDITIONAL(XLIB_LOADABLE_I18N, test x$XLIB_LOADABLE_I18N = xyes)
203
204AC_MSG_CHECKING([if loadable Xcursor library support should be enabled])
205AC_ARG_ENABLE(loadable-xcursor,
206	      AS_HELP_STRING([--disable-loadable-xcursor],
207	       [Controls loadable xcursor library support]),
208	       [XLIB_LOADABLE_XCURSOR=$enableval],
209	       [XLIB_LOADABLE_XCURSOR=$HAVE_LOADABLE_MODULES])
210if test x$XLIB_LOADABLE_XCURSOR = xyes; then
211	AC_DEFINE(USE_DYNAMIC_XCURSOR,1,
212		  [Use the X cursor library to load cursors])
213fi
214AC_MSG_RESULT($XLIB_LOADABLE_XCURSOR)
215
216# Checks for header files.
217AC_CHECK_HEADERS([sys/select.h])
218
219# Checks for typedefs, structures, and compiler characteristics.
220
221# Checks for library functions.
222AC_CHECK_FUNCS([strtol seteuid])
223# Used in lcFile.c (see also --enable-xlocaledir settings below)
224XLOCALEDIR_IS_SAFE="no"
225AC_CHECK_DECL([issetugid])
226AC_CHECK_FUNC([issetugid])
227if test "$ac_cv_have_decl_issetugid" = yes && test "$ac_cv_func_issetugid" = yes; then
228    XLOCALEDIR_IS_SAFE="yes"
229    AC_DEFINE(HASSETUGID,1,[Has issetugid() function])
230fi
231AC_CHECK_FUNC([getresuid], [XLOCALEDIR_IS_SAFE="yes"]
232	AC_DEFINE(HASGETRESUID,1,[Has getresuid() & getresgid() functions]))
233# Used in Font.c
234AC_CHECK_FUNC([shmat], AC_DEFINE(HAS_SHM,1,[Has shm*() functions]))
235
236# Checks for system services
237# AC_PATH_XTRA
238
239# arch specific things
240WCHAR32="1"
241case $host_os in
242  os2*) os2="true" ; WCHAR32="0" ;;
243  *) ;;
244esac
245AC_SUBST(WCHAR32)
246
247AM_CONDITIONAL(OS2, test x$os2 = xtrue)
248
249AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto])
250if test "x$LAUNCHD" = xauto; then
251	unset LAUNCHD
252	AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin])
253fi
254
255if test "x$LAUNCHD" = xyes ; then
256	AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
257	AC_DEFINE(TRANS_REOPEN, 1, [launchd support available])
258fi
259
260AC_ARG_ENABLE(xthreads,
261              AS_HELP_STRING([--disable-xthreads],
262                [Disable Xlib support for Multithreading]),
263              [xthreads=$enableval],[xthreads=yes])
264
265AC_CHECK_LIB(c, getpwuid_r, [mtsafeapi="yes"], [mtsafeapi="no"])
266
267case x$xthreads in
268xyes)
269	AC_DEFINE(XTHREADS,1,[Whether libX11 is compiled with thread support])
270	if test x$mtsafeapi = xyes
271	then
272	AC_DEFINE(XUSE_MTSAFE_API,1,[Whether libX11 needs to use MT safe API's])
273	fi
274	;;
275*)
276	;;
277esac
278
279AC_CHECK_LIB(c, pthread_self, [thrstubs="no"], [thrstubs="yes"])
280AM_CONDITIONAL(THRSTUBS, test x$thrstubs = xyes)
281
282# XXX incomplete, please fill this in
283if test x$xthreads = xyes ; then
284    case $host_os in
285    linux*|gnu*|k*bsd*-gnu)
286        XTHREADLIB=-lpthread ;;
287    netbsd*)
288	XTHREAD_CFLAGS="-D_POSIX_THREAD_SAFE_FUNCTIONS"
289	XTHREADLIB="-lpthread" ;;
290    freebsd*)
291        XTHREAD_CFLAGS="-D_THREAD_SAFE"
292        XTHREADLIB="-pthread" ;;
293    dragonfly*|openbsd*)
294        XTHREADLIB="-pthread" ;;
295    solaris*)
296	XTHREAD_CFLAGS="-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS" ;;
297    esac
298fi
299AC_SUBST(XTHREADLIB)
300AC_SUBST(XTHREAD_CFLAGS)
301
302AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
303
304#
305# Find keysymdef.h
306#
307AC_MSG_CHECKING([keysym definitions])
308AC_ARG_WITH([keysymdefdir],
309        [AC_HELP_STRING([--with-keysymdefdir=DIR], [The location of keysymdef.h (defaults to xproto include dir)])],
310        [KEYSYMDEFDIR=$withval],
311        [KEYSYMDEFDIR=`$PKG_CONFIG --variable=includedir xproto`/X11])
312
313if test ! -d "$KEYSYMDEFDIR"; then
314	AC_MSG_ERROR([$KEYSYMDEFDIR doesn't exist or isn't a directory])
315fi
316
317FILES="keysymdef.h XF86keysym.h Sunkeysym.h DECkeysym.h HPkeysym.h"
318for i in $FILES; do
319    if test -f "$KEYSYMDEFDIR/$i"; then
320            KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i"
321    elif test "x$i" = "xkeysymdef.h"; then
322	    AC_MSG_ERROR([Cannot find keysymdef.h])
323    fi
324done
325AC_MSG_RESULT([$KEYSYMDEFS])
326AC_SUBST(KEYSYMDEFS)
327
328AM_CONDITIONAL(UDC, test xfalse = xtrue)
329
330AC_ARG_ENABLE(xcms,
331              AS_HELP_STRING([--disable-xcms],
332                [Disable Xlib support for CMS *EXPERIMENTAL*]),
333              [XCMS=$enableval],[XCMS=yes])
334AM_CONDITIONAL(XCMS, [test x$XCMS = xyes ])
335if test x"$XCMS" = "xyes"; then
336	AC_DEFINE(XCMS,1,[Include support for XCMS])
337fi
338
339AC_ARG_ENABLE(xlocale,
340              AS_HELP_STRING([--disable-xlocale],
341                [Disable Xlib locale implementation *EXPERIMENTAL*]),
342              [XLOCALE=$enableval],[XLOCALE=yes])
343
344AM_CONDITIONAL(XLOCALE, [ test x$XLOCALE = xyes ])
345if test x"$XLOCALE" = "xyes"; then
346	AC_DEFINE(XLOCALE,1,[support for X Locales])
347fi
348
349# This disables XLOCALEDIR.  Set it if you're using BuildLoadableXlibI18n,
350# don't have either issetugid() or getresuid(), and you need to protect
351# clients that are setgid or setuid to an id other than 0.
352AC_MSG_CHECKING([if XLOCALEDIR support should be enabled])
353AC_ARG_ENABLE(xlocaledir,
354	      AS_HELP_STRING([--enable-xlocaledir],
355		[Enable XLOCALEDIR environment variable support]),
356	      [ENABLE_XLOCALEDIR=$enableval],[ENABLE_XLOCALEDIR=$XLOCALEDIR_IS_SAFE])
357if test "x$ENABLE_XLOCALEDIR" = "xno"; then
358	AC_DEFINE(NO_XLOCALEDIR,1,[Disable XLOCALEDIR environment variable])
359fi
360AC_MSG_RESULT($ENABLE_XLOCALEDIR)
361
362AC_ARG_ENABLE(xf86bigfont,
363	      AS_HELP_STRING([--disable-xf86bigfont],
364		[Disable XF86BigFont extension support]),
365	      [XF86BIGFONT=$enableval],[XF86BIGFONT="yes"])
366if test "x$XF86BIGFONT" = "xyes"; then
367    PKG_CHECK_MODULES(BIGFONT, [xf86bigfontproto >= 1.2.0],
368         AC_DEFINE(XF86BIGFONT,1,[Enable XF86BIGFONT extension]),XF86BIGFONT="no")
369fi
370
371AC_ARG_ENABLE(xkb,
372              AS_HELP_STRING([--disable-xkb],
373                [Disable XKB support *EXPERIMENTAL*]),
374              [XKB=$enableval],[XKB=yes])
375
376AM_CONDITIONAL(XKB, [ test x$XKB = xyes ])
377if test x"$XKB" = "xyes"; then
378   XKBPROTO_REQUIRES="kbproto"
379   X11_REQUIRES="${X11_REQUIRES} kbproto inputproto"
380   AC_DEFINE(XKB,1,[Use XKB])
381else
382   XKBPROTO_REQUIRES=""
383fi
384AC_SUBST(XKBPROTO_REQUIRES)
385
386AC_FUNC_MMAP()
387composecache_default=$ac_cv_func_mmap_fixed_mapped
388AC_CHECK_FUNC(nl_langinfo, , [composecache_default=no])
389AC_ARG_ENABLE(composecache,
390              AS_HELP_STRING([--disable-composecache],
391                [Disable compose table cache support]),
392              [COMPOSECACHE=$enableval],[COMPOSECACHE=$composecache_default])
393if test x"$COMPOSECACHE" = "xyes"; then
394	AC_DEFINE(COMPOSECACHE,1,[Include compose table cache support])
395fi
396
397# Allow checking code with lint, sparse, etc.
398XORG_WITH_LINT
399XORG_LINT_LIBRARY([X11])
400
401X11_DATADIR="${datadir}/X11"
402AX_DEFINE_DIR(X11_DATADIR, X11_DATADIR, [Location of libX11 data])
403AC_SUBST(X11_DATADIR)
404
405X11_LIBDIR="${libdir}/X11"
406AX_DEFINE_DIR(X11_LIBDIR, X11_LIBDIR, [Location of libX11 library data])
407AC_SUBST(X11_LIBDIR)
408
409PKG_CHECK_MODULES(X11, [$X11_REQUIRES])
410X11_CFLAGS="$X11_CFLAGS $XTHREAD_CFLAGS"
411
412#
413# Yes, it would be nice to put the locale data in
414# /usr/share, but the locale stuff includes loadable
415# libraries which must be located in the same directory
416# as the other locale data, so for now, everything lives
417# in ${libdir}
418#
419
420X11_LOCALEDATADIR="${X11_DATADIR}/locale"
421AX_DEFINE_DIR(XLOCALEDATADIR, X11_LOCALEDATADIR, [Location of libX11 locale data])
422AC_SUBST(X11_LOCALEDATADIR)
423
424AC_ARG_WITH(locale-lib-dir,	AS_HELP_STRING([--with-locale-lib-dir=DIR],
425 [Directory where locale libraries files are installed (default: $libdir/X11/locale)]),
426				[ X11_LOCALELIBDIR="$withval" ],
427				[ X11_LOCALELIBDIR="${X11_LIBDIR}/locale" ])
428AX_DEFINE_DIR(XLOCALELIBDIR, X11_LOCALELIBDIR, [Location of libX11 locale libraries])
429AC_SUBST(X11_LOCALELIBDIR)
430
431X11_LOCALEDIR="${X11_LOCALEDATADIR}"
432AX_DEFINE_DIR(XLOCALEDIR, X11_LOCALEDIR, [Location of libX11 locale data])
433AC_SUBST(X11_LOCALEDIR)
434
435locales="\
436 am_ET.UTF-8  armscii-8   C           el_GR.UTF-8  en_US.UTF-8  fi_FI.UTF-8 \
437 georgian-academy         georgian-ps ibm-cp1133   iscii-dev    isiri-3342 \
438 iso8859-1    iso8859-10  iso8859-11  iso8859-13   iso8859-14   iso8859-15 \
439 iso8859-2    iso8859-3   iso8859-4   iso8859-5    iso8859-6    iso8859-7 \
440 iso8859-8    iso8859-9   iso8859-9e  ja           ja.JIS       ja_JP.UTF-8\
441 ja.SJIS      ko          koi8-c      koi8-r                                  \
442 koi8-u       ko_KR.UTF-8 microsoft-cp1251         microsoft-cp1255 \
443 microsoft-cp1256         mulelao-1   nokhchi-1    pt_BR.UTF-8  ru_RU.UTF-8 \
444 tatar-cyr    th_TH       th_TH.UTF-8 tscii-0      vi_VN.tcvn   vi_VN.viscii \
445 zh_CN        zh_CN.gb18030           zh_CN.gbk    zh_CN.UTF-8  zh_HK.big5 \
446 zh_HK.big5hkscs          zh_HK.UTF-8 zh_TW        zh_TW.big5   zh_TW.UTF-8"
447AC_SUBST(locales)
448
449XKEYSYMDB="${X11_DATADIR}/XKeysymDB"
450AX_DEFINE_DIR(XKEYSYMDB, XKEYSYMDB, [Location of keysym database])
451
452XERRORDB="${X11_DATADIR}/XErrorDB"
453AX_DEFINE_DIR(XERRORDB, XERRORDB, [Location of error message database])
454
455XORG_CHECK_MALLOC_ZERO
456
457AC_CONFIG_FILES([Makefile
458		include/Makefile
459		man/Makefile
460		man/xkb/Makefile
461		src/Makefile
462		src/util/Makefile
463		src/xcms/Makefile
464		src/xlibi18n/Makefile
465		modules/Makefile
466		modules/im/Makefile
467		modules/im/ximcp/Makefile
468		modules/lc/Makefile
469		modules/lc/def/Makefile
470		modules/lc/gen/Makefile
471		modules/lc/Utf8/Makefile
472		modules/lc/xlocale/Makefile
473		modules/om/Makefile
474		modules/om/generic/Makefile
475		src/xkb/Makefile
476		nls/Makefile
477		specs/Makefile
478		specs/i18n/Makefile
479		specs/i18n/compose/Makefile
480		specs/i18n/framework/Makefile
481		specs/i18n/localedb/Makefile
482		specs/i18n/trans/Makefile
483		specs/libX11/Makefile
484		specs/XIM/Makefile
485		specs/XKB/Makefile
486		x11.pc
487		x11-xcb.pc])
488AC_OUTPUT
489
490echo ""
491echo "X11 will be built with the following settings:"
492echo " Loadable i18n module support:            "$XLIB_LOADABLE_I18N
493echo " Loadable xcursor library support:        "$XLIB_LOADABLE_XCURSOR
494echo " Threading support:                       "$xthreads
495echo " Use Threads safe API:                    "$mtsafeapi
496echo " Threads stubs in libX11:                 "$thrstubs
497echo " XCMS:                                    "$XCMS
498echo " Internationalization support:            "$XLOCALE
499echo " XF86BigFont support:                     "$XF86BIGFONT
500echo " XKB support:                             "$XKB
501echo " XLOCALEDIR environment variable support: "$ENABLE_XLOCALEDIR
502echo " Compose table cache enabled:             "$COMPOSECACHE
503echo " Functional specs building enabled:       "$build_specs
504echo ""
505