xref: /OK3568_Linux_fs/external/xserver/configure.ac (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1dnl Copyright © 2003-2007 Keith Packard, Daniel Stone
2dnl
3dnl Permission is hereby granted, free of charge, to any person obtaining a
4dnl copy of this software and associated documentation files (the "Software"),
5dnl to deal in the Software without restriction, including without limitation
6dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
7dnl and/or sell copies of the Software, and to permit persons to whom the
8dnl Software is furnished to do so, subject to the following conditions:
9dnl
10dnl The above copyright notice and this permission notice (including the next
11dnl paragraph) shall be included in all copies or substantial portions of the
12dnl Software.
13dnl
14dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20dnl DEALINGS IN THE SOFTWARE.
21dnl
22dnl Authors: Keith Packard <keithp@keithp.com>
23dnl          Daniel Stone <daniel@fooishbar.org>
24dnl          an unwitting cast of miscellaneous others
25dnl
26dnl Process this file with autoconf to create configure.
27
28AC_PREREQ(2.60)
29AC_INIT([xorg-server], 1.20.11, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
30RELEASE_DATE="2021-04-13"
31RELEASE_NAME="Arroz con Pollo"
32AC_CONFIG_SRCDIR([Makefile.am])
33AC_CONFIG_MACRO_DIR([m4])
34AM_INIT_AUTOMAKE([foreign dist-bzip2])
35AC_USE_SYSTEM_EXTENSIONS
36
37# Require xorg-macros minimum of 1.14 for XORG_COMPILER_BRAND in XORG_DEFAULT_OPTIONS
38m4_ifndef([XORG_MACROS_VERSION],
39          [m4_fatal([must install xorg-macros 1.14 or later before running autoconf/autogen])])
40XORG_MACROS_VERSION(1.14)
41XORG_DEFAULT_OPTIONS
42XORG_WITH_DOXYGEN(1.6.1)
43XORG_CHECK_SGML_DOCTOOLS(1.8)
44XORG_ENABLE_DOCS
45XORG_ENABLE_DEVEL_DOCS
46XORG_WITH_XMLTO(0.0.20)
47XORG_WITH_FOP
48XORG_WITH_XSLTPROC
49XORG_ENABLE_UNIT_TESTS
50XORG_LD_WRAP([optional])
51
52m4_ifndef([XORG_FONT_MACROS_VERSION], [m4_fatal([must install font-util 1.1 or later before running autoconf/autogen])])
53XORG_FONT_MACROS_VERSION(1.1)
54
55dnl this gets generated by autoheader, and thus contains all the defines.  we
56dnl don't ever actually use it, internally.
57AC_CONFIG_HEADERS(include/do-not-use-config.h)
58dnl xorg-server.h is an external header, designed to be included by loadable
59dnl drivers.
60AC_CONFIG_HEADERS(include/xorg-server.h)
61dnl dix-config.h covers most of the DIX (i.e. everything but the DDX, not just
62dnl dix/).
63AC_CONFIG_HEADERS(include/dix-config.h)
64dnl xorg-config.h covers the Xorg DDX.
65AC_CONFIG_HEADERS(include/xorg-config.h)
66dnl xkb-config.h covers XKB for the Xorg and Xnest DDXs.
67AC_CONFIG_HEADERS(include/xkb-config.h)
68dnl xwin-config.h covers the XWin DDX.
69AC_CONFIG_HEADERS(include/xwin-config.h)
70dnl xwayland-config.h covers Xwayland.
71AC_CONFIG_HEADERS(include/xwayland-config.h)
72dnl version-config.h covers the version numbers so they can be bumped without
73dnl forcing an entire recompile.x
74AC_CONFIG_HEADERS(include/version-config.h)
75
76AM_PROG_AS
77AC_PROG_LN_S
78LT_PREREQ([2.2])
79LT_INIT([disable-static win32-dll])
80PKG_PROG_PKG_CONFIG
81AC_PROG_LEX
82AC_PROG_YACC
83AC_SYS_LARGEFILE
84XORG_PROG_RAWCPP
85
86# Quoted so that make will expand $(CWARNFLAGS) in makefiles to allow
87# easier overrides at build time.
88XSERVER_CFLAGS='$(CWARNFLAGS)'
89
90dnl Explicitly add -fno-strict-aliasing since this option should disappear
91dnl from util-macros CWARNFLAGS
92if  test "x$GCC" = xyes ; then
93    XSERVER_CFLAGS="$XSERVER_CFLAGS -fno-strict-aliasing"
94fi
95
96dnl Check for dtrace program (needed to build Xserver dtrace probes)
97dnl Also checks for <sys/sdt.h>, since some Linux distros have an
98dnl ISDN trace program named dtrace
99AC_ARG_WITH(dtrace, AS_HELP_STRING([--with-dtrace=PATH],
100	     [Enable dtrace probes (default: enabled if dtrace found)]),
101	     [WDTRACE=$withval], [WDTRACE=auto])
102if test "x$WDTRACE" = "xyes" -o "x$WDTRACE" = "xauto" ; then
103	AC_PATH_PROG(DTRACE, [dtrace], [not_found], [$PATH:/usr/sbin])
104	if test "x$DTRACE" = "xnot_found" ; then
105		if test "x$WDTRACE" = "xyes" ; then
106			AC_MSG_FAILURE([dtrace requested but not found])
107		fi
108		WDTRACE="no"
109	else
110		AC_CHECK_HEADER(sys/sdt.h, [HAS_SDT_H="yes"], [HAS_SDT_H="no"])
111		if test "x$WDTRACE" = "xauto" -a "x$HAS_SDT_H" = "xno" ; then
112			WDTRACE="no"
113		fi
114	fi
115fi
116if test "x$WDTRACE" != "xno" ; then
117  AC_DEFINE(XSERVER_DTRACE, 1,
118      [Define to 1 if the DTrace Xserver provider probes should be built in.])
119
120# Solaris/OpenSolaris require dtrace -G to build dtrace probe information into
121# object files, and require linking with those as relocatable objects, not .a
122# archives. MacOS X handles all this in the normal compiler toolchain, and on
123# some releases (like Tiger), will error out on dtrace -G.  For now, other
124# platforms with Dtrace ports are assumed to support -G (the FreeBSD and Linux
125# ports appear to, based on my web searches, but have not yet been tested).
126	case $host_os in
127		darwin*)	SPECIAL_DTRACE_OBJECTS=no ;;
128		*)		SPECIAL_DTRACE_OBJECTS=yes ;;
129	esac
130fi
131AM_CONDITIONAL(XSERVER_DTRACE, [test "x$WDTRACE" != "xno"])
132AM_CONDITIONAL(SPECIAL_DTRACE_OBJECTS, [test "x$SPECIAL_DTRACE_OBJECTS" = "xyes"])
133
134AC_HEADER_DIRENT
135AC_HEADER_STDC
136AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h dlfcn.h stropts.h \
137 fnmatch.h sys/mkdev.h sys/sysmacros.h sys/utsname.h])
138
139dnl Checks for typedefs, structures, and compiler characteristics.
140AC_C_CONST
141AC_C_TYPEOF
142AC_C_BIGENDIAN(AC_DEFINE(X_BYTE_ORDER, X_BIG_ENDIAN, [byte order]),
143               AC_DEFINE(X_BYTE_ORDER, X_LITTLE_ENDIAN, [byte order]))
144
145AC_CHECK_SIZEOF([unsigned long])
146if test "$ac_cv_sizeof_unsigned_long" = 8; then
147	AC_DEFINE(_XSERVER64, 1, [Define to 1 if unsigned long is 64 bits.])
148fi
149
150AC_TYPE_PID_T
151
152dnl Check to see if dlopen is in default libraries (like Solaris, which
153dnl has it in libc), or if libdl is needed to get it.
154AC_CHECK_FUNC([dlopen], [],
155	AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
156AC_SUBST(DLOPEN_LIBS)
157
158dnl Checks for library functions.
159AC_CHECK_FUNCS([backtrace geteuid getuid issetugid getresuid \
160	getdtablesize getifaddrs getpeereid getpeerucred getprogname getzoneid \
161	mmap posix_fallocate seteuid shmctl64 strncasecmp vasprintf vsnprintf \
162	walkcontext setitimer poll epoll_create1 mkostemp memfd_create isastream])
163AC_CONFIG_LIBOBJ_DIR([os])
164AC_REPLACE_FUNCS([reallocarray strcasecmp strcasestr strlcat strlcpy strndup\
165	timingsafe_memcmp])
166AM_CONDITIONAL(POLL, [test "x$ac_cv_func_poll" = "xyes"])
167
168AC_CHECK_LIB([bsd], [arc4random_buf])
169AC_CHECK_FUNCS([arc4random_buf])
170
171AC_CHECK_DECLS([program_invocation_short_name], [], [], [[#include <errno.h>]])
172
173dnl Check for SO_PEERCRED #define
174AC_CACHE_CHECK([for SO_PEERCRED in sys/socket.h],
175	       [xorg_cv_sys_have_so_peercred],
176	       [AC_EGREP_CPP(yes_have_so_peercred,[
177#include <sys/types.h>
178#include <sys/socket.h>
179#ifdef SO_PEERCRED
180yes_have_so_peercred
181#endif
182],
183	       [xorg_cv_sys_have_so_peercred=yes],
184	       [xorg_cv_sys_have_so_peercred=no])])
185
186dnl define NO_LOCAL_CLIENT_CRED if no getpeereid, getpeerucred or SO_PEERCRED
187if test "x$ac_cv_func_getpeereid" = xno && test "x$ac_cv_func_getpeerucred" = xno && test "x$xorg_cv_sys_have_so_peercred" = xno ; then
188	AC_DEFINE([NO_LOCAL_CLIENT_CRED], 1, [Define to 1 if no local socket credentials interface exists])
189fi
190
191dnl Find the math libary, then check for cbrt function in it.
192AC_CHECK_LIB(m, sqrt)
193AC_CHECK_FUNCS([cbrt])
194
195dnl AGPGART headers
196AC_CHECK_HEADERS([linux/agpgart.h sys/agpio.h sys/agpgart.h], AGP=yes)
197AM_CONDITIONAL(AGP, [test "x$AGP" = xyes])
198
199dnl fbdev header
200AC_CHECK_HEADERS([linux/fb.h], FBDEV=yes)
201AM_CONDITIONAL(FBDEVHW, [test "x$FBDEV" = xyes])
202
203dnl FreeBSD kldload support (sys/linker.h)
204AC_CHECK_HEADERS([sys/linker.h],
205	[ac_cv_sys_linker_h=yes],
206	[ac_cv_sys_linker_h=no],
207	[#include <sys/param.h>])
208AM_CONDITIONAL(FREEBSD_KLDLOAD, [test "x$ac_cv_sys_linker_h" = xyes])
209
210AC_CACHE_CHECK([for SYSV IPC],
211		ac_cv_sysv_ipc,
212               [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
213#include <sys/types.h>
214#include <sys/ipc.h>
215#include <sys/shm.h>
216#include <sys/stat.h>
217]],[[
218{
219    int id;
220    id = shmget(IPC_PRIVATE, 512, S_IRUSR | S_IWUSR);
221    if (id < 0) return -1;
222    return shmctl(id, IPC_RMID, 0);
223}]])],
224       [ac_cv_sysv_ipc=yes],
225       [ac_cv_sysv_ipc=no])])
226if test "x$ac_cv_sysv_ipc" = xyes; then
227	AC_DEFINE(HAVE_SYSV_IPC, 1, [Define to 1 if SYSV IPC is available])
228fi
229
230dnl OpenBSD /dev/xf86 aperture driver
231if test -c /dev/xf86 ; then
232	AC_DEFINE(HAS_APERTURE_DRV, 1, [System has /dev/xf86 aperture driver])
233fi
234
235dnl BSD APM support
236AC_CHECK_HEADER([machine/apmvar.h],[
237	AC_CHECK_HEADER([sys/event.h],
238		ac_cv_BSD_KQUEUE_APM=yes,
239		ac_cv_BSD_APM=yes)])
240
241AM_CONDITIONAL(BSD_APM, [test "x$ac_cv_BSD_APM" = xyes])
242AM_CONDITIONAL(BSD_KQUEUE_APM, [test "x$ac_cv_BSD_KQUEUE_APM" = xyes])
243
244dnl glibc backtrace support check
245AC_CHECK_HEADER([execinfo.h],[
246    AC_CHECK_LIB(c, backtrace, [
247        AC_DEFINE(HAVE_BACKTRACE, 1, [Has backtrace support])
248        AC_DEFINE(HAVE_EXECINFO_H, 1, [Have execinfo.h])
249    ])]
250)
251
252dnl ---------------------------------------------------------------------------
253dnl Bus options and CPU capabilities.  Replaces logic in
254dnl hw/xfree86/os-support/bus/Makefile.am, among others.
255dnl ---------------------------------------------------------------------------
256DEFAULT_INT10="x86emu"
257
258dnl Override defaults as needed for specific platforms:
259
260case $host_cpu in
261  alpha*)
262	ALPHA_VIDEO=yes
263	case $host_os in
264	        *freebsd*)	SYS_LIBS=-lio ;;
265		*netbsd*)	AC_DEFINE(USE_ALPHA_PIO, 1, [NetBSD PIO alpha IO]) ;;
266	esac
267	GLX_ARCH_DEFINES="-D__GLX_ALIGN64 -mieee"
268	;;
269  arm*)
270	ARM_VIDEO=yes
271	DEFAULT_INT10="stub"
272	;;
273  i*86)
274	I386_VIDEO=yes
275	case $host_os in
276		*freebsd*)	AC_DEFINE(USE_DEV_IO) ;;
277		*dragonfly*)	AC_DEFINE(USE_DEV_IO) ;;
278		*netbsd*)	AC_DEFINE(USE_I386_IOPL)
279				SYS_LIBS=-li386
280				;;
281		*openbsd*)	AC_DEFINE(USE_I386_IOPL)
282				SYS_LIBS=-li386
283				;;
284	esac
285        ;;
286  powerpc*)
287	PPC_VIDEO=yes
288	case $host_os in
289		*freebsd*)	DEFAULT_INT10=stub ;;
290	esac
291	;;
292  sparc*)
293	SPARC64_VIDEO=yes
294	BSD_ARCH_SOURCES="sparc64_video.c ioperm_noop.c"
295	GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
296	;;
297  x86_64*|amd64*)
298	I386_VIDEO=yes
299	case $host_os in
300		*freebsd*)	AC_DEFINE(USE_DEV_IO, 1, [BSD /dev/io]) ;;
301		*dragonfly*)	AC_DEFINE(USE_DEV_IO, 1, [BSD /dev/io]) ;;
302		*netbsd*)	AC_DEFINE(USE_I386_IOPL, 1, [BSD i386 iopl])
303				SYS_LIBS=-lx86_64
304				;;
305		*openbsd*)	AC_DEFINE(USE_AMD64_IOPL, 1, [BSD AMD64 iopl])
306				SYS_LIBS=-lamd64
307				;;
308	esac
309	GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
310	;;
311  ia64*)
312  	GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
313	;;
314  s390*)
315  	GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
316	;;
317esac
318AC_SUBST(GLX_ARCH_DEFINES)
319
320dnl BSD *_video.c selection
321AM_CONDITIONAL(ALPHA_VIDEO, [test "x$ALPHA_VIDEO" = xyes])
322AM_CONDITIONAL(ARM_VIDEO, [test "x$ARM_VIDEO" = xyes])
323AM_CONDITIONAL(I386_VIDEO, [test "x$I386_VIDEO" = xyes])
324AM_CONDITIONAL(PPC_VIDEO, [test "x$PPC_VIDEO" = xyes])
325AM_CONDITIONAL(SPARC64_VIDEO, [test "x$SPARC64_VIDEO" = xyes])
326
327DRI=no
328dnl it would be nice to autodetect these *CONS_SUPPORTs
329case $host_os in
330  *freebsd* | *dragonfly*)
331	case $host_os in
332		kfreebsd*-gnu) ;;
333		*) AC_DEFINE(CSRG_BASED, 1, [System is BSD-like]) ;;
334	esac
335	AC_DEFINE(PCCONS_SUPPORT, 1, [System has PC console])
336	AC_DEFINE(PCVT_SUPPORT, 1, [System has PCVT console])
337	AC_DEFINE(SYSCONS_SUPPORT, 1, [System has syscons console])
338	DRI=yes
339	;;
340  *netbsd*)
341	AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
342	AC_DEFINE(PCCONS_SUPPORT, 1, [System has PC console])
343	AC_DEFINE(PCVT_SUPPORT, 1, [System has PCVT console])
344	AC_DEFINE(WSCONS_SUPPORT, 1, [System has wscons console])
345	DRI=yes
346	;;
347  *openbsd*)
348	AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
349	AC_DEFINE(PCVT_SUPPORT, 1, [System has PC console])
350	AC_DEFINE(WSCONS_SUPPORT, 1, [System has wscons console])
351	;;
352  *linux*)
353	DRI=yes
354	;;
355  *solaris*)
356	DRI=yes
357	;;
358  darwin*)
359	AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
360	;;
361  cygwin*|mingw*)
362	CFLAGS="$CFLAGS -DFD_SETSIZE=512"
363	;;
364esac
365
366dnl augment XORG_RELEASE_VERSION for our snapshot number and to expose the
367dnl major number
368PVMAJOR=`echo $PACKAGE_VERSION | cut -d . -f 1`
369PVS=`echo $PACKAGE_VERSION | cut -d . -f 4 | cut -d - -f 1`
370if test "x$PVS" = "x"; then
371	PVS="0"
372fi
373
374VENDOR_RELEASE="((($PVMAJOR) * 10000000) + (($PVM) * 100000) + (($PVP) * 1000) + $PVS)"
375VENDOR_MAN_VERSION="Version ${PACKAGE_VERSION}"
376
377VENDOR_NAME="The X.Org Foundation"
378VENDOR_NAME_SHORT="X.Org"
379VENDOR_WEB="http://wiki.x.org"
380
381dnl Build options.
382AC_ARG_ENABLE(werror,        AS_HELP_STRING([--enable-werror],
383		  [Obsolete - use --enable-strict-compilation instead]),
384  AC_MSG_ERROR([--enable-werror has been replaced by --enable-strict-compilation]))
385
386AC_ARG_ENABLE(debug,         AS_HELP_STRING([--enable-debug],
387				  [Enable debugging (default: disabled)]),
388			        [DEBUGGING=$enableval], [DEBUGGING=no])
389AC_ARG_WITH(int10,           AS_HELP_STRING([--with-int10=BACKEND], [int10 backend: vm86, x86emu or stub]),
390				[INT10="$withval"],
391				[INT10="$DEFAULT_INT10"])
392AC_ARG_WITH(vendor-name,     AS_HELP_STRING([--with-vendor-name=VENDOR],
393				  [Vendor string reported by the server]),
394				[ VENDOR_NAME="$withval" ], [])
395AC_ARG_WITH(vendor-name-short, AS_HELP_STRING([--with-vendor-name-short=VENDOR],
396				  [Short version of vendor string reported by the server]),
397				[ VENDOR_NAME_SHORT="$withval" ], [])
398AC_ARG_WITH(vendor-web,      AS_HELP_STRING([--with-vendor-web=URL],
399				  [Vendor web address reported by the server]),
400				[ VENDOR_WEB="$withval" ], [])
401AC_ARG_WITH(module-dir,      AS_HELP_STRING([--with-module-dir=DIR],
402				  [Directory where modules are installed (default: $libdir/xorg/modules)]),
403				[ moduledir="$withval" ],
404				[ moduledir="${libdir}/xorg/modules" ])
405AC_ARG_WITH(log-dir,         AS_HELP_STRING([--with-log-dir=DIR],
406				  [Directory where log files are kept (default: $localstatedir/log)]),
407				[ logdir="$withval" ],
408				[ logdir="$localstatedir/log" ])
409AC_ARG_WITH(builder-addr,    AS_HELP_STRING([--with-builder-addr=ADDRESS],
410				  [Builder address (default: xorg@lists.freedesktop.org)]),
411				[ BUILDERADDR="$withval" ],
412				[ BUILDERADDR="xorg@lists.freedesktop.org" ])
413AC_ARG_WITH(os-name,         AS_HELP_STRING([--with-os-name=OSNAME], [Name of OS (default: output of "uname -srm")]),
414				[ OSNAME="$withval" ],
415				[ OSNAME=`uname -srm` ])
416AC_ARG_WITH(os-vendor,       AS_HELP_STRING([--with-os-vendor=OSVENDOR], [Name of OS vendor]),
417				[ OSVENDOR="$withval" ],
418				[ OSVENDOR="" ])
419AC_ARG_WITH(builderstring,   AS_HELP_STRING([--with-builderstring=BUILDERSTRING], [Additional builder string]),
420				[ BUILDERSTRING="$withval" ]
421				[ ])
422AC_ARG_ENABLE(listen-tcp,    AS_HELP_STRING([--enable-listen-tcp],
423                                            [Listen on TCP by default (default:disabled)]),
424                                [LISTEN_TCP=$enableval], [LISTEN_TCP=no])
425AC_ARG_ENABLE(listen-unix,   AS_HELP_STRING([--disable-listen-unix],
426                                            [Listen on Unix by default (default:enabled)]),
427                                [LISTEN_UNIX=$enableval], [LISTEN_UNIX=yes])
428
429AC_ARG_ENABLE(listen-local,  AS_HELP_STRING([--disable-listen-local],
430                                            [Listen on local by default (default:enabled)]),
431                                [LISTEN_LOCAL=$enableval], [LISTEN_LOCAL=yes])
432
433case $host_os in
434    linux*)
435        FALLBACK_INPUT_DRIVER="libinput"
436        ;;
437    *)
438        FALLBACK_INPUT_DRIVER=""
439        ;;
440esac
441AC_ARG_WITH(fallback-input-driver,
442            AC_HELP_STRING([--with-fallback-input-driver=$FALLBACK_INPUT_DRIVER],
443                           [Input driver fallback if the requested driver for a device is unavailable]),
444                           [ FALLBACK_INPUT_DRIVER=$withval ], [])
445if test "x$FALLBACK_INPUT_DRIVER" = "xno"; then
446    FALLBACK_INPUT_DRIVER=""
447fi
448AC_MSG_CHECKING([for fallback input driver])
449AC_MSG_RESULT([$FALLBACK_INPUT_DRIVER])
450AC_DEFINE_UNQUOTED(FALLBACK_INPUT_DRIVER, ["$FALLBACK_INPUT_DRIVER"], [ Fallback input driver ])
451
452dnl Determine font path
453XORG_FONTROOTDIR
454XORG_FONTSUBDIR(FONTMISCDIR, fontmiscdir, misc)
455XORG_FONTSUBDIR(FONTOTFDIR, fontotfdir, OTF)
456XORG_FONTSUBDIR(FONTTTFDIR, fontttfdir, TTF)
457XORG_FONTSUBDIR(FONTTYPE1DIR, fonttype1dir, Type1)
458XORG_FONTSUBDIR(FONT75DPIDIR, font75dpidir, 75dpi)
459XORG_FONTSUBDIR(FONT100DPIDIR, font100dpidir, 100dpi)
460
461dnl Uses --with-default-font-path if set, otherwise uses standard
462dnl subdirectories of FONTROOTDIR. Some distros set the default font path to
463dnl "catalogue:/etc/X11/fontpath.d,built-ins"
464DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
465case $host_os in
466    darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
467esac
468
469AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
470				[ FONTPATH="$withval" ],
471				[ FONTPATH="${DEFAULT_FONT_PATH}" ])
472
473AC_MSG_CHECKING([for default font path])
474AC_MSG_RESULT([$FONTPATH])
475
476AC_ARG_WITH(xkb-path,         AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: auto)]),
477				[ XKBPATH="$withval" ],
478				[ XKBPATH="auto" ])
479AC_ARG_WITH(xkb-output,       AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]),
480				[ XKBOUTPUT="$withval" ],
481				[ XKBOUTPUT="compiled" ])
482AC_ARG_WITH(default-xkb-rules, AS_HELP_STRING([--with-default-xkb-rules=RULES],
483                                   [Keyboard ruleset (default: base/evdev)]),
484                                [ XKB_DFLT_RULES="$withval" ],
485                                [ XKB_DFLT_RULES="" ])
486AC_ARG_WITH(default-xkb-model, AS_HELP_STRING([--with-default-xkb-model=MODEL],
487                                   [Keyboard model (default: pc105)]),
488                                [ XKB_DFLT_MODEL="$withval" ],
489                                [ XKB_DFLT_MODEL="pc105" ])
490AC_ARG_WITH(default-xkb-layout, AS_HELP_STRING([--with-default-xkb-layout=LAYOUT],
491                                   [Keyboard layout (default: us)]),
492                                [ XKB_DFLT_LAYOUT="$withval" ],
493                                [ XKB_DFLT_LAYOUT="us" ])
494AC_ARG_WITH(default-xkb-variant, AS_HELP_STRING([--with-default-xkb-variant=VARIANT],
495                                   [Keyboard variant (default: (none))]),
496                                [ XKB_DFLT_VARIANT="$withval" ],
497                                [ XKB_DFLT_VARIANT="" ])
498AC_ARG_WITH(default-xkb-options, AS_HELP_STRING([--with-default-xkb-options=OPTIONS],
499                                   [Keyboard layout options (default: (none))]),
500                                [ XKB_DFLT_OPTIONS="$withval" ],
501                                [ XKB_DFLT_OPTIONS="" ])
502AC_ARG_WITH(serverconfig-path, AS_HELP_STRING([--with-serverconfig-path=PATH],
503				   [Directory where ancillary server config files are installed (default: ${libdir}/xorg)]),
504				[ SERVERCONFIG="$withval" ],
505				[ SERVERCONFIG="${libdir}/xorg" ])
506AC_ARG_WITH(apple-applications-dir,AS_HELP_STRING([--with-apple-applications-dir=PATH], [Path to the Applications directory (default: /Applications/Utilities)]),
507				[ APPLE_APPLICATIONS_DIR="${withval}" ],
508				[ APPLE_APPLICATIONS_DIR="/Applications/Utilities" ])
509AC_SUBST([APPLE_APPLICATIONS_DIR])
510AC_ARG_WITH(apple-application-name,AS_HELP_STRING([--with-apple-application-name=NAME], [Name for the .app (default: X11)]),
511				[ APPLE_APPLICATION_NAME="${withval}" ],
512				[ APPLE_APPLICATION_NAME="X11" ])
513AC_SUBST([APPLE_APPLICATION_NAME])
514AC_ARG_WITH(bundle-id-prefix,  AS_HELP_STRING([--with-bundle-id-prefix=RDNS_PREFIX], [Prefix to use for bundle identifiers (default: org.x)]),
515                               [ BUNDLE_ID_PREFIX="${withval}" ])
516AC_SUBST([BUNDLE_ID_PREFIX])
517AC_DEFINE_UNQUOTED(BUNDLE_ID_PREFIX, "$BUNDLE_ID_PREFIX", [Prefix to use for bundle identifiers])
518m4_define(DEFAULT_BUNDLE_VERSION, m4_esyscmd([echo ]AC_PACKAGE_VERSION[ | cut -f1-3 -d. | tr -d '\n']))
519AC_ARG_WITH(bundle-version,    AS_HELP_STRING([--with-bundle-version=VERSION], [Version to use for X11.app's CFBundleVersion (default: ]DEFAULT_BUNDLE_VERSION[)]),
520                               [ BUNDLE_VERSION="${withval}" ],
521                               [ BUNDLE_VERSION="DEFAULT_BUNDLE_VERSION" ])
522AC_SUBST([BUNDLE_VERSION])
523AC_ARG_WITH(bundle-version-string, AS_HELP_STRING([--with-bundle-version-string=VERSION], [Version to use for X11.app's CFBundleShortVersionString (default: ]AC_PACKAGE_VERSION[)]),
524                               [ BUNDLE_VERSION_STRING="${withval}" ],
525                               [ BUNDLE_VERSION_STRING="${PACKAGE_VERSION}" ])
526AC_SUBST([BUNDLE_VERSION_STRING])
527AC_ARG_ENABLE(sparkle,AS_HELP_STRING([--enable-sparkle], [Enable updating of X11.app using the Sparkle Framework (default: disabled)]),
528				[ XQUARTZ_SPARKLE="${enableval}" ],
529				[ XQUARTZ_SPARKLE="no" ])
530AC_SUBST([XQUARTZ_SPARKLE])
531AC_ARG_WITH(sparkle-feed-url,  AS_HELP_STRING([--with-sparkle-feed-url=URL], [URL for the Sparkle feed (default: https://www.xquartz.org/releases/sparkle/release.xml)]),
532                               [ XQUARTZ_SPARKLE_FEED_URL="${withval}" ],
533                               [ XQUARTZ_SPARKLE_FEED_URL="https://www.xquartz.org/releases/sparkle/release.xml" ])
534AC_SUBST([XQUARTZ_SPARKLE_FEED_URL])
535AC_ARG_ENABLE(visibility,     AS_HELP_STRING([--enable-visibility], [Enable symbol visibility (default: auto)]),
536				[SYMBOL_VISIBILITY=$enableval],
537				[SYMBOL_VISIBILITY=auto])
538
539dnl GLX build options
540AC_ARG_WITH(khronos-spec-dir, AS_HELP_STRING([--with-khronos-spec-dir=PATH], [Path to Khronos OpenGL registry database files (default: auto)]),
541				[KHRONOS_SPEC_DIR="${withval}"],
542				[KHRONOS_SPEC_DIR=auto])
543
544dnl Extensions.
545AC_ARG_ENABLE(composite,      AS_HELP_STRING([--disable-composite], [Build Composite extension (default: enabled)]), [COMPOSITE=$enableval], [COMPOSITE=yes])
546AC_ARG_ENABLE(mitshm,         AS_HELP_STRING([--disable-mitshm], [Build SHM extension (default: auto)]), [MITSHM=$enableval], [MITSHM=auto])
547AC_ARG_ENABLE(xres,           AS_HELP_STRING([--disable-xres], [Build XRes extension (default: enabled)]), [RES=$enableval], [RES=yes])
548AC_ARG_ENABLE(record,         AS_HELP_STRING([--disable-record], [Build Record extension (default: enabled)]), [RECORD=$enableval], [RECORD=yes])
549AC_ARG_ENABLE(xv,             AS_HELP_STRING([--disable-xv], [Build Xv extension (default: enabled)]), [XV=$enableval], [XV=yes])
550AC_ARG_ENABLE(xvmc,           AS_HELP_STRING([--disable-xvmc], [Build XvMC extension (default: enabled)]), [XVMC=$enableval], [XVMC=yes])
551AC_ARG_ENABLE(dga,            AS_HELP_STRING([--disable-dga], [Build DGA extension (default: auto)]), [DGA=$enableval], [DGA=auto])
552AC_ARG_ENABLE(screensaver,    AS_HELP_STRING([--disable-screensaver], [Build ScreenSaver extension (default: enabled)]), [SCREENSAVER=$enableval], [SCREENSAVER=yes])
553AC_ARG_ENABLE(xdmcp,          AS_HELP_STRING([--disable-xdmcp], [Build XDMCP extension (default: auto)]), [XDMCP=$enableval], [XDMCP=auto])
554AC_ARG_ENABLE(xdm-auth-1,     AS_HELP_STRING([--disable-xdm-auth-1], [Build XDM-Auth-1 extension (default: auto)]), [XDMAUTH=$enableval], [XDMAUTH=auto])
555AC_ARG_ENABLE(glx,            AS_HELP_STRING([--disable-glx], [Build GLX extension (default: enabled)]), [GLX=$enableval], [GLX=yes])
556AC_ARG_ENABLE(dri,            AS_HELP_STRING([--enable-dri], [Build DRI extension (default: auto)]), [DRI=$enableval])
557AC_ARG_ENABLE(dri2,           AS_HELP_STRING([--enable-dri2], [Build DRI2 extension (default: auto)]), [DRI2=$enableval], [DRI2=auto])
558AC_ARG_ENABLE(dri3,           AS_HELP_STRING([--enable-dri3], [Build DRI3 extension (default: auto)]), [DRI3=$enableval], [DRI3=auto])
559AC_ARG_ENABLE(present,	      AS_HELP_STRING([--disable-present], [Build Present extension (default: enabled)]), [PRESENT=$enableval], [PRESENT=yes])
560AC_ARG_ENABLE(xinerama,	      AS_HELP_STRING([--disable-xinerama], [Build Xinerama extension (default: enabled)]), [XINERAMA=$enableval], [XINERAMA=yes])
561AC_ARG_ENABLE(xf86vidmode,    AS_HELP_STRING([--disable-xf86vidmode], [Build XF86VidMode extension (default: auto)]), [XF86VIDMODE=$enableval], [XF86VIDMODE=auto])
562AC_ARG_ENABLE(xace,           AS_HELP_STRING([--disable-xace], [Build X-ACE extension (default: enabled)]), [XACE=$enableval], [XACE=yes])
563AC_ARG_ENABLE(xselinux,       AS_HELP_STRING([--enable-xselinux], [Build SELinux extension (default: disabled)]), [XSELINUX=$enableval], [XSELINUX=no])
564AC_ARG_ENABLE(xcsecurity,     AS_HELP_STRING([--enable-xcsecurity], [Build Security extension (default: disabled)]), [XCSECURITY=$enableval], [XCSECURITY=no])
565AC_ARG_ENABLE(dbe,            AS_HELP_STRING([--disable-dbe], [Build DBE extension (default: enabled)]), [DBE=$enableval], [DBE=yes])
566AC_ARG_ENABLE(xf86bigfont,    AS_HELP_STRING([--enable-xf86bigfont], [Build XF86 Big Font extension (default: disabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=no])
567AC_ARG_ENABLE(dpms,           AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
568AC_ARG_ENABLE(config-udev,    AS_HELP_STRING([--enable-config-udev], [Build udev support (default: auto)]), [CONFIG_UDEV=$enableval], [CONFIG_UDEV=auto])
569AC_ARG_ENABLE(config-udev-kms,    AS_HELP_STRING([--enable-config-udev-kms], [Build udev kms support (default: auto)]), [CONFIG_UDEV_KMS=$enableval], [CONFIG_UDEV_KMS=auto])
570AC_ARG_ENABLE(config-hal,     AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
571AC_ARG_ENABLE(config-wscons,  AS_HELP_STRING([--enable-config-wscons], [Build wscons config support (default: auto)]), [CONFIG_WSCONS=$enableval], [CONFIG_WSCONS=auto])
572AC_ARG_ENABLE(xfree86-utils,     AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
573AC_ARG_ENABLE(vgahw,          AS_HELP_STRING([--enable-vgahw], [Build Xorg with vga access (default: enabled)]), [VGAHW=$enableval], [VGAHW=yes])
574AC_ARG_ENABLE(vbe,            AS_HELP_STRING([--enable-vbe], [Build Xorg with VBE module (default: enabled)]), [VBE=$enableval], [VBE=yes])
575AC_ARG_ENABLE(int10-module,     AS_HELP_STRING([--enable-int10-module], [Build Xorg with int10 module (default: enabled)]), [INT10MODULE=$enableval], [INT10MODULE=yes])
576AC_ARG_ENABLE(windowswm,      AS_HELP_STRING([--enable-windowswm], [Build XWin with WindowsWM extension (default: no)]), [WINDOWSWM=$enableval], [WINDOWSWM=no])
577AC_ARG_ENABLE(windowsdri,     AS_HELP_STRING([--enable-windowsdri], [Build XWin with WindowsDRI extension (default: auto)]), [WINDOWSDRI=$enableval], [WINDOWSDRI=auto])
578AC_ARG_ENABLE(libdrm,         AS_HELP_STRING([--enable-libdrm], [Build Xorg with libdrm support (default: enabled)]), [DRM=$enableval],[DRM=yes])
579AC_ARG_ENABLE(clientids,      AS_HELP_STRING([--disable-clientids], [Build Xorg with client ID tracking (default: enabled)]), [CLIENTIDS=$enableval], [CLIENTIDS=yes])
580AC_ARG_ENABLE(pciaccess, AS_HELP_STRING([--enable-pciaccess], [Build Xorg with pciaccess library (default: enabled)]), [PCI=$enableval], [PCI=yes])
581AC_ARG_ENABLE(linux_acpi, AS_HELP_STRING([--disable-linux-acpi], [Disable building ACPI support on Linux (if available).]), [enable_linux_acpi=$enableval], [enable_linux_acpi=yes])
582AC_ARG_ENABLE(linux_apm, AS_HELP_STRING([--disable-linux-apm], [Disable building APM support on Linux (if available).]), [enable_linux_apm=$enableval], [enable_linux_apm=yes])
583AC_ARG_ENABLE(systemd-logind, AS_HELP_STRING([--enable-systemd-logind], [Build systemd-logind support (default: auto)]), [SYSTEMD_LOGIND=$enableval], [SYSTEMD_LOGIND=auto])
584AC_ARG_ENABLE(suid-wrapper, AS_HELP_STRING([--enable-suid-wrapper], [Build suid-root wrapper for legacy driver support on rootless xserver systems (default: no)]), [SUID_WRAPPER=$enableval], [SUID_WRAPPER=no])
585
586dnl DDXes.
587AC_ARG_ENABLE(xorg,    	      AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
588AC_ARG_ENABLE(dmx,    	      AS_HELP_STRING([--enable-dmx], [Build DMX server (default: no)]), [DMX=$enableval], [DMX=no])
589AC_ARG_ENABLE(xvfb,    	      AS_HELP_STRING([--enable-xvfb], [Build Xvfb server (default: yes)]), [XVFB=$enableval], [XVFB=yes])
590AC_ARG_ENABLE(xnest,   	      AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: auto)]), [XNEST=$enableval], [XNEST=auto])
591AC_ARG_ENABLE(xquartz,        AS_HELP_STRING([--enable-xquartz], [Build Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto])
592AC_ARG_ENABLE(xwayland,       AS_HELP_STRING([--enable-xwayland], [Build Xwayland server (default: auto)]), [XWAYLAND=$enableval], [XWAYLAND=auto])
593AC_ARG_ENABLE(xwayland-eglstream, AS_HELP_STRING([--enable-xwayland-eglstream], [Build Xwayland eglstream support (default: no)]), [XWAYLAND_EGLSTREAM=$enableval], [XWAYLAND_EGLSTREAM=no])
594AC_ARG_ENABLE(standalone-xpbproxy, AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in addition to the one integrated into Xquartz as a separate thread) (default: no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no])
595AC_ARG_ENABLE(xwin,    	      AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto])
596AC_ARG_ENABLE(glamor,         AS_HELP_STRING([--enable-glamor], [Build glamor dix module (default: auto)]), [GLAMOR=$enableval], [GLAMOR=auto])
597dnl kdrive and its subsystems
598AC_ARG_ENABLE(kdrive,         AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
599AC_ARG_ENABLE(xephyr,         AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
600dnl kdrive options
601AC_ARG_ENABLE(libunwind,      AS_HELP_STRING([--enable-libunwind], [Use libunwind for backtracing (default: auto)]), [LIBUNWIND="$enableval"], [LIBUNWIND="auto"])
602AC_ARG_ENABLE(xshmfence,      AS_HELP_STRING([--disable-xshmfence], [Disable xshmfence (default: auto)]), [XSHMFENCE="$enableval"], [XSHMFENCE="auto"])
603
604AC_ARG_ENABLE(gles-highp,    	      AS_HELP_STRING([--enable-gles-highp], [Use highp as default precision for GLES(default: yes)]), [GLES_HIGHP=$enableval], [GLES_HIGHP=yes])
605
606dnl chown/chmod to be setuid root as part of build
607dnl Replaces InstallXserverSetUID in imake
608AC_ARG_ENABLE(install-setuid,
609    AS_HELP_STRING([--enable-install-setuid],
610       [Install Xorg server as owned by root with setuid bit (default: auto)]),
611    [SETUID=$enableval], [SETUID=auto])
612AC_MSG_CHECKING([to see if we can install the Xorg server as root])
613if test "x$SETUID" = "xauto" ; then
614	case $host_os in
615	    cygwin*)		SETUID="no"  ;;
616	    mingw*)		SETUID="no"  ;;
617	    darwin*)		SETUID="no"  ;;
618	    *)
619	   	case $host_cpu in
620		    sparc)	SETUID="no"  ;;
621		    *)		SETUID="yes" ;;
622		esac
623	esac
624	if test "x$SETUID" = xyes; then
625		touch testfile
626		chown root testfile > /dev/null 2>&1 || SETUID="no"
627		rm -f testfile
628	fi
629fi
630AC_MSG_RESULT([$SETUID])
631AM_CONDITIONAL(INSTALL_SETUID, [test "x$SETUID" = "xyes"])
632
633dnl Issue an error if xtrans.m4 was not found and XTRANS_CONNECTION_FLAGS macro
634dnl was not expanded, since xorg-server with no transport types is rather useless.
635dnl
636dnl If you're seeing an error here, be sure you installed the lib/xtrans module
637dnl first and if it's not in the default location, that you set the ACLOCAL
638dnl environment variable to find it, such as:
639dnl	ACLOCAL="aclocal -I ${PREFIX}/share/aclocal"
640m4_pattern_forbid([^XTRANS_CONNECTION_FLAGS$])
641
642# Transport selection macro from xtrans.m4
643XTRANS_CONNECTION_FLAGS
644
645# Secure RPC detection macro from xtrans.m4
646XTRANS_SECURE_RPC_FLAGS
647AM_CONDITIONAL(SECURE_RPC, [test "x$SECURE_RPC" = xyes])
648
649AM_CONDITIONAL(INT10_VM86, [test "x$INT10" = xvm86])
650AM_CONDITIONAL(INT10_X86EMU, [test "x$INT10" = xx86emu])
651AM_CONDITIONAL(INT10_STUB, [test "x$INT10" = xstub])
652
653dnl DDX Detection... Yes, it's ugly to have it here... but we need to
654dnl handle this early on so that we don't require unsupported extensions
655case $host_os in
656	cygwin* | mingw*)
657		CONFIG_HAL=no
658		CONFIG_UDEV=no
659		CONFIG_UDEV_KMS=no
660		DGA=no
661		DRM=no
662		DRI2=no
663		DRI3=no
664		INT10MODULE=no
665		PCI=no
666		VGAHW=no
667		VBE=no
668		XF86UTILS=no
669		XF86VIDMODE=no
670		XSELINUX=no
671		SYMBOL_VISIBILITY=no
672		;;
673	darwin*)
674		PCI=no
675		INT10MODULE=no
676		VGAHW=no
677		VBE=no
678		DRM=no
679		DRI2=no
680		DRI3=no
681
682		if test x$XQUARTZ = xauto; then
683			AC_CACHE_CHECK([whether to build Xquartz],xorg_cv_Carbon_framework,[
684		 		save_LDFLAGS=$LDFLAGS
685				LDFLAGS="$LDFLAGS -framework Carbon"
686				AC_LINK_IFELSE([AC_LANG_SOURCE([char FSFindFolder(); int main() { FSFindFolder(); return 0;}])],
687				               [xorg_cv_Carbon_framework=yes],
688				               [xorg_cv_Carbon_framework=no])
689			        LDFLAGS=$save_LDFLAGS])
690
691			if test "X$xorg_cv_Carbon_framework" = Xyes; then
692				XQUARTZ=yes
693			else
694				XQUARTZ=no
695			fi
696		fi
697
698		if test "x$XQUARTZ" = xyes ; then
699			XQUARTZ=yes
700			XVFB=no
701			XNEST=no
702			XWAYLAND=no
703
704			COMPOSITE=no
705			DGA=no
706			DPMSExtension=no
707			XF86VIDMODE=no
708		fi
709		;;
710	gnu*)
711		DRM=no
712		DRI2=no
713		DRI3=no
714		;;
715	*) XQUARTZ=no ;;
716esac
717
718dnl ---------------------------------------------------------------------------
719dnl Extension section
720dnl ---------------------------------------------------------------------------
721XEXT_INC='-I$(top_srcdir)/Xext'
722XEXT_LIB='$(top_builddir)/Xext/libXext.la'
723
724dnl Optional modules
725VIDEOPROTO="videoproto"
726COMPOSITEPROTO="compositeproto >= 0.4"
727RECORDPROTO="recordproto >= 1.13.99.1"
728SCRNSAVERPROTO="scrnsaverproto >= 1.1"
729RESOURCEPROTO="resourceproto >= 1.2.0"
730DRIPROTO="xf86driproto >= 2.1.0"
731DRI2PROTO="dri2proto >= 2.8"
732DRI3PROTO="dri3proto >= 1.2"
733XINERAMAPROTO="xineramaproto"
734BIGFONTPROTO="xf86bigfontproto >= 1.2.0"
735DGAPROTO="xf86dgaproto >= 2.0.99.1"
736GLPROTO="glproto >= 1.4.17"
737DMXPROTO="dmxproto >= 2.2.99.1"
738VIDMODEPROTO="xf86vidmodeproto >= 2.2.99.1"
739WINDOWSWMPROTO="windowswmproto"
740APPLEWMPROTO="applewmproto >= 1.4"
741LIBXSHMFENCE="xshmfence >= 1.1"
742
743dnl Required modules
744XPROTO="xproto >= 7.0.31"
745RANDRPROTO="randrproto >= 1.6.0"
746RENDERPROTO="renderproto >= 0.11"
747XEXTPROTO="xextproto >= 7.2.99.901"
748INPUTPROTO="inputproto >= 2.3"
749KBPROTO="kbproto >= 1.0.3"
750FONTSPROTO="fontsproto >= 2.1.3"
751FIXESPROTO="fixesproto >= 5.0"
752DAMAGEPROTO="damageproto >= 1.1"
753XCMISCPROTO="xcmiscproto >= 1.2.0"
754BIGREQSPROTO="bigreqsproto >= 1.1.0"
755XTRANS="xtrans >= 1.3.5"
756PRESENTPROTO="presentproto >= 1.1"
757
758dnl List of libraries that require a specific version
759LIBAPPLEWM="applewm >= 1.4"
760LIBDMX="dmx >= 1.0.99.1"
761LIBDRI="dri >= 7.8.0"
762LIBDRM="libdrm >= 2.4.89"
763LIBEGL="egl"
764LIBGBM="gbm >= 10.2.0"
765LIBGL="gl >= 1.2"
766LIBXEXT="xext >= 1.0.99.4"
767LIBXFONT="xfont2 >= 2.0.0"
768LIBXI="xi >= 1.2.99.1"
769LIBXTST="xtst >= 1.0.99.2"
770LIBPCIACCESS="pciaccess >= 0.12.901"
771LIBUDEV="libudev >= 143"
772LIBSELINUX="libselinux >= 2.0.86"
773LIBDBUS="dbus-1 >= 1.0"
774LIBPIXMAN="pixman-1 >= 0.27.2"
775
776dnl Pixman is always required, but we separate it out so we can link
777dnl specific modules against it
778PKG_CHECK_MODULES(PIXMAN, $LIBPIXMAN)
779REQUIRED_LIBS="$REQUIRED_LIBS $LIBPIXMAN $LIBXFONT xau"
780
781dnl Core modules for most extensions, et al.
782SDK_REQUIRED_MODULES="$XPROTO $RANDRPROTO $RENDERPROTO $XEXTPROTO $INPUTPROTO $KBPROTO $FONTSPROTO $LIBPIXMAN"
783# Make SDK_REQUIRED_MODULES available for inclusion in xorg-server.pc
784AC_SUBST(SDK_REQUIRED_MODULES)
785
786AC_CHECK_DECL([PTHREAD_MUTEX_RECURSIVE], [HAVE_RECURSIVE_MUTEX=yes], [HAVE_RECURSIVE_MUTEX=no], [[#include <pthread.h>]])
787
788THREAD_DEFAULT=no
789
790if test "x$HAVE_RECURSIVE_MUTEX" = "xyes" ; then
791	THREAD_DEFAULT=yes
792fi
793
794AC_ARG_ENABLE(input-thread, AS_HELP_STRING([--enable-input-thread],
795	     [Enable input threads]),
796	     [INPUTTHREAD=$enableval], [INPUTTHREAD=$THREAD_DEFAULT])
797
798if test "x$INPUTTHREAD" = "xyes" ; then
799    AX_PTHREAD(,AC_MSG_ERROR([threaded input requested but no pthread support has been found]))
800    SYS_LIBS="$SYS_LIBS $PTHREAD_LIBS"
801    CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
802    AC_DEFINE(INPUTTHREAD, 1, [Use a separate input thread])
803
804    save_LIBS="$LIBS"
805    LIBS="$LIBS $SYS_LIBS"
806    dnl MacOS X 10.6 & higher
807    AC_MSG_CHECKING(for pthread_setname_np(const char*))
808    AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
809	                            [pthread_setname_np("example")])],
810                   [AC_MSG_RESULT(yes)
811		    AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID,1,
812		              [Have function pthread_setname_np(const char*)])],
813                   [AC_MSG_RESULT(no)])
814    dnl GNU libc 2.12 & higher, Solaris 11.3 & higher
815    AC_MSG_CHECKING(for pthread_setname_np(pthread_t, const char*))
816    AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
817                             [pthread_setname_np(pthread_self(), "example")])],
818                   [AC_MSG_RESULT(yes)
819		    AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_WITH_TID,1,
820	                      [Have function pthread_setname_np(pthread_t, const char*)])],
821		   [AC_MSG_RESULT(no)])
822    LIBS="$save_LIBS"
823fi
824
825REQUIRED_MODULES="$FIXESPROTO $DAMAGEPROTO $XCMISCPROTO $XTRANS $BIGREQSPROTO $SDK_REQUIRED_MODULES"
826
827dnl systemd socket activation
828dnl activate the code in libxtrans that grabs systemd's socket fds
829dnl libsystemd-daemon was moved into libsystemd in version 209
830LIBSYSTEMD="libsystemd >= 209"
831AC_ARG_WITH([systemd-daemon],
832	AS_HELP_STRING([--with-systemd-daemon],
833		[support systemd socket activation (default: auto)]),
834	[WITH_SYSTEMD_DAEMON=$withval], [WITH_SYSTEMD_DAEMON=auto])
835if test "x$WITH_SYSTEMD_DAEMON" = "xyes" -o "x$WITH_SYSTEMD_DAEMON" = "xauto" ; then
836	PKG_CHECK_MODULES([SYSTEMD_DAEMON], [$LIBSYSTEMD],
837			  [HAVE_SYSTEMD_DAEMON=yes;
838			   LIBSYSTEMD_DAEMON="$LIBSYSTEMD"],
839			  [PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
840					     [HAVE_SYSTEMD_DAEMON=yes;
841					      LIBSYSTEMD_DAEMON=libsystemd-daemon],
842					     [HAVE_SYSTEMD_DAEMON=no])])
843	if test "x$HAVE_SYSTEMD_DAEMON" = xyes; then
844		AC_DEFINE(HAVE_SYSTEMD_DAEMON, 1, [Define to 1 if libsystemd-daemon is available])
845		REQUIRED_LIBS="$REQUIRED_LIBS $LIBSYSTEMD_DAEMON"
846	elif test "x$WITH_SYSTEMD_DAEMON" = xyes; then
847		AC_MSG_ERROR([systemd support requested but no library has been found])
848	fi
849fi
850AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = "xyes"])
851
852if test "x$CONFIG_UDEV" = xyes && test "x$CONFIG_HAL" = xyes; then
853	AC_MSG_ERROR([Hotplugging through both libudev and hal not allowed])
854fi
855
856PKG_CHECK_MODULES(UDEV, $LIBUDEV, [HAVE_LIBUDEV=yes], [HAVE_LIBUDEV=no])
857if test "x$CONFIG_UDEV" = xauto; then
858	CONFIG_UDEV="$HAVE_LIBUDEV"
859	AC_DEFINE(HAVE_LIBUDEV, 1, [Define to 1 if libudev is available.])
860fi
861AM_CONDITIONAL(CONFIG_UDEV, [test "x$CONFIG_UDEV" = xyes])
862if test "x$CONFIG_UDEV" = xyes; then
863	CONFIG_HAL=no
864	if test "x$CONFIG_UDEV_KMS" = xauto; then
865		CONFIG_UDEV_KMS="$HAVE_LIBUDEV"
866	fi
867	if ! test "x$HAVE_LIBUDEV" = xyes; then
868		AC_MSG_ERROR([udev configuration API requested, but libudev is not installed])
869	fi
870	AC_DEFINE(CONFIG_UDEV, 1, [Use libudev for input hotplug])
871	if test "x$CONFIG_UDEV_KMS" = xyes; then
872		AC_DEFINE(CONFIG_UDEV_KMS, 1, [Use libudev for kms enumeration])
873	fi
874	SAVE_LIBS=$LIBS
875	SAVE_CFLAGS=$CFLAGS
876	CFLAGS="$CFLAGS $UDEV_CFLAGS"
877	LIBS=$UDEV_LIBS
878	AC_CHECK_FUNCS([udev_monitor_filter_add_match_tag])
879	AC_CHECK_FUNCS([udev_enumerate_add_match_tag])
880	LIBS=$SAVE_LIBS
881	CFLAGS=$SAVE_CFLAGS
882fi
883AM_CONDITIONAL(CONFIG_UDEV_KMS, [test "x$CONFIG_UDEV_KMS" = xyes])
884
885PKG_CHECK_MODULES(DBUS, $LIBDBUS, [HAVE_DBUS=yes], [HAVE_DBUS=no])
886if test "x$HAVE_DBUS" = xyes; then
887	AC_DEFINE(HAVE_DBUS, 1, [Have D-Bus support])
888fi
889AM_CONDITIONAL(HAVE_DBUS, [test "x$HAVE_DBUS" = xyes])
890
891PKG_CHECK_MODULES(HAL, hal, [HAVE_HAL=yes], [HAVE_HAL=no])
892if test "x$CONFIG_HAL" = xauto; then
893	CONFIG_HAL="$HAVE_HAL"
894fi
895if test "x$CONFIG_HAL" = xyes; then
896	if ! test "x$HAVE_HAL" = xyes; then
897		AC_MSG_ERROR([HAL hotplug API requested, but HAL is not installed.])
898	fi
899
900	AC_DEFINE(CONFIG_HAL, 1, [Use the HAL hotplug API])
901	NEED_DBUS="yes"
902fi
903AM_CONDITIONAL(CONFIG_HAL, [test "x$CONFIG_HAL" = xyes])
904
905if test "x$SYSTEMD_LOGIND" = xauto; then
906        if test "x$HAVE_DBUS" = xyes -a "x$CONFIG_UDEV" = xyes ; then
907                SYSTEMD_LOGIND=yes
908        else
909                SYSTEMD_LOGIND=no
910        fi
911fi
912if test "x$SYSTEMD_LOGIND" = xyes; then
913        if ! test "x$HAVE_DBUS" = xyes; then
914                AC_MSG_ERROR([systemd-logind requested, but D-Bus is not installed.])
915        fi
916        if ! test "x$CONFIG_UDEV" = xyes ; then
917                AC_MSG_ERROR([systemd-logind is only supported in combination with udev configuration.])
918        fi
919
920        AC_DEFINE(SYSTEMD_LOGIND, 1, [Enable systemd-logind integration])
921        NEED_DBUS="yes"
922fi
923AM_CONDITIONAL(SYSTEMD_LOGIND, [test "x$SYSTEMD_LOGIND" = xyes])
924
925if test "x$SUID_WRAPPER" = xyes; then
926        dnl This is a define so that if some platforms want to put the wrapper
927        dnl somewhere else this can be easily changed
928        AC_DEFINE_DIR(SUID_WRAPPER_DIR, libexecdir, [Where to install the Xorg binary and Xorg.wrap])
929        SETUID="no"
930fi
931AM_CONDITIONAL(SUID_WRAPPER, [test "x$SUID_WRAPPER" = xyes])
932
933if test "x$NEED_DBUS" = xyes; then
934        AC_DEFINE(NEED_DBUS, 1, [Enable D-Bus core])
935fi
936AM_CONDITIONAL(NEED_DBUS, [test "x$NEED_DBUS" = xyes])
937
938if test "x$CONFIG_WSCONS" = xauto; then
939	case $host_os in
940		*openbsd*)
941			CONFIG_WSCONS=yes;
942			;;
943		*)
944			CONFIG_WSCONS=no;
945			;;
946	esac
947fi
948AM_CONDITIONAL(CONFIG_WSCONS, [test "x$CONFIG_WSCONS" = xyes])
949if test "x$CONFIG_WSCONS" = xyes; then
950	AC_DEFINE(CONFIG_WSCONS, 1, [Use wscons for input auto configuration])
951fi
952
953
954AC_MSG_CHECKING([for glibc...])
955AC_PREPROC_IFELSE([AC_LANG_SOURCE([
956#include <features.h>
957#ifndef __GLIBC__
958#error
959#endif
960])], glibc=yes, glibc=no)
961AC_MSG_RESULT([$glibc])
962
963AC_CHECK_FUNCS([clock_gettime], [have_clock_gettime=yes],
964               [AC_CHECK_LIB([rt], [clock_gettime], [have_clock_gettime=-lrt],
965                             [have_clock_gettime=no])])
966
967AC_MSG_CHECKING([for a useful monotonic clock ...])
968
969if ! test "x$have_clock_gettime" = xno; then
970    if ! test "x$have_clock_gettime" = xyes; then
971        CLOCK_LIBS="$have_clock_gettime"
972    else
973        CLOCK_LIBS=""
974    fi
975
976    LIBS_SAVE="$LIBS"
977    LIBS="$CLOCK_LIBS"
978    CPPFLAGS_SAVE="$CPPFLAGS"
979
980    if test x"$glibc" = xyes; then
981        CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
982    fi
983
984    AC_RUN_IFELSE([AC_LANG_SOURCE([
985#include <time.h>
986
987int main(int argc, char *argv[[]]) {
988    struct timespec tp;
989
990    if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0)
991        return 0;
992    else
993        return 1;
994}
995    ])], [MONOTONIC_CLOCK=yes], [MONOTONIC_CLOCK=no],
996       [MONOTONIC_CLOCK="cross compiling"])
997
998    if test "$MONOTONIC_CLOCK" = "cross compiling"; then
999        AC_CHECK_DECL([CLOCK_MONOTONIC],[MONOTONIC_CLOCK="guessing yes"],[MONOTONIC_CLOCK=no],[#include <time.h>])
1000    fi
1001
1002    LIBS="$LIBS_SAVE"
1003    CPPFLAGS="$CPPFLAGS_SAVE"
1004else
1005    MONOTONIC_CLOCK=no
1006fi
1007
1008AC_MSG_RESULT([$MONOTONIC_CLOCK])
1009if test "$MONOTONIC_CLOCK" = "guessing yes"; then
1010	MONOTONIC_CLOCK=yes
1011fi
1012
1013if test "x$MONOTONIC_CLOCK" = xyes; then
1014    AC_DEFINE(MONOTONIC_CLOCK, 1, [Have monotonic clock from clock_gettime()])
1015    LIBS="$LIBS $CLOCK_LIBS"
1016fi
1017
1018AM_CONDITIONAL(XV, [test "x$XV" = xyes])
1019if test "x$XV" = xyes; then
1020	AC_DEFINE(XV, 1, [Support Xv extension])
1021	AC_DEFINE(XvExtension, 1, [Build Xv extension])
1022	REQUIRED_MODULES="$REQUIRED_MODULES $VIDEOPROTO"
1023	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $VIDEOPROTO"
1024else
1025	XVMC=no
1026fi
1027
1028AM_CONDITIONAL(XVMC, [test "x$XVMC" = xyes])
1029if test "x$XVMC" = xyes; then
1030	AC_DEFINE(XvMCExtension, 1, [Build XvMC extension])
1031fi
1032
1033AM_CONDITIONAL(COMPOSITE, [test "x$COMPOSITE" = xyes])
1034if test "x$COMPOSITE" = xyes; then
1035	AC_DEFINE(COMPOSITE, 1, [Support Composite Extension])
1036	REQUIRED_MODULES="$REQUIRED_MODULES $COMPOSITEPROTO"
1037	COMPOSITE_LIB='$(top_builddir)/composite/libcomposite.la'
1038	COMPOSITE_INC='-I$(top_srcdir)/composite'
1039fi
1040
1041if test "x$MITSHM" = xauto; then
1042	MITSHM="$ac_cv_sysv_ipc"
1043fi
1044AM_CONDITIONAL(MITSHM, [test "x$MITSHM" = xyes])
1045if test "x$MITSHM" = xyes; then
1046	AC_DEFINE(MITSHM, 1, [Support MIT-SHM extension])
1047	AC_DEFINE(HAS_SHM, 1, [Support SHM])
1048fi
1049
1050AM_CONDITIONAL(RECORD, [test "x$RECORD" = xyes])
1051if test "x$RECORD" = xyes; then
1052	AC_DEFINE(XRECORD, 1, [Support Record extension])
1053	REQUIRED_MODULES="$REQUIRED_MODULES $RECORDPROTO"
1054	RECORD_LIB='$(top_builddir)/record/librecord.la'
1055fi
1056
1057AM_CONDITIONAL(SCREENSAVER, [test "x$SCREENSAVER" = xyes])
1058if test "x$SCREENSAVER" = xyes; then
1059	AC_DEFINE(SCREENSAVER, 1, [Support MIT-SCREEN-SAVER extension])
1060	REQUIRED_MODULES="$REQUIRED_MODULES $SCRNSAVERPROTO"
1061	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $SCRNSAVERPROTO"
1062fi
1063
1064HASHTABLE=no
1065AM_CONDITIONAL(RES, [test "x$RES" = xyes])
1066if test "x$RES" = xyes; then
1067	AC_DEFINE(RES, 1, [Support X resource extension])
1068	HASHTABLE=yes
1069	REQUIRED_MODULES="$REQUIRED_MODULES $RESOURCEPROTO"
1070	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $RESOURCEPROTO"
1071fi
1072
1073if test "x$LISTEN_TCP" = xyes; then
1074	AC_DEFINE(LISTEN_TCP, 1, [Listen on TCP socket])
1075fi
1076if test "x$LISTEN_UNIX" = xyes; then
1077	AC_DEFINE(LISTEN_UNIX, 1, [Listen on Unix socket])
1078fi
1079if test "x$LISTEN_LOCAL" = xyes; then
1080	AC_DEFINE(LISTEN_LOCAL, 1, [Listen on local socket])
1081fi
1082
1083# The XRes extension may support client ID tracking only if it has
1084# been specifically enabled. Client ID tracking is implicitly not
1085# supported if XRes extension is disabled.
1086AC_MSG_CHECKING([whether to track client ids])
1087if test "x$RES" = xyes && test "x$CLIENTIDS" = xyes; then
1088	AC_DEFINE(CLIENTIDS, 1, [Support client ID tracking])
1089else
1090	CLIENTIDS=no
1091fi
1092if test "x$CLIENTIDS" = xyes; then
1093	case $host_os in
1094	openbsd*)
1095		SYS_LIBS="$SYS_LIBS -lkvm"
1096	;;
1097	esac
1098fi
1099AC_MSG_RESULT([$CLIENTIDS])
1100AM_CONDITIONAL(CLIENTIDS, [test "x$CLIENTIDS" = xyes])
1101
1102AM_CONDITIONAL(DRI, test "x$DRI" = xyes)
1103if test "x$DRI" = xyes; then
1104	AC_DEFINE(XF86DRI, 1, [Build DRI extension])
1105	REQUIRED_MODULES="$REQUIRED_MODULES $DRIPROTO $GLPROTO $LIBDRI"
1106	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $DRIPROTO $GLPROTO $LIBDRI"
1107fi
1108
1109PKG_CHECK_MODULES([DRI2PROTO], $DRI2PROTO,
1110                  [HAVE_DRI2PROTO=yes], [HAVE_DRI2PROTO=no])
1111case "$DRI2,$HAVE_DRI2PROTO" in
1112	yes,no)
1113		AC_MSG_ERROR([DRI2 requested, but dri2proto not found.])
1114		;;
1115	yes,yes | auto,yes)
1116		AC_DEFINE(DRI2, 1, [Build DRI2 extension])
1117		DRI2=yes
1118		LIBGL="gl >= 1.2"
1119		SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $DRI2PROTO"
1120		;;
1121esac
1122AM_CONDITIONAL(DRI2, test "x$DRI2" = xyes)
1123
1124AC_ARG_ENABLE(xtrans-send-fds,	AS_HELP_STRING([--disable-xtrans-send-fds], [Use Xtrans support for fd passing (default: auto)]), [XTRANS_SEND_FDS=$enableval], [XTRANS_SEND_FDS=auto])
1125
1126case "x$XTRANS_SEND_FDS" in
1127xauto)
1128	case "$host_os" in
1129	linux*|solaris*|freebsd*|dragonfly*|openbsd*)
1130		XTRANS_SEND_FDS=yes
1131		;;
1132	*)
1133		XTRANS_SEND_FDS=no
1134		;;
1135	esac
1136esac
1137
1138case "x$XTRANS_SEND_FDS" in
1139xyes)
1140	AC_DEFINE(XTRANS_SEND_FDS, 1, [Enable xtrans fd passing support])
1141	;;
1142esac
1143
1144case "$DRI3,$XTRANS_SEND_FDS" in
1145	yes,yes | auto,yes)
1146		;;
1147	yes,no)
1148		AC_MSG_ERROR([DRI3 requested, but xtrans fd passing support not found.])
1149		DRI3=no
1150		;;
1151	no,*)
1152		;;
1153	*)
1154		AC_MSG_NOTICE([DRI3 disabled because xtrans fd passing support not found.])
1155		DRI3=no
1156		;;
1157esac
1158
1159PKG_CHECK_MODULES([DRI3PROTO], $DRI3PROTO,
1160                  [HAVE_DRI3PROTO=yes], [HAVE_DRI3PROTO=no])
1161
1162case "$DRI3,$HAVE_DRI3PROTO" in
1163	yes,yes | auto,yes)
1164		REQUIRED_MODULES="$REQUIRED_MODULES dri3proto"
1165		;;
1166	yes,no)
1167		AC_MSG_ERROR([DRI3 requested, but dri3proto not found.])
1168		DRI3=no
1169		;;
1170	no,*)
1171		;;
1172	*)
1173		AC_MSG_NOTICE([DRI3 disabled because dri3proto not found.])
1174		DRI3=no
1175		;;
1176esac
1177
1178AC_CHECK_FUNCS([sigaction])
1179
1180BUSFAULT=no
1181
1182case x"$ac_cv_func_sigaction" in
1183	xyes)
1184		AC_DEFINE(HAVE_SIGACTION, 1, [Have sigaction function])
1185		BUSFAULT=yes
1186		;;
1187esac
1188
1189case x"$BUSFAULT" in
1190	xyes)
1191		AC_DEFINE(BUSFAULT, 1, [Include busfault OS API])
1192		;;
1193esac
1194
1195AM_CONDITIONAL(BUSFAULT, test x"$BUSFAULT" = xyes)
1196
1197
1198PKG_CHECK_MODULES([XSHMFENCE], $LIBXSHMFENCE, [HAVE_XSHMFENCE=yes], [HAVE_XSHMFENCE=no])
1199if test "x$XSHMFENCE" = "xauto"; then
1200    XSHMFENCE="$HAVE_XSHMFENCE"
1201fi
1202
1203if test "x$XSHMFENCE" = "xyes"; then
1204    if test "x$HAVE_XSHMFENCE" != "xyes"; then
1205        AC_MSG_ERROR([xshmfence requested but not installed.])
1206    fi
1207    AC_DEFINE(HAVE_XSHMFENCE, 1, [Have xshmfence support])
1208    REQUIRED_LIBS="$REQUIRED_LIBS $LIBXSHMFENCE"
1209fi
1210
1211AM_CONDITIONAL(XSHMFENCE, [test "x$XSHMFENCE" = xyes])
1212
1213case "$DRI3,$XSHMFENCE" in
1214	yes,yes | auto,yes)
1215		;;
1216	yes,no)
1217		AC_MSG_ERROR([DRI3 requested, but xshmfence not found.])
1218		DRI3=no
1219		;;
1220	no,*)
1221		;;
1222	*)
1223		AC_MSG_NOTICE([DRI3 disabled because xshmfence not found.])
1224		DRI3=no
1225		;;
1226esac
1227
1228case x"$DRI3" in
1229	xyes|xauto)
1230		DRI3=yes
1231		AC_DEFINE(DRI3, 1, [Build DRI3 extension])
1232		DRI3_LIB='$(top_builddir)/dri3/libdri3.la'
1233		SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $DRI3PROTO"
1234		AC_MSG_NOTICE([DRI3 enabled]);
1235		;;
1236esac
1237
1238AM_CONDITIONAL(DRI3, test "x$DRI3" = xyes)
1239
1240if test "x$DRI" = xyes || test "x$DRI2" = xyes || test "x$DRI3" = xyes || test "x$CONFIG_UDEV_KMS" = xyes || test "x$XORG" = xyes; then
1241	if test "x$DRM" = xyes; then
1242		AC_DEFINE(WITH_LIBDRM, 1, [Building with libdrm support])
1243		PKG_CHECK_MODULES([LIBDRM], $LIBDRM)
1244	fi
1245fi
1246
1247if test "x$GLX" = xyes; then
1248	PKG_CHECK_MODULES([XLIB], [x11])
1249	PKG_CHECK_MODULES([GL], $GLPROTO $LIBGL)
1250	AC_SUBST(XLIB_CFLAGS)
1251	AC_DEFINE(GLXEXT, 1, [Build GLX extension])
1252	HASHTABLE=yes
1253	GLX_LIBS='$(top_builddir)/glx/libglx.la $(top_builddir)/glx/libglxvnd.la'
1254	GLX_SYS_LIBS="$GLX_SYS_LIBS $GL_LIBS"
1255else
1256        GLX=no
1257fi
1258AM_CONDITIONAL(GLX, test "x$GLX" = xyes)
1259
1260AM_CONDITIONAL(HASHTABLE, test "x$HASHTABLE" = xyes)
1261
1262AC_SUBST([GLX_DEFINES])
1263AC_SUBST([GLX_SYS_LIBS])
1264
1265AM_CONDITIONAL(PRESENT, [test "x$PRESENT" = xyes])
1266if test "x$PRESENT" = xyes; then
1267	AC_DEFINE(PRESENT, 1, [Support Present extension])
1268	REQUIRED_MODULES="$REQUIRED_MODULES $PRESENTPROTO"
1269	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $PRESENTPROTO"
1270	PRESENT_INC='-I$(top_srcdir)/present'
1271	PRESENT_LIB='$(top_builddir)/present/libpresent.la'
1272fi
1273
1274AM_CONDITIONAL(XINERAMA, [test "x$XINERAMA" = xyes])
1275if test "x$XINERAMA" = xyes; then
1276	AC_DEFINE(XINERAMA, 1, [Support Xinerama extension])
1277	AC_DEFINE(PANORAMIX, 1, [Internal define for Xinerama])
1278	REQUIRED_MODULES="$REQUIRED_MODULES $XINERAMAPROTO"
1279	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $XINERAMAPROTO"
1280fi
1281
1282AM_CONDITIONAL(XACE, [test "x$XACE" = xyes])
1283if test "x$XACE" = xyes; then
1284	AC_DEFINE(XACE, 1, [Build X-ACE extension])
1285fi
1286
1287AM_CONDITIONAL(XSELINUX, [test "x$XSELINUX" = xyes])
1288if test "x$XSELINUX" = xyes; then
1289	if test "x$XACE" != xyes; then
1290		AC_MSG_ERROR([cannot build SELinux extension without X-ACE])
1291	fi
1292	AC_CHECK_HEADERS([libaudit.h], [], AC_MSG_ERROR([SELinux extension requires audit system headers]))
1293	AC_CHECK_LIB(audit, audit_open, [], AC_MSG_ERROR([SELinux extension requires audit system library]))
1294	PKG_CHECK_MODULES([SELINUX], $LIBSELINUX)
1295	SELINUX_LIBS="$SELINUX_LIBS -laudit"
1296	AC_DEFINE(XSELINUX, 1, [Build SELinux extension])
1297fi
1298
1299AM_CONDITIONAL(XCSECURITY, [test "x$XCSECURITY" = xyes])
1300if test "x$XCSECURITY" = xyes; then
1301	if test "x$XACE" != xyes; then
1302		AC_MSG_ERROR([cannot build Security extension without X-ACE])
1303	fi
1304	AC_DEFINE(XCSECURITY, 1, [Build Security extension])
1305fi
1306
1307AM_CONDITIONAL(DBE, [test "x$DBE" = xyes])
1308if test "x$DBE" = xyes; then
1309	AC_DEFINE(DBE, 1, [Support DBE extension])
1310	DBE_LIB='$(top_builddir)/dbe/libdbe.la'
1311	DBE_INC='-I$(top_srcdir)/dbe'
1312fi
1313
1314AM_CONDITIONAL(XF86BIGFONT, [test "x$XF86BIGFONT" = xyes])
1315if test "x$XF86BIGFONT" = xyes; then
1316	AC_DEFINE(XF86BIGFONT, 1, [Support XF86 Big font extension])
1317	REQUIRED_MODULES="$REQUIRED_MODULES $BIGFONTPROTO"
1318	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $BIGFONTPROTO"
1319fi
1320
1321AM_CONDITIONAL(DPMSExtension, [test "x$DPMSExtension" = xyes])
1322if test "x$DPMSExtension" = xyes; then
1323	AC_DEFINE(DPMSExtension, 1, [Support DPMS extension])
1324fi
1325
1326AC_DEFINE(RENDER, 1, [Support RENDER extension])
1327RENDER_LIB='$(top_builddir)/render/librender.la'
1328RENDER_INC='-I$(top_srcdir)/render'
1329
1330AC_DEFINE(RANDR, 1, [Support RANDR extension])
1331RANDR_LIB='$(top_builddir)/randr/librandr.la'
1332RANDR_INC='-I$(top_srcdir)/randr'
1333
1334AC_DEFINE(XFIXES,1,[Support XFixes extension])
1335FIXES_LIB='$(top_builddir)/xfixes/libxfixes.la'
1336FIXES_INC='-I$(top_srcdir)/xfixes'
1337
1338AC_DEFINE(DAMAGE,1,[Support Damage extension])
1339DAMAGE_LIB='$(top_builddir)/damageext/libdamageext.la'
1340DAMAGE_INC='-I$(top_srcdir)/damageext'
1341MIEXT_DAMAGE_LIB='$(top_builddir)/miext/damage/libdamage.la'
1342MIEXT_DAMAGE_INC='-I$(top_srcdir)/miext/damage'
1343
1344# XINPUT extension is integral part of the server
1345AC_DEFINE(XINPUT, 1, [Support X Input extension])
1346XI_LIB='$(top_builddir)/Xi/libXi.la'
1347XI_INC='-I$(top_srcdir)/Xi'
1348
1349AM_CONDITIONAL(XF86UTILS, test "x$XF86UTILS" = xyes)
1350AM_CONDITIONAL(VGAHW, test "x$VGAHW" = xyes)
1351AM_CONDITIONAL(VBE, test "x$VBE" = xyes)
1352AM_CONDITIONAL(INT10MODULE, test "x$INT10MODULE" = xyes)
1353
1354AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
1355
1356if test "x$XKBPATH" = "xauto"; then
1357    XKBPATH=$(pkg-config --variable datadir xkbcomp || echo ${datadir})/X11/xkb
1358fi
1359
1360AC_DEFINE_DIR(XKB_BASE_DIRECTORY, XKBPATH, [Path to XKB data])
1361AC_ARG_WITH(xkb-bin-directory,
1362				AS_HELP_STRING([--with-xkb-bin-directory=DIR], [Directory containing xkbcomp program (default: auto)]),
1363				[XKB_BIN_DIRECTORY="$withval"],
1364				[XKB_BIN_DIRECTORY="auto"])
1365
1366if test "x$XKB_BIN_DIRECTORY" = "xauto"; then
1367    XKB_BIN_DIRECTORY=$(pkg-config --variable bindir xkbcomp || echo ${bindir})
1368fi
1369
1370AC_DEFINE_DIR(XKB_BIN_DIRECTORY, XKB_BIN_DIRECTORY, [Path to XKB bin dir])
1371
1372dnl Make sure XKM_OUTPUT_DIR is an absolute path
1373XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1`
1374if [[ x$XKBOUTPUT_FIRSTCHAR != x/ -a x$XKBOUTPUT_FIRSTCHAR != 'x$' ]] ; then
1375   XKBOUTPUT="$XKB_BASE_DIRECTORY/$XKBOUTPUT"
1376fi
1377
1378dnl XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed
1379dnl XKB_COMPILED_DIR (used in Makefiles) must not or install-sh gets confused
1380
1381XKBOUTPUT=`echo $XKBOUTPUT/ | $SED 's|/*$|/|'`
1382XKB_COMPILED_DIR=`echo $XKBOUTPUT | $SED 's|/*$||'`
1383AC_DEFINE_DIR(XKM_OUTPUT_DIR, XKBOUTPUT, [Path to XKB output dir])
1384AC_SUBST(XKB_COMPILED_DIR)
1385
1386if test "x$XKB_DFLT_RULES" = x; then
1387    case $host_os in
1388    linux*)
1389        dnl doesn't take AutoAddDevices into account, but whatever.
1390        XKB_DFLT_RULES="evdev"
1391        ;;
1392    *)
1393        XKB_DFLT_RULES="base"
1394        ;;
1395    esac
1396fi
1397AC_DEFINE_UNQUOTED(XKB_DFLT_RULES, ["$XKB_DFLT_RULES"], [Default XKB ruleset])
1398AC_DEFINE_UNQUOTED(XKB_DFLT_MODEL, ["$XKB_DFLT_MODEL"], [Default XKB model])
1399AC_DEFINE_UNQUOTED(XKB_DFLT_LAYOUT, ["$XKB_DFLT_LAYOUT"], [Default XKB layout])
1400AC_DEFINE_UNQUOTED(XKB_DFLT_VARIANT, ["$XKB_DFLT_VARIANT"], [Default XKB variant])
1401AC_DEFINE_UNQUOTED(XKB_DFLT_OPTIONS, ["$XKB_DFLT_OPTIONS"], [Default XKB options])
1402AC_SUBST([XKB_DFLT_RULES])
1403AC_SUBST([XKB_DFLT_MODEL])
1404AC_SUBST([XKB_DFLT_LAYOUT])
1405AC_SUBST([XKB_DFLT_VARIANT])
1406AC_SUBST([XKB_DFLT_OPTIONS])
1407
1408XKB_LIB='$(top_builddir)/xkb/libxkb.la'
1409XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
1410REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
1411
1412PKG_CHECK_MODULES([XDMCP], [xdmcp], [have_libxdmcp="yes"], [have_libxdmcp="no"])
1413if test "x$XDMCP" = xauto; then
1414	if test "x$have_libxdmcp" = xyes; then
1415		XDMCP=yes
1416	else
1417		XDMCP=no
1418	fi
1419fi
1420if test "x$XDMAUTH" = xauto; then
1421	if test "x$have_libxdmcp" = xyes; then
1422		XDMAUTH=yes
1423	else
1424		XDMAUTH=no
1425	fi
1426fi
1427
1428AM_CONDITIONAL(XDMCP, [test "x$XDMCP" = xyes])
1429if test "x$XDMCP" = xyes; then
1430	AC_DEFINE(XDMCP, 1, [Support XDM Control Protocol])
1431	REQUIRED_LIBS="$REQUIRED_LIBS xdmcp"
1432	XDMCP_MODULES="xdmcp"
1433fi
1434
1435AM_CONDITIONAL(XDMAUTH, [test "x$XDMAUTH" = xyes])
1436if test "x$XDMAUTH" = xyes; then
1437	AC_DEFINE(HASXDMAUTH,1,[Support XDM-AUTH*-1])
1438	if ! test "x$XDMCP" = xyes; then
1439		REQUIRED_LIBS="$REQUIRED_LIBS xdmcp"
1440		XDMCP_MODULES="xdmcp"
1441	fi
1442fi
1443
1444if test "x$XF86VIDMODE" = xauto; then
1445	PKG_CHECK_EXISTS($VIDMODEPROTO, [XF86VIDMODE=yes], [XF86VIDMODE=no])
1446fi
1447if test "x$XF86VIDMODE" = xyes; then
1448	AC_DEFINE(XF86VIDMODE, 1, [Support XFree86 Video Mode extension])
1449fi
1450AM_CONDITIONAL([XF86VIDMODE], [test "x$XF86VIDMODE" = xyes])
1451
1452AC_DEFINE_DIR(COMPILEDDEFAULTFONTPATH, FONTPATH, [Default font path])
1453AC_DEFINE_DIR(SERVER_MISC_CONFIG_PATH, SERVERCONFIG, [Server miscellaneous config path])
1454AC_DEFINE_DIR(BASE_FONT_PATH, FONTROOTDIR, [Default base font path])
1455dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri`
1456AC_DEFINE_DIR(DRI_DRIVER_PATH, dridriverdir, [Default DRI driver path])
1457AC_DEFINE_UNQUOTED(XVENDORNAME, ["$VENDOR_NAME"], [Vendor name])
1458AC_DEFINE_UNQUOTED(XVENDORNAMESHORT, ["$VENDOR_NAME_SHORT"], [Short vendor name])
1459AC_DEFINE_UNQUOTED(XORG_MAN_VERSION, ["$VENDOR_MAN_VERSION"], [Vendor man version])
1460AC_DEFINE_UNQUOTED(BUILDERADDR, ["$BUILDERADDR"], [Builder address])
1461
1462if test -z "$OSNAME"; then
1463    OSNAME="UNKNOWN"
1464fi
1465
1466AC_DEFINE_UNQUOTED(OSNAME, ["$OSNAME"], [Operating System Name])
1467AC_DEFINE_UNQUOTED(OSVENDOR, ["$OSVENDOR"], [Operating System Vendor])
1468AC_DEFINE_UNQUOTED(BUILDERSTRING, ["$BUILDERSTRING"], [Builder string])
1469
1470AC_SUBST([VENDOR_NAME_SHORT])
1471AC_DEFINE_UNQUOTED(VENDOR_NAME, ["$VENDOR_NAME"], [Vendor name])
1472AC_DEFINE_UNQUOTED(VENDOR_NAME_SHORT, ["$VENDOR_NAME_SHORT"], [Vendor name])
1473AC_DEFINE_UNQUOTED(VENDOR_RELEASE, [$VENDOR_RELEASE], [Vendor release])
1474AC_DEFINE_UNQUOTED(VENDOR_MAN_VERSION, ["$VENDOR_MAN_VERSION"], [Vendor man version])
1475
1476if test "x$DEBUGGING" = xyes; then
1477       AC_DEFINE(DEBUG, 1, [Enable debugging code])
1478fi
1479AM_CONDITIONAL(DEBUG, [test "x$DEBUGGING" = xyes])
1480
1481AC_DEFINE(XTEST, 1, [Support XTest extension])
1482AC_DEFINE(XSYNC, 1, [Support XSync extension])
1483AC_DEFINE(XCMISC, 1, [Support XCMisc extension])
1484AC_DEFINE(BIGREQS, 1, [Support BigRequests extension])
1485
1486if test "x$SPECIAL_DTRACE_OBJECTS" = "xyes" ; then
1487  DIX_LIB='$(top_builddir)/dix/dix.O'
1488  OS_LIB='$(top_builddir)/os/os.O $(SHA1_LIBS) $(DLOPEN_LIBS) $(LIBUNWIND_LIBS)'
1489else
1490  DIX_LIB='$(top_builddir)/dix/libdix.la'
1491  OS_LIB='$(top_builddir)/os/libos.la'
1492fi
1493AC_SUBST([DIX_LIB])
1494AC_SUBST([OS_LIB])
1495
1496MAIN_LIB='$(top_builddir)/dix/libmain.la'
1497AC_SUBST([MAIN_LIB])
1498
1499MI_LIB='$(top_builddir)/mi/libmi.la'
1500MI_EXT_LIB='$(top_builddir)/mi/libmiext.la'
1501MI_INC='-I$(top_srcdir)/mi'
1502FB_LIB='$(top_builddir)/fb/libfb.la'
1503FB_INC='-I$(top_srcdir)/fb'
1504MIEXT_SHADOW_INC='-I$(top_srcdir)/miext/shadow'
1505MIEXT_SHADOW_LIB='$(top_builddir)/miext/shadow/libshadow.la'
1506MIEXT_SYNC_INC='-I$(top_srcdir)/miext/sync'
1507MIEXT_SYNC_LIB='$(top_builddir)/miext/sync/libsync.la'
1508CORE_INCS='-I$(top_srcdir)/include -I$(top_builddir)/include'
1509
1510# SHA1 hashing
1511AC_ARG_WITH([sha1],
1512            [AS_HELP_STRING([--with-sha1=libc|libmd|libnettle|libgcrypt|libcrypto|libsha1|CommonCrypto|CryptoAPI],
1513                            [choose SHA1 implementation])])
1514AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
1515if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
1516	with_sha1=libc
1517fi
1518if test "x$with_sha1" = xlibc && test "x$HAVE_SHA1_IN_LIBC" != xyes; then
1519	AC_MSG_ERROR([libc requested but not found])
1520fi
1521if test "x$with_sha1" = xlibc; then
1522	AC_DEFINE([HAVE_SHA1_IN_LIBC], [1],
1523		[Use libc SHA1 functions])
1524	SHA1_LIBS=""
1525fi
1526AC_CHECK_FUNC([CC_SHA1_Init], [HAVE_SHA1_IN_COMMONCRYPTO=yes])
1527if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_COMMONCRYPTO" = xyes; then
1528	with_sha1=CommonCrypto
1529fi
1530if test "x$with_sha1" = xCommonCrypto && test "x$HAVE_SHA1_IN_COMMONCRYPTO" != xyes; then
1531	AC_MSG_ERROR([CommonCrypto requested but not found])
1532fi
1533if test "x$with_sha1" = xCommonCrypto; then
1534	AC_DEFINE([HAVE_SHA1_IN_COMMONCRYPTO], [1],
1535		[Use CommonCrypto SHA1 functions])
1536	SHA1_LIBS=""
1537fi
1538dnl stdcall functions cannot be tested with AC_CHECK_LIB
1539AC_CHECK_HEADER([wincrypt.h], [HAVE_SHA1_IN_CRYPTOAPI=yes], [], [#include <windows.h>])
1540if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_CRYPTOAPI" = xyes; then
1541	with_sha1=CryptoAPI
1542fi
1543if test "x$with_sha1" = xCryptoAPI && test "x$HAVE_SHA1_IN_CRYPTOAPI" != xyes; then
1544	AC_MSG_ERROR([CryptoAPI requested but not found])
1545fi
1546if test "x$with_sha1" = xCryptoAPI; then
1547	AC_DEFINE([HAVE_SHA1_IN_CRYPTOAPI], [1],
1548		[Use CryptoAPI SHA1 functions])
1549	SHA1_LIBS=""
1550fi
1551AC_CHECK_LIB([md], [SHA1Init], [HAVE_LIBMD=yes])
1552if test "x$with_sha1" = x && test "x$HAVE_LIBMD" = xyes; then
1553	with_sha1=libmd
1554fi
1555if test "x$with_sha1" = xlibmd && test "x$HAVE_LIBMD" != xyes; then
1556	AC_MSG_ERROR([libmd requested but not found])
1557fi
1558if test "x$with_sha1" = xlibmd; then
1559	AC_DEFINE([HAVE_SHA1_IN_LIBMD], [1],
1560	          [Use libmd SHA1 functions])
1561	SHA1_LIBS=-lmd
1562fi
1563PKG_CHECK_MODULES([LIBSHA1], [libsha1], [HAVE_LIBSHA1=yes], [HAVE_LIBSHA1=no])
1564if test "x$with_sha1" = x && test "x$HAVE_LIBSHA1" = xyes; then
1565   with_sha1=libsha1
1566fi
1567if test "x$with_sha1" = xlibsha1 && test "x$HAVE_LIBSHA1" != xyes; then
1568	AC_MSG_ERROR([libsha1 requested but not found])
1569fi
1570if test "x$with_sha1" = xlibsha1; then
1571	AC_DEFINE([HAVE_SHA1_IN_LIBSHA1], [1],
1572	          [Use libsha1 for SHA1])
1573	SHA1_LIBS=-lsha1
1574fi
1575AC_CHECK_LIB([nettle], [nettle_sha1_init], [HAVE_LIBNETTLE=yes])
1576if test "x$with_sha1" = x && test "x$HAVE_LIBNETTLE" = xyes; then
1577	with_sha1=libnettle
1578fi
1579if test "x$with_sha1" = xlibnettle && test "x$HAVE_LIBNETTLE" != xyes; then
1580	AC_MSG_ERROR([libnettle requested but not found])
1581fi
1582if test "x$with_sha1" = xlibnettle; then
1583	AC_DEFINE([HAVE_SHA1_IN_LIBNETTLE], [1],
1584	          [Use libnettle SHA1 functions])
1585	SHA1_LIBS=-lnettle
1586fi
1587AC_CHECK_LIB([gcrypt], [gcry_md_open], [HAVE_LIBGCRYPT=yes])
1588if test "x$with_sha1" = x && test "x$HAVE_LIBGCRYPT" = xyes; then
1589	with_sha1=libgcrypt
1590fi
1591if test "x$with_sha1" = xlibgcrypt && test "x$HAVE_LIBGCRYPT" != xyes; then
1592	AC_MSG_ERROR([libgcrypt requested but not found])
1593fi
1594if test "x$with_sha1" = xlibgcrypt; then
1595	AC_DEFINE([HAVE_SHA1_IN_LIBGCRYPT], [1],
1596	          [Use libgcrypt SHA1 functions])
1597	SHA1_LIBS=-lgcrypt
1598fi
1599# We don't need all of the OpenSSL libraries, just libcrypto
1600AC_CHECK_LIB([crypto], [SHA1_Init], [HAVE_LIBCRYPTO=yes])
1601PKG_CHECK_MODULES([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
1602                  [HAVE_OPENSSL_PKC=no])
1603if test "x$HAVE_LIBCRYPTO" = xyes || test "x$HAVE_OPENSSL_PKC" = xyes; then
1604	if test "x$with_sha1" = x; then
1605		with_sha1=libcrypto
1606	fi
1607else
1608	if test "x$with_sha1" = xlibcrypto; then
1609		AC_MSG_ERROR([OpenSSL libcrypto requested but not found])
1610	fi
1611fi
1612if test "x$with_sha1" = xlibcrypto; then
1613	if test "x$HAVE_LIBCRYPTO" = xyes; then
1614		SHA1_LIBS=-lcrypto
1615	else
1616		SHA1_LIBS="$OPENSSL_LIBS"
1617		SHA1_CFLAGS="$OPENSSL_CFLAGS"
1618	fi
1619fi
1620AC_MSG_CHECKING([for SHA1 implementation])
1621if test "x$with_sha1" = x; then
1622	AC_MSG_ERROR([No suitable SHA1 implementation found])
1623fi
1624AC_MSG_RESULT([$with_sha1])
1625AC_SUBST(SHA1_LIBS)
1626AC_SUBST(SHA1_CFLAGS)
1627
1628PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
1629PKG_CHECK_MODULES([XSERVERLIBS], [$REQUIRED_LIBS])
1630
1631PKG_CHECK_MODULES(LIBUNWIND, libunwind, [HAVE_LIBUNWIND=yes], [HAVE_LIBUNWIND=no])
1632if test "x$LIBUNWIND" = "xauto"; then
1633    LIBUNWIND="$HAVE_LIBUNWIND"
1634fi
1635
1636if test "x$LIBUNWIND" = "xyes"; then
1637    if test "x$HAVE_LIBUNWIND" != "xyes"; then
1638        AC_MSG_ERROR([libunwind requested but not installed.])
1639    fi
1640    AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
1641fi
1642
1643AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$LIBUNWIND" = xyes])
1644
1645# Autotools has some unfortunate issues with library handling.  In order to
1646# get a server to rebuild when a dependency in the tree is changed, it must
1647# be listed in SERVERNAME_DEPENDENCIES.  However, no system libraries may be
1648# listed there, or some versions of autotools will break (especially if a -L
1649# is required to find the library).  So, we keep two sets of libraries
1650# detected: NAMESPACE_LIBS for in-tree libraries to be linked against, which
1651# will go into the _DEPENDENCIES and _LDADD of the server, and
1652# NAMESPACE_SYS_LIBS which will go into only the _LDADD.  The
1653# NAMESPACEMODULES_LIBS detected from pkgconfig should always go in
1654# NAMESPACE_SYS_LIBS.
1655#
1656# XSERVER_LIBS is the set of in-tree libraries which all servers require.
1657# XSERVER_SYS_LIBS is the set of out-of-tree libraries which all servers
1658# require.
1659#
1660XSERVER_CFLAGS="${XSERVER_CFLAGS} ${XSERVERCFLAGS_CFLAGS}"
1661XSERVER_LIBS="$DIX_LIB $MI_LIB $OS_LIB"
1662XSERVER_SYS_LIBS="${XSERVERLIBS_LIBS} ${SYS_LIBS} ${LIBS}"
1663AC_SUBST([XSERVER_LIBS])
1664AC_SUBST([XSERVER_SYS_LIBS])
1665
1666UTILS_SYS_LIBS="${SYS_LIBS}"
1667AC_SUBST([UTILS_SYS_LIBS])
1668
1669# The Xorg binary needs to export symbols so that they can be used from modules
1670# Some platforms require extra flags to do this.   libtool should set the
1671# necessary flags for each platform when -export-dynamic is passed to it.
1672LD_EXPORT_SYMBOLS_FLAG="-export-dynamic"
1673LD_NO_UNDEFINED_FLAG=
1674XORG_DRIVER_LIBS=
1675case "$host_os" in
1676    cygwin*)
1677	LD_EXPORT_SYMBOLS_FLAG="-Wl,--export-all,--out-implib,lib\$@.a"
1678	LD_NO_UNDEFINED_FLAG="-no-undefined -Wl,\$(top_builddir)/hw/xfree86/libXorg.exe.a"
1679	XORG_DRIVER_LIBS="-lXorg.exe -L\${moduledir} -lshadow -lfb -no-undefined"
1680	CYGWIN=yes
1681	;;
1682    solaris*)
1683	# We use AC_LINK_IFELSE to generate a temporary program conftest$EXEEXT
1684	# that we can link against for testing if the system linker is new
1685	# enough to support -z parent=<program> for verifying loadable modules
1686	# are only calling functions defined in either the loading program or
1687	# the libraries they're linked with.
1688	AC_LINK_IFELSE(
1689	    [AC_LANG_SOURCE([int main(int argc, char **argv) { return 0; }])],
1690	    [mv conftest$EXEEXT conftest.parent
1691	     XORG_CHECK_LINKER_FLAGS([-Wl,-z,parent=conftest.parent -G],
1692		[LD_NO_UNDEFINED_FLAG="-Wl,-z,defs -Wl,-z,parent=\$(top_builddir)/hw/xfree86/Xorg"
1693# Not set yet, since this gets exported in xorg-server.pc to all the drivers,
1694# and they're not all fixed to build correctly with it yet.
1695#		 XORG_DRIVER_LIBS="-Wl,-z,defs -Wl,-z,parent=${bindir}/Xorg"
1696         ],[],
1697		[AC_LANG_SOURCE([extern int main(int argc, char **argv);
1698			int call_main(void) { return main(0, (void *)0); }])])
1699	     rm -f conftest.parent
1700	    ])
1701	;;
1702esac
1703AC_SUBST([LD_EXPORT_SYMBOLS_FLAG])
1704AC_SUBST([LD_NO_UNDEFINED_FLAG])
1705AC_SUBST([XORG_DRIVER_LIBS])
1706AM_CONDITIONAL([CYGWIN], [test x"$CYGWIN" = xyes])
1707AM_CONDITIONAL([NO_UNDEFINED], [test x"$LD_NO_UNDEFINED_FLAG" != x])
1708
1709dnl Imake defines SVR4 on SVR4 systems, and many files check for it, so
1710dnl we need to replicate that here until those can all be fixed
1711AC_MSG_CHECKING([if SVR4 needs to be defined])
1712AC_EGREP_CPP([I_AM_SVR4],[
1713#if defined(SVR4) || defined(__svr4__) || defined(__SVR4)
1714 I_AM_SVR4
1715#endif
1716],[
1717AC_DEFINE([SVR4],1,[Define to 1 on systems derived from System V Release 4])
1718AC_MSG_RESULT([yes])], AC_MSG_RESULT([no]))
1719
1720XSERVER_CFLAGS="$XSERVER_CFLAGS $CORE_INCS $XEXT_INC $COMPOSITE_INC $DAMAGE_INC $FIXES_INC $XI_INC $MI_INC $MIEXT_SYNC_INC $MIEXT_SHADOW_INC $MIEXT_LAYER_INC $MIEXT_DAMAGE_INC $RENDER_INC $RANDR_INC $FB_INC $DBE_INC $PRESENT_INC"
1721
1722dnl ---------------------------------------------------------------------------
1723dnl DDX section.
1724dnl ---------------------------------------------------------------------------
1725
1726dnl Xvfb DDX
1727
1728AC_MSG_CHECKING([whether to build Xvfb DDX])
1729AC_MSG_RESULT([$XVFB])
1730AM_CONDITIONAL(XVFB, [test "x$XVFB" = xyes])
1731
1732if test "x$XVFB" = xyes; then
1733	XVFB_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB"
1734	XVFB_SYS_LIBS="$XVFBMODULES_LIBS $GLX_SYS_LIBS"
1735	AC_SUBST([XVFB_LIBS])
1736	AC_SUBST([XVFB_SYS_LIBS])
1737fi
1738
1739
1740dnl Xnest DDX
1741
1742PKG_CHECK_MODULES(XNESTMODULES, [$LIBXEXT x11 xau $XDMCP_MODULES], [have_xnest=yes], [have_xnest=no])
1743AC_MSG_CHECKING([whether to build Xnest DDX])
1744if test "x$XNEST" = xauto; then
1745	XNEST="$have_xnest"
1746fi
1747AC_MSG_RESULT([$XNEST])
1748AM_CONDITIONAL(XNEST, [test "x$XNEST" = xyes])
1749
1750if test "x$XNEST" = xyes; then
1751	if test "x$have_xnest" = xno; then
1752		AC_MSG_ERROR([Xnest build explicitly requested, but required modules not found.])
1753	fi
1754	XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $DAMAGE_LIB  $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $RENDER_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB $DIX_LIB $OS_LIB"
1755	XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS"
1756	AC_SUBST([XNEST_LIBS])
1757	AC_SUBST([XNEST_SYS_LIBS])
1758fi
1759
1760
1761dnl Xorg DDX
1762
1763AC_MSG_CHECKING([whether to build Xorg DDX])
1764if test "x$XORG" = xauto; then
1765	XORG="yes"
1766	case $host_os in
1767		cygwin*) XORG="no" ;;
1768		mingw*)  XORG="no" ;;
1769		darwin*) XORG="no" ;;
1770	esac
1771fi
1772AC_MSG_RESULT([$XORG])
1773
1774if test "x$XORG" = xyes; then
1775	XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
1776	XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
1777	XORG_INCS="$XORG_DDXINCS $XORG_OSINCS"
1778	XORG_CFLAGS="$XORGSERVER_CFLAGS -DHAVE_XORG_CONFIG_H"
1779	XORG_LIBS="$COMPOSITE_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $XI_LIB $XKB_LIB"
1780
1781	dnl ==================================================================
1782	dnl symbol visibility
1783	symbol_visibility=
1784	have_visibility=disabled
1785	if test x$SYMBOL_VISIBILITY != xno; then
1786	    AC_MSG_CHECKING(for symbol visibility support)
1787	    if test x$GCC = xyes; then
1788		VISIBILITY_CFLAGS="-fvisibility=hidden"
1789	    else
1790		if test x$SUNCC = xyes; then
1791		    VISIBILITY_CFLAGS="-xldscope=hidden"
1792		else
1793		    have_visibility=no
1794		fi
1795	    fi
1796	    if test x$have_visibility != xno; then
1797		save_CFLAGS="$CFLAGS"
1798		proto_inc=`$PKG_CONFIG --cflags xproto`
1799		CFLAGS="$CFLAGS $VISIBILITY_CFLAGS $proto_inc"
1800		AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1801		    [#include <X11/Xfuncproto.h>
1802		     extern _X_HIDDEN int hidden_int;
1803		     extern _X_EXPORT int public_int;
1804		     extern _X_HIDDEN int hidden_int_func(void);
1805		     extern _X_EXPORT int public_int_func(void);]],
1806		    [])],
1807		    have_visibility=yes,
1808		    have_visibility=no)
1809		CFLAGS=$save_CFLAGS
1810	    fi
1811	    AC_MSG_RESULT([$have_visibility])
1812	    if test x$have_visibility != xno; then
1813		symbol_visibility=$VISIBILITY_CFLAGS
1814		XORG_CFLAGS="$XORG_CFLAGS $VISIBILITY_CFLAGS"
1815		XSERVER_CFLAGS="$XSERVER_CFLAGS $VISIBILITY_CFLAGS"
1816	    fi
1817	fi
1818	dnl added to xorg-server.pc
1819	AC_SUBST([symbol_visibility])
1820	dnl ===================================================================
1821
1822	dnl ===================================================================
1823	dnl ================= beginning of PCI configuration ==================
1824	dnl ===================================================================
1825	xorg_bus_bsdpci=no
1826	xorg_bus_sparc=no
1827
1828	AC_MSG_CHECKING([whether to build Xorg PCI functions])
1829	if test "x$PCI" = xyes; then
1830		PKG_CHECK_MODULES([PCIACCESS], $LIBPCIACCESS)
1831		SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $LIBPCIACCESS"
1832		XORG_SYS_LIBS="$XORG_SYS_LIBS $PCIACCESS_LIBS $LIBDRM_LIBS"
1833		XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS $LIBDRM_CFLAGS"
1834
1835		AC_DEFINE(XSERVER_LIBPCIACCESS, 1, [Use libpciaccess for all pci manipulation])
1836		AC_DEFINE_DIR(PCI_TXT_IDS_PATH, PCI_TXT_IDS_DIR, [Default PCI text file ID path])
1837		case $host_os in
1838		  gnu* | freebsd* | kfreebsd*-gnu | netbsd* | openbsd* | solaris* | dragonfly*)
1839			xorg_bus_bsdpci="yes"
1840			;;
1841		esac
1842		case $host_cpu in
1843		  sparc*)
1844			xorg_bus_sparc="yes"
1845			;;
1846		esac
1847	else
1848		if test "x$CONFIG_UDEV_KMS" = xyes; then
1849			AC_MSG_ERROR([Platform device enumeration requires libpciaccess])
1850		fi
1851		if test "x$INT10MODULE" = xyes && test "x$INT10" != xstub; then
1852			AC_MSG_ERROR([Cannot build int10 without libpciaccess])
1853		fi
1854	fi
1855	AC_MSG_RESULT([$PCI])
1856
1857	if test "x$CONFIG_UDEV_KMS" = xyes; then
1858		AC_DEFINE(XSERVER_PLATFORM_BUS, 1, [X server supports platform device enumeration])
1859	fi
1860	AC_MSG_RESULT([$XSERVER_PLATFORM_BUS])
1861	dnl ===================================================================
1862	dnl ==================== end of PCI configuration =====================
1863	dnl ===================================================================
1864
1865	case $host_os in
1866	  linux*)
1867		XORG_OS_SUBDIR="linux"
1868		linux_acpi="no"
1869		case $host_cpu in
1870		  i*86|amd64*|x86_64*|ia64*)
1871			linux_acpi=$enable_linux_acpi
1872			;;
1873		  *)
1874			;;
1875		esac
1876		dnl APM header
1877		AC_CHECK_HEADERS([linux/apm_bios.h], [linux_apm=$enable_linux_apm])
1878		if test "x$linux_apm" = xyes -o "x$linux_acpi" = xyes; then
1879			AC_DEFINE(XF86PM, 1, [Support APM/ACPI power management in the server])
1880		fi
1881		;;
1882	  freebsd* | kfreebsd*-gnu | dragonfly*)
1883		XORG_OS_SUBDIR="bsd"
1884		;;
1885	  netbsd*)
1886		XORG_OS_SUBDIR="bsd"
1887		;;
1888	  openbsd*)
1889		if test "x$ac_cv_BSD_APM" = xyes \
1890			-o "x$ac_cv_BSD_KQUEUE_APM" = xyes; then
1891			XORG_CFLAGS="$XORG_CFLAGS -DXF86PM"
1892		fi
1893		XORG_OS_SUBDIR="bsd"
1894		;;
1895	  solaris*)
1896		XORG_OS_SUBDIR="solaris"
1897		XORG_CFLAGS="$XORG_CFLAGS -DXF86PM"
1898		AC_CHECK_HEADERS([sys/kd.h])
1899		AC_CHECK_HEADERS([sys/vt.h], [solaris_vt=yes], [solaris_vt=no])
1900		# Check for minimum supported release
1901		AC_MSG_CHECKING([Solaris version])
1902	        OS_MINOR=`echo ${host_os}|$SED -e 's/^.*solaris2\.//' -e s'/\..*$//'`
1903		if test "${OS_MINOR}" -ge 7 ; then
1904	        	AC_MSG_RESULT(Solaris ${OS_MINOR})
1905		else
1906			AC_MSG_RESULT(Solaris `echo ${host_os}|$SED -e 's/^.*solaris//`)
1907		fi
1908		if test "${OS_MINOR}" -lt 8 ; then
1909			AC_MSG_ERROR([This release no longer supports Solaris versions older than Solaris 8.])
1910		fi
1911		AC_CHECK_DECL([_LP64], [SOLARIS_64="yes"], [SOLARIS_64="no"])
1912
1913		case $host_cpu in
1914		  sparc*)
1915			SOLARIS_INOUT_ARCH="sparcv8plus"
1916			;;
1917		  i*86|x86_64*)
1918			if test x$SOLARIS_64 = xyes ; then
1919				SOLARIS_INOUT_ARCH="amd64"
1920			else
1921				SOLARIS_INOUT_ARCH="ia32"
1922			fi
1923			;;
1924		  *)
1925			AC_MSG_ERROR([Unsupported Solaris platform. Only SPARC & x86 \
1926			are supported on Solaris in this release.   If you are \
1927			interested in porting Xorg to your platform, please email \
1928			xorg@lists.freedesktop.org.]) ;;
1929		esac
1930		AC_SUBST([SOLARIS_INOUT_ARCH])
1931		;;
1932	  gnu*)
1933		XORG_OS_SUBDIR="hurd"
1934		;;
1935	  cygwin*)
1936		XORG_OS_SUBDIR="stub"
1937		;;
1938	  *)
1939		XORG_OS_SUBDIR="stub"
1940		AC_MSG_NOTICE([m4_text_wrap(m4_join([ ],
1941		[Your OS is unknown.],
1942		[If you are interested in porting Xorg to your platform,],
1943		[please email xorg@lists.freedesktop.org.]))])
1944		;;
1945	esac
1946
1947	if test "x$DGA" = xauto; then
1948		PKG_CHECK_MODULES(DGA, $DGAPROTO, [DGA=yes], [DGA=no])
1949	fi
1950	if test "x$DGA" = xyes; then
1951		XORG_MODULES="$XORG_MODULES $DGAPROTO"
1952		PKG_CHECK_MODULES(DGA, $DGAPROTO)
1953		AC_DEFINE(DGA, 1, [Support DGA extension])
1954		AC_DEFINE(XFreeXDGA, 1, [Build XDGA support])
1955	fi
1956
1957	if test "x$XF86VIDMODE" = xyes; then
1958		XORG_MODULES="$XORG_MODULES $VIDMODEPROTO"
1959	fi
1960
1961	if test -n "$XORG_MODULES"; then
1962	        PKG_CHECK_MODULES(XORG_MODULES, [$XORG_MODULES])
1963	        XORG_CFLAGS="$XORG_CFLAGS $XORG_MODULES_CFLAGS"
1964	        XORG_SYS_LIBS="$XORG_SYS_LIBS $XORG_MODULES_LIBS"
1965	fi
1966
1967	if test "x$DRM" = xyes; then
1968		XORG_DRIVER_MODESETTING=yes
1969	fi
1970
1971	AC_SUBST([XORG_LIBS])
1972	AC_SUBST([XORG_SYS_LIBS])
1973	AC_SUBST([XORG_INCS])
1974	AC_SUBST([XORG_OS_SUBDIR])
1975	AC_SUBST([XORG_CFLAGS])
1976
1977	dnl these only go in xorg-config.h
1978	XF86CONFIGFILE="xorg.conf"
1979	XF86CONFIGDIR="xorg.conf.d"
1980	AC_SUBST(XF86CONFIGDIR)
1981	CONFIGFILE="$sysconfdir/$XF86CONFIGFILE"
1982	LOGPREFIX="Xorg."
1983	XDG_DATA_HOME=".local/share"
1984	XDG_DATA_HOME_LOGDIR="xorg"
1985	AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
1986	AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
1987	AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
1988	AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
1989	AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
1990	AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
1991	AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
1992	AC_DEFINE_DIR(XCONFIGFILE, XF86CONFIGFILE, [Name of configuration file])
1993	AC_DEFINE_DIR(XF86CONFIGFILE, XF86CONFIGFILE, [Name of configuration file])
1994	AC_DEFINE_DIR(XCONFIGDIR, XF86CONFIGDIR, [Name of configuration directory])
1995	AC_DEFINE_DIR(DEFAULT_MODULE_PATH, moduledir, [Default module search path])
1996	AC_DEFINE_DIR(DEFAULT_LIBRARY_PATH, libdir, [Default library install path])
1997	AC_DEFINE_DIR(DEFAULT_LOGDIR, logdir, [Default log location])
1998	AC_DEFINE_DIR(DEFAULT_LOGPREFIX, LOGPREFIX, [Default logfile prefix])
1999	AC_DEFINE_DIR(DEFAULT_XDG_DATA_HOME, XDG_DATA_HOME, [Default XDG_DATA dir under HOME])
2000	AC_DEFINE_DIR(DEFAULT_XDG_DATA_HOME_LOGDIR, XDG_DATA_HOME_LOGDIR, [Default log dir under XDG_DATA_HOME])
2001	AC_DEFINE_UNQUOTED(__VENDORDWEBSUPPORT__, ["$VENDOR_WEB"], [Vendor web address for support])
2002	if test "x$VGAHW" = xyes; then
2003		AC_DEFINE(WITH_VGAHW, 1, [Building vgahw module])
2004	fi
2005
2006	driverdir="$moduledir/drivers"
2007	AC_SUBST([moduledir])
2008	AC_SUBST([driverdir])
2009	sdkdir="$includedir/xorg"
2010	extdir="$includedir/X11/extensions"
2011	sysconfigdir="$datadir/X11/$XF86CONFIGDIR"
2012	AC_SUBST([sdkdir])
2013	AC_SUBST([extdir])
2014	AC_SUBST([sysconfigdir])
2015	AC_SUBST([logdir])
2016
2017	# stuff the ABI versions into the pc file too
2018	extract_abi() {
2019	    grep ^.define.*${1}_VERSION ${srcdir}/hw/xfree86/common/xf86Module.h | tr '(),' '  .' | awk '{ print $4$5 }'
2020	}
2021	abi_ansic=`extract_abi ANSIC`
2022	abi_videodrv=`extract_abi VIDEODRV`
2023	abi_xinput=`extract_abi XINPUT`
2024	abi_extension=`extract_abi EXTENSION`
2025	AC_SUBST([abi_ansic])
2026	AC_SUBST([abi_videodrv])
2027	AC_SUBST([abi_xinput])
2028	AC_SUBST([abi_extension])
2029fi
2030AM_CONDITIONAL([XORG], [test "x$XORG" = xyes])
2031AM_CONDITIONAL([XORG_BUS_PCI], [test "x$PCI" = xyes])
2032AM_CONDITIONAL([XORG_BUS_BSDPCI], [test "x$xorg_bus_bsdpci" = xyes])
2033AM_CONDITIONAL([XORG_BUS_SPARC], [test "x$xorg_bus_sparc" = xyes])
2034AM_CONDITIONAL([LNXACPI], [test "x$linux_acpi" = xyes])
2035AM_CONDITIONAL([LNXAPM], [test "x$linux_apm" = xyes])
2036AM_CONDITIONAL([SOLARIS_VT], [test "x$solaris_vt" = xyes])
2037AM_CONDITIONAL([DGA], [test "x$DGA" = xyes])
2038AM_CONDITIONAL([XORG_BUS_PLATFORM], [test "x$CONFIG_UDEV_KMS" = xyes])
2039AM_CONDITIONAL([XORG_DRIVER_MODESETTING], [test "x$XORG_DRIVER_MODESETTING" = xyes])
2040
2041if test "x$GLES_HIGHP" = xyes; then
2042	AC_DEFINE(GLES_USE_HIGHP, 1, [Use highp as default precision for GLES])
2043fi
2044
2045dnl modesetting
2046if test "x$XORG_DRIVER_MODESETTING" = xyes; then
2047	RGA_LIBS=
2048	RGA_HEADER=
2049
2050	AC_CHECK_LIB([rga], [c_RkRgaInit], RGA_LIBS="-lrga")
2051	AC_CHECK_HEADERS([rga/RgaApi.h], RGA_HEADER="yes")
2052
2053	if test "x$RGA_LIBS" != "x" && test "x$RGA_HEADER" = "xyes"; then
2054		AC_SUBST(RGA_LIBS)
2055		AC_DEFINE(MODESETTING_WITH_RGA, 1, [Have rockchip rga])
2056	fi
2057fi
2058
2059dnl glamor
2060if test "x$GLAMOR" = xauto; then
2061	if echo "$XORG" "$XEPHYR" "$XWAYLAND" | grep -q yes ; then
2062		GLAMOR=yes
2063	fi
2064fi
2065
2066AM_CONDITIONAL([GLAMOR], [test "x$GLAMOR" = xyes])
2067
2068if test "x$GLAMOR" = xyes; then
2069	AC_DEFINE(GLAMOR, 1, [Build glamor])
2070	PKG_CHECK_MODULES([GLAMOR], [epoxy])
2071
2072	PKG_CHECK_EXISTS(epoxy >= 1.4.4,
2073			 [AC_DEFINE(GLAMOR_HAS_EGL_QUERY_DMABUF, 1, [Have GLAMOR_HAS_EGL_QUERY_DMABUF])],
2074			 [])
2075
2076	PKG_CHECK_EXISTS(epoxy >= 1.5.4,
2077			 [AC_DEFINE(GLAMOR_HAS_EGL_QUERY_DRIVER, 1, [Have GLAMOR_HAS_EGL_QUERY_DRIVER])],
2078			 [])
2079
2080	PKG_CHECK_MODULES(GBM, "$LIBGBM", [GBM=yes], [GBM=no])
2081	if test "x$GBM" = xyes; then
2082		AC_DEFINE(GLAMOR_HAS_GBM, 1,
2083			  [Build glamor with GBM-based EGL support])
2084		AC_CHECK_DECL(GBM_BO_USE_LINEAR,
2085			[AC_DEFINE(GLAMOR_HAS_GBM_LINEAR, 1, [Have GBM_BO_USE_LINEAR])], [],
2086			[#include <stdlib.h>
2087			 #include <gbm.h>])
2088		dnl 17.1.0 is required for gbm_bo_create_with_modifiers
2089		PKG_CHECK_EXISTS(gbm >= 17.1.0,
2090				 [AC_DEFINE(GBM_BO_WITH_MODIFIERS, 1, [Have gbm_bo_create_with_modifiers])],
2091				 [])
2092		AC_CHECK_HEADER([gbm.h],
2093			[LDFLAGS="$LDFLAGS $GBM_LIBS"
2094			 AC_CHECK_LIB(gbm, gbm_bo_map,
2095				[AC_DEFINE(GLAMOR_HAS_GBM_MAP,1,[Have gbm_bo_map])])])
2096	else
2097		if test "x$XORG" = xyes; then
2098			AC_MSG_ERROR([Glamor for Xorg requires $LIBGBM])
2099		fi
2100	fi
2101
2102	PKG_CHECK_MODULES(EGL, "$LIBEGL")
2103
2104	AC_CHECK_HEADER([GLES3/gl3.h],
2105		[LDFLAGS="$LDFLAGS $EGL_LIBS"
2106		 AC_CHECK_LIB(GLESv2, glFenceSync,
2107			[AC_DEFINE(GLAMOR_HAS_GL_FENCE,1,[Have glFenceSync])])])
2108fi
2109AM_CONDITIONAL([GLAMOR_EGL], [test "x$GBM" = xyes])
2110
2111dnl XWin DDX
2112
2113AC_MSG_CHECKING([whether to build XWin DDX])
2114if test "x$XWIN" = xauto; then
2115	case $host_os in
2116		cygwin*) XWIN="yes" ;;
2117		mingw*) XWIN="yes" ;;
2118		*) XWIN="no" ;;
2119	esac
2120fi
2121AC_MSG_RESULT([$XWIN])
2122
2123if test "x$XWIN" = xyes; then
2124	AC_DEFINE_DIR(DEFAULT_LOGDIR, logdir, [Default log location])
2125	AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
2126	AC_DEFINE_UNQUOTED(__VENDORDWEBSUPPORT__, ["$VENDOR_WEB"], [Vendor web address for support])
2127	AC_CHECK_TOOL(WINDRES, windres)
2128
2129	PKG_CHECK_MODULES([XWINMODULES],[x11 xdmcp xau xfixes x11-xcb xcb-aux xcb-image xcb-ewmh xcb-icccm])
2130
2131	if test "x$WINDOWSWM" = xauto; then
2132		PKG_CHECK_EXISTS($WINDOWSWMPROTO, [WINDOWSWM=yes], [WINDOWSWM=no])
2133	fi
2134	if test "x$WINDOWSWM" = xyes ; then
2135		PKG_CHECK_MODULES(WINDOWSWM, $WINDOWSWMPROTO)
2136		XWINMODULES_CFLAGS="$XWINMODULES_CFLAGS $WINDOWSWM_CFLAGS"
2137		AC_DEFINE(ROOTLESS,1,[Build Rootless code])
2138	fi
2139
2140	if test "x$WINDOWSDRI" = xauto; then
2141		PKG_CHECK_EXISTS([windowsdriproto], [WINDOWSDRI=yes], [WINDOWSDRI=no])
2142	fi
2143	if test "x$WINDOWSDRI" = xyes ; then
2144		PKG_CHECK_MODULES(WINDOWSDRI, [windowsdriproto])
2145	fi
2146
2147	case $host_os in
2148		cygwin*)
2149			XWIN_SERVER_NAME=XWin
2150			AC_DEFINE(HAS_DEVWINDOWS,1,[Cygwin has /dev/windows for signaling new win32 messages])
2151			;;
2152		mingw*)
2153			XWIN_SERVER_NAME=Xming
2154			AC_DEFINE(RELOCATE_PROJECTROOT,1,[Make PROJECT_ROOT relative to the xserver location])
2155			AC_DEFINE(HAS_WINSOCK,1,[Use Windows sockets])
2156			XWIN_SYS_LIBS="-lpthread -lws2_32"
2157			;;
2158	esac
2159
2160	XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $RANDR_LIB $RENDER_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $OS_LIB"
2161	XWIN_SYS_LIBS="$XWIN_SYS_LIBS $XWINMODULES_LIBS"
2162	AC_SUBST(XWIN_LIBS)
2163	AC_SUBST(XWIN_SERVER_NAME)
2164	AC_SUBST(XWIN_SYS_LIBS)
2165
2166	if test "x$DEBUGGING" = xyes; then
2167		AC_DEFINE(CYGDEBUG, 1, [Simple debug messages])
2168		AC_DEFINE(CYGWINDOWING_DEBUG, 1, [Debug messages for window handling])
2169		AC_DEFINE(CYGMULTIWINDOW_DEBUG, 1, [Debug window manager])
2170	fi
2171
2172	AC_DEFINE(DDXOSVERRORF, 1, [Use OsVendorVErrorF])
2173	AC_DEFINE(DDXBEFORERESET, 1, [Use ddxBeforeReset ])
2174
2175dnl XWin requires OpenGL spec files in order to generate wrapper code for native GL functions
2176	if [test "x$XWIN" = xyes && test "x$GLX" = xyes] ; then
2177           AC_CHECK_PROG(PYTHON3, python3, python3)
2178           if test -z "$PYTHON3"; then
2179                AC_MSG_ERROR([python3 not found])
2180           fi
2181           AC_MSG_CHECKING(for python module lxml)
2182           $PYTHON3 -c "import lxml;"
2183           if test $? -ne 0 ; then
2184                AC_MSG_ERROR([not found])
2185           fi
2186           AC_MSG_RESULT(yes)
2187           if test "x$KHRONOS_SPEC_DIR" = "xauto" ; then
2188		PKG_CHECK_MODULES([KHRONOS_OPENGL_REGISTRY], [khronos-opengl-registry])
2189		KHRONOS_SPEC_DIR=`pkg-config khronos-opengl-registry --variable=specdir`
2190           fi
2191           AC_SUBST(KHRONOS_SPEC_DIR)
2192	fi
2193
2194fi
2195AM_CONDITIONAL(XWIN, [test "x$XWIN" = xyes])
2196AM_CONDITIONAL(XWIN_MULTIWINDOWEXTWM, [test "x$XWIN" = xyes && test "x$WINDOWSWM" = xyes])
2197AM_CONDITIONAL(XWIN_GLX_WINDOWS, [test "x$XWIN" = xyes && test "x$GLX" = xyes])
2198AM_CONDITIONAL(XWIN_WINDOWS_DRI, [test "x$XWIN" = xyes && test "x$WINDOWSDRI" = xyes])
2199
2200dnl Darwin / OS X DDX
2201if test "x$XQUARTZ" = xyes; then
2202	AC_DEFINE(XQUARTZ,1,[Have Quartz])
2203	AC_DEFINE(ROOTLESS,1,[Build Rootless code])
2204
2205	XQUARTZ_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $PRESENT_LIB"
2206	AC_SUBST([XQUARTZ_LIBS])
2207
2208	AC_CHECK_LIB([Xplugin],[xp_init],[:])
2209
2210	CFLAGS="${CFLAGS} -DROOTLESS_WORKAROUND -DROOTLESS_SAFEALPHA -DNO_ALLOCA"
2211
2212	PKG_CHECK_MODULES(XPBPROXY, $APPLEWMPROTO $LIBAPPLEWM xfixes x11)
2213
2214        if test "x$XQUARTZ_SPARKLE" = xyes ; then
2215                AC_DEFINE(XQUARTZ_SPARKLE,1,[Support application updating through sparkle.])
2216        fi
2217
2218	if test "x$STANDALONE_XPBPROXY" = xyes ; then
2219		AC_DEFINE(STANDALONE_XPBPROXY,1,[Build a standalone xpbproxy])
2220	fi
2221fi
2222
2223AM_CONDITIONAL(PSEUDORAMIX, [test "x$XQUARTZ" = xyes -o "x$XWIN" = xyes ])
2224
2225# Support for objc in autotools is minimal and not documented.
2226OBJC='$(CC)'
2227OBJCLD='$(CCLD)'
2228OBJCLINK='$(LINK)'
2229OBJCFLAGS='$(CFLAGS)'
2230AC_SUBST([OBJC])
2231AC_SUBST([OBJCCLD])
2232AC_SUBST([OBJCLINK])
2233AC_SUBST([OBJCFLAGS])
2234# internal, undocumented automake func follows :(
2235_AM_DEPENDENCIES([OBJC])
2236AM_CONDITIONAL(XQUARTZ, [test "x$XQUARTZ" = xyes])
2237AM_CONDITIONAL(XQUARTZ_SPARKLE, [test "x$XQUARTZ_SPARKLE" != "xno"])
2238AM_CONDITIONAL(STANDALONE_XPBPROXY, [test "x$STANDALONE_XPBPROXY" = xyes])
2239
2240dnl DMX DDX
2241PKG_CHECK_MODULES(
2242	[DMXMODULES],
2243	[xmuu $LIBXEXT x11 >= 1.6 xrender xfixes $LIBXI $DMXPROTO xau $XDMCP_MODULES],
2244	[PKG_CHECK_MODULES(
2245		[XDMXCONFIG_DEP],
2246		[xaw7 xmu xt xpm x11],
2247		[have_dmx=yes],
2248		[have_dmx=no])],
2249	[have_dmx=no])
2250AC_MSG_CHECKING([whether to build Xdmx DDX])
2251if test "x$DMX" = xauto; then
2252	DMX="$have_dmx"
2253	case $host_os in
2254		cygwin*) DMX="no" ;;
2255		mingw*)  DMX="no" ;;
2256		darwin*) DMX="no" ;;
2257	esac
2258fi
2259AC_MSG_RESULT([$DMX])
2260AM_CONDITIONAL(DMX, [test "x$DMX" = xyes])
2261
2262if test "x$DMX" = xyes; then
2263	if test "x$have_dmx" = xno; then
2264		AC_MSG_ERROR([Xdmx build explicitly requested, but required
2265		              modules not found.])
2266	fi
2267	DMX_INCLUDES="$XEXT_INC $RENDER_INC $RECORD_INC"
2268	XDMX_CFLAGS="$DMXMODULES_CFLAGS"
2269	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $RANDR_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB"
2270	XDMX_SYS_LIBS="$DMXMODULES_LIBS"
2271	AC_SUBST([XDMX_CFLAGS])
2272	AC_SUBST([XDMX_LIBS])
2273	AC_SUBST([XDMX_SYS_LIBS])
2274
2275dnl USB sources in DMX require <linux/input.h>
2276	AC_CHECK_HEADER([linux/input.h], DMX_BUILD_USB="yes",
2277			DMX_BUILD_USB="no")
2278	AC_SUBST(XDMXCONFIG_DEP_CFLAGS)
2279	AC_SUBST(XDMXCONFIG_DEP_LIBS)
2280	PKG_CHECK_MODULES([DMXEXAMPLES_DEP], [$LIBDMX $LIBXEXT x11])
2281	AC_SUBST(DMXEXAMPLES_DEP_LIBS)
2282	PKG_CHECK_MODULES([DMXXMUEXAMPLES_DEP], [$LIBDMX xmu $LIBXEXT x11])
2283	AC_SUBST(DMXXMUEXAMPLES_DEP_LIBS)
2284	PKG_CHECK_MODULES([DMXXIEXAMPLES_DEP], [$LIBDMX $LIBXI $LIBXEXT x11])
2285	AC_SUBST(DMXXIEXAMPLES_DEP_LIBS)
2286	PKG_CHECK_MODULES([XTSTEXAMPLES_DEP], [$LIBXTST $LIBXEXT x11])
2287	AC_SUBST(XTSTEXAMPLES_DEP_LIBS)
2288	PKG_CHECK_MODULES([XRESEXAMPLES_DEP], [xres $LIBXEXT x11])
2289	AC_SUBST(XRESEXAMPLES_DEP_LIBS)
2290	PKG_CHECK_MODULES([X11EXAMPLES_DEP], [$LIBXEXT x11])
2291	AC_SUBST(X11EXAMPLES_DEP_LIBS)
2292
2293fi
2294AM_CONDITIONAL([DMX_BUILD_USB], [test "x$DMX_BUILD_USB" = xyes])
2295
2296dnl kdrive DDX
2297
2298XEPHYR_LIBS=
2299XEPHYR_INCS=
2300
2301AM_CONDITIONAL(KDRIVE, [test x$KDRIVE = xyes])
2302
2303if test "$KDRIVE" = yes; then
2304    XEPHYR_REQUIRED_LIBS="xau xdmcp xcb xcb-shape xcb-render xcb-renderutil xcb-aux xcb-image xcb-icccm xcb-shm >= 1.9.3 xcb-keysyms xcb-randr xcb-xkb"
2305    if test "x$XV" = xyes; then
2306        XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS xcb-xv"
2307    fi
2308    if test "x$DRI" = xyes && test "x$GLX" = xyes; then
2309        XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS $LIBDRM xcb-glx xcb-xf86dri > 1.6"
2310    fi
2311    if test "x$GLAMOR" = xyes; then
2312        XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS x11-xcb"
2313    fi
2314
2315    if test "x$XEPHYR" = xauto; then
2316        PKG_CHECK_MODULES(XEPHYR, $XEPHYR_REQUIRED_LIBS, [XEPHYR="yes"], [XEPHYR="no"])
2317    elif test "x$XEPHYR" = xyes ; then
2318        PKG_CHECK_MODULES(XEPHYR, $XEPHYR_REQUIRED_LIBS)
2319    fi
2320
2321    # Xephyr needs nanosleep() which is in librt on Solaris
2322    AC_CHECK_FUNC([nanosleep], [],
2323        AC_CHECK_LIB([rt], [nanosleep], XEPHYR_LIBS="$XEPHYR_LIBS -lrt"))
2324
2325    # damage shadow extension glx (NOTYET) fb mi
2326    KDRIVE_INC='-I$(top_srcdir)/hw/kdrive/src'
2327    KDRIVE_PURE_INCS="$KDRIVE_INC $MIEXT_SYNC_INC $MIEXT_DAMAGE_INC $MIEXT_SHADOW_INC $XEXT_INC $FB_INC $MI_INC"
2328    KDRIVE_OS_INC='-I$(top_srcdir)/hw/kdrive/linux'
2329    KDRIVE_INCS="$KDRIVE_PURE_INCS $KDRIVE_OS_INC"
2330
2331    KDRIVE_CFLAGS="$XSERVER_CFLAGS"
2332
2333    KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $OS_LIB"
2334    KDRIVE_LIB='$(top_builddir)/hw/kdrive/src/libkdrive.la'
2335    KDRIVE_MAIN_LIB="$MAIN_LIB"
2336    KDRIVE_LOCAL_LIBS="$DIX_LIB $KDRIVE_LIB"
2337    KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $FB_LIB $MI_LIB $KDRIVE_PURE_LIBS"
2338    KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $KDRIVE_OS_LIB"
2339    KDRIVE_LIBS="$KDRIVE_LOCAL_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
2340
2341    AC_SUBST([XEPHYR_LIBS])
2342    AC_SUBST([XEPHYR_INCS])
2343fi
2344AC_SUBST([KDRIVE_INCS])
2345AC_SUBST([KDRIVE_PURE_INCS])
2346AC_SUBST([KDRIVE_CFLAGS])
2347AC_SUBST([KDRIVE_PURE_LIBS])
2348AC_SUBST([KDRIVE_MAIN_LIB])
2349AC_SUBST([KDRIVE_LOCAL_LIBS])
2350AC_SUBST([KDRIVE_LIBS])
2351AM_CONDITIONAL(XEPHYR, [test "x$KDRIVE" = xyes && test "x$XEPHYR" = xyes])
2352
2353dnl Xwayland DDX
2354
2355XWAYLANDMODULES="wayland-client >= 1.3.0 wayland-protocols >= 1.10 $LIBDRM epoxy"
2356if test "x$XF86VIDMODE" = xyes; then
2357	XWAYLANDMODULES="$XWAYLANDMODULES $VIDMODEPROTO"
2358fi
2359PKG_CHECK_MODULES(XWAYLANDMODULES, [$XWAYLANDMODULES], [have_xwayland=yes], [have_xwayland=no])
2360AC_MSG_CHECKING([whether to build Xwayland DDX])
2361if test "x$XWAYLAND" = xauto; then
2362   XWAYLAND="$have_xwayland"
2363fi
2364AC_MSG_RESULT([$XWAYLAND])
2365AM_CONDITIONAL(XWAYLAND, [test "x$XWAYLAND" = xyes])
2366
2367if test "x$XWAYLAND" = xyes; then
2368	if test "x$have_xwayland" = xno; then
2369		AC_MSG_ERROR([Xwayland build explicitly requested, but required modules not found.])
2370	fi
2371
2372	if test "x$GLAMOR" = xyes && test "x$GBM" = xyes; then
2373		AC_DEFINE(XWL_HAS_GLAMOR, 1,
2374			  [Build xwayland with glamor support])
2375	fi
2376
2377	PKG_CHECK_MODULES(WAYLAND_EGLSTREAM, [wayland-eglstream-protocols >= 1.0.2], [have_wl_eglstream=yes], [have_wl_eglstream=no])
2378
2379	if test "x$XWAYLAND_EGLSTREAM" = xauto; then
2380		if test "x$have_wl_eglstream" = xyes && test "x$GLAMOR" = xyes; then
2381			XWAYLAND_EGLSTREAM=yes
2382		fi
2383	fi
2384
2385	if test "x$XWAYLAND_EGLSTREAM" = xyes; then
2386		if test "x$GLAMOR" != xyes; then
2387			AC_MSG_ERROR([Xwayland eglstream support explicitly requested, but required modules not found.])
2388		fi
2389
2390		if test "x$have_wl_eglstream" = xno; then
2391			AC_MSG_ERROR([Xwayland eglstream support requires wayland-eglstream-protocols >= 1.0.2])
2392		fi
2393
2394		AC_SUBST(WAYLAND_EGLSTREAM_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-eglstream-protocols`)
2395		AC_DEFINE(XWL_HAS_EGLSTREAM, 1,
2396			  [Build xwayland with eglstream support])
2397	fi
2398
2399	XWAYLAND_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB $DIX_LIB $OS_LIB"
2400	XWAYLAND_SYS_LIBS="$XWAYLANDMODULES_LIBS $GLX_SYS_LIBS"
2401	AC_SUBST([XWAYLAND_LIBS])
2402	AC_SUBST([XWAYLAND_SYS_LIBS])
2403
2404	if test "x$MONOTONIC_CLOCK" != xyes; then
2405		AC_MSG_ERROR([Xwayland requires CLOCK_MONOTONIC support.])
2406	fi
2407
2408	AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
2409	if test "x$WAYLAND_SCANNER" = x; then
2410		PKG_CHECK_MODULES(WAYLAND_SCANNER, [wayland-scanner])
2411		AC_SUBST(WAYLAND_SCANNER, `$PKG_CONFIG --variable=wayland_scanner wayland-scanner`)
2412	fi
2413
2414        PKG_CHECK_MODULES(WAYLAND_SCANNER, [wayland-scanner >= 1.14.91],
2415                          AC_SUBST(SCANNER_ARG, 'private-code'),
2416                          AC_SUBST(SCANNER_ARG, 'code'))
2417
2418	AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2419fi
2420AM_CONDITIONAL(XWAYLAND_EGLSTREAM, [test "x$XWAYLAND_EGLSTREAM" = "xyes"])
2421
2422
2423dnl and the rest of these are generic, so they're in config.h
2424dnl
2425dnl though, thanks to the passing of some significant amount of time, the
2426dnl above is probably a complete fallacy, and you should not rely on it.
2427dnl but this is still actually better than imake, honest. -daniels
2428
2429AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2430#include <features.h>
2431#ifndef __GLIBC__
2432#error not glibc
2433#endif
2434]], [])], [AC_DEFINE(_GNU_SOURCE, 1,
2435	[ Enable GNU and other extensions to the C environment for glibc])])
2436
2437AC_DEFINE_DIR(PROJECTROOT, prefix, [Overall prefix])
2438AC_DEFINE_DIR(SYSCONFDIR, sysconfdir, [sysconfdir])
2439
2440AC_SUBST([RELEASE_DATE])
2441DATE_FMT="%Y%m%d"
2442TIME_FMT="1%H%M%S"
2443BUILD_DATE="`date "+$DATE_FMT"`"
2444BUILD_TIME="`date "+$TIME_FMT"`"
2445if test "x$SOURCE_DATE_EPOCH" != "x"; then
2446	BUILD_DATE="`date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u "+$DATE_FMT"`"
2447	BUILD_TIME="`date -u -d "@$SOURCE_DATE_EPOCH" "+$TIME_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$TIME_FMT" 2>/dev/null || date -u "+$TIME_FMT"`"
2448fi
2449AC_SUBST([BUILD_DATE])
2450AC_SUBST([BUILD_TIME])
2451
2452DIX_CFLAGS="-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"
2453
2454AC_SUBST([DIX_CFLAGS])
2455
2456AC_SUBST([libdir])
2457AC_SUBST([exec_prefix])
2458AC_SUBST([prefix])
2459
2460AC_CONFIG_COMMANDS([sdksyms], [touch hw/xfree86/sdksyms.dep])
2461
2462if test "x$CONFIG_HAL" = xno && test "x$CONFIG_UDEV" = xno; then
2463    AC_MSG_WARN([
2464             ***********************************************
2465             Neither HAL nor udev backend will be enabled.
2466             Input device hotplugging will not be available!
2467             ***********************************************])
2468fi
2469
2470AC_CONFIG_FILES([
2471Makefile
2472glx/Makefile
2473include/Makefile
2474composite/Makefile
2475damageext/Makefile
2476dbe/Makefile
2477dix/Makefile
2478doc/Makefile
2479doc/dtrace/Makefile
2480man/Makefile
2481fb/Makefile
2482glamor/Makefile
2483record/Makefile
2484config/Makefile
2485mi/Makefile
2486miext/Makefile
2487miext/sync/Makefile
2488miext/damage/Makefile
2489miext/shadow/Makefile
2490miext/rootless/Makefile
2491os/Makefile
2492pseudoramiX/Makefile
2493randr/Makefile
2494render/Makefile
2495xkb/Makefile
2496Xext/Makefile
2497Xi/Makefile
2498xfixes/Makefile
2499exa/Makefile
2500dri3/Makefile
2501present/Makefile
2502hw/Makefile
2503hw/xfree86/Makefile
2504hw/xfree86/Xorg.sh
2505hw/xfree86/common/Makefile
2506hw/xfree86/common/xf86Build.h
2507hw/xfree86/ddc/Makefile
2508hw/xfree86/dixmods/Makefile
2509hw/xfree86/doc/Makefile
2510hw/xfree86/dri/Makefile
2511hw/xfree86/dri2/Makefile
2512hw/xfree86/dri2/pci_ids/Makefile
2513hw/xfree86/drivers/Makefile
2514hw/xfree86/drivers/modesetting/Makefile
2515hw/xfree86/exa/Makefile
2516hw/xfree86/exa/man/Makefile
2517hw/xfree86/fbdevhw/Makefile
2518hw/xfree86/fbdevhw/man/Makefile
2519hw/xfree86/glamor_egl/Makefile
2520hw/xfree86/i2c/Makefile
2521hw/xfree86/int10/Makefile
2522hw/xfree86/loader/Makefile
2523hw/xfree86/man/Makefile
2524hw/xfree86/modes/Makefile
2525hw/xfree86/os-support/Makefile
2526hw/xfree86/os-support/bsd/Makefile
2527hw/xfree86/os-support/bus/Makefile
2528hw/xfree86/os-support/hurd/Makefile
2529hw/xfree86/os-support/misc/Makefile
2530hw/xfree86/os-support/linux/Makefile
2531hw/xfree86/os-support/solaris/Makefile
2532hw/xfree86/os-support/stub/Makefile
2533hw/xfree86/parser/Makefile
2534hw/xfree86/ramdac/Makefile
2535hw/xfree86/shadowfb/Makefile
2536hw/xfree86/vbe/Makefile
2537hw/xfree86/vgahw/Makefile
2538hw/xfree86/x86emu/Makefile
2539hw/xfree86/xkb/Makefile
2540hw/xfree86/utils/Makefile
2541hw/xfree86/utils/man/Makefile
2542hw/xfree86/utils/cvt/Makefile
2543hw/xfree86/utils/gtf/Makefile
2544hw/dmx/config/Makefile
2545hw/dmx/config/man/Makefile
2546hw/dmx/doc/Makefile
2547hw/dmx/doxygen/doxygen.conf
2548hw/dmx/doxygen/Makefile
2549hw/dmx/examples/Makefile
2550hw/dmx/input/Makefile
2551hw/dmx/glxProxy/Makefile
2552hw/dmx/Makefile
2553hw/dmx/man/Makefile
2554hw/vfb/Makefile
2555hw/vfb/man/Makefile
2556hw/xnest/Makefile
2557hw/xnest/man/Makefile
2558hw/xwin/Makefile
2559hw/xwin/dri/Makefile
2560hw/xwin/glx/Makefile
2561hw/xwin/man/Makefile
2562hw/xwin/winclipboard/Makefile
2563hw/xquartz/Makefile
2564hw/xquartz/GL/Makefile
2565hw/xquartz/bundle/Makefile
2566hw/xquartz/man/Makefile
2567hw/xquartz/mach-startup/Makefile
2568hw/xquartz/pbproxy/Makefile
2569hw/xquartz/xpr/Makefile
2570hw/kdrive/Makefile
2571hw/kdrive/ephyr/Makefile
2572hw/kdrive/ephyr/man/Makefile
2573hw/kdrive/src/Makefile
2574hw/xwayland/Makefile
2575test/Makefile
2576xserver.ent
2577xorg-server.pc
2578])
2579AC_OUTPUT
2580