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