Annotation of embedaddon/thttpd/aclocal.m4, revision 1.1

1.1     ! misho       1: dnl
        !             2: dnl Improved version of AC_CHECK_LIB
        !             3: dnl
        !             4: dnl Thanks to John Hawkinson (jhawk@mit.edu)
        !             5: dnl
        !             6: dnl usage:
        !             7: dnl
        !             8: dnl    AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [,
        !             9: dnl        ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
        !            10: dnl
        !            11: dnl results:
        !            12: dnl
        !            13: dnl    LIBS
        !            14: dnl
        !            15: 
        !            16: define(AC_LBL_CHECK_LIB,
        !            17: [AC_MSG_CHECKING([for $2 in -l$1])
        !            18: dnl Use a cache variable name containing both the library and function name,
        !            19: dnl because the test really is for library $1 defining function $2, not
        !            20: dnl just for library $1.  Separate tests with the same $1 and different $2's
        !            21: dnl may have different results.
        !            22: ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'`
        !            23: AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var,
        !            24: [ac_save_LIBS="$LIBS"
        !            25: LIBS="-l$1 $5 $LIBS"
        !            26: AC_TRY_LINK(dnl
        !            27: ifelse([$2], [main], , dnl Avoid conflicting decl of main.
        !            28: [/* Override any gcc2 internal prototype to avoid an error.  */
        !            29: ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
        !            30: extern "C"
        !            31: #endif
        !            32: ])dnl
        !            33: [/* We use char because int might match the return type of a gcc2
        !            34:     builtin and then its argument prototype would still apply.  */
        !            35: char $2();
        !            36: ]),
        !            37:            [$2()],
        !            38:            eval "ac_cv_lbl_lib_$ac_lib_var=yes",
        !            39:            eval "ac_cv_lbl_lib_$ac_lib_var=no")
        !            40: LIBS="$ac_save_LIBS"
        !            41: ])dnl
        !            42: if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then
        !            43:   AC_MSG_RESULT(yes)
        !            44:   ifelse([$3], ,
        !            45: [changequote(, )dnl
        !            46:   ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
        !            47:     -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
        !            48: changequote([, ])dnl
        !            49:   AC_DEFINE_UNQUOTED($ac_tr_lib)
        !            50:   LIBS="-l$1 $LIBS"
        !            51: ], [$3])
        !            52: else
        !            53:   AC_MSG_RESULT(no)
        !            54: ifelse([$4], , , [$4
        !            55: ])dnl
        !            56: fi
        !            57: ])
        !            58: 
        !            59: dnl
        !            60: dnl AC_LBL_LIBRARY_NET
        !            61: dnl
        !            62: dnl This test is for network applications that need socket() and
        !            63: dnl gethostbyname() -ish functions.  Under Solaris, those applications
        !            64: dnl need to link with "-lsocket -lnsl".  Under IRIX, they need to link
        !            65: dnl with "-lnsl" but should *not* link with "-lsocket" because
        !            66: dnl libsocket.a breaks a number of things (for instance:
        !            67: dnl gethostbyname() under IRIX 5.2, and snoop sockets under most
        !            68: dnl versions of IRIX).
        !            69: dnl
        !            70: dnl Unfortunately, many application developers are not aware of this,
        !            71: dnl and mistakenly write tests that cause -lsocket to be used under
        !            72: dnl IRIX.  It is also easy to write tests that cause -lnsl to be used
        !            73: dnl under operating systems where neither are necessary (or useful),
        !            74: dnl such as SunOS 4.1.4, which uses -lnsl for TLI.
        !            75: dnl
        !            76: dnl This test exists so that every application developer does not test
        !            77: dnl this in a different, and subtly broken fashion.
        !            78: 
        !            79: dnl It has been argued that this test should be broken up into two
        !            80: dnl seperate tests, one for the resolver libraries, and one for the
        !            81: dnl libraries necessary for using Sockets API. Unfortunately, the two
        !            82: dnl are carefully intertwined and allowing the autoconf user to use
        !            83: dnl them independantly potentially results in unfortunate ordering
        !            84: dnl dependancies -- as such, such component macros would have to
        !            85: dnl carefully use indirection and be aware if the other components were
        !            86: dnl executed. Since other autoconf macros do not go to this trouble,
        !            87: dnl and almost no applications use sockets without the resolver, this
        !            88: dnl complexity has not been implemented.
        !            89: dnl
        !            90: dnl The check for libresolv is in case you are attempting to link
        !            91: dnl statically and happen to have a libresolv.a lying around (and no
        !            92: dnl libnsl.a).
        !            93: dnl
        !            94: AC_DEFUN(AC_LBL_LIBRARY_NET, [
        !            95:     # Most operating systems have gethostbyname() in the default searched
        !            96:     # libraries (i.e. libc):
        !            97:     AC_CHECK_FUNC(gethostbyname, ,
        !            98:        # Some OSes (eg. Solaris) place it in libnsl:
        !            99:        AC_LBL_CHECK_LIB(nsl, gethostbyname, , 
        !           100:            # Some strange OSes (SINIX) have it in libsocket:
        !           101:            AC_LBL_CHECK_LIB(socket, gethostbyname, ,
        !           102:                # Unfortunately libsocket sometimes depends on libnsl.
        !           103:                # AC_CHECK_LIB's API is essentially broken so the
        !           104:                # following ugliness is necessary:
        !           105:                AC_LBL_CHECK_LIB(socket, gethostbyname,
        !           106:                    LIBS="-lsocket -lnsl $LIBS",
        !           107:                    AC_CHECK_LIB(resolv, gethostbyname),
        !           108:                    -lnsl))))
        !           109:     AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, ,
        !           110:        AC_LBL_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", ,
        !           111:            -lnsl)))
        !           112:     # DLPI needs putmsg under HPUX so test for -lstr while we're at it
        !           113:     AC_CHECK_LIB(str, putmsg)
        !           114:     ])
        !           115: 
        !           116: dnl
        !           117: dnl Checks to see if struct tm has the BSD tm_gmtoff member
        !           118: dnl
        !           119: dnl usage:
        !           120: dnl
        !           121: dnl    AC_ACME_TM_GMTOFF
        !           122: dnl
        !           123: dnl results:
        !           124: dnl
        !           125: dnl    HAVE_TM_GMTOFF (defined)
        !           126: dnl
        !           127: AC_DEFUN(AC_ACME_TM_GMTOFF,
        !           128:     [AC_MSG_CHECKING(if struct tm has tm_gmtoff member)
        !           129:     AC_CACHE_VAL(ac_cv_acme_tm_has_tm_gmtoff,
        !           130:        AC_TRY_COMPILE([
        !           131: #      include <sys/types.h>
        !           132: #      include <time.h>],
        !           133:        [u_int i = sizeof(((struct tm *)0)->tm_gmtoff)],
        !           134:        ac_cv_acme_tm_has_tm_gmtoff=yes,
        !           135:        ac_cv_acme_tm_has_tm_gmtoff=no))
        !           136:     AC_MSG_RESULT($ac_cv_acme_tm_has_tm_gmtoff)
        !           137:     if test $ac_cv_acme_tm_has_tm_gmtoff = yes ; then
        !           138:            AC_DEFINE(HAVE_TM_GMTOFF)
        !           139:     fi])
        !           140: 
        !           141: dnl
        !           142: dnl Checks to see if int64_t exists
        !           143: dnl
        !           144: dnl usage:
        !           145: dnl
        !           146: dnl    AC_ACME_INT64T
        !           147: dnl
        !           148: dnl results:
        !           149: dnl
        !           150: dnl    HAVE_INT64T (defined)
        !           151: dnl
        !           152: AC_DEFUN(AC_ACME_INT64T,
        !           153:     [AC_MSG_CHECKING(if int64_t exists)
        !           154:     AC_CACHE_VAL(ac_cv_acme_int64_t,
        !           155:        AC_TRY_COMPILE([
        !           156: #      include <sys/types.h>],
        !           157:        [int64_t i64],
        !           158:        ac_cv_acme_int64_t=yes,
        !           159:        ac_cv_acme_int64_t=no))
        !           160:     AC_MSG_RESULT($ac_cv_acme_int64_t)
        !           161:     if test $ac_cv_acme_int64_t = yes ; then
        !           162:            AC_DEFINE(HAVE_INT64T)
        !           163:     fi])
        !           164: 
        !           165: dnl
        !           166: dnl Checks to see if socklen_t exists
        !           167: dnl
        !           168: dnl usage:
        !           169: dnl
        !           170: dnl    AC_ACME_SOCKLENT
        !           171: dnl
        !           172: dnl results:
        !           173: dnl
        !           174: dnl    HAVE_SOCKLENT (defined)
        !           175: dnl
        !           176: AC_DEFUN(AC_ACME_SOCKLENT,
        !           177:     [AC_MSG_CHECKING(if socklen_t exists)
        !           178:     AC_CACHE_VAL(ac_cv_acme_socklen_t,
        !           179:        AC_TRY_COMPILE([
        !           180: #      include <sys/types.h>
        !           181: #      include <sys/socket.h>],
        !           182:        [socklen_t slen],
        !           183:        ac_cv_acme_socklen_t=yes,
        !           184:        ac_cv_acme_socklen_t=no))
        !           185:     AC_MSG_RESULT($ac_cv_acme_socklen_t)
        !           186:     if test $ac_cv_acme_socklen_t = yes ; then
        !           187:            AC_DEFINE(HAVE_SOCKLENT)
        !           188:     fi])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>