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