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