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