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