1dnl @(#) $Header: /tcpdump/master/tcpdump/aclocal.m4,v 1.116 2008-09-25 21:45:50 guy Exp $ (LBL)
2dnl
3dnl Copyright (c) 1995, 1996, 1997, 1998
4dnl	The Regents of the University of California.  All rights reserved.
5dnl
6dnl Redistribution and use in source and binary forms, with or without
7dnl modification, are permitted provided that: (1) source code distributions
8dnl retain the above copyright notice and this paragraph in its entirety, (2)
9dnl distributions including binary code include the above copyright notice and
10dnl this paragraph in its entirety in the documentation or other materials
11dnl provided with the distribution, and (3) all advertising materials mentioning
12dnl features or use of this software display the following acknowledgement:
13dnl ``This product includes software developed by the University of California,
14dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
15dnl the University nor the names of its contributors may be used to endorse
16dnl or promote products derived from this software without specific prior
17dnl written permission.
18dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
19dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
20dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21dnl
22dnl LBL autoconf macros
23dnl
24
25dnl
26dnl Do whatever AC_LBL_C_INIT work is necessary before using AC_PROG_CC.
27dnl
28dnl It appears that newer versions of autoconf (2.64 and later) will,
29dnl if you use AC_TRY_COMPILE in a macro, stick AC_PROG_CC at the
30dnl beginning of the macro, even if the macro itself calls AC_PROG_CC.
31dnl See the "Prerequisite Macros" and "Expanded Before Required" sections
32dnl in the Autoconf documentation.
33dnl
34dnl This causes a steaming heap of fail in our case, as we were, in
35dnl AC_LBL_C_INIT, doing the tests we now do in AC_LBL_C_INIT_BEFORE_CC,
36dnl calling AC_PROG_CC, and then doing the tests we now do in
37dnl AC_LBL_C_INIT.  Now, we run AC_LBL_C_INIT_BEFORE_CC, AC_PROG_CC,
38dnl and AC_LBL_C_INIT at the top level.
39dnl
40AC_DEFUN(AC_LBL_C_INIT_BEFORE_CC,
41    [AC_PREREQ(2.50)
42    AC_BEFORE([$0], [AC_LBL_C_INIT])
43    AC_BEFORE([$0], [AC_PROG_CC])
44    AC_BEFORE([$0], [AC_LBL_FIXINCLUDES])
45    AC_BEFORE([$0], [AC_LBL_DEVEL])
46    AC_ARG_WITH(gcc, [  --without-gcc           don't use gcc])
47    $1="-O"
48    $2=""
49    if test "${srcdir}" != "." ; then
50	    $2="-I$srcdir"
51    fi
52    if test "${CFLAGS+set}" = set; then
53	    LBL_CFLAGS="$CFLAGS"
54    fi
55    if test -z "$CC" ; then
56	    case "$host_os" in
57
58	    bsdi*)
59		    AC_CHECK_PROG(SHLICC2, shlicc2, yes, no)
60		    if test $SHLICC2 = yes ; then
61			    CC=shlicc2
62			    export CC
63		    fi
64		    ;;
65	    esac
66    fi
67    if test -z "$CC" -a "$with_gcc" = no ; then
68	    CC=cc
69	    export CC
70    fi
71])
72
73dnl
74dnl Determine which compiler we're using (cc or gcc)
75dnl If using gcc, determine the version number
76dnl If using cc, require that it support ansi prototypes
77dnl If using gcc, use -O2 (otherwise use -O)
78dnl If using cc, explicitly specify /usr/local/include
79dnl
80dnl usage:
81dnl
82dnl	AC_LBL_C_INIT(copt, incls)
83dnl
84dnl results:
85dnl
86dnl	$1 (copt set)
87dnl	$2 (incls set)
88dnl	CC
89dnl	LDFLAGS
90dnl	ac_cv_lbl_gcc_vers
91dnl	LBL_CFLAGS
92dnl
93AC_DEFUN(AC_LBL_C_INIT,
94    [AC_PREREQ(2.50)
95    AC_BEFORE([$0], [AC_LBL_FIXINCLUDES])
96    AC_BEFORE([$0], [AC_LBL_DEVEL])
97    AC_BEFORE([$0], [AC_LBL_SHLIBS_INIT])
98    if test "$GCC" = yes ; then
99	    if test "$SHLICC2" = yes ; then
100		    ac_cv_lbl_gcc_vers=2
101		    $1="-O2"
102	    else
103		    AC_MSG_CHECKING(gcc version)
104		    AC_CACHE_VAL(ac_cv_lbl_gcc_vers,
105			ac_cv_lbl_gcc_vers=`$CC -v 2>&1 | \
106			    sed -e '/^gcc version /!d' \
107				-e 's/^gcc version //' \
108				-e 's/ .*//' -e 's/^[[[^0-9]]]*//' \
109				-e 's/\..*//'`)
110		    AC_MSG_RESULT($ac_cv_lbl_gcc_vers)
111		    if test $ac_cv_lbl_gcc_vers -gt 1 ; then
112			    $1="-O2"
113		    fi
114	    fi
115    else
116	    AC_MSG_CHECKING(that $CC handles ansi prototypes)
117	    AC_CACHE_VAL(ac_cv_lbl_cc_ansi_prototypes,
118		AC_TRY_COMPILE(
119		    [#include <sys/types.h>],
120		    [int frob(int, char *)],
121		    ac_cv_lbl_cc_ansi_prototypes=yes,
122		    ac_cv_lbl_cc_ansi_prototypes=no))
123	    AC_MSG_RESULT($ac_cv_lbl_cc_ansi_prototypes)
124	    if test $ac_cv_lbl_cc_ansi_prototypes = no ; then
125		    case "$host_os" in
126
127		    hpux*)
128			    AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE))
129			    savedcflags="$CFLAGS"
130			    CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS"
131			    AC_CACHE_VAL(ac_cv_lbl_cc_hpux_cc_aa,
132				AC_TRY_COMPILE(
133				    [#include <sys/types.h>],
134				    [int frob(int, char *)],
135				    ac_cv_lbl_cc_hpux_cc_aa=yes,
136				    ac_cv_lbl_cc_hpux_cc_aa=no))
137			    AC_MSG_RESULT($ac_cv_lbl_cc_hpux_cc_aa)
138			    if test $ac_cv_lbl_cc_hpux_cc_aa = no ; then
139				    AC_MSG_ERROR(see the INSTALL doc for more info)
140			    fi
141			    CFLAGS="$savedcflags"
142			    $1="-Aa $$1"
143			    AC_DEFINE(_HPUX_SOURCE,1,[needed on HP-UX])
144			    ;;
145
146		    osf*)
147			    AC_MSG_CHECKING(for ansi mode in DEC compiler ($CC -std1))
148			    savedcflags="$CFLAGS"
149			    CFLAGS="-std1"
150			    AC_CACHE_VAL(ac_cv_lbl_cc_osf1_cc_std1,
151				AC_TRY_COMPILE(
152				    [#include <sys/types.h>],
153				    [int frob(int, char *)],
154				    ac_cv_lbl_cc_osf1_cc_std1=yes,
155				    ac_cv_lbl_cc_osf1_cc_std1=no))
156			    AC_MSG_RESULT($ac_cv_lbl_cc_osf1_cc_std1)
157			    if test $ac_cv_lbl_cc_osf1_cc_std1 = no ; then
158				    AC_MSG_ERROR(see the INSTALL doc for more info)
159			    fi
160			    CFLAGS="$savedcflags"
161			    $1="-std1 $$1"
162			    ;;
163
164		    *)
165			    AC_MSG_ERROR(see the INSTALL doc for more info)
166			    ;;
167		    esac
168	    fi
169	    $2="$$2 -I/usr/local/include"
170	    LDFLAGS="$LDFLAGS -L/usr/local/lib"
171
172	    case "$host_os" in
173
174	    irix*)
175		    $1="$$1 -xansi -signed -O"
176		    ;;
177
178	    osf*)
179	    	    #
180		    # Presumed to be DEC OSF/1, Digital UNIX, or
181		    # Tru64 UNIX.
182		    #
183		    $1="$$1 -O"
184		    ;;
185
186	    ultrix*)
187		    AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes)
188		    AC_CACHE_VAL(ac_cv_lbl_cc_const_proto,
189			AC_TRY_COMPILE(
190			    [#include <sys/types.h>],
191			    [struct a { int b; };
192			    void c(const struct a *)],
193			    ac_cv_lbl_cc_const_proto=yes,
194			    ac_cv_lbl_cc_const_proto=no))
195		    AC_MSG_RESULT($ac_cv_lbl_cc_const_proto)
196		    if test $ac_cv_lbl_cc_const_proto = no ; then
197			    AC_DEFINE(const,[],
198			        [to handle Ultrix compilers that don't support const in prototypes])
199		    fi
200		    ;;
201	    esac
202    fi
203])
204
205#
206# Try compiling a sample of the type of code that appears in
207# gencode.c with "inline", "__inline__", and "__inline".
208#
209# Autoconf's AC_C_INLINE, at least in autoconf 2.13, isn't good enough,
210# as it just tests whether a function returning "int" can be inlined;
211# at least some versions of HP's C compiler can inline that, but can't
212# inline a function that returns a struct pointer.
213#
214# Make sure we use the V_CCOPT flags, because some of those might
215# disable inlining.
216#
217AC_DEFUN(AC_LBL_C_INLINE,
218    [AC_MSG_CHECKING(for inline)
219    save_CFLAGS="$CFLAGS"
220    CFLAGS="$V_CCOPT"
221    AC_CACHE_VAL(ac_cv_lbl_inline, [
222	ac_cv_lbl_inline=""
223	ac_lbl_cc_inline=no
224	for ac_lbl_inline in inline __inline__ __inline
225	do
226	    AC_TRY_COMPILE(
227		[#define inline $ac_lbl_inline
228		static inline struct iltest *foo(void);
229		struct iltest {
230		    int iltest1;
231		    int iltest2;
232		};
233
234		static inline struct iltest *
235		foo()
236		{
237		    static struct iltest xxx;
238
239		    return &xxx;
240		}],,ac_lbl_cc_inline=yes,)
241	    if test "$ac_lbl_cc_inline" = yes ; then
242		break;
243	    fi
244	done
245	if test "$ac_lbl_cc_inline" = yes ; then
246	    ac_cv_lbl_inline=$ac_lbl_inline
247	fi])
248    CFLAGS="$save_CFLAGS"
249    if test ! -z "$ac_cv_lbl_inline" ; then
250	AC_MSG_RESULT($ac_cv_lbl_inline)
251    else
252	AC_MSG_RESULT(no)
253    fi
254    AC_DEFINE_UNQUOTED(inline, $ac_cv_lbl_inline, [Define as token for inline if inlining supported])])
255
256dnl
257dnl Use pfopen.c if available and pfopen() not in standard libraries
258dnl Require libpcap
259dnl Look for libpcap in ..
260dnl Use the installed libpcap if there is no local version
261dnl
262dnl usage:
263dnl
264dnl	AC_LBL_LIBPCAP(pcapdep, incls)
265dnl
266dnl results:
267dnl
268dnl	$1 (pcapdep set)
269dnl	$2 (incls appended)
270dnl	LIBS
271dnl	LBL_LIBS
272dnl
273AC_DEFUN(AC_LBL_LIBPCAP,
274    [AC_REQUIRE([AC_LBL_LIBRARY_NET])
275    dnl
276    dnl save a copy before locating libpcap.a
277    dnl
278    LBL_LIBS="$LIBS"
279    pfopen=/usr/examples/packetfilter/pfopen.c
280    if test -f $pfopen ; then
281	    AC_CHECK_FUNCS(pfopen)
282	    if test $ac_cv_func_pfopen = "no" ; then
283		    AC_MSG_RESULT(Using $pfopen)
284		    LIBS="$LIBS $pfopen"
285	    fi
286    fi
287    AC_MSG_CHECKING(for local pcap library)
288    libpcap=FAIL
289    lastdir=FAIL
290    places=`ls $srcdir/.. | sed -e 's,/$,,' -e "s,^,$srcdir/../," | \
291	egrep '/libpcap-[[0-9]]+\.[[0-9]]+(\.[[0-9]]*)?([[ab]][[0-9]]*|-PRE-GIT)?$'`
292    for dir in $places $srcdir/../libpcap $srcdir/libpcap ; do
293	    basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//' | \
294	        sed -e 's/-PRE-GIT$//' `
295	    if test $lastdir = $basedir ; then
296		    dnl skip alphas when an actual release is present
297		    continue;
298	    fi
299	    lastdir=$dir
300	    if test -r $dir/libpcap.a ; then
301		    libpcap=$dir/libpcap.a
302		    d=$dir
303		    dnl continue and select the last one that exists
304	    fi
305    done
306    if test $libpcap = FAIL ; then
307	    AC_MSG_RESULT(not found)
308
309	    #
310	    # Look for pcap-config.
311	    #
312	    AC_PATH_TOOL(PCAP_CONFIG, pcap-config)
313	    if test -n "$PCAP_CONFIG" ; then
314		#
315		# Found - use it to get the include flags for
316		# libpcap and the flags to link with libpcap.
317		#
318		# Please read section 11.6 "Shell Substitutions"
319		# in the autoconf manual before doing anything
320		# to this that involves quoting.  Especially note
321		# the statement "There is just no portable way to use
322		# double-quoted strings inside double-quoted back-quoted
323		# expressions (pfew!)."
324		#
325		cflags=`"$PCAP_CONFIG" --cflags`
326		$2="$cflags $$2"
327		libpcap=`"$PCAP_CONFIG" --libs`
328	    else
329		#
330		# Not found; look for pcap.
331		#
332		AC_CHECK_LIB(pcap, main, libpcap="-lpcap")
333		if test $libpcap = FAIL ; then
334		    AC_MSG_ERROR(see the INSTALL doc for more info)
335		fi
336		dnl
337		dnl Some versions of Red Hat Linux put "pcap.h" in
338		dnl "/usr/include/pcap"; had the LBL folks done so,
339		dnl that would have been a good idea, but for
340		dnl the Red Hat folks to do so just breaks source
341		dnl compatibility with other systems.
342		dnl
343		dnl We work around this by assuming that, as we didn't
344		dnl find a local libpcap, libpcap is in /usr/lib or
345		dnl /usr/local/lib and that the corresponding header
346		dnl file is under one of those directories; if we don't
347		dnl find it in either of those directories, we check to
348		dnl see if it's in a "pcap" subdirectory of them and,
349		dnl if so, add that subdirectory to the "-I" list.
350		dnl
351		dnl (We now also put pcap.h in /usr/include/pcap, but we
352		dnl leave behind a /usr/include/pcap.h that includes it,
353		dnl so you can still just include <pcap.h>.)
354		dnl
355		AC_MSG_CHECKING(for extraneous pcap header directories)
356		if test \( ! -r /usr/local/include/pcap.h \) -a \
357			\( ! -r /usr/include/pcap.h \); then
358		    if test -r /usr/local/include/pcap/pcap.h; then
359			d="/usr/local/include/pcap"
360		    elif test -r /usr/include/pcap/pcap.h; then
361			d="/usr/include/pcap"
362		    fi
363		fi
364		if test -z "$d" ; then
365		    AC_MSG_RESULT(not found)
366		else
367		    $2="-I$d $$2"
368		    AC_MSG_RESULT(found -- -I$d added)
369		fi
370	    fi
371    else
372	    $1=$libpcap
373	    places=`ls $srcdir/.. | sed -e 's,/$,,' -e "s,^,$srcdir/../," | \
374    	 		egrep '/libpcap-[[0-9]]*.[[0-9]]*(.[[0-9]]*)?([[ab]][[0-9]]*)?$'`
375	    if test -r $d/pcap.h; then
376		    $2="-I$d $$2"
377	    elif test -r $places/pcap.h; then
378		    $2="-I$places $$2"
379	    else
380                    AC_MSG_ERROR(cannot find pcap.h, see INSTALL)
381 	    fi
382	    AC_MSG_RESULT($libpcap)
383	    AC_PATH_PROG(PCAP_CONFIG, pcap-config,, $d)
384	    if test -n "$PCAP_CONFIG"; then
385		#
386		# The libpcap directory has a pcap-config script.
387		# Use it to get any additioal libraries needed
388		# to link with the libpcap archive library in
389		# that directory.
390		#
391		# Please read section 11.6 "Shell Substitutions"
392		# in the autoconf manual before doing anything
393		# to this that involves quoting.  Especially note
394		# the statement "There is just no portable way to use
395		# double-quoted strings inside double-quoted back-quoted
396		# expressions (pfew!)."
397		#
398		additional_libs=`"$PCAP_CONFIG" --additional-libs --static`
399		libpcap="$libpcap $additional_libs"
400	    fi
401    fi
402    LIBS="$libpcap $LIBS"
403    if ! test -n "$PCAP_CONFIG" ; then
404	#
405	# We don't have pcap-config; find out any additional link flags
406	# we need.  (If we have pcap-config, we assume it tells us what
407	# we need.)
408	#
409	case "$host_os" in
410
411	aix*)
412	    #
413	    # If libpcap is DLPI-based, we have to use /lib/pse.exp if
414	    # present, as we use the STREAMS routines.
415	    #
416	    # (XXX - true only if we're linking with a static libpcap?)
417	    #
418	    pseexe="/lib/pse.exp"
419	    AC_MSG_CHECKING(for $pseexe)
420	    if test -f $pseexe ; then
421		    AC_MSG_RESULT(yes)
422		    LIBS="$LIBS -I:$pseexe"
423	    fi
424
425	    #
426	    # If libpcap is BPF-based, we need "-lodm" and "-lcfg", as
427	    # we use them to load the BPF module.
428	    #
429	    # (XXX - true only if we're linking with a static libpcap?)
430	    #
431	    LIBS="$LIBS -lodm -lcfg"
432	    ;;
433	esac
434    fi
435
436    dnl
437    dnl Check for "pcap_loop()", to make sure we found a working
438    dnl libpcap and have all the right other libraries with which
439    dnl to link.  (Otherwise, the checks below will fail, not
440    dnl because the routines are missing from the library, but
441    dnl because we aren't linking properly with libpcap, and
442    dnl that will cause confusing errors at build time.)
443    dnl
444    AC_CHECK_FUNC(pcap_loop,,
445	[
446	    AC_MSG_ERROR(
447[Report this to tcpdump-workers@lists.tcpdump.org, and include the
448config.log file in your report.  If you have downloaded libpcap from
449tcpdump.org, and built it yourself, please also include the config.log
450file from the libpcap source directory, the Makefile from the libpcap
451source directory, and the output of the make process for libpcap, as
452this could be a problem with the libpcap that was built, and we will
453not be able to determine why this is happening, and thus will not be
454able to fix it, without that information, as we have not been able to
455reproduce this problem ourselves.])
456	])
457
458    dnl
459    dnl Check for "pcap_list_datalinks()", "pcap_set_datalink()",
460    dnl and "pcap_datalink_name_to_val()", and use substitute versions
461    dnl if they're not present.
462    dnl
463    AC_CHECK_FUNC(pcap_list_datalinks,
464	AC_DEFINE(HAVE_PCAP_LIST_DATALINKS),
465	[
466	    AC_LIBOBJ(datalinks)
467	])
468    AC_CHECK_FUNC(pcap_set_datalink,
469	AC_DEFINE(HAVE_PCAP_SET_DATALINK))
470    AC_CHECK_FUNC(pcap_datalink_name_to_val,
471	[
472	    AC_DEFINE(HAVE_PCAP_DATALINK_NAME_TO_VAL)
473	    AC_CHECK_FUNC(pcap_datalink_val_to_description,
474		AC_DEFINE(HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION),
475		[
476		    AC_LIBOBJ(dlnames)
477		])
478	],
479	[
480	    AC_LIBOBJ(dlnames)
481	])
482
483    dnl
484    dnl Check for "pcap_breakloop()"; you can't substitute for it if
485    dnl it's absent (it has hooks into the live capture routines),
486    dnl so just define the HAVE_ value if it's there.
487    dnl
488    AC_CHECK_FUNCS(pcap_breakloop)
489
490    dnl
491    dnl Check for "pcap_dump_ftell()" and use a substitute version
492    dnl if it's not present.
493    AC_CHECK_FUNC(pcap_dump_ftell,
494	AC_DEFINE(HAVE_PCAP_DUMP_FTELL),
495	[
496	    AC_LIBOBJ(pcap_dump_ftell)
497	])
498])
499
500dnl
501dnl Define RETSIGTYPE and RETSIGVAL
502dnl
503dnl usage:
504dnl
505dnl	AC_LBL_TYPE_SIGNAL
506dnl
507dnl results:
508dnl
509dnl	RETSIGTYPE (defined)
510dnl	RETSIGVAL (defined)
511dnl
512AC_DEFUN(AC_LBL_TYPE_SIGNAL,
513    [AC_BEFORE([$0], [AC_LBL_LIBPCAP])
514    AC_TYPE_SIGNAL
515    if test "$ac_cv_type_signal" = void ; then
516	    AC_DEFINE(RETSIGVAL,[],[return value of signal handlers])
517    else
518	    AC_DEFINE(RETSIGVAL,(0),[return value of signal handlers])
519    fi
520    case "$host_os" in
521
522    irix*)
523	    AC_DEFINE(_BSD_SIGNALS,1,[get BSD semantics on Irix])
524	    ;;
525
526    *)
527	    dnl prefer sigaction() to sigset()
528	    AC_CHECK_FUNCS(sigaction)
529	    if test $ac_cv_func_sigaction = no ; then
530		    AC_CHECK_FUNCS(sigset)
531	    fi
532	    ;;
533    esac])
534
535dnl
536dnl If using gcc, make sure we have ANSI ioctl definitions
537dnl
538dnl usage:
539dnl
540dnl	AC_LBL_FIXINCLUDES
541dnl
542AC_DEFUN(AC_LBL_FIXINCLUDES,
543    [if test "$GCC" = yes ; then
544	    AC_MSG_CHECKING(for ANSI ioctl definitions)
545	    AC_CACHE_VAL(ac_cv_lbl_gcc_fixincludes,
546		AC_TRY_COMPILE(
547		    [/*
548		     * This generates a "duplicate case value" when fixincludes
549		     * has not be run.
550		     */
551#		include <sys/types.h>
552#		include <sys/time.h>
553#		include <sys/ioctl.h>
554#		ifdef HAVE_SYS_IOCCOM_H
555#		include <sys/ioccom.h>
556#		endif],
557		    [switch (0) {
558		    case _IO('A', 1):;
559		    case _IO('B', 1):;
560		    }],
561		    ac_cv_lbl_gcc_fixincludes=yes,
562		    ac_cv_lbl_gcc_fixincludes=no))
563	    AC_MSG_RESULT($ac_cv_lbl_gcc_fixincludes)
564	    if test $ac_cv_lbl_gcc_fixincludes = no ; then
565		    # Don't cache failure
566		    unset ac_cv_lbl_gcc_fixincludes
567		    AC_MSG_ERROR(see the INSTALL for more info)
568	    fi
569    fi])
570
571dnl
572dnl Checks to see if union wait is used with WEXITSTATUS()
573dnl
574dnl usage:
575dnl
576dnl	AC_LBL_UNION_WAIT
577dnl
578dnl results:
579dnl
580dnl	DECLWAITSTATUS (defined)
581dnl
582AC_DEFUN(AC_LBL_UNION_WAIT,
583    [AC_MSG_CHECKING(if union wait is used)
584    AC_CACHE_VAL(ac_cv_lbl_union_wait,
585	AC_TRY_COMPILE([
586#	include <sys/types.h>
587#	include <sys/wait.h>],
588	    [int status;
589	    u_int i = WEXITSTATUS(status);
590	    u_int j = waitpid(0, &status, 0);],
591	    ac_cv_lbl_union_wait=no,
592	    ac_cv_lbl_union_wait=yes))
593    AC_MSG_RESULT($ac_cv_lbl_union_wait)
594    if test $ac_cv_lbl_union_wait = yes ; then
595	    AC_DEFINE(DECLWAITSTATUS,union wait,[type for wait])
596    else
597	    AC_DEFINE(DECLWAITSTATUS,int,[type for wait])
598    fi])
599
600dnl
601dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member
602dnl
603dnl usage:
604dnl
605dnl	AC_LBL_SOCKADDR_SA_LEN
606dnl
607dnl results:
608dnl
609dnl	HAVE_SOCKADDR_SA_LEN (defined)
610dnl
611AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN,
612    [AC_MSG_CHECKING(if sockaddr struct has the sa_len member)
613    AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len,
614	AC_TRY_COMPILE([
615#	include <sys/types.h>
616#	include <sys/socket.h>],
617	[u_int i = sizeof(((struct sockaddr *)0)->sa_len)],
618	ac_cv_lbl_sockaddr_has_sa_len=yes,
619	ac_cv_lbl_sockaddr_has_sa_len=no))
620    AC_MSG_RESULT($ac_cv_lbl_sockaddr_has_sa_len)
621    if test $ac_cv_lbl_sockaddr_has_sa_len = yes ; then
622	    AC_DEFINE(HAVE_SOCKADDR_SA_LEN,1,[if struct sockaddr has the sa_len member])
623    fi])
624
625dnl
626dnl Checks to see if -R is used
627dnl
628dnl usage:
629dnl
630dnl	AC_LBL_HAVE_RUN_PATH
631dnl
632dnl results:
633dnl
634dnl	ac_cv_lbl_have_run_path (yes or no)
635dnl
636AC_DEFUN(AC_LBL_HAVE_RUN_PATH,
637    [AC_MSG_CHECKING(for ${CC-cc} -R)
638    AC_CACHE_VAL(ac_cv_lbl_have_run_path,
639	[echo 'main(){}' > conftest.c
640	${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1
641	if test ! -s conftest.out ; then
642		ac_cv_lbl_have_run_path=yes
643	else
644		ac_cv_lbl_have_run_path=no
645	fi
646	rm -f -r conftest*])
647    AC_MSG_RESULT($ac_cv_lbl_have_run_path)
648    ])
649
650dnl
651dnl Check whether a given format can be used to print 64-bit integers
652dnl
653AC_DEFUN(AC_LBL_CHECK_64BIT_FORMAT,
654  [
655    AC_MSG_CHECKING([whether %$1x can be used to format 64-bit integers])
656    AC_RUN_IFELSE(
657      [
658	AC_LANG_SOURCE(
659	  [[
660#	    ifdef HAVE_INTTYPES_H
661	    #include <inttypes.h>
662#	    endif
663#	    ifdef HAVE_SYS_BITYPES_H
664            #include <sys/bitypes.h>
665#	    endif
666	    #include <stdio.h>
667	    #include <sys/types.h>
668
669	    main()
670	    {
671	      u_int64_t t = 1;
672	      char strbuf[16+1];
673	      sprintf(strbuf, "%016$1x", t << 32);
674	      if (strcmp(strbuf, "0000000100000000") == 0)
675		exit(0);
676	      else
677		exit(1);
678	    }
679	  ]])
680      ],
681      [
682	AC_DEFINE(PRId64, "$1d")
683	AC_DEFINE(PRIo64, "$1o")
684	AC_DEFINE(PRIx64, "$1x")
685	AC_DEFINE(PRIu64, "$1u")
686	AC_MSG_RESULT(yes)
687      ],
688      [
689	AC_MSG_RESULT(no)
690	$2
691      ])
692  ])
693
694dnl
695dnl Checks to see if unaligned memory accesses fail
696dnl
697dnl usage:
698dnl
699dnl	AC_LBL_UNALIGNED_ACCESS
700dnl
701dnl results:
702dnl
703dnl	LBL_ALIGN (DEFINED)
704dnl
705AC_DEFUN(AC_LBL_UNALIGNED_ACCESS,
706    [AC_MSG_CHECKING(if unaligned accesses fail)
707    AC_CACHE_VAL(ac_cv_lbl_unaligned_fail,
708	[case "$host_cpu" in
709
710	#
711	# These are CPU types where:
712	#
713	#	the CPU faults on an unaligned access, but at least some
714	#	OSes that support that CPU catch the fault and simulate
715	#	the unaligned access (e.g., Alpha/{Digital,Tru64} UNIX) -
716	#	the simulation is slow, so we don't want to use it;
717	#
718	#	the CPU, I infer (from the old
719	#
720	# XXX: should also check that they don't do weird things (like on arm)
721	#
722	#	comment) doesn't fault on unaligned accesses, but doesn't
723	#	do a normal unaligned fetch, either (e.g., presumably, ARM);
724	#
725	#	for whatever reason, the test program doesn't work
726	#	(this has been claimed to be the case for several of those
727	#	CPUs - I don't know what the problem is; the problem
728	#	was reported as "the test program dumps core" for SuperH,
729	#	but that's what the test program is *supposed* to do -
730	#	it dumps core before it writes anything, so the test
731	#	for an empty output file should find an empty output
732	#	file and conclude that unaligned accesses don't work).
733	#
734	# This run-time test won't work if you're cross-compiling, so
735	# in order to support cross-compiling for a particular CPU,
736	# we have to wire in the list of CPU types anyway, as far as
737	# I know, so perhaps we should just have a set of CPUs on
738	# which we know it doesn't work, a set of CPUs on which we
739	# know it does work, and have the script just fail on other
740	# cpu types and update it when such a failure occurs.
741	#
742	alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1)
743		ac_cv_lbl_unaligned_fail=yes
744		;;
745
746	*)
747		cat >conftest.c <<EOF
748#		include <sys/types.h>
749#		include <sys/wait.h>
750#		include <stdio.h>
751		unsigned char a[[5]] = { 1, 2, 3, 4, 5 };
752		main() {
753		unsigned int i;
754		pid_t pid;
755		int status;
756		/* avoid "core dumped" message */
757		pid = fork();
758		if (pid <  0)
759			exit(2);
760		if (pid > 0) {
761			/* parent */
762			pid = waitpid(pid, &status, 0);
763			if (pid < 0)
764				exit(3);
765			exit(!WIFEXITED(status));
766		}
767		/* child */
768		i = *(unsigned int *)&a[[1]];
769		printf("%d\n", i);
770		exit(0);
771		}
772EOF
773		${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \
774		    conftest.c $LIBS >/dev/null 2>&1
775		if test ! -x conftest ; then
776			dnl failed to compile for some reason
777			ac_cv_lbl_unaligned_fail=yes
778		else
779			./conftest >conftest.out
780			if test ! -s conftest.out ; then
781				ac_cv_lbl_unaligned_fail=yes
782			else
783				ac_cv_lbl_unaligned_fail=no
784			fi
785		fi
786		rm -f -r conftest* core core.conftest
787		;;
788	esac])
789    AC_MSG_RESULT($ac_cv_lbl_unaligned_fail)
790    if test $ac_cv_lbl_unaligned_fail = yes ; then
791	    AC_DEFINE(LBL_ALIGN,1,[if unaligned access fails])
792    fi])
793
794dnl
795dnl If using gcc and the file .devel exists:
796dnl	Compile with -g (if supported) and -Wall
797dnl	If using gcc 2 or later, do extra prototype checking and some other
798dnl	checks
799dnl	If an os prototype include exists, symlink os-proto.h to it
800dnl
801dnl usage:
802dnl
803dnl	AC_LBL_DEVEL(copt)
804dnl
805dnl results:
806dnl
807dnl	$1 (copt appended)
808dnl	HAVE_OS_PROTO_H (defined)
809dnl	os-proto.h (symlinked)
810dnl
811AC_DEFUN(AC_LBL_DEVEL,
812    [rm -f os-proto.h
813    if test "${LBL_CFLAGS+set}" = set; then
814	    $1="$$1 ${LBL_CFLAGS}"
815    fi
816    if test -f .devel ; then
817	    if test "$GCC" = yes ; then
818		    if test "${LBL_CFLAGS+set}" != set; then
819			    if test "$ac_cv_prog_cc_g" = yes ; then
820				    $1="-g $$1"
821			    fi
822			    $1="$$1 -Wall"
823			    if test $ac_cv_lbl_gcc_vers -gt 1 ; then
824				    $1="$$1 -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wpointer-arith -W"
825			    fi
826		    fi
827	    else
828		    case "$host_os" in
829
830		    irix6*)
831			    V_CCOPT="$V_CCOPT -n32"
832			    ;;
833
834		    *)
835			    ;;
836		    esac
837	    fi
838	    os=`echo $host_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'`
839	    name="lbl/os-$os.h"
840	    if test -f $name ; then
841		    ln -s $name os-proto.h
842		    AC_DEFINE(HAVE_OS_PROTO_H, 1,
843			[if there's an os_proto.h for this platform, to use additional prototypes])
844	    else
845		    AC_MSG_WARN(can't find $name)
846	    fi
847    fi])
848
849dnl
850dnl Improved version of AC_CHECK_LIB
851dnl
852dnl Thanks to John Hawkinson (jhawk@mit.edu)
853dnl
854dnl usage:
855dnl
856dnl	AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [,
857dnl	    ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
858dnl
859dnl results:
860dnl
861dnl	LIBS
862dnl
863dnl XXX - "AC_LBL_LIBRARY_NET" was redone to use "AC_SEARCH_LIBS"
864dnl rather than "AC_LBL_CHECK_LIB", so this isn't used any more.
865dnl We keep it around for reference purposes in case it's ever
866dnl useful in the future.
867dnl
868
869define(AC_LBL_CHECK_LIB,
870[AC_MSG_CHECKING([for $2 in -l$1])
871dnl Use a cache variable name containing the library, function
872dnl name, and extra libraries to link with, because the test really is
873dnl for library $1 defining function $2, when linked with potinal
874dnl library $5, not just for library $1.  Separate tests with the same
875dnl $1 and different $2's or $5's may have different results.
876ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'`
877AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var,
878[ac_save_LIBS="$LIBS"
879LIBS="-l$1 $5 $LIBS"
880AC_TRY_LINK(dnl
881ifelse([$2], [main], , dnl Avoid conflicting decl of main.
882[/* Override any gcc2 internal prototype to avoid an error.  */
883]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
884extern "C"
885#endif
886])dnl
887[/* We use char because int might match the return type of a gcc2
888    builtin and then its argument prototype would still apply.  */
889char $2();
890]),
891	    [$2()],
892	    eval "ac_cv_lbl_lib_$ac_lib_var=yes",
893	    eval "ac_cv_lbl_lib_$ac_lib_var=no")
894LIBS="$ac_save_LIBS"
895])dnl
896if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then
897  AC_MSG_RESULT(yes)
898  ifelse([$3], ,
899[changequote(, )dnl
900  ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
901    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
902changequote([, ])dnl
903  AC_DEFINE_UNQUOTED($ac_tr_lib)
904  LIBS="-l$1 $LIBS"
905], [$3])
906else
907  AC_MSG_RESULT(no)
908ifelse([$4], , , [$4
909])dnl
910fi
911])
912
913dnl
914dnl AC_LBL_LIBRARY_NET
915dnl
916dnl This test is for network applications that need socket() and
917dnl gethostbyname() -ish functions.  Under Solaris, those applications
918dnl need to link with "-lsocket -lnsl".  Under IRIX, they need to link
919dnl with "-lnsl" but should *not* link with "-lsocket" because
920dnl libsocket.a breaks a number of things (for instance:
921dnl gethostbyname() under IRIX 5.2, and snoop sockets under most
922dnl versions of IRIX).
923dnl
924dnl Unfortunately, many application developers are not aware of this,
925dnl and mistakenly write tests that cause -lsocket to be used under
926dnl IRIX.  It is also easy to write tests that cause -lnsl to be used
927dnl under operating systems where neither are necessary (or useful),
928dnl such as SunOS 4.1.4, which uses -lnsl for TLI.
929dnl
930dnl This test exists so that every application developer does not test
931dnl this in a different, and subtly broken fashion.
932
933dnl It has been argued that this test should be broken up into two
934dnl seperate tests, one for the resolver libraries, and one for the
935dnl libraries necessary for using Sockets API. Unfortunately, the two
936dnl are carefully intertwined and allowing the autoconf user to use
937dnl them independantly potentially results in unfortunate ordering
938dnl dependancies -- as such, such component macros would have to
939dnl carefully use indirection and be aware if the other components were
940dnl executed. Since other autoconf macros do not go to this trouble,
941dnl and almost no applications use sockets without the resolver, this
942dnl complexity has not been implemented.
943dnl
944dnl The check for libresolv is in case you are attempting to link
945dnl statically and happen to have a libresolv.a lying around (and no
946dnl libnsl.a).
947dnl
948AC_DEFUN(AC_LBL_LIBRARY_NET, [
949    # Most operating systems have gethostbyname() in the default searched
950    # libraries (i.e. libc):
951    # Some OSes (eg. Solaris) place it in libnsl
952    # Some strange OSes (SINIX) have it in libsocket:
953    AC_SEARCH_LIBS(gethostbyname, nsl socket resolv)
954    # Unfortunately libsocket sometimes depends on libnsl and
955    # AC_SEARCH_LIBS isn't up to the task of handling dependencies like this.
956    if test "$ac_cv_search_gethostbyname" = "no"
957    then
958	AC_CHECK_LIB(socket, gethostbyname,
959                     LIBS="-lsocket -lnsl $LIBS", , -lnsl)
960    fi
961    AC_SEARCH_LIBS(socket, socket, ,
962	AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))
963    # DLPI needs putmsg under HPUX so test for -lstr while we're at it
964    AC_SEARCH_LIBS(putmsg, str)
965    ])
966
967dnl Copyright (c) 1999 WIDE Project. All rights reserved.
968dnl
969dnl Redistribution and use in source and binary forms, with or without
970dnl modification, are permitted provided that the following conditions
971dnl are met:
972dnl 1. Redistributions of source code must retain the above copyright
973dnl    notice, this list of conditions and the following disclaimer.
974dnl 2. Redistributions in binary form must reproduce the above copyright
975dnl    notice, this list of conditions and the following disclaimer in the
976dnl    documentation and/or other materials provided with the distribution.
977dnl 3. Neither the name of the project nor the names of its contributors
978dnl    may be used to endorse or promote products derived from this software
979dnl    without specific prior written permission.
980dnl 
981dnl THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
982dnl ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
983dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
984dnl ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
985dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
986dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
987dnl OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
988dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
989dnl LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
990dnl OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
991dnl SUCH DAMAGE.
992
993dnl
994dnl Checks to see if AF_INET6 is defined
995AC_DEFUN(AC_CHECK_AF_INET6, [
996	AC_MSG_CHECKING(for AF_INET6)
997	AC_CACHE_VAL($1,
998	AC_TRY_COMPILE([
999#		include <sys/types.h>
1000#		include <sys/socket.h>],
1001		[int a = AF_INET6],
1002		$1=yes,
1003		$1=no))
1004	AC_MSG_RESULT($$1)
1005		if test $$1 = yes ; then
1006			AC_DEFINE(HAVE_AF_INET6)
1007	fi
1008])
1009
1010dnl
1011dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member
1012dnl borrowed from LBL libpcap
1013AC_DEFUN(AC_CHECK_SA_LEN, [
1014	AC_MSG_CHECKING(if sockaddr struct has sa_len member)
1015	AC_CACHE_VAL($1,
1016	AC_TRY_COMPILE([
1017#		include <sys/types.h>
1018#		include <sys/socket.h>],
1019		[u_int i = sizeof(((struct sockaddr *)0)->sa_len)],
1020		$1=yes,
1021		$1=no))
1022	AC_MSG_RESULT($$1)
1023		if test $$1 = yes ; then
1024			AC_DEFINE(HAVE_SOCKADDR_SA_LEN)
1025	fi
1026])
1027
1028dnl
1029dnl Checks for addrinfo structure
1030AC_DEFUN(AC_STRUCT_ADDRINFO, [
1031	AC_MSG_CHECKING(for addrinfo)
1032	AC_CACHE_VAL($1,
1033	AC_TRY_COMPILE([
1034#		include <netdb.h>],
1035		[struct addrinfo a],
1036		$1=yes,
1037		$1=no))
1038	AC_MSG_RESULT($$1)
1039	if test $$1 = yes; then
1040		AC_DEFINE(HAVE_ADDRINFO)
1041	else
1042		AC_DEFINE(NEED_ADDRINFO_H)
1043	fi
1044])
1045
1046dnl
1047dnl Checks for NI_MAXSERV
1048AC_DEFUN(AC_NI_MAXSERV, [
1049	AC_MSG_CHECKING(for NI_MAXSERV)
1050	AC_CACHE_VAL($1,
1051	AC_EGREP_CPP(yes, [#include <netdb.h>
1052#ifdef NI_MAXSERV
1053yes
1054#endif],
1055		$1=yes,
1056		$1=no))
1057	AC_MSG_RESULT($$1)
1058	if test $$1 != yes; then
1059		AC_DEFINE(NEED_ADDRINFO_H)
1060	fi
1061])
1062
1063dnl
1064dnl Checks for NI_NAMEREQD
1065AC_DEFUN(AC_NI_NAMEREQD, [
1066	AC_MSG_CHECKING(for NI_NAMEREQD)
1067	AC_CACHE_VAL($1,
1068	AC_EGREP_CPP(yes, [#include <netdb.h>
1069#ifdef NI_NOFQDN
1070yes
1071#endif],
1072		$1=yes,
1073		$1=no))
1074	AC_MSG_RESULT($$1)
1075	if test $$1 != yes; then
1076		AC_DEFINE(NEED_ADDRINFO_H)
1077	fi
1078])
1079
1080dnl
1081dnl Checks for sockaddr_storage structure
1082AC_DEFUN(AC_STRUCT_SA_STORAGE, [
1083	AC_MSG_CHECKING(for sockaddr_storage)
1084	AC_CACHE_VAL($1,
1085	AC_TRY_COMPILE([
1086#		include <sys/types.h>
1087#		include <sys/socket.h>],
1088		[struct sockaddr_storage s],
1089		$1=yes,
1090		$1=no))
1091	AC_MSG_RESULT($$1)
1092	if test $$1 = yes; then
1093		AC_DEFINE(HAVE_SOCKADDR_STORAGE)
1094	fi
1095])
1096
1097dnl
1098dnl check for h_errno
1099AC_DEFUN(AC_VAR_H_ERRNO, [
1100	AC_MSG_CHECKING(for h_errno)
1101	AC_CACHE_VAL(ac_cv_var_h_errno,
1102	AC_TRY_COMPILE([
1103#		include <sys/types.h>
1104#		include <netdb.h>],
1105		[int foo = h_errno;],
1106		ac_cv_var_h_errno=yes,
1107		ac_cv_var_h_errno=no))
1108	AC_MSG_RESULT($ac_cv_var_h_errno)
1109	if test "$ac_cv_var_h_errno" = "yes"; then
1110		AC_DEFINE(HAVE_H_ERRNO)
1111	fi
1112])
1113
1114dnl
1115dnl Test for __attribute__
1116dnl
1117
1118AC_DEFUN(AC_C___ATTRIBUTE__, [
1119AC_MSG_CHECKING(for __attribute__)
1120AC_CACHE_VAL(ac_cv___attribute__, [
1121AC_COMPILE_IFELSE([
1122  AC_LANG_SOURCE([[
1123#include <stdlib.h>
1124
1125static void foo(void) __attribute__ ((noreturn));
1126
1127static void
1128foo(void)
1129{
1130  exit(1);
1131}
1132
1133int
1134main(int argc, char **argv)
1135{
1136  foo();
1137}
1138  ]])],
1139ac_cv___attribute__=yes,
1140ac_cv___attribute__=no)])
1141if test "$ac_cv___attribute__" = "yes"; then
1142  AC_DEFINE(HAVE___ATTRIBUTE__, 1, [define if your compiler has __attribute__])
1143  V_DEFS="$V_DEFS -D_U_=\"__attribute__((unused))\""
1144else
1145  V_DEFS="$V_DEFS -D_U_=\"\""
1146fi
1147AC_MSG_RESULT($ac_cv___attribute__)
1148])
1149
1150
1151dnl
1152dnl Test whether __attribute__((format)) can be applied to function
1153dnl pointers
1154dnl
1155
1156AC_DEFUN(AC_C___ATTRIBUTE___FORMAT_FUNCTION_POINTER, [
1157AC_MSG_CHECKING([whether __attribute__((format)) can be applied to function pointers])
1158AC_CACHE_VAL(ac_cv___attribute___format_function_pointer, [
1159AC_COMPILE_IFELSE([
1160  AC_LANG_SOURCE([[
1161#include <stdlib.h>
1162
1163extern int (*foo)(const char *fmt, ...)
1164		  __attribute__ ((format (printf, 1, 2)));
1165
1166int
1167main(int argc, char **argv)
1168{
1169  (*foo)("%s", "test");
1170}
1171  ]])],
1172ac_cv___attribute___format_function_pointer=yes,
1173ac_cv___attribute___format_function_pointer=no)])
1174if test "$ac_cv___attribute___format_function_pointer" = "yes"; then
1175  AC_DEFINE(__ATTRIBUTE___FORMAT_OK_FOR_FUNCTION_POINTERS, 1,
1176    [define if your compiler allows __attribute__((format)) to be applied to function pointers])
1177fi
1178AC_MSG_RESULT($ac_cv___attribute___format_function_pointer)
1179])
1180
1181AC_DEFUN(AC_LBL_SSLEAY,
1182    [
1183	#
1184	# Find the last component of $libdir; it's not necessarily
1185	# "lib" - it might be "lib64" on, for example, x86-64
1186	# Linux systems.
1187	#
1188	# We assume the directory in which we're looking for
1189	# libcrypto has a subdirectory with that as its name.
1190	#
1191	tmplib=`echo "$libdir" | sed 's,.*/,,'`
1192
1193	#
1194	# XXX - is there a better way to check if a given library is
1195	# in a given directory than checking each of the possible
1196	# shared library suffixes?
1197	#
1198	# Are there any other suffixes we need to look for?  Do we
1199	# have to worry about ".so.{version}"?
1200	#
1201	# Or should we just look for "libcrypto.*"?
1202	#
1203	if test -d "$1/$tmplib" -a \( -f "$1/$tmplib/libcrypto.a" -o \
1204		          	    -f "$1/$tmplib/libcrypto.so" -o \
1205		          	    -f "$1/$tmplib/libcrypto.sl" -o \
1206			  	    -f "$1/$tmplib/libcrypto.dylib" \); then
1207		ac_cv_ssleay_path="$1"
1208	fi
1209
1210	#
1211	# Make sure we have the headers as well.
1212	#
1213	if test -d "$1/include/openssl" -a -f "$1/include/openssl/des.h"; then
1214		incdir="-I$1/include"
1215	fi
1216])
1217