Annotation of embedaddon/mtr/configure.ac, revision 1.1.1.1

1.1       misho       1: AC_INIT([mtr], [0.85])
                      2: AC_CONFIG_SRCDIR([mtr.c])
                      3: AM_INIT_AUTOMAKE([foreign])
                      4: 
                      5: AC_CONFIG_FILES([version.h.tmp:version.h.in])
                      6: 
                      7: AC_SUBST(GTK_OBJ)
                      8: AC_SUBST(CURSES_OBJ)
                      9: 
                     10: GTK_OBJ=gtk.o
                     11: CURSES_OBJ=curses.o
                     12: 
                     13: AC_PROG_CC
                     14: 
                     15: AC_CHECK_SIZEOF(unsigned char, 1)
                     16: AC_CHECK_SIZEOF(unsigned short, 2)
                     17: AC_CHECK_SIZEOF(unsigned int, 4)
                     18: AC_CHECK_SIZEOF(unsigned long, 4)
                     19: 
                     20: AC_CHECK_HEADERS(ncurses.h ncurses/curses.h curses.h cursesX.h sys/types.h fcntl.h)
                     21: AC_CHECK_HEADERS(socket.h sys/socket.h sys/xti.h arpa/nameser_compat.h)
                     22: 
                     23: # We don't refer to any symbols in termcap, but -lcurses on SunOS does.
                     24: # We have to trust the linker not to mess things up... (It should not
                     25: # pull in anything if we don't refer to anything in the lib). 
                     26: AC_CHECK_LIB(termcap, tgetent)
                     27: AC_CHECK_LIB(tinfo, tgetent)
                     28: 
                     29: AC_CHECK_FUNC(initscr, , 
                     30:   AC_CHECK_LIB(ncurses, initscr, , 
                     31:     AC_CHECK_LIB(curses, initscr, , 
                     32:       AC_CHECK_LIB(cursesX, initscr, , 
                     33:        AC_MSG_WARN(Building without curses display support)
                     34:        AC_DEFINE(NO_CURSES, 1, Define if you don't have the curses libraries available.)
                     35:        CURSES_OBJ=))))
                     36: 
                     37: AC_CHECK_FUNCS(attron fcntl)
                     38: 
                     39: AC_CHECK_LIB(m, floor, , AC_MSG_ERROR(No math library found))
                     40: 
                     41: AC_ARG_WITH(gtk,
                     42: [  --without-gtk           Do not try to use GTK+ at all],
                     43: WANTS_GTK=$withval, WANTS_GTK=yes)
                     44: 
                     45: AC_ARG_WITH(glib,
                     46: [  --without-glib          Do not try to use glib at all],
                     47: WANTS_GLIB=$withval, WANTS_GLIB=yes)
                     48: 
                     49: AC_ARG_WITH([ipinfo],
                     50: [  --without-ipinfo        Do not try to use ipinfo lookup at all],
                     51: [case "${withval}" in
                     52:   yes) ipinfo=true ;;
                     53:   no)  ipinfo=false ;;
                     54:   *) AC_MSG_ERROR([bad value ${withval} for --with-ipinfo]) ;;
                     55: esac],[ipinfo=true])
                     56: AM_CONDITIONAL([IPINFO], [test x$ipinfo = xtrue])
                     57: if test "x$ipinfo" = "xfalse"; then
                     58:        AC_DEFINE([NO_IPINFO], [1], [Define to disable ipinfo lookup])
                     59: fi
                     60: 
                     61: AC_ARG_ENABLE(ipv6,
                     62: [  --disable-ipv6          Do not enable IPv6],
                     63: WANTS_IPV6=$enableval, WANTS_IPV6=yes)
                     64:    
                     65: if test "x$WANTS_GTK" = "xyes"; then
                     66:         AM_PATH_GTK_2_0(2.6.0, CFLAGS="$CFLAGS $GTK_CFLAGS"
                     67:                            LIBS="$LIBS $GTK_LIBS -lm",
                     68:                            AC_MSG_WARN(Building without GTK2 display support)
                     69:                    AC_DEFINE(NO_GTK, 1, [Define if you don't have the GTK+ libraries available.])
                     70:                            GTK_OBJ="")
                     71: else
                     72:        AC_DEFINE(NO_GTK)
                     73:        GTK_OBJ=""
                     74:        if test "x$WANTS_GLIB" = "xyes"; then
                     75:                PKG_CHECK_MODULES([GLIB], [glib-2.0])
                     76:        else
                     77:                AC_DEFINE(NO_GLIB, 1, [Define if you don't have the glib libraries available.])
                     78:        fi
                     79: fi
                     80: 
                     81: AC_CHECK_FUNC(socket, , 
                     82:   AC_CHECK_LIB(socket, socket, , AC_MSG_ERROR(No socket library found)))
                     83: 
                     84: AC_CHECK_FUNC(gethostbyname, ,
                     85:   AC_CHECK_LIB(nsl, gethostbyname, , AC_MSG_ERROR(No nameservice library found)))
                     86: 
                     87: #AC_CHECK_FUNC(res_init, , 
                     88: #  AC_CHECK_LIB(bind, res_init, , 
                     89: #   AC_CHECK_LIB(resolv, res_init, , AC_MSG_ERROR(No resolver library found))))
                     90: 
                     91: AC_CHECK_FUNCS(seteuid)
                     92: #  AC_CHECK_FUNC(setuid, , AC_MSG_ERROR (I Need either seteuid or setuid))
                     93: 
                     94: #AC_CHECK_FUNC(res_mkquery, ,
                     95: #  AC_CHECK_LIB(bind, res_mkquery, ,
                     96: #   AC_CHECK_LIB(resolv, res_mkquery, ,
                     97: #     AC_CHECK_LIB(resolv, __res_mkquery, , AC_MSG_ERROR(No resolver library found)))))
                     98: 
                     99: # See if a library is needed for res_mkquery and if so put it in RESOLV_LIBS
                    100: RESOLV_LIBS=
                    101: AC_SUBST(RESOLV_LIBS)
                    102: AC_DEFUN([LIBRESOLVTEST_SRC], [
                    103: AC_LANG_PROGRAM([[
                    104: #include <netinet/in.h>
                    105: #include <resolv.h>
                    106: ]], [[
                    107: int (*res_mkquery_func)(int,...) = (int (*)(int,...))res_mkquery;
                    108: (void)(*res_mkquery_func)(0);
                    109: ]])])
                    110: AC_MSG_CHECKING([whether library required for res_mkquery])
                    111: RESOLV_LIB_NONE=
                    112: AC_LINK_IFELSE([LIBRESOLVTEST_SRC],
                    113:        [AC_MSG_RESULT([no])
                    114:        RESOLV_LIB_NONE=yes],
                    115:        [AC_MSG_RESULT([yes])])
                    116: if test "x$RESOLV_LIB_NONE" = "x"; then
                    117:        AC_MSG_CHECKING([for res_mkquery in -lbind])
                    118:        STASH_LIBS="$LIBS"
                    119:        LIBS="$STASH_LIBS -lbind"
                    120:        AC_LINK_IFELSE([LIBRESOLVTEST_SRC],
                    121:                [AC_MSG_RESULT([yes])
                    122:                RESOLV_LIBS=-lbind],
                    123:                [AC_MSG_RESULT([no])])
                    124:        if test "x$RESOLV_LIBS" = "x"; then
                    125:                AC_MSG_CHECKING([for res_mkquery in -lresolv])
                    126:                LIBS="$STASH_LIBS -lresolv"
                    127:                AC_LINK_IFELSE([LIBRESOLVTEST_SRC],
                    128:                        [AC_MSG_RESULT([yes])
                    129:                        RESOLV_LIBS=-lresolv],
                    130:                        [AC_MSG_RESULT([no])
                    131:                         AC_MSG_ERROR(No resolver library found)])
                    132:        fi
                    133:        LIBS="$STASH_LIBS"
                    134: fi
                    135: 
                    136: AC_CHECK_FUNC(herror, , AC_DEFINE(NO_HERROR, 1, [Define if you don't have the herror() function available.]))
                    137: AC_CHECK_FUNC(strerror, , AC_DEFINE(NO_STRERROR, 1, [Define if you don't have the strerror() function available.]))
                    138: 
                    139: USES_IPV6=
                    140: AC_CHECK_FUNC(getaddrinfo,
                    141: [if test "$WANTS_IPV6" = "yes"; then
                    142:        AC_DEFINE([ENABLE_IPV6], [], [Define to enable IPv6])
                    143:        USES_IPV6=yes
                    144: fi])
                    145: 
                    146: AC_DEFUN([NEED_RES_STATE_EXT_TEST_SRC], [
                    147: AC_LANG_PROGRAM([[
                    148: #include <netinet/in.h>
                    149: #include <resolv.h>
                    150: #ifdef __GLIBC__
                    151: #define RESEXTIN6(r,i) (*(r._u._ext.nsaddrs[i]))
                    152: #else
                    153: #define RESEXTIN6(r,i) (r._u._ext.ext->nsaddrs[i].sin6)
                    154: #endif
                    155: ]], [[
                    156: struct __res_state res;
                    157: return RESEXTIN6(res,0).sin6_addr.s6_addr[0];
                    158: ]])])
                    159: AC_DEFUN([DEFINE_RES_STATE_EXT_TEST_SRC], [
                    160: AC_LANG_PROGRAM([[
                    161: #include <netinet/in.h>
                    162: #include <resolv.h>
                    163: #ifdef __GLIBC__
                    164: #define RESEXTIN6(r,i) (*(r._u._ext.nsaddrs[i]))
                    165: #else
                    166: #define RESEXTIN6(r,i) (r._u._ext.ext->nsaddrs[i].sin6)
                    167: struct __res_state_ext {
                    168:        union res_sockaddr_union nsaddrs[MAXNS];
                    169:        struct sort_list {
                    170:                int     af;
                    171:                union {
                    172:                        struct in_addr  ina;
                    173:                        struct in6_addr in6a;
                    174:                } addr, mask;
                    175:        } sort_list[MAXRESOLVSORT];
                    176:        char nsuffix[64];
                    177:        char nsuffix2[64];
                    178: };
                    179: #endif
                    180: ]], [[
                    181: struct __res_state res;
                    182: return RESEXTIN6(res,0).sin6_addr.s6_addr[0];
                    183: ]])])
                    184: if test "x$USES_IPV6" = "xyes"; then
                    185:        AC_MSG_CHECKING([whether __res_state_ext needs to be defined])
                    186:        AC_COMPILE_IFELSE([NEED_RES_STATE_EXT_TEST_SRC],
                    187:                [AC_MSG_RESULT([no])],
                    188:                [AC_MSG_RESULT([yes])
                    189:                AC_MSG_CHECKING([whether provided __res_state_ext definition can be compiled])
                    190:                AC_COMPILE_IFELSE([DEFINE_RES_STATE_EXT_TEST_SRC],
                    191:                        [AC_MSG_RESULT([yes])
                    192:                        AC_DEFINE(NEED_RES_STATE_EXT, 1, [Define if struct __res_state_ext needs to be defined.])],
                    193:                        [AC_MSG_RESULT([no])
                    194:                        AC_MSG_ERROR(Need definition for struct __res_state_ext but unable to define it.)])])
                    195: fi
                    196: 
                    197: AC_CHECK_DECLS(errno, , , [[
                    198: #include <errno.h>
                    199: #include <sys/errno.h>
                    200: ]] )
                    201: 
                    202: AC_CHECK_TYPE(socklen_t, AC_DEFINE([HAVE_SOCKLEN_T], [], [Define if your system has socklen_t]) , , [[
                    203: #include <netinet/in.h>
                    204: #ifdef HAVE_SOCKET_H
                    205: #include <socket.h>
                    206: #endif
                    207: #ifdef HAVE_SYS_SOCKET_H
                    208: #include <sys/socket.h>
                    209: #endif
                    210: ]])
                    211: 
                    212: AC_CHECK_TYPE(struct in_addr, AC_DEFINE([HAVE_STRUCT_INADDR], [], [Define if you have struct in_addr]), , [[
                    213: #include <netinet/in.h>
                    214: ]])
                    215: 
                    216: dnl Add C flags to display more warnings
                    217: AC_MSG_CHECKING(for C flags to get more warnings)
                    218: ac_save_CFLAGS="$CFLAGS"
                    219: if test "x$ac_cv_c_compiler_gnu" = "xyes" ; then
                    220:   dnl gcc is the easiest C compiler
                    221:   warning_CFLAGS="-Wall"
                    222:   # Check if compiler supports -Wno-pointer-sign and add it if supports
                    223:   CFLAGS_saved="$CFLAGS"
                    224:   CFLAGS="$CFLAGS -Wno-pointer-sign"
                    225:   AC_COMPILE_IFELSE([ AC_LANG_SOURCE([[ int foo; ]])],
                    226:                   [ warning_CFLAGS="${warning_CFLAGS} -Wno-pointer-sign" ],)
                    227:   CFLAGS="$CFLAGS_saved"
                    228: else
                    229:   dnl Vendor supplied C compilers are a bit tricky
                    230:   case "$host_os" in
                    231:     dnl SGI IRIX with the MipsPRO C compiler
                    232:     irix*)
                    233:       CFLAGS="$CFLAGS -fullwarn"
                    234:       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], [[printf("test");]])],[warning_CFLAGS="-fullwarn"],[])
                    235:       ;;
                    236: 
                    237:     dnl SunOS 4.x with the SparcWorks(?) acc compiler
                    238:     sunos*)
                    239:         if "$CC" = "acc" ; then
                    240:           CFLAGS="$CFLAGS -vc"
                    241:           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], [[printf("test");]])],[warning_CFLAGS="-vc"],[])
                    242:         fi
                    243:       ;;
                    244: 
                    245:     dnl Unknown, do nothing
                    246:     *)
                    247:       warning_CFLAGS="none"
                    248:       ;;
                    249:   esac
                    250: fi
                    251: CFLAGS="$ac_save_CFLAGS"
                    252: if test "$warning_CFLAGS" = "none" ; then
                    253:   AC_MSG_RESULT(none)
                    254: else
                    255:   CFLAGS="$CFLAGS $warning_CFLAGS"
                    256:   AC_MSG_RESULT($warning_CFLAGS)
                    257: fi
                    258: 
                    259: 
                    260: 
                    261: 
                    262: AC_CONFIG_HEADERS([config.h])
                    263: AC_CONFIG_FILES([Makefile img/Makefile])
                    264: AC_OUTPUT
                    265: 

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