1 2AC_PREREQ([2.60]) 3AC_INIT([gdm], 4 [3.28.4], 5 [http://bugzilla.gnome.org/enter_bug.cgi?product=gdm]) 6 7AC_CONFIG_SRCDIR([daemon/gdm-manager.c]) 8 9AM_INIT_AUTOMAKE([1.11.2 no-dist-gzip dist-xz tar-ustar -Wall]) 10m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 11AM_MAINTAINER_MODE([enable]) 12 13# for utmpx stuff 14AC_GNU_SOURCE 15 16AC_STDC_HEADERS 17AC_PROG_CXX 18AM_PROG_CC_C_O 19AC_PROG_LIBTOOL() 20 21## increment if the plugin interface has additions, changes, removals. 22LT_CURRENT=1 23 24## increment any time the source changes; set to 25## 0 if you increment CURRENT 26LT_REVISION=0 27 28## increment if any interfaces have been added; set to 0 29## if any interfaces have been changed or removed. removal has 30## precedence over adding, so set to 0 if both happened. 31LT_AGE=0 32 33AC_SUBST(LT_CURRENT) 34AC_SUBST(LT_REVISION) 35AC_SUBST(LT_AGE) 36 37AC_HEADER_STDC 38 39AC_SUBST(VERSION) 40 41AC_CONFIG_HEADERS(config.h) 42AC_CONFIG_MACRO_DIR([m4]) 43 44# Documentation 45enable_documentation=no 46m4_ifdef([YELP_HELP_INIT],[ 47YELP_HELP_INIT 48enable_documentation=yes 49]) 50AM_CONDITIONAL(ENABLE_DOCUMENTATION, test x$enable_documentation = xyes) 51 52# i18n stuff 53IT_PROG_INTLTOOL([0.40.0]) 54 55GETTEXT_PACKAGE=gdm 56AC_SUBST(GETTEXT_PACKAGE) 57AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [gettext package]) 58 59dnl --------------------------------------------------------------------------- 60dnl - Dependencies 61dnl --------------------------------------------------------------------------- 62 63GLIB_REQUIRED_VERSION=2.36.0 64GTK_REQUIRED_VERSION=2.91.1 65LIBCANBERRA_GTK_REQUIRED_VERSION=0.4 66ACCOUNTS_SERVICE_REQUIRED_VERSION=0.6.35 67 68EXTRA_COMPILE_WARNINGS(yes) 69 70PKG_CHECK_MODULES(GTHREAD, gthread-2.0) 71AC_SUBST(GTHREAD_CFLAGS) 72AC_SUBST(GTHREAD_LIBS) 73 74PKG_CHECK_MODULES(COMMON, 75 gobject-2.0 >= $GLIB_REQUIRED_VERSION 76 gio-2.0 >= $GLIB_REQUIRED_VERSION 77 gio-unix-2.0 >= $GLIB_REQUIRED_VERSION 78) 79AC_SUBST(COMMON_CFLAGS) 80AC_SUBST(COMMON_LIBS) 81 82PKG_CHECK_MODULES(DAEMON, 83 gobject-2.0 >= $GLIB_REQUIRED_VERSION 84 gio-2.0 >= $GLIB_REQUIRED_VERSION 85 gio-unix-2.0 >= $GLIB_REQUIRED_VERSION 86 accountsservice >= $ACCOUNTS_SERVICE_REQUIRED_VERSION 87 xcb 88) 89AC_SUBST(DAEMON_CFLAGS) 90AC_SUBST(DAEMON_LIBS) 91 92GLIB_GSETTINGS 93 94PKG_CHECK_MODULES(XLIB, x11 xau, , 95 [AC_PATH_XTRA 96 if test "x$no_x" = xyes; then 97 AC_MSG_ERROR("no (requires X development libraries)") 98 else 99 XLIB_LIBS="$X_PRE_LIBS $X_LIBS -lXau -lX11 -lXext $X_EXTRA_LIBS" 100 XLIB_CFLAGS=$X_CFLAGS 101 fi]) 102AC_SUBST(XLIB_CFLAGS) 103AC_SUBST(XLIB_LIBS) 104 105PKG_CHECK_MODULES(GTK, 106 gtk+-3.0 >= $GTK_REQUIRED_VERSION 107) 108AC_SUBST(GTK_CFLAGS) 109AC_SUBST(GTK_LIBS) 110 111PKG_CHECK_MODULES(CANBERRA_GTK, 112 libcanberra-gtk3 >= $LIBCANBERRA_GTK_REQUIRED_VERSION 113) 114AC_SUBST(CANBERRA_GTK_CFLAGS) 115AC_SUBST(CANBERRA_GTK_LIBS) 116 117AC_ARG_WITH(selinux, 118 AS_HELP_STRING([--with-selinux], 119 [Add SELinux support]),, 120 with_selinux=auto) 121 122PKG_CHECK_MODULES(LIBSELINUX, libselinux, have_selinux=yes, have_selinux=no) 123 124use_selinux=no 125if test "x$have_selinux" = "xyes" && test "x$with_selinux" != "xno" ; then 126 AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux]) 127 use_selinux=yes 128fi 129AC_SUBST(LIBSELINUX_CFLAGS) 130AC_SUBST(LIBSELINUX_LIBS) 131 132PKG_CHECK_MODULES(SIMPLE_CHOOSER, 133 gtk+-3.0 >= $GTK_REQUIRED_VERSION 134) 135AC_SUBST(SIMPLE_CHOOSER_CFLAGS) 136AC_SUBST(SIMPLE_CHOOSER_LIBS) 137 138PLUGIN_LIBTOOL_FLAGS="-export_dynamic -module -avoid-version" 139AC_SUBST(PLUGIN_LIBTOOL_FLAGS) 140 141AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) 142AC_PATH_XTRA 143 144# Unit testing framework 145PKG_CHECK_MODULES(CHECK, 146 [check >= 0.9.4], 147 have_check=yes, 148 have_check=no) 149AM_CONDITIONAL([HAVE_CHECK],[test "x$CHECK_CFLAGS" != "x"]) 150 151PKG_CHECK_MODULES(LIBGDM, glib-2.0 gio-2.0 gio-unix-2.0); 152GOBJECT_INTROSPECTION_CHECK([0.9.12]) 153LIBGDM_GIR_INCLUDES="GLib-2.0 GObject-2.0 Gio-2.0" 154AC_SUBST(LIBGDM_GIR_INCLUDES) 155 156dnl --------------------------------------------------------------------------- 157dnl - Configuration file stuff 158dnl --------------------------------------------------------------------------- 159 160AC_ARG_WITH(sysconfsubdir, 161 AS_HELP_STRING([--with-sysconfsubdir], 162 [directory name used under sysconfdir, default=gdm]), 163 sysconfsubdir=${withval}, sysconfsubdir=gdm) 164AC_SUBST(sysconfsubdir) 165 166if test x"${sysconfsubdir}" != xno -a x"${sysconfsubdir}" != x; then 167 gdmconfdir='${sysconfdir}/${sysconfsubdir}' 168else 169 gdmconfdir='${sysconfdir}' 170fi 171AC_SUBST(gdmconfdir) 172 173AC_ARG_WITH(dmconfdir, 174 AS_HELP_STRING([--with-dmconfdir], 175 [directory where Sessions are stored, default=SYSCONFDIR/dm]), 176 dmconfdir=${withval}, dmconfdir=${sysconfdir}/dm) 177AC_SUBST(dmconfdir) 178 179dnl --------------------------------------------------------------------------- 180dnl - Configure arguments 181dnl --------------------------------------------------------------------------- 182AC_ARG_ENABLE(gdm-xsession, 183 AS_HELP_STRING([--enable-gdm-xsession], 184 [Enable installing the gdm Xsession file @<:@default=no@:>@]),, 185 enable_gdm_xsession=no) 186AM_CONDITIONAL(ENABLE_GDM_XSESSION, test x$enable_gdm_xsession = xyes) 187 188AC_ARG_ENABLE(split-authentication, 189 AS_HELP_STRING([--enable-split-authentication], 190 [Enable multiple simultaneous PAM conversations during login @<:@default=yes@:>@]),, 191 enable_split_authentication=yes) 192AM_CONDITIONAL(ENABLE_SPLIT_AUTHENTICATION, test x$enable_split_authentication = xyes) 193 194if test x$enable_split_authentication = xyes; then 195 AC_DEFINE(ENABLE_SPLIT_AUTHENTICATION, 1, [Define if split authentication is enabled]) 196fi 197 198AC_ARG_ENABLE(user-display-server, 199 AS_HELP_STRING([--enable-user-display-server], 200 [Enable running X server as user @<:@default=yes@:>@]),, 201 enable_user_display_server=yes) 202AM_CONDITIONAL(ENABLE_USER_DISPLAY_SERVER, test x$user_display_server = xyes) 203 204if test x$enable_user_display_server = xyes; then 205 AC_DEFINE(ENABLE_USER_DISPLAY_SERVER, 1, [Define if user display servers are supported]) 206fi 207 208AC_ARG_WITH(default-pam-config, 209 AS_HELP_STRING([--with-default-pam-config: One of redhat, openembedded, exherbo, lfs, arch, none @<:@default=auto@:>@])) 210dnl If not given, try autodetecting from release files (see NetworkManager source) 211if test x$with_default_pam_config = x; then 212 AC_CHECK_FILE(/etc/redhat-release,with_default_pam_config="redhat") 213 AC_CHECK_FILE(/etc/fedora-release,with_default_pam_config="redhat") 214 AC_CHECK_FILE(/etc/exherbo-release,with_default_pam_config="exherbo") 215 AC_CHECK_FILE(/etc/arch-release,with_default_pam_config="arch") 216 AC_CHECK_FILE(/etc/lfs-release,with_default_pam_config="lfs") 217 dnl If not autodetected, default to none 218 if test x$with_default_pam_config = x; then 219 with_default_pam_config=none 220 fi 221fi 222case x$with_default_pam_config in 223 xredhat|xopenembedded|xexherbo|xlfs|xarch|xnone) ;; 224 *) 225 AC_MSG_ERROR([Invalid --with-default-pam-config ${with_default_pam_config}]) 226 exit 1 227 ;; 228esac 229AM_CONDITIONAL(ENABLE_REDHAT_PAM_CONFIG, test x$with_default_pam_config = xredhat) 230AM_CONDITIONAL(ENABLE_OPENEMBEDDED_PAM_CONFIG, test x$with_default_pam_config = xopenembedded) 231AM_CONDITIONAL(ENABLE_EXHERBO_PAM_CONFIG, test x$with_default_pam_config = xexherbo) 232AM_CONDITIONAL(ENABLE_LFS_PAM_CONFIG, test x$with_default_pam_config = xlfs) 233AM_CONDITIONAL(ENABLE_ARCH_PAM_CONFIG, test x$with_default_pam_config = xarch) 234 235AC_CHECK_HEADERS([security/pam_modules.h security/pam_modutil.h security/pam_ext.h], 236 [have_pam=yes], 237 [if test "x$have_pam" = xyes ; then 238 AC_MSG_ERROR([PAM development files not found.]) 239 fi]) 240 241AC_ARG_ENABLE(console-helper, 242 AS_HELP_STRING([--enable-console-helper], 243 [Enable PAM console helper @<:@default=auto@:>@]),, 244 enable_console_helper=auto) 245 246AC_ARG_ENABLE(authentication-scheme, 247 AS_HELP_STRING([--enable-authentication-scheme=@<:@pam/crypt/shadow@:>@], 248 [Choose a specific authentication scheme @<:@default=auto@:>@]),, 249 enable_authentication_scheme=auto) 250 251AC_ARG_WITH(xinerama, 252 AS_HELP_STRING([--with-xinerama], 253 [Add Xinerama support @<:@default=auto@:>@]),, 254 with_xinerama=auto) 255 256AC_ARG_WITH(xdmcp, 257 AS_HELP_STRING([--with-xdmcp], 258 [Add XDMCP (remote login) support @<:@default=auto@:>@]),, 259 with_xdmcp=auto) 260 261AC_ARG_WITH(tcp-wrappers, 262 AS_HELP_STRING([--with-tcp-wrappers], 263 [Use TCP Wrappers @<:@default=auto@:>@]),, 264 with_tcp_wrappers=auto) 265 266 267AC_ARG_WITH([systemdsystemunitdir], 268 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], 269 [Directory for systemd service files]), 270 [with_systemdsystemunitdir=$withval], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) 271AC_ARG_ENABLE(systemd-journal, 272 AS_HELP_STRING([--enable-systemd-journal], 273 [Add journald support @<:@default=auto@:>@]), 274 [enable_systemd_journal=$enableval], [enable_systemd_journal=auto]) 275AC_ARG_ENABLE(wayland-support, 276 AS_HELP_STRING([--enable-wayland-support], 277 [Enable support for wayland sessions @<:@default=auto@:>@]), 278 [enable_wayland_support=$enableval], 279 [enable_wayland_support=yes]) 280 281AC_ARG_WITH(plymouth, 282 AS_HELP_STRING([--with-plymouth], 283 [Add plymouth support @<:@default=yes@:>@]),, 284 [with_plymouth=yes]) 285 286AC_ARG_WITH(at-spi-registryd-directory, 287 AS_HELP_STRING([--with-at-spi-registryd-directory], 288 [Specify the directory of at-spi-registryd @<:@default=libexecdir@:>@])],, 289 [with_at_spi_registryd_directory="${libexecdir}"]) 290 291AT_SPI_REGISTRYD_DIR=$with_at_spi_registryd_directory 292AC_SUBST(AT_SPI_REGISTRYD_DIR) 293 294# Allow configuration of default PATH 295# 296withval="" 297AC_ARG_WITH(default-path, 298 AS_HELP_STRING([--with-default-path=<PATH>], 299 [PATH GDM will use as the user's default PATH]), 300 [if test x$withval != x; then 301 AC_MSG_RESULT("PATH ${withval} will be the default PATH.") 302 fi]) 303 304if test x$withval != x; then 305 GDM_SESSION_DEFAULT_PATH="$withval" 306else 307 GDM_SESSION_DEFAULT_PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" 308fi 309AC_SUBST(GDM_SESSION_DEFAULT_PATH) 310 311dnl 312dnl file that sets LANG 313dnl 314withval="" 315AC_ARG_WITH(lang-file, 316 AS_HELP_STRING([--with-lang-file=<filename>], 317 [file containing default language setting]), 318 [if test x$withval != x; then 319 AC_MSG_RESULT("System locale will be looked for in file ${withval}.") 320 fi]) 321 322if test x$withval != x; then 323 LANG_CONFIG_FILE="$withval" 324else 325 LANG_CONFIG_FILE='$(sysconfdir)/locale.conf' 326fi 327AC_SUBST(LANG_CONFIG_FILE) 328 329# stropts has been removed from glibc 330# https://bugzilla.redhat.com/show_bug.cgi?id=436349 331AC_CHECK_HEADERS(stropts.h) 332 333dnl socklen_t may be declared, but not in a "standard" C header location 334AC_CHECK_HEADERS(sys/socket.h) 335AC_CHECK_TYPE(socklen_t,, 336 AC_DEFINE(socklen_t, size_t, [Compatibility type]), 337[AC_INCLUDES_DEFAULT] 338#ifdef HAVE_SYS_SOCKET_H 339#include <sys/socket.h> 340#endif 341) 342AC_CHECK_HEADERS(sys/sockio.h) 343AC_CHECK_FUNCS([setresuid setenv unsetenv clearenv]) 344 345dnl checks needed for Darwin compatibility to linux **environ. 346AC_CHECK_HEADERS(crt_externs.h) 347AC_CHECK_FUNCS(_NSGetEnviron) 348 349AC_CHECK_HEADERS(sys/vt.h) 350 351EXTRA_DAEMON_LIBS="" 352EXTRA_CHOOSER_LIBS="" 353EXTRA_FLEXI_LIBS="" 354EXTRA_DYNAMIC_LIBS="" 355EXTRA_SETUP_LIBS="" 356EXTRA_TEST_LIBS="" 357 358AC_CHECK_FUNC(socket,,[ 359 AC_CHECK_LIB(socket,socket, [ 360 EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lsocket" 361 EXTRA_CHOOSER_LIBS="$EXTRA_CHOOSER_LIBS -lsocket" 362 EXTRA_FLEXI_LIBS="$EXTRA_FLEXI_LIBS -lsocket" 363 EXTRA_DYNAMIC_LIBS="$EXTRA_DYNAMIC_LIBS -lsocket" 364 EXTRA_SETUP_LIBS="$EXTRA_SETUP_LIBS -lsocket" 365 EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -lsocket"])]) 366AC_CHECK_FUNC(gethostbyname,,[ 367 AC_CHECK_LIB(nsl,gethostbyname, [ 368 EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lnsl" 369 EXTRA_CHOOSER_LIBS="$EXTRA_CHOOSER_LIBS -lnsl" 370 EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -lnsl"])]) 371AC_CHECK_DECL(HOST_NAME_MAX,,[ 372 AC_CHECK_DECL(_POSIX_HOST_NAME_MAX, 373 AC_DEFINE(HOST_NAME_MAX, _POSIX_HOST_NAME_MAX, []), 374 AC_DEFINE(HOST_NAME_MAX, 256, [Define to 256 if neither have HOST_NAME_MAX nor _POSIX_HOST_NAME_MAX]), 375 [[#include <limits.h>]])], 376 [[#include <limits.h>]]) 377AC_CHECK_FUNC(sched_yield,[ 378 AC_DEFINE(HAVE_SCHED_YIELD, 1, [Define if we have sched yield])],[ 379 AC_CHECK_LIB(rt,sched_yield, [ 380 AC_DEFINE(HAVE_SCHED_YIELD, 1, [Define if we have sched yield]) 381 EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lrt"], [ 382 echo "No sched_yield found"])]) 383AC_CHECK_FUNC(inet_aton,,[ 384 AC_CHECK_LIB(resolv,inet_aton, [ 385 EXTRA_CHOOSER_LIBS="$EXTRA_CHOOSER_LIBS -lresolv"])]) 386 387dnl --------------------------------------------------------------------------- 388dnl - Check for mkdtemp 389dnl --------------------------------------------------------------------------- 390 391mkdtemp_missing=false 392AC_CHECK_FUNC(mkdtemp, 393 [AC_DEFINE([HAVE_MKDTEMP], 1, [Have GlibC function to make temp dirs])], 394 mkdtemp_missing=true) 395AM_CONDITIONAL(MKDTEMP_MISSING, test x$mkdtemp_missing = xtrue) 396 397dnl --------------------------------------------------------------------------- 398dnl - Check for IPv6 399dnl --------------------------------------------------------------------------- 400 401AC_MSG_CHECKING([whether to enable IPv6]) 402AC_ARG_ENABLE(ipv6, 403 AS_HELP_STRING([--enable-ipv6], 404 [Enables compilation of IPv6 code @<:@default=no@:>@]),, 405 enable_ipv6=no) 406 407if test x$enable_ipv6 = xyes; then 408 AC_TRY_COMPILE([ 409 #include <sys/types.h> 410 #include <sys/socket.h>],[ 411 struct sockaddr_storage ss; 412 socket(AF_INET6, SOCK_STREAM, 0) 413 ], 414 have_ipv6=yes, 415 have_ipv6=no 416 ) 417 if test x$have_ipv6 = xyes; then 418 have_getaddrinfo=no 419 have_inet_ntop=no 420 AC_CHECK_FUNC(getaddrinfo, have_getaddrinfo=yes) 421 if test x$have_getaddrinfo != xyes; then 422 for lib in bsd socket inet; do 423 AC_CHECK_LIB($lib,getaddrinfo,["LIBS=$LIBS -l$lib";have_getaddrinfo=yes;break]) 424 done 425 fi 426 427 AC_CHECK_FUNC(inet_ntop,have_inet_ntop=yes) 428 if test x$have_inet_ntop != xyes; then 429 for lib in bsd nsl inet; do 430 AC_CHECK_LIB($lib,inet_ntop,["LIBS=$LIBS -l$lib";have_inet_ntop=yes;break]) 431 done 432 fi 433 434 if test x$have_getaddrinfo = xyes; then 435 if test x$have_inet_ntop = xyes; then 436 have_ipv6=yes 437 AC_DEFINE(ENABLE_IPV6, 1, [Define if we have ipv6]) 438 AC_MSG_RESULT($have_ipv6) 439 else 440 have_ipv6=no 441 AC_MSG_RESULT($have_ipv6) 442 fi 443 fi 444 fi 445else 446 AC_MSG_RESULT(no) 447fi 448 449dnl --------------------------------------------------------------------------- 450dnl - Check for GDM user 451dnl --------------------------------------------------------------------------- 452 453withval="" 454AC_ARG_WITH(user, 455 AS_HELP_STRING([--with-user=<username>], 456 [specify gdm's user name])) 457 458if test x$withval != x; then 459 GDM_USERNAME="$withval" 460else 461 GDM_USERNAME=gdm 462fi 463AC_SUBST(GDM_USERNAME) 464AC_DEFINE_UNQUOTED([GDM_USERNAME], "$GDM_USERNAME", [User to use]) 465 466dnl --------------------------------------------------------------------------- 467dnl - Check for GDM group 468dnl --------------------------------------------------------------------------- 469 470withval="" 471AC_ARG_WITH(group, 472 AS_HELP_STRING([--with-group=<group>], 473 [specify gdm's group name])) 474 475if test x$withval != x; then 476 GDM_GROUPNAME="$withval" 477else 478 GDM_GROUPNAME=gdm 479fi 480AC_SUBST(GDM_GROUPNAME) 481AC_DEFINE_UNQUOTED([GDM_GROUPNAME], "$GDM_GROUPNAME", [Group to use]) 482 483 484dnl --------------------------------------------------------------------------- 485dnl - Check for PAM stuff 486dnl --------------------------------------------------------------------------- 487 488dnl PAM prefix (configuration files) 489withval="" 490AC_ARG_WITH(pam-prefix, 491 AS_HELP_STRING([--with-pam-prefix=<prefix>], 492 [specify where pam files go]), 493 [if test x$withval != x; then 494 AC_MSG_RESULT("PAM files will be installed in prefix ${withval}.") 495 fi]) 496 497if test x$withval != x; then 498 PAM_PREFIX="$withval" 499else 500 PAM_PREFIX='${sysconfdir}' 501fi 502AC_SUBST(PAM_PREFIX) 503 504dnl PAM dir (dynamic modules) 505AC_ARG_WITH([pam-mod-dir], 506 [AS_HELP_STRING([--with-pam-mod-dir=DIR], 507 [directory to install pam modules in])], 508 [], [with_pam_mod_dir='${libdir}/security']) 509PAM_MOD_DIR="$with_pam_mod_dir" 510AC_SUBST(PAM_MOD_DIR) 511 512have_pam=no 513AC_CHECK_LIB(pam, pam_start, have_pam=yes) 514 515if test "x$have_pam" = "xyes"; then 516 PAM_LIBS="${PAM_LIBS} -lpam" 517else 518 AC_MSG_ERROR("PAM libraries not found") 519fi 520AC_SUBST(HAVE_PAM) 521AC_SUBST(PAM_LIBS) 522 523AC_CHECK_HEADERS([security/pam_modutil.h security/pam_ext.h]) 524AC_CHECK_LIB(pam, pam_syslog, [AC_DEFINE(HAVE_PAM_SYSLOG, [], [Define to 1 if you have the pam_syslog function])]) 525 526dnl test whether struct pam_message is const (Linux) or not (Sun) 527if test "x$have_pam" = "xyes"; then 528 pam_appl_h="$ac_pam_includes/security/pam_appl.h" 529 AC_MSG_CHECKING(for const pam_message) 530 AC_EGREP_HEADER([struct pam_message], 531 $pam_appl_h, 532 [ AC_EGREP_HEADER([const struct pam_message], 533 $pam_appl_h, 534 [AC_MSG_RESULT(["const: Linux-type PAM"]) ], 535 [AC_MSG_RESULT(["nonconst: Sun-type PAM"]) 536 AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])] 537 )], 538 [AC_MSG_RESULT(["not found - assume const, Linux-type PAM"])] 539 ) 540 AC_CHECK_DECL(PAM_BINARY_PROMPT, 541 [supports_pam_extensions=yes], 542 [supports_pam_extensions=no], 543 #include <security/pam_appl.h> 544 ) 545fi 546if test "x$supports_pam_extensions" = "xyes" ; then 547 AM_CONDITIONAL(SUPPORTS_PAM_EXTENSIONS, true) 548 AC_DEFINE(SUPPORTS_PAM_EXTENSIONS, 1, [Define if PAM supports GDMs custom extensions]) 549fi 550 551AC_CHECK_LIB(keyutils, keyctl_read, [ 552 AC_DEFINE(HAVE_KEYUTILS, 1, [Define if have keyutils]) 553 KEYUTILS_LIBS="-lkeyutils" 554 KEYUTILS_CFLAGS="" 555]) 556AC_SUBST(KEYUTILS_LIBS) 557AC_SUBST(KEYUTILS_CFLAGS) 558 559dnl Check if we can use the setpenv function to add specialvariable 560dnl to the environment (such as the /etc/environment file under AIX) 561AC_LINK_IFELSE([ 562 AC_LANG_PROGRAM([[ 563 #ifdef HAVE_USERSEC_H 564 #include <usersec.h> 565 #endif 566 ]],[[ 567 return (setpenv(NULL, (PENV_INIT | PENV_NOEXEC), NULL, NULL)); 568 ]])], 569 can_use_setpenv=yes, 570 can_use_setpenv=no) 571 572if test x$can_use_setpenv = xyes ; then 573 AC_DEFINE(CAN_USE_SETPENV,,[Define this variable if the code to use 574 the setpenv function can be compiled and used]) 575fi 576 577# 578# Can we use BSD's setusercontext 579# 580AC_CHECK_HEADER(login_cap.h, [ 581 EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lutil" 582 AC_DEFINE(HAVE_LOGINCAP, 1, [Define if we have logincap])]) 583 584# 585# Check for sys/sockio.h 586# 587AC_CHECK_HEADERS(sys/sockio.h, [ 588 AC_DEFINE(HAVE_SYS_SOCKIO_H, 1, [Define if we have sys/sockio.h])]) 589 590# 591# Check for libgen.h 592# 593AC_CHECK_HEADERS(libgen.h, [ 594 AC_DEFINE(HAVE_LIBGEN_H, 1, [Define if we have libgen.h])]) 595 596 597dnl --------------------------------------------------------------------------- 598dnl - Check for POSIX version of getpwnam_r 599dnl --------------------------------------------------------------------------- 600 601# Checking for a posix version of getpwnam_r 602# if we are cross compiling and can not run the test 603# assume getpwnam_r is the posix version 604# it is up to the person cross compiling to change 605# this behavior if desired 606 607AC_LANG_PUSH(C) 608AC_CACHE_CHECK([for posix getpwnam_r], 609 ac_cv_func_posix_getpwnam_r, 610 [AC_RUN_IFELSE([AC_LANG_PROGRAM( 611[[ 612#define _POSIX_PTHREAD_SEMANTICS 613#include <errno.h> 614#include <pwd.h> 615]], 616[[ 617 char buffer[10000]; 618 struct passwd pwd, *pwptr = &pwd; 619 int error; 620 errno = 0; 621 error = getpwnam_r ("", &pwd, buffer, 622 sizeof (buffer), &pwptr); 623 return (error < 0 && errno == ENOSYS) 624 || error == ENOSYS; 625]])], 626 [ac_cv_func_posix_getpwnam_r=yes], 627 [ac_cv_func_posix_getpwnam_r=no], 628 [ac_cv_func_posix_getpwnam_r=yes] 629)]) 630AC_LANG_POP(C) 631 632if test "$ac_cv_func_posix_getpwnam_r" = yes; then 633 AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1, 634 [Have POSIX function getpwnam_r]) 635else 636 AC_CACHE_CHECK([for nonposix getpwnam_r], 637 ac_cv_func_nonposix_getpwnam_r, 638 [AC_TRY_LINK([#include <pwd.h>], 639 [char buffer[10000]; 640 struct passwd pwd; 641 getpwnam_r ("", &pwd, buffer, 642 sizeof (buffer));], 643 [ac_cv_func_nonposix_getpwnam_r=yes], 644 [ac_cv_func_nonposix_getpwnam_r=no])]) 645 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then 646 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1, 647 [Have non-POSIX function getpwnam_r]) 648 fi 649fi 650 651 652dnl --------------------------------------------------------------------------- 653dnl - Check for utmp stuff 654dnl --------------------------------------------------------------------------- 655 656AC_CHECK_HEADERS(utmp.h utmpx.h libutil.h sys/param.h) 657AC_CHECK_FUNCS([getutxent updwtmpx updwtmp]) 658AC_CHECK_LIB(util, login, [ 659 AC_DEFINE(HAVE_LOGIN, 1, [Define if have login]) 660 EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lutil" ]) 661AC_CHECK_LIB(util, logout, [ 662 AC_DEFINE(HAVE_LOGOUT, 1, [Define if have logout]) 663 EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lutil" ]) 664AC_CHECK_LIB(util, logwtmp, [ 665 AC_DEFINE(HAVE_LOGWTMP, 1, [Define if have logwtmp]) 666 EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lutil" ]) 667GDM_CHECK_UTMP 668 669AC_MSG_CHECKING(if utmpx structure has ut_syslen field) 670AC_TRY_COMPILE([ 671 #include <utmpx.h>],[ 672 struct utmpx record; 673 record.ut_syslen = sizeof (record.ut_host); 674 ], 675 have_ut_syslen=yes, 676 have_ut_syslen=no 677 ) 678if test x$have_ut_syslen = xyes; then 679 AC_DEFINE(HAVE_UT_SYSLEN, 1, [Define if have ut_syslen record]) 680fi 681AC_MSG_RESULT($have_ut_syslen) 682 683 684dnl --------------------------------------------------------------------------- 685dnl - Check for Xdmcp 686dnl --------------------------------------------------------------------------- 687 688XDMCP_LIBS="" 689if test x$with_xdmcp != xno ; then 690 xdmcp_save_CPPFLAGS="$CPPFLAGS" 691 CPPFLAGS="$CPPFLAGS $X_CFLAGS" 692 AC_CHECK_HEADER(X11/Xdmcp.h, [ 693 AC_CHECK_LIB(Xdmcp, XdmcpFlush, [ 694 AC_DEFINE(HAVE_LIBXDMCP, 1, [Define if have libxdmcp]) 695 XDMCP_LIBS="-lXdmcp" 696 XDMCP_SUPPORT=yes],,[$X_LIBS -lX11 $X_EXTRA_LIBS]) 697 ],,[#include <X11/Xproto.h>]) 698 699 if test x$with_xdmcp = xyes -a "x$XDMCP_SUPPORT" = "x" ; then 700 AC_MSG_ERROR(XDMCP support requested but XDMCP libraries not found) 701 fi 702 CPPFLAGS="$xdmcp_save_CPPFLAGS" 703fi 704AC_SUBST(XDMCP_LIBS) 705 706if test "x$XDMCP_SUPPORT" = "xyes" ; then 707 AM_CONDITIONAL(XDMCP_SUPPORT, true) 708 GDMCHOOSER=gdmchooser 709else 710 # No need for TCP Wrappers in case XDMCP is disabled 711 if test x$with_tcp_wrappers != xno ; then 712 echo "TCP wrappers not needed if XDMCP is not enabled" 713 fi 714 with_tcp_wrappers=no 715 AM_CONDITIONAL(XDMCP_SUPPORT, false) 716 GDMCHOOSER= 717fi 718AC_SUBST(GDMCHOOSER) 719 720dnl --------------------------------------------------------------------------- 721dnl - Check OS 722dnl --------------------------------------------------------------------------- 723 724os_solaris=no 725case "$host" in 726 *solaris*) os_solaris=yes 727 ;; 728esac 729AM_CONDITIONAL(OS_SOLARIS, test x$os_solaris = xyes) 730 731dnl --------------------------------------------------------------------------- 732dnl - Check for TCP Wrappers for XDMCP access control 733dnl --------------------------------------------------------------------------- 734 735if test x$with_tcp_wrappers = xno ; then 736 echo "TCP wrappers disabled" 737else 738 LIBWRAP_PATH="" 739 if test x$os_solaris = xyes ; then 740 if test -f /usr/lib/libwrap.so; then 741 LIBWRAP_PATH=/usr/lib/libwrap.so 742 echo "Found $LIBWRAP_PATH" 1>&5 743 nm $LIBWRAP_PATH | grep 'T setenv' && LIBWRAP_PATH="" 744 fi 745 746 if test -z "$LIBWRAP_PATH"; then 747 if test -f /usr/sfw/lib/libwrap.so; then 748 LIBWRAP_PATH=/usr/sfw/lib/libwrap.so 749 echo "Found $LIBWRAP_PATH" 1>&5 750 nm $LIBWRAP_PATH | grep 'T setenv' && LIBWRAP_PATH="" 751 fi 752 fi 753 754 if test -z "$LIBWRAP_PATH"; then 755 echo "*********************************************************" 756 echo " You have a broken TCP wrappers library (setenv included)" 757 echo " Please get the latest TCP wrappers package from your OS" 758 echo " vendor, or recompile TCP wrappers to not include a" 759 echo " setenv() implementation." 760 echo 761 echo "Not using TCP wrappers after all." 762 echo "*********************************************************" 763 else 764 LIBWRAP_LIBS="-L/usr/sfw/lib -R/usr/sfw/lib -lwrap" 765 AC_DEFINE(HAVE_TCPWRAPPERS, 1, [Define if have tcp wrappers]) 766 fi 767 else 768 AC_CHECK_LIB([wrap], [hosts_ctl], [ 769 LIBWRAP_LIBS="-lwrap" 770 LIBWRAP_PATH=auto 771 AC_DEFINE(HAVE_TCPWRAPPERS, 1, [Define if have tcp wrappers])]) 772 fi 773 774 AC_MSG_CHECKING([whether to use TCP wrappers]) 775 if test -n "$LIBWRAP_PATH"; then 776 AC_MSG_RESULT(yes) 777 else 778 AC_MSG_RESULT(no) 779 fi 780 781 dnl find out if we need -lnsl or whatever 782 LIB_NSL= 783 if test -n "$LIBWRAP_PATH"; then 784 AC_MSG_CHECKING(whether -lwrap also requires -lnsl) 785 ORIG_LIBS="$LIBS" 786 LIBS="$EXTRA_DAEMON_LIBS $LIBS $LIBWRAP_LIBS" 787 AC_TRY_LINK([ 788#include <tcpd.h> 789int allow_severity, deny_severity; 790], [return hosts_access;], ,[ 791dnl try with -lnsl 792OLD_LIBS="$LIBS" 793LIBS="$LIBS -lnsl" 794AC_TRY_LINK([ 795#include <tcpd.h> 796int allow_severity, deny_severity; 797], [return hosts_access;], LIB_NSL="-lnsl", 798LIBWRAP_PATH="") 799LIBS="$OLD_LIBS" 800]) 801 LIBS="$ORIG_LIBS" 802 if test -n "$LIB_NSL"; then 803 AC_MSG_RESULT(yes) 804 EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS $LIB_NSL" 805 else 806 AC_MSG_RESULT(no) 807 fi 808 fi 809fi 810 811AC_SUBST(LIBWRAP_LIBS) 812 813 814dnl --------------------------------------------------------------------------- 815dnl - Check for XFT2 (for gdm-settings-daemon) 816dnl --------------------------------------------------------------------------- 817 818if $PKG_CONFIG --exists xft ; then 819 AC_DEFINE(HAVE_XFT2,,[Define if Xft functionality is available]) 820fi 821 822 823dnl --------------------------------------------------------------------------- 824dnl - Check for Xinput 825dnl --------------------------------------------------------------------------- 826 827have_xinput= 828AC_CHECK_LIB(Xi, XOpenDevice, XINPUT_LIBS=-lXi) 829if test "x$XINPUT_LIBS" = x; then 830 save_LIBS="$LIBS" 831 for xinputpath in $x_libraries /usr/X11R6/lib /usr/openwin/lib; do 832 LIBS="-L$xinputpath -lXi" 833 if test x$os_solaris = xyes ; then 834 XINPUT_RPATH_FLAGS="-R$xinputpath" 835 fi 836 AC_MSG_CHECKING(for -lXi in $xinputpath) 837 AC_TRY_LINK([], [XOpenDevice()], [ 838 AC_MSG_RESULT(yes) 839 XINPUT_LIBS="$XINPUT_RPATH_FLAGS -L$xinputpath -lXi" 840 LIBS="$save_LIBS" 841 break],[AC_MSG_RESULT(no)]) 842 done 843 if test "x$XINPUT_LIBS" = x; then 844 AC_MSG_ERROR(Couldn't find the XInput library. Check config.log for details) 845 fi 846fi 847AC_CHECK_HEADER(X11/extensions/XInput.h, have_xinput=yes) 848if test "x$have_xinput" = xyes; then 849 AC_DEFINE(HAVE_XINPUT, 1, [Define if have xinput]) 850 X_EXTRA_LIBS="$X_EXTRA_LIBS $XINPUT_LIBS" 851fi 852 853 854dnl --------------------------------------------------------------------------- 855dnl - Check for Xinerama 856dnl --------------------------------------------------------------------------- 857 858# X11 Xinerama extension 859# Check for Xinerama extension (Solaris impl or Xfree impl) 860xinerama_save_cppflags="$CPPFLAGS" 861CPPFLAGS="$CPPFLAGS $X_CFLAGS" 862 863ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" 864 865if test ! x$with_xinerama = xno ; then 866 # Check for XFree 867 use_xfree_xinerama=yes 868 AC_CHECK_LIB(Xinerama, XineramaQueryExtension, 869 [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 870 if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then 871 X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS" 872 fi 873 AC_DEFINE(HAVE_XFREE_XINERAMA, 1, [Define if have xfree xinerama]) 874 AC_DEFINE(HAVE_XINERAMA, 1, [Define if have xinerama]) 875 XINERAMA_LIBS="-lXinerama" 876 XINERAMA_SUPPORT=yes, 877 use_xfree_xinerama=no, 878 [#include <X11/Xlib.h>])], 879 use_xfree_xinerama=no, -lXext $ALL_X_LIBS) 880 AC_MSG_CHECKING(for Xinerama support on XFree86) 881 AC_MSG_RESULT($use_xfree_xinerama); 882 883 if test x$use_xfree_xinerama = xno ; then 884 if test x$os_solaris = xyes ; then 885 # Check for solaris 886 use_solaris_xinerama=yes 887 AC_CHECK_LIB(Xext, XineramaGetInfo, 888 use_solaris_xinerama=yes, use_solaris_xinerama=no, 889 $ALL_X_LIBS) 890 if test "x$use_solaris_xinerama" = "xyes"; then 891 AC_CHECK_HEADER(X11/extensions/xinerama.h, 892 if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then 893 X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS" 894 fi 895 AC_DEFINE(HAVE_SOLARIS_XINERAMA, 1, [Define if have Solaris xinerama]) 896 AC_DEFINE(HAVE_XINERAMA, 1, [Define if have xinerama]) 897 XINERAMA_LIBS="" 898 XINERAMA_SUPPORT=yes, 899 use_solaris_xinerama=no, 900 [#include <X11/Xlib.h>]) 901 fi 902 AC_MSG_CHECKING(for Xinerama support on Solaris) 903 AC_MSG_RESULT($use_solaris_xinerama); 904 fi 905 fi 906fi 907 908AC_SUBST(XINERAMA_LIBS) 909CPPFLAGS="$xinerama_save_cppflags" 910 911dnl --------------------------------------------------------------------------- 912dnl - Check for systemd support 913dnl --------------------------------------------------------------------------- 914 915PKG_CHECK_MODULES(SYSTEMD, 916 [libsystemd]) 917 918AC_SUBST(SYSTEMD_CFLAGS) 919AC_SUBST(SYSTEMD_LIBS) 920 921PKG_CHECK_MODULES(JOURNALD, 922 [libsystemd], 923 [have_journald=yes], [have_journald=no]) 924 925if test "x$enable_systemd_journal" = "xauto" ; then 926 if test x$have_journald = xno ; then 927 use_journald=no 928 else 929 use_journald=yes 930 fi 931 932else 933 use_journald="$enable_systemd_journal" 934fi 935 936if test "x$use_journald" != "xno" ; then 937 if test "x$have_journald" = "xno"; then 938 AC_MSG_ERROR([journald support explicitly required, but journald not found]) 939 fi 940 941 AC_DEFINE(ENABLE_SYSTEMD_JOURNAL, 1, [Define to enable systemd journal support]) 942fi 943AC_SUBST(JOURNALD_CFLAGS) 944AC_SUBST(JOURNALD_LIBS) 945 946if test "x$enable_wayland_support" != "xno" ; then 947 AC_DEFINE(ENABLE_WAYLAND_SUPPORT, 1, [Define to enable wayland support]) 948fi 949 950AC_PATH_PROG(SYSTEMD_X_SERVER, systemd-multi-seat-x, [/lib/systemd/systemd-multi-seat-x], [/lib/systemd:/usr/lib/systemd:$PATH]) 951AC_SUBST(SYSTEMD_X_SERVER) 952AC_DEFINE_UNQUOTED(SYSTEMD_X_SERVER,"$SYSTEMD_X_SERVER",[Path to systemd X server wrapper]) 953 954if test "x$with_systemdsystemunitdir" != xno; then 955 AC_SUBST(SYSTEMD_SYSTEM_UNIT_DIR, [$with_systemdsystemunitdir]) 956fi 957 958AM_CONDITIONAL(INSTALL_SYSTEMD_UNITS, test x$with_systemdsystemunitdir != xno) 959 960dnl --------------------------------------------------------------------------- 961dnl - Check for plymouth support 962dnl --------------------------------------------------------------------------- 963PKG_CHECK_MODULES(PLYMOUTH, 964 [ply-boot-client], 965 [have_plymouth=yes], [have_plymouth=no]) 966 967if test "x$with_plymouth" = "xauto" ; then 968 if test x$have_plymouth = xno ; then 969 use_plymouth=no 970 else 971 use_plymouth=yes 972 fi 973else 974 use_plymouth="$with_plymouth" 975fi 976 977PLYMOUTH_QUIT_SERVICE="" 978if test "x$use_plymouth" != "xno" ; then 979 if test "x$have_plymouth" = "xno"; then 980 AC_MSG_ERROR([Plymouth support explicitly required, but plymouth not found]) 981 fi 982 983 AC_DEFINE(WITH_PLYMOUTH, 1, [Define to enable plymouth support]) 984 PLYMOUTH_QUIT_SERVICE="plymouth-quit.service" 985fi 986AC_SUBST(PLYMOUTH_CFLAGS) 987AC_SUBST(PLYMOUTH_LIBS) 988AC_SUBST(PLYMOUTH_QUIT_SERVICE) 989 990dnl --------------------------------------------------------------------------- 991dnl - Check for D-Bus 992dnl --------------------------------------------------------------------------- 993 994dnl - Are we specifying a different dbus root ? 995AC_ARG_WITH(dbus-sys, 996 AS_HELP_STRING([--with-dbus-sys=<dir>], 997 [where D-BUS system.d directory is])) 998AC_ARG_WITH(dbus-services, 999 AS_HELP_STRING([--with-dbus-services=<dir>], 1000 [where D-BUS services directory is])) 1001 1002if ! test -z "$with_dbus_sys" ; then 1003 DBUS_SYS_DIR="$with_dbus_sys" 1004else 1005 DBUS_SYS_DIR="$sysconfdir/dbus-1/system.d" 1006fi 1007AC_SUBST(DBUS_SYS_DIR) 1008 1009dnl --------------------------------------------------------------------------- 1010dnl - Check for ISO Codes 1011dnl --------------------------------------------------------------------------- 1012 1013AC_MSG_CHECKING([whether iso-codes has iso-639 domain]) 1014if $PKG_CONFIG --variable=domains iso-codes | grep 639 >/dev/null ; then 1015 AC_MSG_RESULT([yes]) 1016else 1017 AC_MSG_RESULT([no]) 1018fi 1019AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],["`$PKG_CONFIG --variable=prefix iso-codes`"],[ISO codes prefix]) 1020ISO_CODES=iso-codes 1021 1022 1023dnl --------------------------------------------------------------------------- 1024dnl check for RBAC 1025dnl --------------------------------------------------------------------------- 1026 1027msg_rbac_shutdown=no 1028AC_ARG_ENABLE(rbac-shutdown, 1029 AC_HELP_STRING([--enable-rbac-shutdown=<key>], 1030 [Build with RBAC support specifying shutdown/reboot RBAC authentication key]), 1031 enable_rbac_shutdown=$enableval,enable_rbac_shutdown=no) 1032 1033if test "x$enable_rbac_shutdown" != "xno"; then 1034 RBAC_LIBS="-lsecdb -lsocket -lnsl" 1035 AC_DEFINE(ENABLE_RBAC_SHUTDOWN, [], [Set if we build with RBAC support]) 1036 AC_DEFINE_UNQUOTED(RBAC_SHUTDOWN_KEY, "$enable_rbac_shutdown", [Set if we build with RBAC support]) 1037 msg_rbac_shutdown="yes, using key $enable_rbac_shutdown" 1038fi 1039AC_SUBST(RBAC_LIBS) 1040 1041 1042dnl --------------------------------------------------------------------------- 1043dnl check for backtrace support 1044dnl --------------------------------------------------------------------------- 1045 1046AC_CHECK_HEADERS(execinfo.h) 1047 1048dnl --------------------------------------------------------------------------- 1049dnl check for process control 1050dnl --------------------------------------------------------------------------- 1051 1052AC_CHECK_HEADERS(sys/prctl.h) 1053 1054dnl --------------------------------------------------------------------------- 1055dnl - Define some variables to represent the directories we use. 1056dnl --------------------------------------------------------------------------- 1057 1058AC_SUBST(gdmlocaledir, ${gdmconfdir}) 1059AC_SUBST(pixmapdir, ${datadir}/pixmaps) 1060 1061AC_ARG_WITH(log-dir, 1062 AS_HELP_STRING([--with-log-dir=<file>], 1063 [log dir])) 1064 1065if ! test -z "$with_log_dir"; then 1066 GDM_LOG_DIR=$with_log_dir 1067else 1068 GDM_LOG_DIR=/var/log/gdm 1069fi 1070AC_SUBST(logdir, $GDM_LOG_DIR) 1071 1072withval="" 1073AC_ARG_WITH(at-bindir, 1074 AS_HELP_STRING([--with-at-bindir=<PATH>] 1075 [PATH to Accessible Technology programs @<:@default=BINDIR@:>@])) 1076 1077if test x$withval != x; then 1078 AT_BINDIR="$withval" 1079else 1080 AT_BINDIR='${bindir}' 1081fi 1082 1083AC_SUBST(AT_BINDIR) 1084 1085withval="" 1086AC_ARG_WITH(defaults_conf, 1087 AS_HELP_STRING([--with-defaults-conf=<FILENAME>], 1088 [FILENAME to give to defaults file @<:@default=DATADIR/gdm/defaults.conf@:>@])) 1089 1090if test x$withval != x; then 1091 GDM_DEFAULTS_CONF="$withval" 1092else 1093 GDM_DEFAULTS_CONF='${datadir}/gdm/defaults.conf' 1094fi 1095 1096AC_SUBST(GDM_DEFAULTS_CONF) 1097 1098withval="" 1099AC_ARG_WITH(custom_conf, 1100 AS_HELP_STRING([--with-custom-conf=<FILENAME>], 1101 [FILENAME to give to custom configuration file @<:@default=GDMCONFDIR/custom.conf@:>@])) 1102 1103if test x$withval != x; then 1104 GDM_CUSTOM_CONF="$withval" 1105else 1106 GDM_CUSTOM_CONF='${gdmconfdir}/custom.conf' 1107fi 1108 1109AC_SUBST(GDM_CUSTOM_CONF) 1110AC_SUBST(GDM_OLD_CONF, '${gdmconfdir}/gdm.conf') 1111 1112AC_ARG_WITH(gnome-settings-daemon-directory, 1113 [AC_HELP_STRING([--with-gnome-settings-daemon-directory], 1114 [Specify the directory of gnome-settings-daemon used by the chooser @<:@default=libexecdir@:>@])],, 1115 [with_gnome_settings_daemon_directory="\${libexecdir}"]) 1116 1117GNOME_SETTINGS_DAEMON_DIR=$with_gnome_settings_daemon_directory 1118AC_SUBST(GNOME_SETTINGS_DAEMON_DIR) 1119 1120AC_ARG_WITH(check-accelerated-directory, 1121 [AC_HELP_STRING([--with-check-accelerated-directory], 1122 [Specify the directory of gnome-session-check-accelerated @<:@default=libexecdir@:>@])],, 1123 [with_check_accelerated_directory="\${libexecdir}"]) 1124 1125CHECK_ACCELERATED_DIR=$with_check_accelerated_directory 1126AC_SUBST(CHECK_ACCELERATED_DIR) 1127 1128dnl --------------------------------------------------------------------------- 1129dnl - Check for XEvIE extension support 1130dnl --------------------------------------------------------------------------- 1131 1132AC_ARG_WITH(xevie, 1133 AS_HELP_STRING([--with-xevie], 1134 [Add XEvIE Xserver extension support @<:@default=no@:>@]),, 1135 with_xevie=no) 1136 1137if test x$with_xevie != xno ; then 1138 XEVIE_OPTION="+extension XEVIE" 1139else 1140 XEVIE_OPTION="" 1141fi 1142 1143AC_SUBST(XEVIE_OPTION) 1144AC_DEFINE_UNQUOTED(XEVIE_OPTION,"$XEVIE_OPTION",[Define xevie option]) 1145 1146dnl --------------------------------------------------------------------------- 1147dnl - Check for audit framework 1148dnl --------------------------------------------------------------------------- 1149 1150# Check for Solaris auditing API 1151# Note, Solaris auditing not supported for Solaris 9 or earlier and 1152# should not be used on these versions of Solaris if auditing is 1153# required. Solaris auditing is only supported on systems that 1154# support the ADT_USER enumeration value. 1155# 1156AC_MSG_CHECKING(for Solaris auditing API) 1157AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1158#include <bsm/adt.h> 1159adt_user_context = ADT_USER; 1160]], [[]])], [ check_sun_audit=yes ], [ check_sun_audit=no ]) 1161 1162if test ${check_sun_audit} = yes 1163then 1164 AC_DEFINE(HAVE_ADT, 1, [Define if have adt]) 1165 PAM_LIBS="$PAM_LIBS -lbsm" 1166 AC_MSG_RESULT(yes) 1167else 1168 AC_MSG_RESULT(no) 1169fi 1170AM_CONDITIONAL(HAVE_ADT, test x$check_sun_audit = xyes) 1171 1172# Check for Linux auditing API 1173# 1174AC_ARG_WITH(libaudit, 1175 AS_HELP_STRING([--with-libaudit], 1176 [Add Linux audit support @<:@default=auto@:>@]),, 1177 with_libaudit=auto) 1178 1179# libaudit detection 1180if test x$with_libaudit = xno ; then 1181 have_libaudit=no; 1182else 1183 # See if we have audit daemon library 1184 AC_CHECK_LIB(audit, audit_log_user_message, 1185 have_libaudit=yes, have_libaudit=no) 1186fi 1187 1188AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes) 1189 1190if test x$have_libaudit = xyes ; then 1191 PAM_LIBS="$PAM_LIBS -laudit" 1192 AC_DEFINE(HAVE_LIBAUDIT,1,[linux audit support]) 1193fi 1194 1195# 1196# Subst the extra libs 1197# 1198AC_SUBST(EXTRA_DAEMON_LIBS) 1199AC_SUBST(EXTRA_CHOOSER_LIBS) 1200AC_SUBST(EXTRA_FLEXI_LIBS) 1201AC_SUBST(EXTRA_DYNAMIC_LIBS) 1202AC_SUBST(EXTRA_SETUP_LIBS) 1203AC_SUBST(EXTRA_TEST_LIBS) 1204 1205# Check for Solaris logindevperm support 1206# 1207AC_CHECK_LIB(devinfo, di_devperm_login, [ 1208 AC_DEFINE(HAVE_LOGINDEVPERM) 1209 PAM_LIBS="$PAM_LIBS -ldevinfo" ]) 1210 1211dnl --------------------------------------------------------------------------- 1212dnl - Check for X Server location 1213dnl --------------------------------------------------------------------------- 1214 1215# First check with "! -h" for /usr/X11R6 and /usr/X11 since they often 1216# symlink to each other, and configure should use the more stable 1217# location (the real directory) if possible. 1218# 1219# On Solaris, the /usr/bin/Xserver script is used to decide whether to 1220# use Xsun or Xorg, so this is used on Solaris. 1221# 1222# When testing for /usr/X11R6, first check with "! -h" for /usr/X11R6 1223# and /usr/X11 since they often symlink to each other, and configure 1224# should use the more stable location (the real directory) if possible. 1225# 1226if test -x /usr/bin/X; then 1227 X_PATH="/usr/bin" 1228 X_SERVER_PATH="/usr/bin" 1229 X_SERVER="/usr/bin/X" 1230elif test -x /usr/X11/bin/Xserver; then 1231 X_PATH="/usr/X11/bin" 1232 X_SERVER_PATH="/usr/X11/bin" 1233 X_SERVER="/usr/X11/bin/Xserver" 1234elif test ! -h /usr/X11R6 -a -x /usr/X11R6/bin/X; then 1235 X_PATH="/usr/X11R6/bin" 1236 X_SERVER_PATH="/usr/X11R6/bin" 1237 X_SERVER="/usr/X11R6/bin/X" 1238elif test ! -h /usr/X11 -a -x /usr/X11/bin/X; then 1239 X_PATH="/usr/X11/bin" 1240 X_SERVER_PATH="/usr/X11/bin" 1241 X_SERVER="/usr/X11/bin/X" 1242elif test -x /usr/X11R6/bin/X; then 1243 X_PATH="/usr/X11R6/bin" 1244 X_SERVER_PATH="/usr/X11R6/bin" 1245 X_SERVER="/usr/X11R6/bin/X" 1246elif test -x /usr/bin/Xorg; then 1247 X_PATH="/usr/bin" 1248 X_SERVER_PATH="/usr/bin" 1249 X_SERVER="/usr/bin/Xorg" 1250elif test -x /usr/X11/bin/X; then 1251 X_PATH="/usr/X11/bin" 1252 X_SERVER_PATH="/usr/X11/bin" 1253 X_SERVER="/usr/X11/bin/X" 1254elif test -x /usr/openwin/bin/Xsun; then 1255 # Do not add /usr/openwin/bin here because on Solaris you need 1256 # /usr/openwin/bin in your PATH even if you are using the Xorg 1257 # Xserver. We add this to the path below. 1258 X_PATH="/usr/openwin/bin" 1259 X_SERVER_PATH="/usr/openwin/bin" 1260 X_SERVER="/usr/openwin/bin/Xsun" 1261elif test -x /opt/X11R6/bin/X; then 1262 X_PATH="/opt/X11R6/bin" 1263 X_SERVER_PATH="/opt/X11R6/bin" 1264 X_SERVER="/opt/X11R6/bin/X" 1265else 1266 # what to do, what to do, this is wrong, but this just sets the 1267 # defaults, perhaps this user is cross compiling or some such 1268 X_PATH="/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin" 1269 X_SERVER_PATH="/usr/bin" 1270 X_SERVER="/usr/bin/X" 1271fi 1272 1273dnl --------------------------------------------------------------------------- 1274dnl - Check if Xorg is new enough to require '-listen tcp' (1.17) 1275dnl --------------------------------------------------------------------------- 1276 1277if $PKG_CONFIG --atleast-version=1.17 xorg-server; then 1278 AC_DEFINE([HAVE_XSERVER_THAT_DEFAULTS_TO_LOCAL_ONLY], [], [XServer disables tcp access by default]) 1279fi 1280 1281dnl --------------------------------------------------------------------------- 1282dnl - Expand vars 1283dnl --------------------------------------------------------------------------- 1284 1285AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir) 1286AS_AC_EXPAND(SYSCONFDIR, $sysconfdir) 1287AS_AC_EXPAND(DATADIR, $datadir) 1288AS_AC_EXPAND(BINDIR, $bindir) 1289AS_AC_EXPAND(SBINDIR, $sbindir) 1290AS_AC_EXPAND(LIBDIR, $libdir) 1291AS_AC_EXPAND(LIBEXECDIR, $libexecdir) 1292 1293dnl --------------------------------------------------------------------------- 1294dnl - runtime directory 1295dnl --------------------------------------------------------------------------- 1296 1297AC_ARG_WITH([run-dir], 1298 AS_HELP_STRING([--with-run-dir=<file>], 1299 [runtime directory])) 1300 1301if ! test -z "$with_run_dir"; then 1302 GDM_RUN_DIR=$with_run_dir 1303else 1304 GDM_RUN_DIR=${localstatedir}/run/gdm 1305fi 1306 1307AC_SUBST([GDM_RUN_DIR]) 1308 1309dnl --------------------------------------------------------------------------- 1310dnl - PID file 1311dnl --------------------------------------------------------------------------- 1312 1313AC_ARG_WITH(pid-file, 1314 AS_HELP_STRING([--with-pid-file=<file>], 1315 [pid file])) 1316 1317if ! test -z "$with_pid_file"; then 1318 GDM_PID_FILE=$with_pid_file 1319else 1320 GDM_PID_FILE=$GDM_RUN_DIR/gdm.pid 1321fi 1322 1323AS_AC_EXPAND(GDM_PID_FILE, "$GDM_PID_FILE") 1324AC_DEFINE_UNQUOTED(GDM_PID_FILE, "$GDM_PID_FILE", [pid file]) 1325 1326dnl --------------------------------------------------------------------------- 1327dnl - ran once marker 1328dnl --------------------------------------------------------------------------- 1329 1330AC_ARG_WITH(ran-once-marker-directory, 1331 AS_HELP_STRING([--with-ran-once-marker-directory=<dir>], 1332 [ran once marker directory])) 1333 1334if ! test -z "$with_ran_once_marker_directory"; then 1335 GDM_RAN_ONCE_MARKER_DIR=$with_ran_once_marker_directory 1336else 1337 GDM_RAN_ONCE_MARKER_DIR=$GDM_RUN_DIR 1338fi 1339AC_SUBST(GDM_RAN_ONCE_MARKER_DIR) 1340AS_AC_EXPAND(GDM_RAN_ONCE_MARKER_DIR_EXPANDED, $GDM_RAN_ONCE_MARKER_DIR) 1341AC_DEFINE_UNQUOTED(GDM_RAN_ONCE_MARKER_DIR, "$GDM_RAN_ONCE_MARKER_DIR_EXPANDED", [ran once marker dir]) 1342 1343GDM_RAN_ONCE_MARKER_FILE="$GDM_RAN_ONCE_MARKER_DIR/ran-once-marker" 1344AC_SUBST(GDM_RAN_ONCE_MARKER_FILE) 1345AS_AC_EXPAND(GDM_RAN_ONCE_MARKER_FILE_EXPANDED, $GDM_RAN_ONCE_MARKER_FILE) 1346AC_DEFINE_UNQUOTED(GDM_RAN_ONCE_MARKER_FILE, "$GDM_RAN_ONCE_MARKER_FILE_EXPANDED", [ran once marker file]) 1347 1348dnl --------------------------------------------------------------------------- 1349dnl - GREETER WORKING DIRECTORY 1350dnl --------------------------------------------------------------------------- 1351 1352AC_ARG_WITH(working-directory, 1353 AS_HELP_STRING([--with-working-dir=<dir>], 1354 [working directory])) 1355 1356if ! test -z "$with_working_directory"; then 1357 GDM_WORKING_DIR=$with_working_directory 1358else 1359 GDM_WORKING_DIR=${localstatedir}/lib/gdm 1360fi 1361 1362AC_SUBST(GDM_WORKING_DIR) 1363 1364dnl --------------------------------------------------------------------------- 1365dnl - Directory for X auth cookies 1366dnl --------------------------------------------------------------------------- 1367 1368AC_ARG_WITH(xauth-dir, 1369 AS_HELP_STRING([--with-xauth-dir=<dir>], 1370 [xauth cookie directory])) 1371 1372if ! test -z "$with_xauth_dir"; then 1373 GDM_XAUTH_DIR=$with_xauth_dir 1374else 1375 GDM_XAUTH_DIR=$GDM_RUN_DIR 1376fi 1377 1378AC_SUBST(GDM_XAUTH_DIR) 1379 1380dnl --------------------------------------------------------------------------- 1381dnl - Directory for greeter screenshot 1382dnl --------------------------------------------------------------------------- 1383 1384AC_ARG_WITH(screenshot-dir, 1385 AS_HELP_STRING([--with-screenshot-dir=<dir>], 1386 [directory to store greeter screenshot])) 1387 1388if ! test -z "$with_screenshot_dir"; then 1389 GDM_SCREENSHOT_DIR=$with_screenshot_dir 1390else 1391 GDM_SCREENSHOT_DIR=$GDM_RUN_DIR/greeter 1392fi 1393 1394AC_SUBST(GDM_SCREENSHOT_DIR) 1395 1396dnl --------------------------------------------------------------------------- 1397dnl - runtime conf 1398dnl --------------------------------------------------------------------------- 1399 1400withval="" 1401AC_ARG_WITH(runtime_conf, 1402 AS_HELP_STRING([--with-runtime-conf=<FILENAME>], 1403 [FILENAME to give to runtime configuration file @<:@default=GDM_RUN_DIR/custom.conf@:>@])) 1404 1405if test x$withval != x; then 1406 GDM_RUNTIME_CONF="$withval" 1407else 1408 GDM_RUNTIME_CONF="$GDM_RUN_DIR/custom.conf" 1409fi 1410 1411AC_SUBST(GDM_RUNTIME_CONF) 1412 1413 1414dnl --------------------------------------------------------------------------- 1415dnl - Finish 1416dnl --------------------------------------------------------------------------- 1417 1418 1419# Turn on the additional warnings last, so -Werror doesn't affect other tests. 1420 1421AC_ARG_ENABLE(more-warnings, 1422 AS_HELP_STRING([--enable-more-warnings], 1423 [Maximum compiler warnings]), 1424 set_more_warnings="$enableval",[ 1425 if test -d $srcdir/.git; then 1426 set_more_warnings=yes 1427 else 1428 set_more_warnings=no 1429 fi]) 1430 1431AC_MSG_CHECKING(for more warnings) 1432if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then 1433 AC_MSG_RESULT(yes) 1434 CFLAGS="\ 1435 -Wall \ 1436 -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ 1437 -Wnested-externs -Wpointer-arith \ 1438 -Wcast-align -Wsign-compare \ 1439 $CFLAGS" 1440 1441 for option in -Wno-strict-aliasing -Wno-sign-compare; do 1442 SAVE_CFLAGS="$CFLAGS" 1443 CFLAGS="$CFLAGS $option" 1444 AC_MSG_CHECKING([whether gcc understands $option]) 1445 AC_TRY_COMPILE([], [], 1446 has_option=yes, 1447 has_option=no,) 1448 if test $has_option = no; then 1449 CFLAGS="$SAVE_CFLAGS" 1450 fi 1451 AC_MSG_RESULT($has_option) 1452 unset has_option 1453 unset SAVE_CFLAGS 1454 done 1455 unset option 1456else 1457 AC_MSG_RESULT(no) 1458fi 1459 1460# 1461# Enable Debug 1462# 1463AC_ARG_ENABLE(debug, 1464 AS_HELP_STRING([--enable-debug], 1465 [turn on debugging]),, 1466 enable_debug=yes) 1467 1468if test "$enable_debug" = "yes"; then 1469 DEBUG_CFLAGS="-DG_ENABLE_DEBUG" 1470else 1471 if test "x$enable_debug" = "xno"; then 1472 DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS" 1473 else 1474 DEBUG_CFLAGS="" 1475 fi 1476fi 1477AC_SUBST(DEBUG_CFLAGS) 1478 1479# 1480# Enable Profiling 1481# 1482AC_ARG_ENABLE(profiling, 1483 AS_HELP_STRING([--enable-profiling], 1484 [turn on profiling]),, 1485 enable_profiling=yes) 1486 1487if test "$enable_profiling" = "yes"; then 1488 AC_DEFINE(ENABLE_PROFILING,1,[enable profiling]) 1489fi 1490 1491# 1492# Set SHELL to use in scripts. 1493# 1494if test x$os_solaris = xyes ; then 1495 XSESSION_SHELL=/bin/ksh 1496else 1497 XSESSION_SHELL=/bin/sh 1498fi 1499 1500# 1501# Set VT to use for initial server 1502# 1503AC_ARG_WITH(initial-vt, 1504 AS_HELP_STRING([--with-initial-vt=<nr>], 1505 [Initial virtual terminal to use])) 1506if ! test -z "$with_initial_vt"; then 1507 GDM_INITIAL_VT="$with_initial_vt" 1508else 1509 GDM_INITIAL_VT="1" 1510fi 1511AC_SUBST(GDM_INITIAL_VT) 1512AC_DEFINE_UNQUOTED(GDM_INITIAL_VT, "$GDM_INITIAL_VT", [Initial Virtual Terminal]) 1513 1514# Set configuration choices. 1515# 1516AC_SUBST(XSESSION_SHELL) 1517AC_DEFINE_UNQUOTED(XSESSION_SHELL,"$XSESSION_SHELL",[xsession shell]) 1518AC_SUBST(SOUND_PROGRAM) 1519AC_DEFINE_UNQUOTED(SOUND_PROGRAM,"$SOUND_PROGRAM",[]) 1520 1521AC_SUBST(X_PATH) 1522AC_SUBST(X_SERVER) 1523AC_SUBST(X_SERVER_PATH) 1524AC_DEFINE_UNQUOTED(X_SERVER,"$X_SERVER",[]) 1525AC_DEFINE_UNQUOTED(X_SERVER_PATH,"$X_SERVER_PATH",[]) 1526 1527## Stuff for debian/changelog.in 1528#if test -e "debian/changelog"; then 1529# DEBIAN_DATESTAMP=`head -1 debian/changelog| sed -e 's/.*cvs.//' -e 's/).*//'` 1530# DEBIAN_DATE=`grep '^ --' debian/changelog | head -1 | sed -e 's/.* //'` 1531#else 1532# DEBIAN_DATESTAMP=`date +%Y%m%d%H%M%s` 1533# DEBIAN_DATE=`date -R` 1534#fi 1535# 1536#AC_SUBST(DEBIAN_DATESTAMP) 1537#AC_SUBST(DEBIAN_DATE) 1538 1539AC_CONFIG_FILES([ 1540Makefile 1541pam-extensions/Makefile 1542pam-extensions/gdm-pam-extensions.pc 1543daemon/Makefile 1544docs/Makefile 1545chooser/Makefile 1546libgdm/Makefile 1547libgdm/gdm.pc 1548utils/Makefile 1549pam_gdm/Makefile 1550data/gdm.conf 1551data/Makefile 1552data/applications/Makefile 1553data/autostart/Makefile 1554data/pixmaps/Makefile 1555data/pixmaps/16x16/Makefile 1556data/pixmaps/32x32/Makefile 1557data/pixmaps/48x48/Makefile 1558data/dconf/gdm 1559common/Makefile 1560po/Makefile.in 1561tests/Makefile 1562]) 1563 1564AC_OUTPUT 1565 1566dnl --------------------------------------------------------------------------- 1567dnl - Show summary 1568dnl --------------------------------------------------------------------------- 1569 1570echo " 1571 GDM $VERSION 1572 ============ 1573 1574 prefix: ${prefix} 1575 exec_prefix: ${exec_prefix} 1576 libdir: ${libdir} 1577 bindir: ${bindir} 1578 sbindir: ${sbindir} 1579 sysconfdir: ${sysconfdir} 1580 sysconfsubdir: ${sysconfsubdir} 1581 gdmconfdir: ${gdmconfdir} 1582 dmconfdir: ${dmconfdir} 1583 localstatedir: ${localstatedir} 1584 datadir: ${datadir} 1585 gnome-settings-daemon location: ${with_gnome_settings_daemon_directory} 1586 gnome-session-check-accel location: ${with_check_accelerated_directory} 1587 source code location: ${srcdir} 1588 compiler: ${CC} 1589 cflags: ${CFLAGS} 1590 Maintainer mode: ${USE_MAINTAINER_MODE} 1591 1592 user: ${GDM_USERNAME} 1593 group: ${GDM_GROUPNAME} 1594 1595 dbus-1 system.d dir: ${DBUS_SYS_DIR} 1596 PAM prefix: ${PAM_PREFIX} 1597 PAM module dir: ${PAM_MOD_DIR} 1598 PAM config: ${with_default_pam_config} 1599 X server: ${X_SERVER} 1600" 1601 1602dnl TCP Wrappers support? 1603if test x"$LIBWRAP_PATH" = x ; then 1604 echo \ 1605" TCP Wrappers support: no" 1606else 1607 echo \ 1608" TCP Wrappers support: yes" 1609fi 1610 1611echo \ 1612" Xinerama support: ${XINERAMA_SUPPORT} 1613 XDMCP support: ${XDMCP_SUPPORT} 1614 SELinux support: ${use_selinux} 1615 systemd unit dir: ${with_systemdsystemunitdir} 1616 plymouth support: ${use_plymouth} 1617 wayland support: ${enable_wayland_support} 1618 Build with RBAC: ${msg_rbac_shutdown} 1619 Initial VT: ${GDM_INITIAL_VT} 1620 Enable documentation: ${enable_documentation} 1621 Install GDM's Xsession: ${enable_gdm_xsession} 1622" 1623