configure.ac 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640
  1. dnl Copyright 2005 Red Hat, Inc.
  2. dnl
  3. dnl Permission to use, copy, modify, distribute, and sell this software and its
  4. dnl documentation for any purpose is hereby granted without fee, provided that
  5. dnl the above copyright notice appear in all copies and that both that
  6. dnl copyright notice and this permission notice appear in supporting
  7. dnl documentation, and that the name of Red Hat not be used in
  8. dnl advertising or publicity pertaining to distribution of the software without
  9. dnl specific, written prior permission. Red Hat makes no
  10. dnl representations about the suitability of this software for any purpose. It
  11. dnl is provided "as is" without express or implied warranty.
  12. dnl
  13. dnl RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  14. dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  15. dnl EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  16. dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  17. dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  18. dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  19. dnl PERFORMANCE OF THIS SOFTWARE.
  20. dnl
  21. dnl Process this file with autoconf to create configure.
  22. # Initialize Autoconf
  23. AC_PREREQ([2.60])
  24. AC_INIT([xdm], [1.1.11],
  25. [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xdm])
  26. AC_USE_SYSTEM_EXTENSIONS
  27. AC_CONFIG_SRCDIR([Makefile.am])
  28. AC_CONFIG_MACRO_DIR([m4])
  29. AC_CONFIG_HEADERS(config.h)
  30. # Initialize Automake
  31. AM_INIT_AUTOMAKE([foreign dist-bzip2])
  32. AM_MAINTAINER_MODE
  33. # Initialize libtool
  34. AC_DISABLE_STATIC
  35. AC_LIBTOOL_DLOPEN
  36. AC_PROG_LIBTOOL
  37. # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
  38. m4_ifndef([XORG_MACROS_VERSION],
  39. [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
  40. XORG_MACROS_VERSION(1.8)
  41. XORG_DEFAULT_OPTIONS
  42. XORG_PROG_RAWCPP
  43. XORG_WITH_LINT
  44. # Checks for programs.
  45. # Check for mktemp to prevent security issue noted in Xorg bug #5898
  46. # See https://bugs.freedesktop.org/show_bug.cgi?id=5898 for details.
  47. AC_PATH_PROG(MKTEMP_COMMAND, mktemp)
  48. AM_CONDITIONAL(HAVE_MKTEMP_COMMAND, test x$MKTEMP_COMMAND != x)
  49. #------------------------------------------------------------------------------
  50. # Check for system libraries
  51. #
  52. # AC_SEARCH_LIBS: tests using $LIBS and tests again with each listed library.
  53. # pre-pends the found library to $LIBS.
  54. #
  55. #------------------------------------------------------------------------------
  56. # Function getifaddrs() comes from the C library, Solaris 11 -lsocket, or
  57. # the -lnsl name service library
  58. AC_SEARCH_LIBS([getifaddrs], [socket nsl])
  59. # Function getspnam() comes from the C library, System V -lsec, UnixWare 7 -lgen
  60. # or Old Linux versions -lshadow
  61. AC_SEARCH_LIBS([getspnam], [sec gen shadow])
  62. # Function setproctitle() is in BSD -lutil or GNU systems -lbsd but N/A on Solaris
  63. AC_SEARCH_LIBS([setproctitle], [util bsd])
  64. # Function setusercontext() is in BSD -lutil but N/A on Solaris or GNU systems
  65. AC_SEARCH_LIBS([setusercontext], [util])
  66. # Function arc4random() is in BSD standard C or GNU systems -lbsd
  67. AC_SEARCH_LIBS([arc4random], [bsd], [HAVE_ARC4RANDOM="yes"])
  68. AC_SUBST(HAVE_ARC4RANDOM)
  69. AM_CONDITIONAL(HAVE_ARC4RANDOM, test x$HAVE_ARC4RANDOM = xyes)
  70. # Function crypt() comes from the C library or the -lcrypt data encryption library
  71. AC_SEARCH_LIBS(crypt, crypt)
  72. # Function dl() comes from the C library or -ldl
  73. AC_SEARCH_LIBS([dlopen], [dl])
  74. #------------------------------------------------------------------------------
  75. # Checks for header files.
  76. AC_CHECK_HEADERS([grp.h syslog.h sys/param.h])
  77. AC_CHECK_DECL(key_setnet,
  78. AC_DEFINE(HAVE_DECL_KEY_SETNET,1,
  79. [Define to 1 if your headers define the key_setnet() function.]),
  80. [],[
  81. #include <rpc/rpc.h>
  82. #include <rpc/key_prot.h>
  83. ])
  84. # Checks for typedefs, structures, and compiler characteristics.
  85. AC_TYPE_SIGNAL
  86. # Check for system library functions
  87. # Required system libraries have been searched for and are listed in $LIBS
  88. AC_FUNC_FORK
  89. AC_CHECK_FUNCS([daemon sigaction openlog asprintf setproctitle setusercontext \
  90. mkstemp getifaddrs getspnam arc4random])
  91. XDM_CFLAGS="$XDM_CFLAGS"
  92. GREETER_CFLAGS="$GREETER_CFLAGS"
  93. CHOOSER_CFLAGS="$CHOOSER_CFLAGS"
  94. # Find needed libraries for TCP sockets (pre-pended in $LIBS)
  95. XTRANS_CONNECTION_FLAGS
  96. # Sets $SECURE_RPC to "yes" or "no" using libraries found above from $LIBS
  97. XTRANS_SECURE_RPC_FLAGS
  98. AM_CONDITIONAL(HAS_SECURE_RPC, test x$SECURE_RPC = xyes)
  99. # Check for pluggable authentication modules (PAM) support
  100. AC_ARG_WITH(pam, AS_HELP_STRING([--with-pam],
  101. [Use PAM for authentication (default is autodetected)]),
  102. [USE_PAM=$withval], [USE_PAM=auto])
  103. if test "x$USE_PAM" != "xno" ; then
  104. AC_SEARCH_LIBS([pam_open_session], [pam],
  105. [AC_CHECK_FUNC([pam_open_session],
  106. [AC_DEFINE(USE_PAM,1,[Use PAM for authentication])]
  107. )],
  108. [AS_IF([test "x$USE_PAM" = "xyes"],
  109. [AC_MSG_ERROR([PAM support requested, but pam_open_session not found.])]
  110. )]
  111. )
  112. fi
  113. # Check for Security-Enhanced Linux (SELinux) support
  114. AC_ARG_WITH(selinux, AS_HELP_STRING([--with-selinux],
  115. [Add support for SELinux (default is no support)]),
  116. [USE_SELINUX=$withval], [USE_SELINUX=no])
  117. if test "x$USE_SELINUX" != "xno" ; then
  118. AC_SEARCH_LIBS(is_selinux_enabled, [selinux],
  119. [AC_CHECK_FUNC([is_selinux_enabled],
  120. [AC_DEFINE(USE_SELINUX,1,[Use Security-Enhanced Linux (SELinux) support])]
  121. )],
  122. [AS_IF([test "x$USE_SELINUX" = "xyes"],
  123. [AC_MSG_ERROR([SELinux support requested, but is_selinux_enabled not found.])]
  124. )]
  125. )
  126. fi
  127. # Check whether to install systemd unit files, as suggested in daemon(7).
  128. # When a full path is specified, this does not require systemd installed.
  129. AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
  130. [Directory for systemd service files (default from the System and Service Manager)]),,
  131. [with_systemdsystemunitdir=auto])
  132. AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
  133. def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
  134. AS_IF([test "x$def_systemdsystemunitdir" = "x"], [
  135. AS_IF([test "x$with_systemdsystemunitdir" = "xyes"], [
  136. AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])
  137. ])
  138. with_systemdsystemunitdir=no
  139. ], [
  140. with_systemdsystemunitdir=$def_systemdsystemunitdir
  141. ])
  142. ])
  143. AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
  144. AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
  145. ])
  146. AM_CONDITIONAL(HAVE_SYSTEMD, [test "x$with_systemdsystemunitdir" != "xno"])
  147. # Check whether to enable systemd startup notification.
  148. # This requires libsystemd-daemon.
  149. AC_ARG_WITH([systemd-daemon], AS_HELP_STRING([--with-systemd-daemon],
  150. [Add support for systemd startup notification (default is autodetected)]),
  151. [USE_SYSTEMD_DAEMON=$withval], [USE_SYSTEMD_DAEMON=auto])
  152. AS_IF([test "x$USE_SYSTEMD_DAEMON" != "xno"], [
  153. PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
  154. [AC_DEFINE(USE_SYSTEMD_DAEMON,1,[Use systemd startup notification])],
  155. [AS_IF([test "x$USE_SYSTEMD_DAEMON" = "xyes"],
  156. [AC_MSG_ERROR([systemd startup notification support requested, but libsystemd-daemon not found.])]
  157. )]
  158. )
  159. ])
  160. AM_CONDITIONAL(USE_SYSTEMD_DAEMON, [test "x$USE_SYSTEMD_DAEMON" != "xno"])
  161. # FIXME: Find better test for which OS'es use su -m - for now, just try to
  162. # mirror the Imakefile setting of:
  163. # if defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) || defined(FreeBSDArchitecture) || defined(DarwinArchitecture)
  164. case $host_os in
  165. linux*|gnu*|*-gnu)
  166. SU="su"
  167. ;;
  168. darwin*)
  169. SU="su -m"
  170. ;;
  171. *bsd*|dragonfly*)
  172. SU="su -m"
  173. ;;
  174. solaris*|sysv4*)
  175. SU="su"
  176. ;;
  177. *)
  178. SU="su"
  179. ;;
  180. esac
  181. AC_SUBST(SU)
  182. # Define a configure option to locate a special file (/dev/random or /dev/urandom)
  183. # that serves as a random or a pseudorandom number generator
  184. AC_ARG_WITH(random-device, AS_HELP_STRING([--with-random-device\[=<pathname>\]],
  185. [Use <pathname> as a source of randomness (default is auto-detected)]),
  186. [USE_DEVICE="$withval"], [USE_DEVICE="auto"])
  187. if test x$USE_DEVICE != xno ; then
  188. if test x$USE_DEVICE = xyes -o x$USE_DEVICE = xauto ; then
  189. AC_CHECK_FILE([/dev/urandom], [DEV_RANDOM=/dev/urandom],
  190. [AC_CHECK_FILE([/dev/random], [DEV_RANDOM=/dev/random],
  191. [AS_IF([test "x$USE_DEVICE" = "xyes"],
  192. [AC_MSG_ERROR([random device support requested, but no random device was found.])]
  193. )]
  194. )]
  195. )
  196. else
  197. # assume the user input is a valid path to a random number generator
  198. DEV_RANDOM=$USE_DEVICE
  199. fi
  200. if test x$DEV_RANDOM != x ; then
  201. AC_DEFINE_UNQUOTED(DEV_RANDOM,"$DEV_RANDOM", [Define to device that provides random data source])
  202. fi
  203. fi
  204. AC_SUBST(DEV_RANDOM)
  205. # FIXME: find out how to check for these things. Note that Kerberos was
  206. # turned off everywhere but on OpenBSD.
  207. AM_CONDITIONAL(HAS_KERBEROS_FIVE, false)
  208. #
  209. # Privsep
  210. #
  211. AC_ARG_ENABLE(privsep,
  212. AC_HELP_STRING([--enable-privsep],
  213. [Build support for X server privilege separation (default is NO)]),
  214. [ENABLE_PRIVSEP="$enableval"], [ENABLE_PRIVSEP="no"])
  215. if test x$ENABLE_PRIVSEP = xyes ; then
  216. AC_DEFINE(X_PRIVSEP, 1, [Use X server privilege separation])
  217. fi
  218. #
  219. # BSD auth
  220. AC_ARG_ENABLE(bsdauth,
  221. AC_HELP_STRING([--enable-bsdauth],
  222. [Build support for BSD authentification (default is NO)]),
  223. [ENABLE_BSDAUTH="$enableval"], [ENABLE_BSDAUTH="no"])
  224. if test x$ENABLE_BSDAUTH = xyes ; then
  225. AC_DEFINE(USE_BSDAUTH, 1, [Use BSD authentification])
  226. fi
  227. # Figure out where everything goes in the filesystem
  228. AC_ARG_WITH(xdmlibdir,
  229. AS_HELP_STRING([--with-xdmlibdir=<pathname>],
  230. [specify directory for xdm scripts and modules (default=${libdir}/X11/xdm)]),
  231. [XDMLIBDIR="$withval"], [XDMLIBDIR="${libdir}/X11/xdm"])
  232. AC_SUBST(XDMLIBDIR)
  233. AC_ARG_WITH(xdmconfigdir,
  234. AS_HELP_STRING([--with-xdmconfigdir=<pathname>],
  235. [specify directory for xdm config files (default is same as xdmlibdir)]),
  236. [XDMCONFIGDIR="$withval"], [XDMCONFIGDIR="${XDMLIBDIR}"])
  237. AC_SUBST(XDMCONFIGDIR)
  238. AC_ARG_WITH(xdmscriptdir,
  239. AS_HELP_STRING([--with-xdmscriptdir=<pathname>],
  240. [specify directory for xdm scripts (default is same as xdmlibdir)]),
  241. [XDMSCRIPTDIR="$withval"], [XDMSCRIPTDIR="${XDMLIBDIR}"])
  242. AC_SUBST(XDMSCRIPTDIR)
  243. AC_ARG_WITH(logdir,
  244. AS_HELP_STRING([--with-logdir=<pathname>],
  245. [specify directory for xdm log files (default=/var/log)]),
  246. [XDMLOGDIR="$withval"], [XDMLOGDIR="/var/log"])
  247. AC_SUBST(XDMLOGDIR)
  248. AC_ARG_WITH(piddir,
  249. AS_HELP_STRING([--with-piddir=<pathname>],
  250. [specify directory for xdm pid files (default=/var/run)]),
  251. [XDMPIDDIR="$withval"], [XDMPIDDIR="/var/run"])
  252. AC_SUBST(XDMPIDDIR)
  253. AC_ARG_WITH(default-vt,
  254. AS_HELP_STRING([--with-default-vt=<vtname>],
  255. [specify default vt to start xdm on (default=none)]),
  256. [DEFAULTVT="$withval"], [[DEFAULTVT=""]])
  257. AC_SUBST(DEFAULTVT)
  258. AC_ARG_WITH(config-type,
  259. AS_HELP_STRING([--with-config-type={ws|fs}],
  260. [default config file type to use - workstation (ws) or fileserver (fs) (default=ws)]),
  261. [SERVERSTYPE="$withval"], [SERVERSTYPE="ws"])
  262. AC_SUBST(SERVERSTYPE)
  263. # Ideally we'd just pull out UTMP_FILE & WTMP_FILE from <utmp.h>
  264. # but that's not easy to do in autoconf
  265. AC_ARG_WITH(utmp_file,
  266. AS_HELP_STRING([--with-utmp-file=<pathname>],
  267. [specify file to pass to sessreg -u for current logins]),
  268. [UTMP_FILE="$withval"])
  269. if test "x$UTMP_FILE" = "xyes" ; then
  270. AC_MSG_ERROR([path was not specified to --with-utmp-file])
  271. fi
  272. if test "x$UTMP_FILE" = "x" ; then
  273. for UTMP_FILE in /var/adm/utmpx /var/run/utmp /var/log/utmp /var/adm/utmp /usr/adm/utmp /etc/utmp ; do
  274. AC_CHECK_FILE([$UTMP_FILE], [break], [UTMP_FILE=""])
  275. done
  276. if test "x$UTMP_FILE" = "x" ; then
  277. UTMP_FILE="/var/run/utmp"
  278. fi
  279. fi
  280. AC_MSG_CHECKING([for path to file listing current logins for sessreg])
  281. AC_MSG_RESULT([$UTMP_FILE])
  282. AC_SUBST(UTMP_FILE)
  283. AC_ARG_WITH(wtmp_file,
  284. AS_HELP_STRING([--with-wtmp-file=<pathname>],
  285. [specify file to pass to sessreg -w for login history]),
  286. [WTMP_FILE="$withval"])
  287. if test "x$WTMP_FILE" = "xyes" ; then
  288. AC_MSG_ERROR([path was not specified to --with-wtmp-file])
  289. fi
  290. if test "x$WTMP_FILE" = "x" ; then
  291. for WTMP_FILE in /var/adm/wtmpx /var/log/wtmp /var/adm/wtmp /usr/adm/wtmp /etc/wtmp ; do
  292. AC_CHECK_FILE([$WTMP_FILE], [break], [WTMP_FILE=""])
  293. done
  294. if test "x$WTMP_FILE" = "x" ; then
  295. WTMP_FILE="/var/log/wtmp"
  296. fi
  297. fi
  298. AC_MSG_CHECKING([for path to file listing login history for sessreg])
  299. AC_MSG_RESULT([$WTMP_FILE])
  300. AC_SUBST(WTMP_FILE)
  301. case $host_os in
  302. *sco*|*solaris*)
  303. SHELL_CMD="/bin/ksh" ;;
  304. *) SHELL_CMD="/bin/sh" ;;
  305. esac
  306. AC_SUBST(SHELL_CMD)
  307. # Checks for pkg-config packages
  308. PKG_CHECK_MODULES(XDM, xmu x11 xau)
  309. PKG_CHECK_EXISTS(xinerama, [
  310. AC_DEFINE([USE_XINERAMA], 1,
  311. [Define to 1 to use XINERAMA in greeter & chooser])
  312. PKG_CHECK_MODULES(XINERAMA, xinerama)
  313. CHOOSER_CFLAGS="$CHOOSER_CFLAGS $XINERAMA_CFLAGS"
  314. CHOOSER_LIBS="$CHOOSER_LIBS $XINERAMA_LIBS"
  315. GREETER_CFLAGS="$GREETER_CFLAGS $XINERAMA_CFLAGS"
  316. GREETER_LIBS="$GREETER_LIBS $XINERAMA_LIBS"
  317. ])
  318. # Xft text drawing for the greeter screen
  319. AC_ARG_WITH(xft,
  320. AS_HELP_STRING([--with-xft],
  321. [Use Xft to draw text (default is YES if installed)]),
  322. [USE_XFT="$withval"],
  323. PKG_CHECK_EXISTS(xft xrender, [USE_XFT="yes"], [USE_XFT="no"]))
  324. if test "x$USE_XFT" = "xyes" ; then
  325. PKG_CHECK_MODULES(XFT, xft xrender)
  326. GREETER_CFLAGS="$GREETER_CFLAGS $XFT_CFLAGS"
  327. GREETER_LIBS="$GREETER_LIBS $XFT_LIBS"
  328. AC_DEFINE([USE_XFT], 1,
  329. [Define to 1 to use Xft for text on greeter screen])
  330. fi
  331. # XPM logos for the greeter screen
  332. AC_ARG_ENABLE(xpm-logos,
  333. AS_HELP_STRING([--enable-xpm-logos],
  334. [Display xpm logos in greeter (default is YES)]),
  335. [USE_XPM="$enableval"],
  336. PKG_CHECK_EXISTS(xpm, [USE_XPM="yes"], [USE_XPM="no"]))
  337. if test "x$USE_XPM" = "xyes" ; then
  338. PKG_CHECK_MODULES(XPM, xpm)
  339. GREETER_CFLAGS="$GREETER_CFLAGS $XPM_CFLAGS"
  340. GREETER_LIBS="$GREETER_LIBS $XPM_LIBS"
  341. AC_DEFINE([XPM], 1,
  342. [Define to 1 to display XPM logos on greeter screen])
  343. fi
  344. AM_CONDITIONAL(USE_XPM, test "x$USE_XPM" = "xyes")
  345. AC_ARG_WITH(color-pixmap,
  346. AS_HELP_STRING([--with-color-pixmap=<filename>],
  347. [specify xpm file to use as color logo (default=xorg.xpm)]),
  348. [XDM_PIXMAP="$withval"], [XDM_PIXMAP="xorg.xpm"])
  349. AC_ARG_WITH(bw-pixmap,
  350. AS_HELP_STRING([--with-bw-pixmap=<filename>],
  351. [specify xpm file to use as black-and-white logo (default=xorg-bw.xpm)]),
  352. [XDM_BWPIXMAP="$withval"], [XDM_BWPIXMAP="xorg-bw.xpm"])
  353. AC_ARG_WITH(pixmapdir,
  354. AS_HELP_STRING([--with-pixmapdir=<pathname>],
  355. [specify directory for xpm files (default=xdmlibdir/pixmaps)]),
  356. [XDM_PIXMAPDIR="$withval"],
  357. [XDM_PIXMAPDIR='${XDMLIBDIR}/pixmaps'])
  358. AC_SUBST(XDM_PIXMAP)
  359. AC_SUBST(XDM_BWPIXMAP)
  360. AC_SUBST(XDM_PIXMAPDIR)
  361. # Packages used by multiple programs
  362. PKG_CHECK_MODULES(XDM_TOOLKIT, xaw7)
  363. PKG_CHECK_MODULES(DMCP, xdmcp)
  364. PKG_CHECK_MODULES(XLIB, x11)
  365. PKG_CHECK_MODULES(AUTH, xau)
  366. #
  367. # Greeter
  368. #
  369. AC_MSG_CHECKING([if the greeter should be built as a dynamically loaded object])
  370. AC_ARG_ENABLE(dynamic-greeter,
  371. AC_HELP_STRING([--enable-dynamic-greeter],
  372. [Build greeter as dynamically loaded shared object]),
  373. [DYNAMIC_GREETER="$enableval"], [DYNAMIC_GREETER="auto"])
  374. if test "x$DYNAMIC_GREETER" = "xauto" ; then
  375. case $host_os in
  376. openbsd*)
  377. DYNAMIC_GREETER="no"
  378. ;;
  379. *) DYNAMIC_GREETER="yes" ;;
  380. esac
  381. fi
  382. if test "x$DYNAMIC_GREETER" = "xno"; then
  383. STATIC_GREETER_CFLAGS="-DGREET_USER_STATIC"
  384. fi
  385. AC_MSG_RESULT([$DYNAMIC_GREETER])
  386. AM_CONDITIONAL(DYNAMIC_GREETER, test x$DYNAMIC_GREETER = xyes)
  387. PKG_CHECK_MODULES(XDMGREET, xt >= 1.0 x11 xext)
  388. GREETERLIB="${XDMLIBDIR}/libXdmGreet.so"
  389. AX_DEFINE_DIR(DEF_GREETER_LIB, GREETERLIB, [Location of Xdm Greeter library])
  390. XDMGREET_CFLAGS="$XDMGREET_CFLAGS $XDM_TOOLKIT_CFLAGS $DMCP_CFLAGS $XLIB_CFLAGS $GREETER_CFLAGS $AUTH_CFLAGS"
  391. XDMGREET_LIBS="$XDMGREET_LIBS $XDM_TOOLKIT_LIBS $DMCP_LIBS $GREETER_LIBS"
  392. #
  393. # XDM
  394. #
  395. XDM_CFLAGS="$XDM_CFLAGS $DMCP_CFLAGS $XLIB_CFLAGS $AUTH_CFLAGS $STATIC_GREETER_CFLAGS"
  396. XDM_LIBS="$XDM_LIBS $DMCP_LIBS"
  397. AC_CHECK_LIB(Xdmcp, XdmcpWrap, [xdmauth="yes"], [xdmauth="no"], [$DMCP_LIBS])
  398. AC_ARG_ENABLE(xdm-auth,
  399. AS_HELP_STRING([--enable-xdm-auth],
  400. [Support XDM-AUTHENTICATION-1 and XDM-AUTHORIZATION-1 (default: auto)]),
  401. [xdmauth_enable="$enableval"], [xdmauth_enable="auto"])
  402. if test "x$xdmauth_enable" = "xyes" -a "x$xdmauth" = "xno" ; then
  403. AC_MSG_ERROR([XDM-AUTH support requested, but XdmcpWrap not found in libXdmcp.])
  404. fi
  405. AM_CONDITIONAL(HAS_XDM_AUTH, test x$xdmauth = xyes -a x$xdmauth_enable != xno)
  406. AC_SUBST(XDM_CFLAGS)
  407. AC_SUBST(XDM_LIBS)
  408. #
  409. # xdmshell
  410. #
  411. AC_ARG_ENABLE(xdmshell,
  412. AS_HELP_STRING([--enable-xdmshell],
  413. [Install xdmshell (default: disabled)]),
  414. [INSTALL_XDMSHELL="$enableval"], [INSTALL_XDMSHELL="no"])
  415. AM_CONDITIONAL(INSTALL_XDMSHELL, test x$INSTALL_XDMSHELL = xyes)
  416. PKG_CHECK_MODULES(XT, xt)
  417. XDMSHELL_CFLAGS="$XDM_CFLAGS $XDM_TOOLKIT_CFLAGS $AUTH_CFLAGS $DMCP_CFLAGS $XLIB_CFLAGS $XT_CFLAGS"
  418. XDMSHELL_LIBS="$XDM_LIBS $XDM_TOOLKIT_LIBS $DMCP_LIBS"
  419. AC_SUBST(XDMSHELL_CFLAGS)
  420. AC_SUBST(XDMSHELL_LIBS)
  421. #
  422. # Chooser
  423. #
  424. CHOOSER_CFLAGS="$CHOOSER_CFLAGS $XDM_TOOLKIT_CFLAGS $XLIB_CFLAGS $DMCP_CFLAGS $AUTH_CFLAGS"
  425. CHOOSER_LIBS="$CHOOSER_LIBS $XDM_TOOLKIT_LIBS $DMCP_LIBS"
  426. AC_SUBST(CHOOSER_CFLAGS)
  427. AC_SUBST(CHOOSER_LIBS)
  428. # Defaults for X session - should probably be configure --with-* flags
  429. # Currently just trying to mirror what defaults were set in Imake
  430. # -DDEF_SERVER_LINE=":0 local $(DEF_SERVER) :0"
  431. if test -z "$DEF_SERVER" ; then
  432. DEF_SERVER="${bindir}/X"
  433. fi
  434. if test -z "$DEF_SERVER_LINE" ; then
  435. DEF_SERVER_LINE=":0 local ${DEF_SERVER} :0"
  436. fi
  437. AX_DEFINE_DIR(DEF_SERVER_LINE, DEF_SERVER_LINE,
  438. [Define to default Xserver file entry for local X server])
  439. # -DXRDB_PROGRAM="$(BINDIR)/xrdb"
  440. AC_ARG_WITH(xrdb, AS_HELP_STRING([--with-xrdb=path],
  441. [Use path for xrdb (default: bindir/xrdb)]),
  442. [XRDB=$withval], [XRDB=${bindir}/xrdb])
  443. AX_DEFINE_DIR(XRDB_PROGRAM, XRDB,
  444. [Define to pathname for xrdb program])
  445. # -DDEF_SESSION="$(BINDIR)/xterm -ls"
  446. AC_ARG_WITH(default-session, AS_HELP_STRING([--with-default-session=command],
  447. [Use command for default session (default: bindir/xterm -ls)]),
  448. [DEF_SESSION=$withval], [DEF_SESSION="${bindir}/xterm -ls"])
  449. AX_DEFINE_DIR(DEF_SESSION, DEF_SESSION,
  450. [Define to default command to start X session])
  451. # -DDEF_USER_PATH="$(DEF_USER_PATH)"
  452. # Default values taken from DefaultUserPath setting in the
  453. # old Imake *.cf files for each platform
  454. if test -z "$DEF_USER_PATH" ; then
  455. case $host_os in
  456. dragonfly*)
  457. DEF_USER_PATH="/bin:/usr/bin:/sbin:/usr/sbin:${bindir}:/usr/local/bin"
  458. ;;
  459. freebsd*)
  460. DEF_USER_PATH="/bin:/usr/bin:/sbin:/usr/sbin:${bindir}:/usr/gnu/bin:/usr/local/bin"
  461. ;;
  462. netbsd*)
  463. DEF_USER_PATH="/bin:/usr/bin:/usr/pkg/bin:/usr/local/bin:${bindir}"
  464. ;;
  465. openbsd*)
  466. DEF_USER_PATH="/bin:/usr/bin:/sbin:/usr/sbin:${bindir}:/usr/local/bin:/usr/local/sbin"
  467. ;;
  468. bsdi*)
  469. DEF_USER_PATH="/bin:/usr/bin:/usr/local/bin:${bindir}"
  470. ;;
  471. solaris*)
  472. DEF_USER_PATH="/usr/bin:${bindir}"
  473. ;;
  474. *)
  475. DEF_USER_PATH="/bin:/usr/bin:${bindir}:/usr/ucb"
  476. ;;
  477. esac
  478. fi
  479. AX_DEFINE_DIR(DEF_USER_PATH, DEF_USER_PATH,
  480. [Define to default PATH environment variable for user sessions])
  481. # -DDEF_SYSTEM_PATH="$(DEF_SYSTEM_PATH)"
  482. # Default values taken from DefaultSystemPath setting in the
  483. # old Imake *.cf files for each platform
  484. if test -z "$DEF_SYSTEM_PATH" ; then
  485. case $host_os in
  486. freebsd*|dragonfly*)
  487. DEF_SYSTEM_PATH="/bin:/usr/bin:/sbin:/usr/sbin:${bindir}"
  488. ;;
  489. netbsd*|openbsd*|bsdi*)
  490. DEF_SYSTEM_PATH="/sbin:/usr/sbin:/bin:/usr/bin:${bindir}"
  491. ;;
  492. solaris*)
  493. DEF_SYSTEM_PATH="/sbin:/usr/sbin:/usr/bin:${bindir}"
  494. ;;
  495. *)
  496. DEF_SYSTEM_PATH="/etc:/bin:/usr/bin:${bindir}:/usr/ucb"
  497. ;;
  498. esac
  499. fi
  500. AX_DEFINE_DIR(DEF_SYSTEM_PATH, DEF_SYSTEM_PATH,
  501. [Define to default PATH environment variable for system commands])
  502. # -DDEF_SYSTEM_SHELL="$(BOURNE_SHELL)"
  503. if test -z "$BOURNE_SHELL" ; then
  504. BOURNE_SHELL=/bin/sh
  505. fi
  506. AX_DEFINE_DIR(DEF_SYSTEM_SHELL, BOURNE_SHELL,
  507. [Define to default shell])
  508. # -DDEF_FAILSAFE_CLIENT="$(BINDIR)/xterm"
  509. AX_DEFINE_DIR(DEF_FAILSAFE_CLIENT, bindir/xterm,
  510. [Define to default command to start failsafe X session])
  511. # -DDEF_XDM_CONFIG="$(XDMDIR)/xdm-config"
  512. AX_DEFINE_DIR(DEF_XDM_CONFIG, XDMCONFIGDIR/xdm-config,
  513. [Define to pathname of default xdm-config file])
  514. # -DDEF_CHOOSER="$(CHOOSERPATH)"
  515. AX_DEFINE_DIR(DEF_CHOOSER, XDMLIBDIR/chooser,
  516. [Define to pathname of where chooser binary is installed])
  517. # -DDEF_AUTH_DIR="$(XDMDIR)"
  518. AC_ARG_WITH(authdir,
  519. AS_HELP_STRING([--with-authdir=<pathname>],
  520. [specify directory for X auth files (default=/var/lib/xdm)]),
  521. [XDMXAUTHDIR="$withval"], [XDMXAUTHDIR="/var/lib/xdm"])
  522. AC_SUBST(XDMXAUTHDIR)
  523. AX_DEFINE_DIR(DEF_AUTH_DIR, XDMXAUTHDIR,
  524. [Define to pathname where authentication cookie files should be stored])
  525. # -DDEF_GREETER_LIB="$(XDMDIR)/libXdmGreet.so"
  526. AX_DEFINE_DIR(DEF_GREETER_LIB, XDMLIBDIR/libXdmGreet.so,
  527. [Define to pathname where greeter shared object is installed (if used)])
  528. PKG_CHECK_MODULES(APPDEFS, xt)
  529. xt_appdefaultdir=`$PKG_CONFIG --variable=appdefaultdir xt`
  530. AC_ARG_WITH(appdefaultdir,
  531. AS_HELP_STRING([--with-appdefaultdir=<pathname>],
  532. [specify directory for app-defaults files (default is autodetected)]),
  533. [appdefaultdir="$withval"], [appdefaultdir="${xt_appdefaultdir}"])
  534. AC_SUBST(appdefaultdir)
  535. AC_SUBST(MKTEMP_COMMAND)
  536. AC_CONFIG_FILES([Makefile
  537. app-defaults/Makefile
  538. chooser/Makefile
  539. config/Makefile
  540. greeter/Makefile
  541. include/Makefile
  542. man/Makefile
  543. xdm/Makefile
  544. xdmshell/Makefile])
  545. AC_OUTPUT