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