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