configure.ac revision f9f7a7f2
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.14],
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
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
62PKG_CHECK_MODULES([XDM], [xmu x11 xau xproto >= 7.0.17])
63PKG_CHECK_MODULES([LIBBSD], [libbsd-overlay], [:], [:])
64
65dnl Check in libbsd for functions that might be there if not already found
66dnl XDM_SEARCH_LIBBSD(FUNCTION, PROGRAM, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
67AC_DEFUN([XDM_SEARCH_LIBBSD],[
68if test "x$ac_cv_search_$1" = "xno"; then
69    if test "x$LIBBSD_LIBS" != "x"; then
70        AC_MSG_CHECKING([for $1 in libbsd])
71        xdm_save_LIBS="$LIBS"
72        LIBS="$LIBS $[$2]_LIBS $LIBBSD_LIBS"
73        AC_LINK_IFELSE([AC_LANG_CALL([], [$1])], [xdm_res="yes"], [xdm_res="no"])
74        LIBS="$xdm_save_LIBS"
75        AS_IF([test "x$xdm_res" = "xyes"], [
76            $2_CFLAGS="$[$2]_CFLAGS $LIBBSD_CFLAGS"
77            $2_LIBS="$[$2]_LIBS $LIBBSD_LIBS"
78            [$3]], [$4])
79        AC_MSG_RESULT([$xdm_res])
80    fi
81fi])
82
83# Function getifaddrs() comes from the C library, Solaris 11 -lsocket, or
84# the -lnsl name service library
85AC_SEARCH_LIBS([getifaddrs], [socket nsl])
86
87# Function getspnam() comes from the C library, System V -lsec, UnixWare 7 -lgen
88# or Old Linux versions -lshadow
89AC_SEARCH_LIBS([getspnam], [sec gen shadow])
90
91# Function setproctitle() is in BSD -lutil or GNU systems -lbsd but N/A on Solaris
92AC_SEARCH_LIBS([setproctitle], [util])
93XDM_SEARCH_LIBBSD([setproctitle], [XDM])
94
95# Function setusercontext() is in BSD -lutil but N/A on Solaris or GNU systems
96AC_SEARCH_LIBS([setusercontext], [util])
97
98# Function arc4random() is in BSD standard C, glibc 2.36+, or GNU systems -lbsd
99AC_SEARCH_LIBS([arc4random], [], [HAVE_ARC4RANDOM="yes"])
100XDM_SEARCH_LIBBSD([arc4random], [XDM], [HAVE_ARC4RANDOM="yes"])
101AC_SUBST(HAVE_ARC4RANDOM)
102AM_CONDITIONAL(HAVE_ARC4RANDOM, test x$HAVE_ARC4RANDOM = xyes)
103
104# Function crypt() comes from the C library or the -lcrypt data encryption library
105AC_SEARCH_LIBS(crypt, crypt)
106
107# Function dl() comes from the C library or -ldl
108AC_SEARCH_LIBS([dlopen], [dl])
109#------------------------------------------------------------------------------
110
111# Checks for header files.
112AC_CHECK_HEADERS([grp.h syslog.h sys/param.h])
113AC_CHECK_DECL(key_setnet,
114	AC_DEFINE(HAVE_DECL_KEY_SETNET,1,
115	     [Define to 1 if your headers define the key_setnet() function.]),
116	[],[
117#include <rpc/rpc.h>
118#include <rpc/key_prot.h>
119])
120
121# Check for system library functions
122# Required system libraries have been searched for and are listed in $LIBS
123AC_FUNC_FORK
124xdm_save_LIBS="$LIBS"
125LIBS="$LIBS $XDM_LIBS"
126AC_CHECK_FUNCS([daemon sigaction openlog asprintf setproctitle setusercontext \
127                mkstemp getifaddrs getspnam arc4random])
128LIBS="$xdm_save_LIBS"
129
130# Find needed libraries for TCP sockets (pre-pended in $LIBS)
131XTRANS_CONNECTION_FLAGS
132
133# Sets $SECURE_RPC to "yes" or "no" using libraries found above from $LIBS
134XTRANS_SECURE_RPC_FLAGS
135AM_CONDITIONAL(HAS_SECURE_RPC, test x$SECURE_RPC = xyes)
136
137# Check for pluggable authentication modules (PAM) support
138AC_ARG_WITH(pam, AS_HELP_STRING([--with-pam],
139	[Use PAM for authentication (default is autodetected)]),
140	[USE_PAM=$withval], [USE_PAM=auto])
141if test "x$USE_PAM" != "xno" ; then
142    AC_CHECK_HEADERS([security/pam_appl.h pam/pam_appl.h],
143                     [found=yes ; break ;], [found=no])
144    AS_IF([test "x$USE_PAM" = "xyes" -a  "x$found" = "xno"],
145	[AC_MSG_ERROR([PAM support requested, but we could not find the pam headers.])])
146    AC_SEARCH_LIBS([pam_open_session], [pam],
147	[AC_CHECK_FUNC([pam_open_session],
148	    [AC_DEFINE(USE_PAM,1,[Use PAM for authentication])]
149	)],
150	[AS_IF([test "x$USE_PAM" = "xyes"],
151	    [AC_MSG_ERROR([PAM support requested, but pam_open_session not found.])]
152	)]
153    )
154fi
155
156# Check for Security-Enhanced Linux (SELinux) support
157AC_ARG_WITH(selinux, AS_HELP_STRING([--with-selinux],
158	[Add support for SELinux (default is no support)]),
159	[USE_SELINUX=$withval], [USE_SELINUX=no])
160if test "x$USE_SELINUX" != "xno" ; then
161    AC_SEARCH_LIBS(is_selinux_enabled, [selinux],
162	[AC_CHECK_FUNC([is_selinux_enabled],
163	    [AC_DEFINE(USE_SELINUX,1,[Use Security-Enhanced Linux (SELinux) support])]
164	)],
165	[AS_IF([test "x$USE_SELINUX" = "xyes"],
166	    [AC_MSG_ERROR([SELinux support requested, but is_selinux_enabled not found.])]
167	)]
168    )
169fi
170
171# Check whether to install systemd unit files, as suggested in daemon(7).
172# When a full path is specified, this does not require systemd installed.
173AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
174	[Directory for systemd service files (default from the System and Service Manager)]),,
175	[with_systemdsystemunitdir=auto])
176AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
177    def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
178
179    AS_IF([test "x$def_systemdsystemunitdir" = "x"], [
180	AS_IF([test "x$with_systemdsystemunitdir" = "xyes"], [
181	    AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])
182	])
183	with_systemdsystemunitdir=no
184    ], [
185	with_systemdsystemunitdir=$def_systemdsystemunitdir
186    ])
187])
188AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
189	AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
190])
191AM_CONDITIONAL(HAVE_SYSTEMD, [test "x$with_systemdsystemunitdir" != "xno"])
192
193# Check whether to enable systemd startup notification.
194# This requires libsystemd.
195AC_ARG_WITH([systemd-daemon], AS_HELP_STRING([--with-systemd-daemon],
196	[Add support for systemd startup notification (default is autodetected)]),
197	[USE_SYSTEMD_DAEMON=$withval], [USE_SYSTEMD_DAEMON=auto])
198AS_IF([test "x$USE_SYSTEMD_DAEMON" != "xno"], [
199    PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd],
200	[AC_DEFINE(USE_SYSTEMD_DAEMON,1,[Use systemd startup notification])],
201	[AS_IF([test "x$USE_SYSTEMD_DAEMON" = "xyes"],
202	    [AC_MSG_ERROR([systemd startup notification support requested, but libsystemd not found.])]
203	)]
204    )
205])
206AM_CONDITIONAL(USE_SYSTEMD_DAEMON, [test "x$USE_SYSTEMD_DAEMON" != "xno"])
207
208# FIXME: Find better test for which OS'es use su -m  - for now, just try to
209# mirror the Imakefile setting of:
210# if  defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) || defined(FreeBSDArchitecture) || defined(DarwinArchitecture)
211
212
213case $host_os in
214    linux*|gnu*|*-gnu)
215	SU="su"
216        ;;
217    darwin*)
218	SU="su -m"
219        ;;
220    *bsd*|dragonfly*)
221	SU="su -m"
222        ;;
223    solaris*|sysv4*)
224	SU="su"
225	;;
226    *)
227	SU="su"
228        ;;
229esac
230AC_SUBST(SU)
231
232# Define a configure option to locate a special file (/dev/random or /dev/urandom)
233# that serves as a random or a pseudorandom number generator
234AC_ARG_WITH(random-device, AS_HELP_STRING([--with-random-device\[=<pathname>\]],
235	[Use <pathname> as a source of randomness (default is auto-detected)]),
236	[USE_DEVICE="$withval"], [USE_DEVICE="auto"])
237if test x$USE_DEVICE != xno ; then
238    if test x$USE_DEVICE = xyes -o x$USE_DEVICE = xauto ; then
239	AC_CHECK_FILE([/dev/urandom], [DEV_RANDOM=/dev/urandom],
240	    [AC_CHECK_FILE([/dev/random], [DEV_RANDOM=/dev/random],
241		[AS_IF([test "x$USE_DEVICE" = "xyes"],
242		    [AC_MSG_ERROR([random device support requested, but no random device was found.])]
243		)]
244	    )]
245	)
246    else
247	# assume the user input is a valid path to a random number generator
248	DEV_RANDOM=$USE_DEVICE
249    fi
250    if test x$DEV_RANDOM != x ; then
251	AC_DEFINE_UNQUOTED(DEV_RANDOM,"$DEV_RANDOM", [Define to device that provides random data source])
252    fi
253fi
254AC_SUBST(DEV_RANDOM)
255
256# FIXME: find out how to check for these things. Note that Kerberos was
257# turned off everywhere but on OpenBSD.
258AM_CONDITIONAL(HAS_KERBEROS_FIVE, false)
259
260
261# Figure out where everything goes in the filesystem
262
263AC_ARG_WITH(xdmlibdir,
264	AS_HELP_STRING([--with-xdmlibdir=<pathname>],
265	  [specify directory for xdm scripts and modules (default=${libdir}/X11/xdm)]),
266	[XDMLIBDIR="$withval"], [XDMLIBDIR="${libdir}/X11/xdm"])
267AC_SUBST(XDMLIBDIR)
268
269AC_ARG_WITH(xdmconfigdir,
270	AS_HELP_STRING([--with-xdmconfigdir=<pathname>],
271	  [specify directory for xdm config files (default is same as xdmlibdir)]),
272	[XDMCONFIGDIR="$withval"], [XDMCONFIGDIR="${XDMLIBDIR}"])
273AC_SUBST(XDMCONFIGDIR)
274
275AC_ARG_WITH(xdmscriptdir,
276	AS_HELP_STRING([--with-xdmscriptdir=<pathname>],
277	  [specify directory for xdm scripts (default is same as xdmlibdir)]),
278	[XDMSCRIPTDIR="$withval"], [XDMSCRIPTDIR="${XDMLIBDIR}"])
279AC_SUBST(XDMSCRIPTDIR)
280
281AC_ARG_WITH(logdir,
282	AS_HELP_STRING([--with-logdir=<pathname>],
283	  [specify directory for xdm log files (default=/var/log)]),
284	[XDMLOGDIR="$withval"], [XDMLOGDIR="/var/log"])
285AC_SUBST(XDMLOGDIR)
286
287AC_ARG_WITH(piddir,
288	AS_HELP_STRING([--with-piddir=<pathname>],
289	  [specify directory for xdm pid files (default=/var/run)]),
290	[XDMPIDDIR="$withval"], [XDMPIDDIR="/var/run"])
291AC_SUBST(XDMPIDDIR)
292
293AC_ARG_WITH(default-vt,
294	AS_HELP_STRING([--with-default-vt=<vtname>],
295	  [specify default vt to start xdm on (default=none)]),
296	[DEFAULTVT="$withval"], [[DEFAULTVT=""]])
297AC_SUBST(DEFAULTVT)
298
299AC_ARG_WITH(config-type,
300	AS_HELP_STRING([--with-config-type={ws|fs}],
301	 [default config file type to use - workstation (ws) or fileserver (fs) (default=ws)]),
302	[SERVERSTYPE="$withval"], [SERVERSTYPE="ws"])
303AC_SUBST(SERVERSTYPE)
304
305AC_ARG_WITH(utmp_file,
306	AS_HELP_STRING([--with-utmp-file=<pathname>],
307	 [specify file to pass to sessreg -u for current logins])
308AS_HELP_STRING([--without-utmp-file],
309	 [specify passing "none" to sessreg -u to not record logins in utmp]),
310	[UTMP_FILE="$withval"])
311if test "x$UTMP_FILE" = "xyes" ; then
312	UTMP_FILE=""
313elif test "x$UTMP_FILE" = "xno" ; then
314	UTMP_FILE="none"
315fi
316AC_MSG_CHECKING([for path to file listing current logins for sessreg])
317if test "x$UTMP_FILE" = "x" ; then
318	AC_MSG_RESULT([use sessreg default])
319else
320	AC_MSG_RESULT([$UTMP_FILE])
321fi
322AM_CONDITIONAL(SET_UTMP_FILE, test x$UTMP_FILE != x)
323AC_SUBST(UTMP_FILE)
324
325AC_ARG_WITH(wtmp_file,
326	AS_HELP_STRING([--with-wtmp-file=<pathname>],
327	 [specify file to pass to sessreg -w for login history])
328AS_HELP_STRING([--without-wtmp-file],
329	 [specify passing "none" to sessreg -w to not record logins in wtmp]),
330	[WTMP_FILE="$withval"])
331if test "x$WTMP_FILE" = "xyes" ; then
332	WTMP_FILE=""
333elif test "x$WTMP_FILE" = "xno" ; then
334	WTMP_FILE="none"
335fi
336AC_MSG_CHECKING([for path to file listing login history for sessreg])
337if test "x$WTMP_FILE" = "x" ; then
338	AC_MSG_RESULT([use sessreg default])
339else
340	AC_MSG_RESULT([$WTMP_FILE])
341fi
342AM_CONDITIONAL(SET_WTMP_FILE, test x$WTMP_FILE != x)
343AC_SUBST(WTMP_FILE)
344
345case $host_os in
346    *sco*|*solaris*)
347		SHELL_CMD="/bin/ksh"	;;
348    *)		SHELL_CMD="/bin/sh"	;;
349esac
350AC_SUBST(SHELL_CMD)
351
352# Checks for pkg-config packages
353
354AC_ARG_WITH(xinerama,
355	AS_HELP_STRING([--with-xinerama],
356			[Use Xinerama (default is YES if installed)]),
357	[USE_XINERAMA="$withval"],
358	PKG_CHECK_EXISTS(xinerama, [USE_XINERAMA="yes"], [USE_XINERAMA="no"]))
359
360if test "x$USE_XINERAMA" = "xyes" ; then
361	AC_DEFINE([USE_XINERAMA], 1,
362		[Define to 1 to use XINERAMA in greeter & chooser])
363	PKG_CHECK_MODULES(XINERAMA, xinerama)
364	CHOOSER_CFLAGS="$CHOOSER_CFLAGS $XINERAMA_CFLAGS"
365	CHOOSER_LIBS="$CHOOSER_LIBS $XINERAMA_LIBS"
366	GREETER_CFLAGS="$GREETER_CFLAGS $XINERAMA_CFLAGS"
367	GREETER_LIBS="$GREETER_LIBS $XINERAMA_LIBS"
368fi
369
370# Xft text drawing for the greeter screen
371AC_ARG_WITH(xft,
372	AS_HELP_STRING([--with-xft],
373			[Use Xft to draw text (default is YES if installed)]),
374	[USE_XFT="$withval"],
375	PKG_CHECK_EXISTS(xft xrender, [USE_XFT="yes"], [USE_XFT="no"]))
376
377if test "x$USE_XFT" = "xyes" ; then
378	PKG_CHECK_MODULES(XFT, xft xrender)
379	GREETER_CFLAGS="$GREETER_CFLAGS $XFT_CFLAGS"
380	GREETER_LIBS="$GREETER_LIBS $XFT_LIBS"
381	AC_DEFINE([USE_XFT], 1,
382	    [Define to 1 to use Xft for text on greeter screen])
383fi
384
385# XPM logos for the greeter screen
386AC_ARG_ENABLE(xpm-logos,
387	AS_HELP_STRING([--enable-xpm-logos],
388			[Display xpm logos in greeter (default is YES)]),
389	[USE_XPM="$enableval"],
390	PKG_CHECK_EXISTS(xpm, [USE_XPM="yes"], [USE_XPM="no"]))
391if test "x$USE_XPM" = "xyes" ; then
392	PKG_CHECK_MODULES(XPM, xpm)
393	GREETER_CFLAGS="$GREETER_CFLAGS $XPM_CFLAGS"
394	GREETER_LIBS="$GREETER_LIBS $XPM_LIBS"
395	AC_DEFINE([XPM], 1,
396		[Define to 1 to display XPM logos on greeter screen])
397fi
398AM_CONDITIONAL(USE_XPM, test "x$USE_XPM" = "xyes")
399
400AC_ARG_WITH(color-pixmap,
401	AS_HELP_STRING([--with-color-pixmap=<filename>],
402		[specify xpm file to use as color logo (default=xorg.xpm)]),
403	[XDM_PIXMAP="$withval"], [XDM_PIXMAP="xorg.xpm"])
404AC_ARG_WITH(bw-pixmap,
405	AS_HELP_STRING([--with-bw-pixmap=<filename>],
406      [specify xpm file to use as black-and-white logo (default=xorg-bw.xpm)]),
407	[XDM_BWPIXMAP="$withval"], [XDM_BWPIXMAP="xorg-bw.xpm"])
408AC_ARG_WITH(pixmapdir,
409	AS_HELP_STRING([--with-pixmapdir=<pathname>],
410	[specify directory for xpm files (default=xdmlibdir/pixmaps)]),
411	[XDM_PIXMAPDIR="$withval"],
412	[XDM_PIXMAPDIR='${XDMLIBDIR}/pixmaps'])
413
414AC_SUBST(XDM_PIXMAP)
415AC_SUBST(XDM_BWPIXMAP)
416AC_SUBST(XDM_PIXMAPDIR)
417
418# Packages used by multiple programs
419
420PKG_CHECK_MODULES(XDM_TOOLKIT, xaw7)
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