summaryrefslogtreecommitdiffstats
path: root/src/appl/bsd/configure.in
blob: d65486099ae83e9ae80ccbde14b1422861c9dcd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
AC_INIT(krlogind.c)
CONFIG_RULES
LOGINLIBS=
AC_ARG_WITH([afs],
[  --without-afs        don't have afs libraries to build against (default)
  --with-afs=AFSDIR    use preinstalled AFS library tree],
,with_afs=no)dnl
if test $with_afs != no; then
	AC_DEFINE(SETPAG)
	LOGINLIBS="$LOGINLIBS -L$with_afs/lib -L$with_afs/lib/afs -lauth -lsys -lrx -llwp"
fi
AC_PROG_INSTALL
dnl dbm libs for use of an_to_ln
AC_CHECK_LIB(util,main)
AC_CHECK_LIB(crypt,crypt)
dnl
dnl AIX has them all; SCO might too
AC_CHECK_LIB(odm,main,
  AC_CHECK_LIB(s,main,
    AC_CHECK_LIB(cfg,main, 
      LOGINLIBS="$LOGINLIBS -lodm -ls -lcfg" 
      )))
dnl
dnl Make our operating system-specific security checks and definitions for
dnl login.
dnl
case $krb5_cv_host in
*-*-aix3*) # AIX has streams include files but not streams TTY
# Moreover, strops.h trashes sys/ioctl.h
krb5_cv_has_streams=no
;;
alpha-dec-osf*)
	AC_CHECK_LIB(security,main,
		AC_DEFINE(HAVE_SETLUID)
		LOGINLIBS="$LOGINLIBS -lsecurity"
	)
	;;
esac
dnl 
dnl After beta6 this functionality will be integrated with aclocal.m4
AC_ARG_WITH([krb4],
[  --without-krb4          don't include Kerberos V4 backwards compatibility
  --with-krb4             use V4 libraries included with V5 (default)
  --with-krb4=KRB4DIR     use preinstalled V4 libraries],
,
withval=yes
)dnl
if test $withval = no; then
	AC_MSG_RESULT(no krb4 support)
	V4RCP=
	V4RCPO=
else 
	AC_MSG_RESULT(Adding in krb4 support)
	LOGINLIBS="../../krb524/libkrb524.a $LOGINLIBS"
	V4RCP=v4rcp
	V4RCPO=v4rcp.o
