]> andersk Git - openssh.git/blob - configure.in
- Added --with-default-path to specify custom path for server
[openssh.git] / configure.in
1 AC_INIT(ssh.c)
2
3 AC_CONFIG_HEADER(config.h)
4 AC_CANONICAL_HOST
5
6 dnl Checks for programs.
7 AC_PROG_CC
8 AC_PROG_CPP
9 AC_PROG_RANLIB
10 AC_PROG_INSTALL
11 AC_CHECK_PROG(AR, ar, ar)
12 AC_PATH_PROG(xauth_path, xauth)
13
14 dnl Use ip address instead of hostname in $DISPLAY
15 AC_ARG_WITH(rsh,
16         [  --with-rsh=PATH         Specify path to remote shell program ],
17         [
18                 AC_DEFINE_UNQUOTED(RSH_PATH, "$withval")
19         ],
20         [
21                 AC_PATH_PROG(rsh_path, rsh)
22         ]
23 )
24
25 if test ! -z "$xauth_path" ; then
26         AC_DEFINE_UNQUOTED(XAUTH_PATH, "$xauth_path")
27 fi
28 if test ! -z "$rsh_path" ; then
29         AC_DEFINE_UNQUOTED(RSH_PATH, "$rsh_path")
30 fi
31
32 dnl Checks for compiler characteristics
33 if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -Wall"; fi
34
35 AC_C_INLINE
36
37 dnl Check for some target-specific stuff
38 case "$host" in
39 *-*-hpux10*)
40         if test -z "$GCC"; then
41                 CFLAGS="$CFLAGS -Aa"
42         fi
43         CFLAGS="$CFLAGS -D_HPUX_SOURCE"
44         AC_DEFINE(IPADDR_IN_DISPLAY)
45         AC_DEFINE(USE_UTMPX)
46         AC_MSG_CHECKING(for HPUX trusted system password database)
47         if test -f /tcb/files/auth/system/default; then
48                 AC_MSG_RESULT(yes)
49                 AC_DEFINE(HAVE_HPUX_TRUSTED_SYSTEM_PW)
50                 LIBS="$LIBS -lsec"
51         else
52                 AC_MSG_RESULT(no)
53                 AC_DEFINE(DISABLE_SHADOW)
54         fi
55         ;;
56 *-*-solaris*)
57         AC_DEFINE(USE_UTMPX)
58         ;;
59 esac
60
61 dnl Check for OpenSSL/SSLeay directories.
62 AC_MSG_CHECKING([for OpenSSL/SSLeay directory])
63 for ssldir in /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local $prefix /usr/pkg ; do
64         if test -f "$ssldir/include/openssl/crypto.h"; then
65                 AC_DEFINE(HAVE_OPENSSL)
66                 GOT_SSL="yes"
67                 break
68         fi
69         if test -f "$ssldir/include/ssl/crypto.h"; then
70                 AC_DEFINE(HAVE_SSL)
71                 GOT_SSL="yes"
72                 break
73         fi
74 done
75 if test -z "$GOT_SSL" ; then
76         AC_MSG_ERROR([Could not find SSLeay / OpenSSL libraries, please install])       
77 fi
78 AC_SUBST(ssldir)
79 AC_DEFINE_UNQUOTED(ssldir, "$ssldir")
80 if test "$ssldir" != "/usr"; then
81         CFLAGS="$CFLAGS -I$ssldir/include"
82         LDFLAGS="$LDFLAGS -L$ssldir/lib"
83 fi
84 LIBS="$LIBS -lssl -lcrypto"
85 AC_MSG_RESULT($ssldir)
86
87 dnl Check for RSAref library.
88 AC_MSG_CHECKING([for RSAref library])
89 saved_LIBS="$LIBS"
90 LIBS="$saved_LIBS -lRSAglue -lrsaref"
91 AC_TRY_LINK([], [],
92 [AC_MSG_RESULT(yes); ],
93 [AC_MSG_RESULT(no)]; LIBS="$saved_LIBS")
94
95 dnl Checks for libraries.
96 AC_CHECK_LIB(crypto, CRYPTO_lock, ,AC_MSG_ERROR([*** libcrypto missing - please install first ***]))
97 AC_CHECK_LIB(z, deflate, ,AC_MSG_ERROR([*** zlib missing - please install first ***]))
98 AC_CHECK_LIB(util, login, AC_DEFINE(HAVE_LIBUTIL_LOGIN) LIBS="$LIBS -lutil")
99 AC_CHECK_LIB(nsl, yp_match, , )
100 AC_CHECK_LIB(socket, main, , )
101
102 dnl Use ip address instead of hostname in $DISPLAY
103 AC_ARG_WITH(pam,
104         [  --without-pam           Disable PAM support ],
105         [
106                 if test "x$withval" != "xno" ; then
107                         no_pam=1
108                 fi
109         ]
110 )
111 if test -z "$no_pam" ; then
112         AC_CHECK_LIB(dl, dlopen, , )
113         AC_CHECK_LIB(pam, pam_authenticate, , )
114 fi
115
116 dnl Checks for header files.
117 AC_CHECK_HEADERS(endian.h lastlog.h login.h maillock.h netgroup.h paths.h poll.h pty.h shadow.h util.h utmp.h utmpx.h sys/bsdtty.h sys/poll.h sys/select.h sys/stropts.h sys/time.h sys/ttcompat.h)
118
119 dnl Checks for library functions.
120 AC_CHECK_FUNCS(arc4random updwtmpx mkdtemp openpty _getpty innetgr setenv seteuid setlogin setproctitle setreuid snprintf strlcat strlcpy vsnprintf)
121
122 AC_CHECK_FUNC(login, 
123         [AC_DEFINE(HAVE_LOGIN)],
124         [AC_CHECK_LIB(bsd, login, [LIBS="$LIBS -lbsd"; AC_DEFINE(HAVE_LOGIN)])]
125 )
126
127 AC_CHECK_FUNC(daemon, 
128         [AC_DEFINE(HAVE_DAEMON)],
129         [AC_CHECK_LIB(bsd, daemon, [LIBS="$LIBS -lbsd"; AC_DEFINE(HAVE_DAEMON)])]
130 )
131
132 dnl Checks for data types
133 AC_CHECK_SIZEOF(short int, 2)
134 AC_CHECK_SIZEOF(int, 4)
135 AC_CHECK_SIZEOF(long int, 4)
136 AC_CHECK_SIZEOF(long long int, 8)
137
138 dnl More checks for data types
139 AC_MSG_CHECKING([for quad_t])
140 AC_TRY_COMPILE(
141         [#include <sys/types.h>], 
142         [quad_t a; a = 1235;], 
143         [
144                 AC_DEFINE(HAVE_QUAD_T)
145                 AC_MSG_RESULT(yes)
146         ],
147         [AC_MSG_RESULT(no)]
148
149
150 AC_MSG_CHECKING([for intXX_t types])
151 AC_TRY_COMPILE(
152         [#include <sys/types.h>], 
153         [int16_t a; int32_t b; a = 1235; b = 1235;], 
154         [
155                 AC_DEFINE(HAVE_INTXX_T)
156                 AC_MSG_RESULT(yes)
157         ],
158         [AC_MSG_RESULT(no)]
159
160
161 AC_MSG_CHECKING([for u_intXX_t types])
162 AC_TRY_COMPILE(
163         [#include <sys/types.h>], 
164         [u_int16_t c; u_int32_t d; c = 1235; d = 1235;], 
165         [
166                 AC_DEFINE(HAVE_U_INTXX_T)
167                 AC_MSG_RESULT(yes)
168         ],
169         [AC_MSG_RESULT(no)]
170
171
172 AC_MSG_CHECKING([For uintXX_t types])
173 AC_TRY_COMPILE(
174         [#include <sys/types.h>], 
175         [uint16_t c; uint32_t d; c = 1235; d = 1235;], 
176         [
177                 AC_DEFINE(HAVE_UINTXX_T)
178                 AC_MSG_RESULT(yes)
179         ],
180         [AC_MSG_RESULT(no)]
181
182
183 dnl Check PAM strerror arguments
184 AC_MSG_CHECKING([whether pam_strerror takes only one argument])
185 AC_TRY_COMPILE(
186         [
187                 #include <stdlib.h>
188                 #include <security/pam_appl.h>
189         ], 
190         [(void)pam_strerror((pam_handle_t *)NULL, -1);], 
191         [AC_MSG_RESULT(no)],
192         [
193                 AC_DEFINE(HAVE_OLD_PAM)
194                 AC_MSG_RESULT(yes)
195         ]
196
197
198 AC_MSG_CHECKING([whether to build GNOME ssh-askpass])
199 dnl Check whether user wants GNOME ssh-askpass
200 AC_ARG_WITH(gnome-askpass,
201         [  --with-gnome-askpass    Build the GNOME passphrase requester (default=no)],
202         [
203                 if test x$withval = xno ; then
204                         GNOME_ASKPASS="";
205                 else
206                         GNOME_ASKPASS="gnome-ssh-askpass";
207                 fi
208         ])
209 AC_SUBST(GNOME_ASKPASS)
210
211 if test -z "$GNOME_ASKPASS" ; then
212         AC_MSG_RESULT(no)
213 else
214         AC_MSG_RESULT(yes)
215 fi
216
217 dnl Check for user-specified random device
218 AC_ARG_WITH(random,
219         [  --with-random=FILE      read randomness from FILE (default=/dev/urandom)],
220         [
221                 RANDOM_POOL="$withval";
222                 AC_DEFINE_UNQUOTED(RANDOM_POOL, "$RANDOM_POOL")
223         ],
224         [
225                 dnl Check for random device
226                 AC_CHECK_FILE("/dev/urandom",
227                         [
228                                 RANDOM_POOL="/dev/urandom"; 
229                                 AC_SUBST(RANDOM_POOL)
230                                 AC_DEFINE_UNQUOTED(RANDOM_POOL, "$RANDOM_POOL")
231                         ]
232                 )
233         ]
234 )
235
236 dnl Check for EGD pool file
237 AC_ARG_WITH(egd-pool,
238         [  --with-egd-pool=FILE    read randomness from EGD pool FILE (default none)],
239         [
240                 RANDOM_POOL="$withval";
241                 AC_DEFINE(HAVE_EGD)
242                 AC_SUBST(RANDOM_POOL)
243                 AC_DEFINE_UNQUOTED(RANDOM_POOL, "$RANDOM_POOL")
244         ]
245 )
246
247 dnl Make sure we have random number support
248 if test -z "$RANDOM_POOL" -a -z "$EGD_POOL"; then
249         AC_MSG_ERROR([No random device found, and no EGD random pool specified])
250 fi
251
252 AC_MSG_CHECKING([whether utmp.h has ut_host field])
253 AC_EGREP_HEADER(ut_host, utmp.h, 
254         [AC_DEFINE(HAVE_HOST_IN_UTMP) AC_MSG_RESULT(yes); ], 
255         [AC_MSG_RESULT(no)]
256 )
257 AC_MSG_CHECKING([whether utmpx.h has ut_host field])
258 AC_EGREP_HEADER(ut_host, utmpx.h, 
259         [AC_DEFINE(HAVE_HOST_IN_UTMPX) AC_MSG_RESULT(yes); ], 
260         [AC_MSG_RESULT(no)]
261 )
262 AC_MSG_CHECKING([whether utmpx.h has syslen field])
263 AC_EGREP_HEADER(syslen, utmpx.h, 
264         [AC_DEFINE(HAVE_SYSLEN_IN_UTMPX) AC_MSG_RESULT(yes); ], 
265         [AC_MSG_RESULT(no)]
266 )
267
268 dnl Look for lastlog location
269 AC_ARG_WITH(lastlog,
270         [  --with-lastlog=FILE     Location of lastlog file],
271         [
272                 if test "x$withval" = "xno" ; then
273                         AC_DEFINE(DISABLE_LASTLOG)
274                 else
275                         AC_DEFINE_UNQUOTED(LASTLOG_LOCATION, "$withval")
276                 fi
277         ],
278         [
279                 AC_MSG_CHECKING([location of lastlog file])
280                 for lastlog in /var/log/lastlog /var/adm/lastlog /etc/security/lastlog ; do
281                         if test -f $lastlog ; then
282                                 gotlastlog="file"
283                                 break
284                         fi
285                         if test -d $lastlog ; then
286                                 gotlastlog="dir"
287                                 break
288                         fi
289                 done
290                 if test -z "$gotlastlog" ; then
291                         AC_MSG_WARN([*** Cannot find lastlog ***])
292                         nolastlog=1
293                 else
294                         if test "x$gotlastlog" = "xdir" ; then
295                                 AC_DEFINE(LASTLOG_IS_DIR)
296                                 AC_MSG_WARN([*** Directory-based lastlogs are not yet supported ***])
297                                 nolastlog=1
298                         fi
299                         AC_MSG_RESULT($lastlog)
300                         AC_DEFINE_UNQUOTED(LASTLOG_LOCATION, "$lastlog")
301                 fi      
302         ]
303 )
304
305 if test ! -z "$nolastlog" ; then
306         AC_MSG_WARN([*** Disabling lastlog support *** ])
307         AC_DEFINE(DISABLE_LASTLOG)
308 fi
309
310 AC_CHECK_FILE("/dev/ptmx", AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX))
311 AC_CHECK_FILE("/dev/ptc", AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC))
312
313 AC_MSG_CHECKING([whether libc defines __progname])
314 AC_TRY_LINK([], 
315         [extern char *__progname; printf("%s", __progname);], 
316         [
317                 AC_DEFINE(HAVE___PROGNAME)
318                 AC_MSG_RESULT(yes)
319         ], 
320         [
321                 AC_MSG_RESULT(no)
322         ]
323 )
324
325 dnl Check whether user wants Kerberos support
326 AC_ARG_WITH(kerberos4,
327         [  --with-kerberos4        Enable Kerberos 4 support],
328         [
329                 AC_DEFINE(KRB4)
330                 LIBS="$LIBS -lkrb"
331                 CFLAGS="$CFLAGS -I/usr/include/kerberosIV"
332         ]
333 )
334
335 dnl Check whether user wants AFS support
336 AC_ARG_WITH(afs,
337         [  --with-afs              Enable AFS support],
338         [
339                 AC_DEFINE(AFS)
340                 LIBS="$LIBS -lkafs"
341         ]
342 )
343
344 dnl Check whether user wants S/Key support
345 AC_ARG_WITH(skey,
346         [  --with-skey             Enable S/Key support],
347         [
348                 AC_DEFINE(SKEY)
349                 LIBS="$LIBS -lskey"
350         ]
351 )
352
353 dnl Check whether user wants TCP wrappers support
354 AC_ARG_WITH(tcp-wrappers,
355         [  --with-tcp-wrappers     Enable tcpwrappers support],
356         [
357                 AC_DEFINE(LIBWRAP)
358                 LIBWRAP="-lwrap"
359         ]
360 )
361 AC_SUBST(LIBWRAP)
362
363 dnl Check whether to enable MD5 passwords
364 AC_ARG_WITH(md5-passwords,
365         [  --with-md5-passwords    Enable use of MD5 passwords],
366         [AC_DEFINE(HAVE_MD5_PASSWORDS)]
367 )
368
369 dnl Check whether to enable utmpx support
370 AC_ARG_WITH(utmpx,
371         [  --with-utmpx            Enable utmpx support],
372         [
373                 if test "x$withval" != "xno" ; then
374                         AC_DEFINE(USE_UTMPX)
375                 fi
376         ]
377 )
378
379 dnl Whether to disable shadow password support
380 AC_ARG_WITH(shadow,
381         [  --without-shadow        Disable shadow password support],
382         [
383                 if test "x$withval" = "xno" ; then      
384                         AC_DEFINE(DISABLE_SHADOW)
385                 fi
386         ]
387 )
388
389 dnl Use ip address instead of hostname in $DISPLAY
390 AC_ARG_WITH(ipaddr-display,
391         [  --with-ipaddr-display   Use ip address instead of hostname in \$DISPLAY],
392         [
393                 if test "x$withval" = "xno" ; then      
394                         AC_DEFINE(IPADDR_IN_DISPLAY)
395                 fi
396         ]
397 )
398
399 AC_ARG_WITH(path,
400         [  --with-default-path=PATH Specify default \$PATH environment for server],
401         [
402                 if test "x$withval" != "xno" ; then     
403                         AC_DEFINE_UNQUOTED(USER_PATH, $withval")
404                 fi
405         ]
406 )
407
408 dnl Check for mail directory (last resort if we cannot get it from headers)
409 if test ! -z "$MAIL" ; then
410         maildir=`dirname $MAIL`
411         AC_DEFINE_UNQUOTED(MAIL_DIRECTORY, "$maildir")
412 fi
413
414 AC_OUTPUT(Makefile)
This page took 0.090578 seconds and 5 git commands to generate.