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