configure.ac revision 5ffd6003
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
24AC_PREREQ([2.60])
25AC_INIT(xdm,[1.1.10],[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xdm)
26AM_INIT_AUTOMAKE([foreign dist-bzip2])
27AM_MAINTAINER_MODE
28AC_CONFIG_MACRO_DIR([m4])
29
30# Require xorg-macros: XORG_DEFAULT_OPTIONS
31m4_ifndef([XORG_MACROS_VERSION],
32          [m4_fatal([must install xorg-macros 1.4 or later before running autoconf/autogen])])
33XORG_MACROS_VERSION(1.4)
34AC_USE_SYSTEM_EXTENSIONS
35XORG_DEFAULT_OPTIONS
36
37AM_CONFIG_HEADER(config.h)
38
39AC_PROG_CC
40AM_PROG_CC_C_O
41AC_C_INLINE
42AC_LIBTOOL_WIN32_DLL
43AM_PROG_LIBTOOL
44AC_PROG_INSTALL
45
46XORG_PROG_RAWCPP
47XORG_WITH_LINT
48
49m4_ifdef([AM_SILENT_RULES],[HAVE_AM_SILENT_RULES=yes])
50AM_CONDITIONAL(HAVE_AM_SILENT_RULES, test x$HAVE_AM_SILENT_RULES != x)
51
52XDM_CFLAGS="$XDM_CFLAGS"
53GREETER_CFLAGS="$GREETER_CFLAGS"
54CHOOSER_CFLAGS="$CHOOSER_CFLAGS"
55
56# Check for mktemp to prevent security issue noted in Xorg bug #5898
57# See https://bugs.freedesktop.org/show_bug.cgi?id=5898 for details.
58AC_PATH_PROG(MKTEMP_COMMAND, mktemp)
59AM_CONDITIONAL(HAVE_MKTEMP_COMMAND, test x$MKTEMP_COMMAND != x)
60
61AC_FUNC_FORK
62
63dnl If you're looking here because you got a message that said
64dnl 'error: possibly undefined macro: AC_DEFINE', the source of
65dnl your problem is not here.   You need to upgrade to pkgconfig 0.18
66dnl or later to get an updated pkg.m4 with PKG_CHECK_EXISTS defined.
67dnl See http://www.mail-archive.com/autoconf@gnu.org/msg13413.html
68AC_CHECK_FUNC(mkstemp, AC_DEFINE(HAS_MKSTEMP,1,
69	[Define to 1 if you have the 'mkstemp' function.]))
70AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAS_GETIFADDRS,1,
71	[Define to 1 if you have the 'getifaddrs' function.]))
72AC_CHECK_FUNC(getspnam, AC_DEFINE(USESHADOW,1,
73	[Define to 1 if you have the shadow password functions.]))
74
75
76# According to the old Imakefile, FreeBSD has this in libutil
77AC_CHECK_FUNC(setproctitle, [HAS_SETPROCTITLE="yes"],
78	AC_CHECK_LIB(util, setproctitle, 
79		     [HAS_SETPROCTITLE="yes" ; XDM_OS_LIBS="$XDM_OS_LIBS -lutil"]))
80if test "x$HAS_SETPROCTITLE" = "xyes" ; then
81	AC_DEFINE(HAS_SETPROCTITLE,1,
82		[Define to 1 if you have the 'setproctitle' function.])
83fi
84
85# According to the old Imakefile, BSD/OS has this in libutil
86AC_CHECK_FUNC(setusercontext, [HAS_SETUSERCONTEXT="yes"],
87	AC_CHECK_LIB(util, setusercontext, 
88		    [HAS_SETUSERCONTEXT="yes" ; XDM_OS_LIBS="$XDM_OS_LIBS -lutil"]))
89if test "x$HAS_SETUSERCONTEXT" = "xyes" ; then
90	AC_DEFINE(HAS_SETUSERCONTEXT,1,
91		[Define to 1 if you have the 'setusercontext' function.])
92fi
93
94AC_CHECK_FUNCS([daemon sigaction openlog asprintf])
95AC_CHECK_HEADERS([grp.h syslog.h])
96AC_TYPE_SIGNAL
97
98XTRANS_CONNECTION_FLAGS
99dnl Sets $SECURE_RPC to "yes" or "no"
100XTRANS_SECURE_RPC_FLAGS
101AM_CONDITIONAL(HAS_SECURE_RPC, test x$SECURE_RPC = xyes)
102
103dnl Is key_setnet defined in a header file?
104AC_CHECK_DECL(key_setnet, 
105	AC_DEFINE(HAVE_DECL_KEY_SETNET,1,
106	     [Define to 1 if your headers define the key_setnet() function.]),
107	[],[
108#include <rpc/rpc.h>
109#include <rpc/key_prot.h>
110])
111
112# darwin could have PAM support, but not yet
113case $host_os in
114    darwin*)
115        use_pam_default=no
116        ;;
117    *)
118        use_pam_default=try
119        ;;
120esac
121
122# Check for PAM support
123AC_ARG_WITH(pam, AC_HELP_STRING([--with-pam],[Use PAM for authentication]),
124	[USE_PAM=$withval], [USE_PAM=$use_pam_default])
125if test "x$USE_PAM" != "xno" ; then
126	AC_SEARCH_LIBS(pam_open_session,[pam])
127	AC_CHECK_FUNC(pam_open_session, 
128		[AC_DEFINE(USE_PAM,1,[Use PAM for authentication])],
129		[if test "x$USE_PAM" != "xtry" ; then
130			AC_MSG_ERROR([PAM support requested, but pam_open_session not found.])
131		 fi])
132fi
133
134use_selinux_default=no
135# Check for selinux support
136AC_ARG_WITH(selinux, AC_HELP_STRING([--with-selinux],[Add support for selinux]),
137	[USE_SELINUX=$withval], [USE_SELINUX=$use_selinux_default])
138if test "x$USE_SELINUX" != "xno" ; then
139   	old_LIBS="$LIBS"
140	LIBS=""
141	AC_SEARCH_LIBS(is_selinux_enabled,[selinux])
142	AC_CHECK_FUNC(is_selinux_enabled,
143		[AC_DEFINE(HAVE_SELINUX,1,[Add support for selinux])],
144		[if test "x$USE_SELINUX" != "xtry" ; then
145			AC_MSG_ERROR(["selinux support requested, but is_selinux_enabled not found."])
146		 fi])
147	XDM_LIBS="$XDM_LIBS $LIBS"
148	LIBS="$old_LIBS"
149fi
150
151# FIXME: Find better test for which OS'es use su -m  - for now, just try to
152# mirror the Imakefile setting of:
153# if  defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) || defined(FreeBSDArchitecture) || defined(DarwinArchitecture)
154
155
156case $host_os in
157    linux*|gnu*|*-gnu)
158        OS_CFLAGS=""
159	SU="su"
160        ;;
161    darwin*)
162        OS_CFLAGS="-DNO_LASTLOG"
163	SU="su -m"
164        ;;
165    *bsd*|dragonfly*)
166        OS_CFLAGS="-DCSRG_BASED"
167	SU="su -m"
168        ;;
169    solaris*|sysv4*)
170	OS_CFLAGS=""
171	SU="su"
172	;;
173    *)
174        OS_CFLAGS=
175	SU="su"
176        ;;
177esac
178AC_SUBST(SU)
179
180# Check for /dev/random or /dev/urandom
181AC_ARG_WITH(random-device, 
182	AC_HELP_STRING([--with-random-device\[=<pathname>\]],
183		[Use <pathname> as a source of randomness]),
184	RANDOM_DEVICE="$withval", RANDOM_DEVICE="try")
185
186if test x$RANDOM_DEVICE = xyes -o x$RANDOM_DEVICE = xtry ; then
187	AC_CHECK_FILE([/dev/urandom], [RANDOM_DEVICE=/dev/urandom],
188		AC_CHECK_FILE([/dev/random], [RANDOM_DEVICE=/dev/random]))
189	if test x$RANDOM_DEVICE = xyes ; then
190		AC_MSG_ERROR([random device support requested, but no random device was found.])		
191	else 
192		if test x$RANDOM_DEVICE = xtry ; then
193			RANDOM_DEVICE="no"
194		fi
195	fi
196fi
197
198if test x$RANDOM_DEVICE != xno ; then
199	AC_DEFINE_UNQUOTED(DEV_RANDOM,"$RANDOM_DEVICE",
200		[Define to device that provides random data source])
201	RANDOMMANDEFS="$RANDOMMANDEFS -DDEV_RANDOM=\\\"$RANDOM_DEVICE\\\""
202fi
203
204
205AC_CHECK_FUNC(arc4random, [HAS_ARC4_RANDOM="yes"], [HAS_ARC4_RANDOM="no"])
206AM_CONDITIONAL(HAS_ARC4_RANDOM, test x$HAS_ARC4_RANDOM = xyes)
207if test x$HAS_ARC4_RANDOM = xyes ; then
208	AC_DEFINE(ARC4_RANDOM, 1, [Define to use arc4random() function])
209	RANDOMMANDEFS="$RANDOMMANDEFS -DARC4_RANDOM"
210fi
211
212AC_SUBST(RANDOMMANDEFS)
213
214# FIXME: find out how to check for these things. Note that Kerberos was
215# turned off everywhere but on OpenBSD.
216AM_CONDITIONAL(HAS_KERBEROS_FIVE, false)
217
218
219# Figure out where everything goes in the filesystem
220
221AC_ARG_WITH(xdmlibdir,
222	AC_HELP_STRING([--with-xdmlibdir=<pathname>],
223	  [specify directory for xdm scripts and modules (default=${libdir}/X11/xdm)]),
224	[XDMLIBDIR="$withval"], [XDMLIBDIR="${libdir}/X11/xdm"])
225AC_SUBST(XDMLIBDIR)
226
227AC_ARG_WITH(xdmconfigdir,
228	AC_HELP_STRING([--with-xdmconfigdir=<pathname>],
229	  [specify directory for xdm config files (default is same as xdmlibdir)]),
230	[XDMCONFIGDIR="$withval"], [XDMCONFIGDIR="${XDMLIBDIR}"])
231AC_SUBST(XDMCONFIGDIR)
232
233AC_ARG_WITH(xdmscriptdir,
234	AC_HELP_STRING([--with-xdmscriptdir=<pathname>],
235	  [specify directory for xdm scripts (default is same as xdmlibdir)]),
236	[XDMSCRIPTDIR="$withval"], [XDMSCRIPTDIR="${XDMLIBDIR}"])
237AC_SUBST(XDMSCRIPTDIR)
238
239AC_ARG_WITH(logdir,
240	AC_HELP_STRING([--with-logdir=<pathname>],
241	  [specify directory for xdm log files (default=/var/log)]),
242	[XDMLOGDIR="$withval"], [XDMLOGDIR="/var/log"])
243AC_SUBST(XDMLOGDIR)
244
245AC_ARG_WITH(piddir,
246	AC_HELP_STRING([--with-piddir=<pathname>],
247	  [specify directory for xdm pid files (default=/var/run)]),
248	[XDMPIDDIR="$withval"], [XDMPIDDIR="/var/run"])
249AC_SUBST(XDMPIDDIR)
250
251AC_ARG_WITH(default-vt,
252	AC_HELP_STRING([--with-default-vt=<vtname>],
253	  [specify default vt to start xdm on (default=none)]),
254	[DEFAULTVT="$withval"], [[DEFAULTVT=""]])
255AC_SUBST(DEFAULTVT)
256
257AC_ARG_WITH(config-type,
258	AC_HELP_STRING([--with-config-type={ws|fs}],
259	 [default config file type to use - workstation (ws) or fileserver (fs) (default=ws)]),
260	[SERVERSTYPE="$withval"], [SERVERSTYPE="ws"])
261AC_SUBST(SERVERSTYPE)
262
263# Ideally we'd just pull out UTMP_FILE & WTMP_FILE from <utmp.h>
264# but that's not easy to do in autoconf
265AC_ARG_WITH(utmp_file,
266	AC_HELP_STRING([--with-utmp-file=<pathname>],
267	 [specify file to pass to sessreg -u for current logins]),
268	[UTMP_FILE="$withval"])
269if test "x$UTMP_FILE" = "xyes" ; then
270	AC_MSG_ERROR([path was not specified to --with-utmp-file])
271fi
272if 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
279fi
280AC_MSG_CHECKING([for path to file listing current logins for sessreg])
281AC_MSG_RESULT([$UTMP_FILE])
282AC_SUBST(UTMP_FILE)
283
284AC_ARG_WITH(wtmp_file,
285	AC_HELP_STRING([--with-wtmp-file=<pathname>],
286	 [specify file to pass to sessreg -w for login history]),
287	[WTMP_FILE="$withval"])
288if test "x$WTMP_FILE" = "xyes" ; then
289	AC_MSG_ERROR([path was not specified to --with-wtmp-file])
290fi
291if test "x$WTMP_FILE" = "x" ; then
292	for WTMP_FILE in /var/adm/wtmpx /var/log/wtmp /var/adm/wtmp /usr/adm/wtmp /etc/wtmp ; do 
293		AC_CHECK_FILE([$WTMP_FILE], [break], [WTMP_FILE=""])
294	done
295	if test "x$WTMP_FILE" = "x" ; then
296		WTMP_FILE="/var/log/wtmp"
297	fi
298fi
299AC_MSG_CHECKING([for path to file listing login history for sessreg])
300AC_MSG_RESULT([$WTMP_FILE])
301AC_SUBST(WTMP_FILE)
302
303case $host_os in
304    *sco*|*solaris*)
305		SHELL_CMD="/bin/ksh"	;;
306    *)		SHELL_CMD="/bin/sh"	;;
307esac
308AC_SUBST(SHELL_CMD)
309
310# Checks for pkg-config packages
311
312PKG_CHECK_MODULES(XDM, xmu x11 xau)
313
314XDM_LIBS="$XDM_LIBS $XDM_OS_LIBS"
315
316PKG_CHECK_EXISTS(xinerama, [
317	AC_DEFINE([USE_XINERAMA], 1, 
318		[Define to 1 to use XINERAMA in greeter & chooser])
319	PKG_CHECK_MODULES(XINERAMA, xinerama)
320	XDM_CFLAGS="$XDM_CFLAGS $XINERAMA_CFLAGS"
321	XDM_LIBS="$XDM_LIBS $XINERAMA_LIBS"
322	CHOOSER_CFLAGS="$CHOOSER_CFLAGS $XINERAMA_CFLAGS"
323	CHOOSER_LIBS="$CHOOSER_LIBS $XINERAMA_LIBS"
324	GREETER_CFLAGS="$GREETER_CFLAGS $XINERAMA_CFLAGS"
325	GREETER_LIBS="$GREETER_LIBS $XINERAMA_LIBS"
326])
327
328# Xft text drawing for the greeter screen
329AC_ARG_WITH(xft, 
330    	AC_HELP_STRING([--with-xft], 
331			[Use Xft to draw text (default is YES if installed)]),
332	[USE_XFT="$withval"], 
333	PKG_CHECK_EXISTS(xft, [USE_XFT="yes"], [USE_XFT="no"]))
334
335if test "x$USE_XFT" = "xyes" ; then
336	PKG_CHECK_MODULES(XFT, xft)
337	GREETER_CFLAGS="$GREETER_CFLAGS $XFT_CFLAGS"
338	GREETER_LIBS="$GREETER_LIBS $XFT_LIBS"
339	AC_DEFINE([USE_XFT], 1, 
340	    [Define to 1 to use Xft for text on greeter screen])
341fi
342
343# XPM logos for the greeter screen
344AC_ARG_ENABLE(xpm-logos, 
345    	AC_HELP_STRING([--enable-xpm-logos], 
346			[Display xpm logos in greeter (default is YES)]),
347	[USE_XPM="$enableval"], 
348	PKG_CHECK_EXISTS(xpm, [USE_XPM="yes"], [USE_XPM="no"]))
349if test "x$USE_XPM" = "xyes" ; then
350	PKG_CHECK_MODULES(XPM, xpm)
351	XDM_CFLAGS="$XDM_CFLAGS $XPM_CFLAGS"
352	XDM_LIBS="$XDM_LIBS $XPM_LIBS"
353	GREETER_CFLAGS="$GREETER_CFLAGS $XPM_CFLAGS"
354	GREETER_LIBS="$GREETER_LIBS $XPM_LIBS"
355	AC_DEFINE([XPM], 1, 
356		[Define to 1 to display XPM logos on greeter screen])
357fi
358AM_CONDITIONAL(USE_XPM, test "x$USE_XPM" = "xyes")
359
360AC_ARG_WITH(color-pixmap,
361	AC_HELP_STRING([--with-color-pixmap=<filename>],
362		[specify xpm file to use as color logo (default=xorg.xpm)]),
363	[XDM_PIXMAP="$withval"], [XDM_PIXMAP="xorg.xpm"])
364AC_ARG_WITH(bw-pixmap,
365	AC_HELP_STRING([--with-bw-pixmap=<filename>],
366      [specify xpm file to use as black-and-white logo (default=xorg-bw.xpm)]),
367	[XDM_BWPIXMAP="$withval"], [XDM_BWPIXMAP="xorg-bw.xpm"])
368AC_ARG_WITH(pixmapdir,
369	AC_HELP_STRING([--with-pixmapdir=<pathname>],
370	[specify directory for xpm files (default=xdmlibdir/pixmaps)]),
371	[XDM_PIXMAPDIR="$withval"], 
372	[XDM_PIXMAPDIR='${XDMLIBDIR}/pixmaps'])
373
374AC_SUBST(XDM_PIXMAP)
375AC_SUBST(XDM_BWPIXMAP)
376AC_SUBST(XDM_PIXMAPDIR)
377
378# Packages used by multiple programs
379
380PKG_CHECK_MODULES(XDM_PRINT, xaw7)
381PKG_CHECK_MODULES(DMCP, xdmcp)
382PKG_CHECK_MODULES(XLIB, x11)
383PKG_CHECK_MODULES(AUTH, xau)
384
385#
386# Greeter
387#
388
389AC_MSG_CHECKING([if the greeter should be built as a dynamically loaded shared object])
390
391AC_ARG_ENABLE(dynamic-greeter,
392	AC_HELP_STRING([--enable-dynamic-greeter],
393         [Build greeter as dynamically loaded shared object]),
394	[DYNAMIC_GREETER="$enableval"], [DYNAMIC_GREETER="auto"])
395
396# Not all OS'es built dynamic greeter in monolith, but all the ones supported
397# in the modular tree should be able to use it.   We'll leave this here in case
398# some are found that can't.
399if test "x$DYNAMIC_GREETER" = "xauto" ; then
400	case $host_os in
401	    *)	DYNAMIC_GREETER="yes" ;;
402	esac
403fi
404
405AC_MSG_RESULT([$DYNAMIC_GREETER])
406
407if test "x$DYNAMIC_GREETER" = "xyes" ; then
408
409	GREETER_CFLAGS="$GREETER_CFLAGS -DGREET_LIB"
410
411	# The xdm binary needs to export symbols so that they can be used from
412	# libXdmGreet.so.  Some platforms require extra flags to do this.   
413	# gcc should set these flags when -rdynamic is passed to it, other 
414	# compilers/linkers may need to be added
415	if test "x$GCC" = "xyes"; then
416		XDM_LDFLAGS="$XDM_LDFLAGS -rdynamic"
417	fi	
418
419	PKG_CHECK_MODULES(XDMGREET, xt x11 xext)
420
421	GREETERLIB="${XDMLIBDIR}/libXdmGreet.so"
422	AC_DEFINE_DIR(DEF_GREETER_LIB, GREETERLIB, 
423			[Location of Xdm Greeter library])
424
425	XDMGREET_CFLAGS="$XDMGREET_CFLAGS $XDM_PRINT_CFLAGS $DMCP_CFLAGS $XLIB_CFLAGS $OS_CFLAGS $GREETER_CFLAGS $AUTH_CFLAGS"
426	XDMGREET_LIBS="$XDMGREET_LIBS $XDM_PRINT_LIBS $DMCP_LIBS $GREETER_LIBS"
427
428	AC_SUBST(XDMGREET_CFLAGS)
429	AC_SUBST(XDMGREET_LIBS)
430else
431	XDM_CFLAGS="$XDM_CFLAGS $XDM_PRINT_CFLAGS $GREETER_CFLAGS -DGREET_USER_STATIC"
432	XDM_LIBS="$XDM_LIBS $XDM_PRINT_LIBS $GREETER_LIBS"
433fi
434
435AM_CONDITIONAL(DYNAMIC_GREETER, test x$DYNAMIC_GREETER = xyes)
436
437#
438#  XDM
439#
440
441XDM_CFLAGS="$XDM_CFLAGS $DMCP_CFLAGS $XLIB_CFLAGS $OS_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	AC_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_SEARCH_LIBS(crypt, crypt)
457
458AC_SUBST(XDM_CFLAGS)
459AC_SUBST(XDM_LIBS)
460AC_SUBST(XDM_LDFLAGS)
461
462#
463# xdmshell
464#
465
466PKG_CHECK_MODULES(XT, xt)
467XDMSHELL_CFLAGS="$XDM_CFLAGS $XDM_PRINT_CFLAGS $AUTH_CFLAGS $DMCP_CFLAGS $XLIB_CFLAGS $XT_CFLAGS"
468XDMSHELL_LIBS="$XDM_LIBS $XDM_PRINT_LIBS $DMCP_LIBS"
469
470AC_SUBST(XDMSHELL_CFLAGS)
471AC_SUBST(XDMSHELL_LIBS)
472
473#
474# Chooser
475#
476
477CHOOSER_CFLAGS="$CHOOSER_CFLAGS $XDM_PRINT_CFLAGS $XLIB_CFLAGS $DMCP_CFLAGS $AUTH_CFLAGS"
478CHOOSER_LIBS="$CHOOSER_LIBS $XDM_PRINT_LIBS $DMCP_LIBS"
479
480AC_SUBST(CHOOSER_CFLAGS)
481AC_SUBST(CHOOSER_LIBS)
482
483# Defaults for X session - should probably be configure --with-* flags
484# Currently just trying to mirror what defaults were set in Imake
485
486# -DDEF_SERVER_LINE=":0 local $(DEF_SERVER) :0"
487if test -z "$DEF_SERVER" ; then 
488	DEF_SERVER="${bindir}/X"
489fi
490if test -z "$DEF_SERVER_LINE" ; then 
491	DEF_SERVER_LINE=":0 local ${DEF_SERVER} :0"
492fi
493AC_DEFINE_DIR(DEF_SERVER_LINE, DEF_SERVER_LINE,
494	[Define to default Xserver file entry for local X server])
495
496# -DXRDB_PROGRAM="$(BINDIR)/xrdb"
497AC_ARG_WITH(xrdb, AC_HELP_STRING([--with-xrdb=path],
498			[Use path for xrdb (default: bindir/xrdb)]),
499	    [XRDB=$withval], [XRDB=${bindir}/xrdb])
500AC_DEFINE_DIR(XRDB_PROGRAM, XRDB, 
501	[Define to pathname for xrdb program])
502
503# -DDEF_SESSION="$(BINDIR)/xterm -ls"
504AC_ARG_WITH(default-session, AC_HELP_STRING([--with-default-session=command],
505		[Use command for default session (default: bindir/xterm -ls)]),
506	    [DEF_SESSION=$withval], [DEF_SESSION="${bindir}/xterm -ls"])
507AC_DEFINE_DIR(DEF_SESSION, DEF_SESSION,
508	[Define to default command to start X session])
509
510# -DDEF_USER_PATH="$(DEF_USER_PATH)"
511# Default values taken from DefaultUserPath setting in the
512# old Imake *.cf files for each platform
513if test -z "$DEF_USER_PATH" ; then
514	case $host_os in
515	    dragonfly*)
516		DEF_USER_PATH="/bin:/usr/bin:/sbin:/usr/sbin:${bindir}:/usr/local/bin"
517		;;
518	    freebsd*)
519		DEF_USER_PATH="/bin:/usr/bin:/sbin:/usr/sbin:${bindir}:/usr/gnu/bin:/usr/local/bin"
520		;;
521	    netbsd*)
522		DEF_USER_PATH="/bin:/usr/bin:/usr/pkg/bin:/usr/local/bin:${bindir}"
523		;;
524	    openbsd*|bsdi*)
525		DEF_USER_PATH="/bin:/usr/bin:/usr/local/bin:${bindir}"
526		;;
527	    solaris*)
528		DEF_USER_PATH="/usr/bin:${bindir}"
529		;;
530	    *)
531		DEF_USER_PATH="/bin:/usr/bin:${bindir}:/usr/ucb"
532		;;
533	esac
534fi
535AC_DEFINE_DIR(DEF_USER_PATH, DEF_USER_PATH,
536	[Define to default PATH environment variable for user sessions])
537
538# -DDEF_SYSTEM_PATH="$(DEF_SYSTEM_PATH)"
539# Default values taken from DefaultSystemPath setting in the
540# old Imake *.cf files for each platform
541if test -z "$DEF_SYSTEM_PATH" ; then
542	case $host_os in
543	    freebsd*|dragonfly*)
544		DEF_SYSTEM_PATH="/bin:/usr/bin:/sbin:/usr/sbin:${bindir}"
545		;;
546	    netbsd*|openbsd*|bsdi*)
547		DEF_SYSTEM_PATH="/sbin:/usr/sbin:/bin:/usr/bin:${bindir}"
548		;;
549	    solaris*)
550		DEF_SYSTEM_PATH="/sbin:/usr/sbin:/usr/bin:${bindir}"
551		;;
552	    *)
553		DEF_SYSTEM_PATH="/etc:/bin:/usr/bin:${bindir}:/usr/ucb"
554		;;
555	esac
556fi
557AC_DEFINE_DIR(DEF_SYSTEM_PATH, DEF_SYSTEM_PATH,
558	[Define to default PATH environment variable for system commands])
559
560# -DDEF_SYSTEM_SHELL="$(BOURNE_SHELL)"
561if test -z "$BOURNE_SHELL" ; then
562	BOURNE_SHELL=/bin/sh
563fi
564AC_DEFINE_DIR(DEF_SYSTEM_SHELL, BOURNE_SHELL,
565	[Define to default shell])
566
567# -DDEF_FAILSAFE_CLIENT="$(BINDIR)/xterm"
568
569AC_DEFINE_DIR(DEF_FAILSAFE_CLIENT, bindir/xterm,
570	[Define to default command to start failsafe X session])
571
572# -DDEF_XDM_CONFIG="$(XDMDIR)/xdm-config"
573
574AC_DEFINE_DIR(DEF_XDM_CONFIG, XDMCONFIGDIR/xdm-config, 
575	[Define to pathname of default xdm-config file])
576
577# -DDEF_CHOOSER="$(CHOOSERPATH)"
578
579AC_DEFINE_DIR(DEF_CHOOSER, XDMLIBDIR/chooser, 
580	[Define to pathname of where chooser binary is installed])
581
582# -DDEF_AUTH_DIR="$(XDMDIR)"
583
584AC_ARG_WITH(authdir,
585	AC_HELP_STRING([--with-authdir=<pathname>],
586	  [specify directory for X auth files (default=/var/lib/xdm)]),
587	[XDMXAUTHDIR="$withval"], [XDMXAUTHDIR="/var/lib/xdm"])
588AC_SUBST(XDMXAUTHDIR)
589
590AC_DEFINE_DIR(DEF_AUTH_DIR, XDMXAUTHDIR,
591	[Define to pathname where authentication cookie files should be stored])
592
593# -DDEF_GREETER_LIB="$(XDMDIR)/libXdmGreet.so"
594
595AC_DEFINE_DIR(DEF_GREETER_LIB, XDMLIBDIR/libXdmGreet.so, 
596	[Define to pathname where greeter shared object is installed (if used)])
597
598PKG_CHECK_MODULES(APPDEFS, xt)
599xt_appdefaultdir=`$PKG_CONFIG --variable=appdefaultdir xt`
600AC_ARG_WITH(appdefaultdir,
601	AC_HELP_STRING([--with-appdefaultdir=<pathname>],
602	  [specify directory for app-defaults files (default is autodetected)]),
603	[appdefaultdir="$withval"], [appdefaultdir="${xt_appdefaultdir}"])
604AC_SUBST(appdefaultdir)
605
606AC_SUBST(MKTEMP_COMMAND)
607
608AC_OUTPUT([Makefile config/Makefile greeter/Makefile])
609