fi
dnl
dnl
AC_SUBST(LOGINLIBS)
AC_SUBST(V4RCP)
AC_SUBST(V4RCPO)
dnl
AC_VFORK
AC_TYPE_MODE_T
AC_FUNC_CHECK(strsave,AC_DEFINE(HAS_STRSAVE))
AC_FUNC_CHECK(utimes,AC_DEFINE(HAS_UTIMES))
AC_CHECK_FUNCS(isatty inet_aton) 
AC_FUNC_CHECK(gettosbyname,AC_DEFINE(HAVE_GETTOSBYNAME))
AC_FUNC_CHECK(killpg,AC_DEFINE(HAVE_KILLPG))
AC_FUNC_CHECK(initgroups,AC_DEFINE(HAVE_INITGROUPS))
AC_FUNC_CHECK(setpriority,AC_DEFINE(HAVE_SETPRIORITY))
AC_FUNC_CHECK(setreuid,AC_DEFINE(HAVE_SETREUID))
AC_FUNC_CHECK(setresuid,AC_DEFINE(HAVE_SETRESUID))
AC_FUNC_CHECK(waitpid,AC_DEFINE(HAVE_WAITPID))
AC_FUNC_CHECK(setsid,AC_DEFINE(HAVE_SETSID))
AC_FUNC_CHECK(ptsname,AC_DEFINE(HAVE_PTSNAME))
AC_FUNC_CHECK(setlogin,AC_DEFINE(HAVE_SETLOGIN))
AC_FUNC_CHECK(tcgetpgrp,AC_DEFINE(HAVE_TCGETPGRP))
AC_FUNC_CHECK(tcsetpgrp,AC_DEFINE(HAVE_TCSETPGRP))
AC_FUNC_CHECK(setpgid,AC_DEFINE(HAVE_SETPGID))
AC_CHECK_HEADERS(unistd.h stdlib.h string.h sys/filio.h sys/sockio.h )
AC_CHECK_HEADERS(sys/label.h sys/tty.h ttyent.h lastlog.h sys/select.h )
AC_CHECK_HEADERS(sys/ptyvar.h utmp.h sys/time.h)
AC_HEADER_STDARG
AC_REPLACE_FUNCS(getdtablesize)
KRB5_SIGTYPE
CHECK_SIGNALS
CHECK_SETJMP
CHECK_DIRENT
CHECK_WAIT_TYPE
AC_HEADER_CHECK(termios.h,AC_FUNC_CHECK(cfsetispeed,AC_DEFINE(POSIX_TERMIOS)))
CHECK_UTMP
dnl
dnl Check for where the BSD rlogin, rcp, and rsh programs live.
dnl
save_path=$PATH
AC_PROG_ECHO_N
AC_ARG_ENABLE([athena],
[  --enable-athena         build with MIT Project Athena configuration],
[PATH=/usr/athena/bin:/bin:/usr/bin:/usr/bsd:/usr/ucb],
[PATH=/bin:/usr/bin:/usr/bsd:/usr/ucb])
AC_PATH_PROG(UCB_RLOGIN,rlogin,/usr/ucb/rlogin)
AC_PATH_PROG(UCB_RSH,rsh,/usr/ucb/rsh)
AC_PATH_PROG(UCB_RCP,rcp,/usr/ucb/rcp)
PATH=$save_path
AC_PROG_ECHO_N
dnl
dnl
AC_MSG_CHECKING([streams interface])
AC_CACHE_VAL(krb5_cv_has_streams,
[AC_TRY_COMPILE(
[#include <sys/stream.h>
#include <sys/stropts.h>], [],
krb5_cv_has_streams=yes, krb5_cv_has_streams=no)])
AC_MSG_RESULT($krb5_cv_has_streams)
if test $krb5_cv_has_streams = yes; then
AC_DEFINE(HAVE_STREAMS)
fi
dnl
dnl
AC_MSG_CHECKING([F_SETOWN])
AC_CACHE_VAL(krb5_cv_f_setown,
[AC_TRY_COMPILE(
[#include <sys/types.h>
#include <fcntl.h>], [1+F_SETOWN;],
krb5_cv_f_setown=yes,krb5_cv_f_setown=no)])
AC_MSG_RESULT($krb5_cv_f_setown)
if test $krb5_cv_f_setown = yes; then
AC_DEFINE(HAVE_SETOWN)
fi
dnl
dnl
AC_MSG_CHECKING([setenv])
AC_CACHE_VAL(krb5_cv_setenv,
[AC_TRY_LINK(
[],[setenv("PATH","/bin",0);],
krb5_cv_setenv=yes,krb5_cv_setenv=no)])
AC_MSG_RESULT($krb5_cv_setenv)
if test $krb5_cv_setenv = no; then
SETENVSRC=setenv.c
SETENVOBJ=setenv.o
AC_SUBST([SETENVSRC])
AC_SUBST([SETENVOBJ])
fi
dnl
dnl
AC_MSG_CHECKING([number of arguments to setpgrp])
AC_CACHE_VAL(krb5_cv_setpgrp_args,
[AC_TRY_COMPILE(
[#ifndef __STDC__
#define __STDC__ 1
#endif
#include <unistd.h>],[setpgrp(0,0)],
krb5_cv_setpgrp_args=two, krb5_cv_setpgrp_args=void)])
AC_MSG_RESULT($krb5_cv_setpgrp_args)
if test $krb5_cv_setpgrp_args = two; then
AC_DEFINE(SETPGRP_TWOARG)
fi
dnl
dnl
AC_MSG_CHECKING([shadow password support])
AC_CACHE_VAL(krb5_cv_shadow_pwd,
[AC_TRY_LINK(
[#include <sys/types.h>
#include <pwd.h>
#include <shadow.h>],
[struct spwd *sp = getspnam("root")],
krb5_cv_shadow_pwd=yes, krb5_cv_shadow_pwd=no)])
AC_MSG_RESULT($krb5_cv_shadow_pwd)
if test $krb5_cv_shadow_pwd = yes; then
AC_DEFINE(HAVE_SHADOW)
fi
dnl
dnl
AC_MSG_CHECKING([/etc/environment])
AC_CACHE_VAL(krb5_cv_etc_environment,
[AC_C_CROSS
if test "$ac_cv_c_cross" = yes; then
errprint(__file__:__line__: warning: Cannot check for file existence when cross compiling
)dnl
AC_MSG_ERROR(Cannot check for file existence when cross compiling)
else
if test -r /etc/environment; then
krb5_cv_etc_environment=yes
else
krb5_cv_etc_environment=no
fi
fi])
AC_MSG_RESULT($krb5_cv_etc_environment)
if test $krb5_cv_etc_environment = yes; then
AC_DEFINE(HAVE_ETC_ENVIRONMENT)
fi
dnl
dnl
AC_MSG_CHECKING([/etc/TIMEZONE])
AC_CACHE_VAL(krb5_cv_etc_timezone,
[AC_C_CROSS
if test "$ac_cv_c_cross" = yes; then
errprint(__file__:__line__: warning: Cannot check for file existence when cross compiling
)dnl
AC_MSG_ERROR(Cannot check for file existence when cross compiling)
else
if test -r /etc/TIMEZONE; then
krb5_cv_etc_timezone=yes
else
krb5_cv_etc_timezone=no
fi
fi])
AC_MSG_RESULT($krb5_cv_etc_timezone)
if test $krb5_cv_etc_timezone = yes; then
AC_DEFINE(HAVE_ETC_TIMEZONE)
fi
dnl
dnl
KRB5_CHECK_PROTOS
dnl
ADD_DEF(-DKERBEROS)
AC_CONST
if test "$krb5_cv_build_krb4_libs" = yes; then
	AC_DEFINE(HAVE_KRB_GET_ERR_TEXT)
	AC_DEFINE(HAVE_KRB_SAVE_CREDENTIALS)
else
	oldlibs=$LIBS
	LIBS=" $KRB4_LIB -lkrb5 -lcrypto -lcom_err"
	AC_CHECK_FUNCS(krb_get_err_text krb_save_credentials)
	LIBS=$oldlibs
fi

AC_CHECK_HEADERS(krb4-proto.h)

KRB5_BUILD_PROGRAM
V5_AC_OUTPUT_MAKEFILE