######################################### ## # Checks for header files. ## ######################################### ## # Standard checks: ## # Core: AC_HEADER_STDC # , , & AC_HEADER_DIRENT # , , & # Apps: AC_HEADER_SYS_WAIT # # allow for quick module/library/etc processing checks if test "x$NETSNMP_QUICK_CHECK" = "x" ; then ## # Stand-alone headers: ## # Core: AC_CHECK_HEADERS([getopt.h pthread.h regex.h ] dnl [string.h syslog.h unistd.h ] dnl [stdint.h inttypes.h ] dnl [sys/param.h ] dnl [sys/select.h ] dnl [sys/socket.h ] dnl [sys/syslog.h ] dnl [sys/time.h ] dnl [sys/timeb.h ] dnl [sys/un.h ]) # Library and Agent: AC_CHECK_HEADERS([nlist.h],,,[ AC_INCLUDES_DEFAULT [ #ifndef LIBBSD_DISABLE_DEPRECATED #define LIBBSD_DISABLE_DEPRECATED 1 #endif ]]) # Library: AC_CHECK_HEADERS([fcntl.h io.h kstat.h ] dnl [limits.h locale.h ] dnl [sys/file.h sys/ioctl.h ] dnl [sys/sockio.h sys/stat.h ] dnl [sys/systemcfg.h sys/systeminfo.h ] dnl [sys/times.h sys/uio.h ] dnl [sys/utsname.h ] dnl [netipx/ipx.h ]) # Agent: AC_CHECK_HEADERS([dlfcn.h err.h fcntl.h fstab.h ] dnl [ grp.h io.h ] dnl [ioctls.h kstat.h kvm.h limits.h ] dnl [ mntent.h mtab.h ] dnl [ pkglocs.h pwd.h ] dnl [ com_err.h et/com_err.h ] dnl [ utmpx.h utsname.h ]) AC_CHECK_HEADERS([sys/diskio.h sys/dkio.h ] dnl [sys/file.h sys/filio.h sys/fixpoint.h ] dnl [sys/fs.h sys/ioctl.h sys/loadavg.h sys/mntent.h ] dnl [sys/mnttab.h sys/pool.h sys/protosw.h sys/pstat.h ] dnl [sys/sockio.h sys/stat.h sys/statfs.h sys/statvfs.h] dnl [sys/stream.h sys/sysget.h sys/sysmacros.h sys/sysmp.h ] dnl [sys/tcpipstats.h sys/utsname.h sys/vfs.h ] dnl [sys/vm.h sys/vmmac.h sys/vmmeter.h sys/vmparam.h ] dnl [sys/vmsystm.h ]) AC_CHECK_HEADERS([asm/page.h asm/types.h ] dnl [inet/mib2.h ] dnl [linux/hdreg.h linux/tasks.h ] dnl [machine/param.h ] dnl [netinet/tcp_fsm.h ] dnl [ufs/fs.h ] dnl [uvm/uvm_extern.h uvm/uvm_param.h ] dnl [vm/vm.h vm/vm_extern.h vm/vm_param.h ]) # Apps: AC_CHECK_HEADERS([fcntl.h grp.h pwd.h ] dnl [sys/cdefs.h sys/ioctl.h ] dnl [sys/socket.h sys/sockio.h ] dnl [sys/time.h ]) # Not-Used: AC_CHECK_HEADERS([search.h sgtty.h xti.h ] dnl [sys/dmap.h sys/poll.h ] dnl [sys/timeout.h ] dnl [machine/pte.h ] dnl [pci/pci.h ]) # Valgrind AC_CHECK_HEADERS([valgrind/valgrind.h valgrind/memcheck.h]) # OpenSSL AC_CHECK_HEADERS([openssl/aes.h ]) # (Core) AC_CHECK_HEADERS([openssl/dh.h ]) # (Apps) # Not-Used: AC_CHECK_HEADERS([openssl/des.h openssl/hmac.h ] dnl [openssl/evp.h security/cryptoki.h]) # RPM subdirectory path (Agent) if test "x$with_rpm" != "xno"; then AC_CHECK_HEADERS([rpm/rpmts.h rpm/rpmfileutil.h], [], [], [[#include ]]) fi ## # Pre-requisite on other headers: ## # requiring (MAXPATHLEN) (OpenBSD 3.4) # Agent: # AC_CHECK_HEADERS(sys/swap.h,,, AC_INCLUDES_DEFAULT([]) [ #if HAVE_SYS_PARAM_H #include #endif ]) # requiring (FreeBSD) # # Core: (? Tested above? ) AC_CHECK_HEADERS([stdlib.h ],,, [[ #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_PARAM_H #include #endif ]]) # # Library: AC_CHECK_HEADERS([malloc.h net/if_dl.h sys/sysctl.h ],,, [[ #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_PARAM_H #include #endif ]]) # # Agent: AC_CHECK_HEADERS([malloc.h osreldate.h ] dnl [machine/types.h net/if_dl.h net/if_types.h ] dnl [sys/dkstat.h sys/conf.h sys/mbuf.h ] dnl [sys/mount.h sys/proc.h sys/queue.h ] dnl [sys/sysctl.h sys/user.h ],,, [[ #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_PARAM_H #include #endif ]]) # requiring (IRIX 6.5) # Agent: # AC_CHECK_HEADERS([sys/sema.h]) AC_CHECK_HEADERS(sys/hashing.h,,, AC_INCLUDES_DEFAULT([]) [ #if HAVE_SYS_SEMA_H #include #endif ]) # requiring (Solaris 9) # Agent: # AC_CHECK_HEADERS(sys/socketvar.h,,, AC_INCLUDES_DEFAULT([]) [ #if HAVE_SYS_SOCKET_H #include #endif ]) # requiring _KMEMUSER and (BSDi3/IRIX) # Agent: # AC_CHECK_HEADERS(sys/vnode.h,,, [ #define _KMEMUSER 1 #if HAVE_SYS_TYPES_H #include #endif ]) # requiring (NetBSD) # Agent: # AC_CHECK_HEADERS(sys/disklabel.h,,, [[ #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_PARAM_H #include #endif #if HAVE_MACHINE_TYPES_H #include #endif ]]) # QNX AC_CHECK_HEADERS([nbutil.h]) # UFS headers # Agent: # AC_CHECK_HEADERS([ufs/ufs/dinode.h ufs/ufs/quota.h ufs/ufs/inode.h ufs/ffs/fs.h],,, [[ #if HAVE_SYS_TYPES_H #include #endif #if HAVE_UFS_UFS_DINODE_H #include #endif #if HAVE_UFS_UFS_QUOTA_H #include #endif ]]) # requiring (BSDi2) # Agent: # AC_CHECK_HEADERS(vm/swap_pager.h,,, [[ #if HAVE_VM_VM_H #include #endif ]]) # netlink/rtnetlink (Linux) # Agent: # AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h],,, [[ #if HAVE_ASM_TYPES_H #include #endif #if HAVE_SYS_SOCKET_H #include #endif #if HAVE_LINUX_NETLINK_H #include #endif ]]) # Network headers # Core or Library/Agent/Apps: # AC_CHECK_HEADERS([arpa/inet.h net/if.h ] dnl [netinet/in.h netdb.h ],,, [[ #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_TIMEOUT_H #include #endif #if HAVE_SYS_SOCKET_H #include #endif #if HAVE_SYS_SOCKETVAR_H #include #endif #if HAVE_ARPA_INET_H #include #endif #if HAVE_NETINET_IN_SYSTM_H #include #endif #if HAVE_NETINET_IN_H #include #endif #if HAVE_NETINET_IP_H #include #endif #if HAVE_NET_IF_H #include #endif #if HAVE_NETINET_IP_VAR_H #include #endif #if HAVE_NETINET_IP_ICMP_H #include #endif #if HAVE_NETINET_TCP_H #include #endif #if HAVE_NETINET_UDP_H #include #endif #if HAVE_NETINET_TCP_TIMER_H #include #endif ]]) # # Agent: AC_CHECK_HEADERS([net/if_arp.h net/if_mib.h net/if_var.h ] dnl [netinet/if_ether.h netinet/in_systm.h netinet/in_var.h ] dnl [netinet/ip.h netinet/ip_icmp.h ] dnl [netinet/icmp_var.h netinet/ip_var.h ] dnl [netinet/tcp.h netinet/tcp_timer.h netinet/tcp_var.h] dnl [netinet/tcpip.h netinet/udp.h netinet/udp_var.h] dnl [net/route.h netinet/icmp6.h ],,, [[ #if HAVE_SYS_PARAM_H #include #endif #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_TIMEOUT_H #include #endif #if HAVE_SYS_SOCKET_H #include #endif #if HAVE_SYS_SOCKETVAR_H #include #endif #if HAVE_ARPA_INET_H #include #endif #if HAVE_NETINET_IN_SYSTM_H #include #endif #if HAVE_NETINET_IN_H #include #endif #if HAVE_NETINET_IP_H #include #endif #if HAVE_NET_IF_H #include #endif #if HAVE_NET_IF_VAR_H #include #endif #if HAVE_NETINET_IP_VAR_H #include #endif #if HAVE_NETINET_IP_ICMP_H #include #endif #if HAVE_NETINET_TCP_H #include #endif #if HAVE_NETINET_UDP_H #include #endif #if HAVE_NETINET_TCP_TIMER_H #include #endif #if HAVE_NETINET_ICMP6_H #include #endif ]]) # KAME (IPv6) headers # Agent: # # KAME AC_CHECK_HEADERS([netinet/ip6.h ] dnl [netinet6/in6_var.h netinet6/in6_pcb.h ] dnl [netinet6/ip6_var.h netinet6/nd6.h ] dnl [netinet6/tcp6.h netinet6/tcp6_fsm.h ] dnl [netinet6/tcp6_timer.h netinet6/tcp6_var.h],,, [[ #if HAVE_SYS_PARAM_H #include #endif #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_QUEUE_H #include #endif #if HAVE_SYS_SOCKET_H #include #endif #if HAVE_NET_IF_H #include #endif #if HAVE_NET_IF_VAR_H #include #endif #if HAVE_NET_ROUTE_H #include #endif #if HAVE_NETINET_IN_H #include #endif #if HAVE_NETINET_IP6_H #include #endif ]]) # requiring (OpenBSD 2.6) # Agent: # AC_CHECK_HEADERS(netinet/in_pcb.h,,, [[ #if HAVE_SYS_PARAM_H #include #endif #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_TIMEOUT_H #include #endif #if HAVE_SYS_SOCKET_H #include #endif #if HAVE_SYS_SOCKETVAR_H #include #endif #if HAVE_NETINET_IN_H #include #endif #if HAVE_NETINET_IN_SYSTM_H #include #endif #if HAVE_NETINET_IP_H #include #endif #if HAVE_NET_ROUTE_H #include #endif #if HAVE_ARPA_INET_H #include #endif ]]) ## # Pre-requisite on specific types ## # Special hack to get around various problems on older Linux kernels # (major ugh!) # Agent: # AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ],[])], AC_CHECK_HEADERS([linux/ethtool.h]), AC_CHECK_HEADERS([linux/ethtool.h],,, [[ #include typedef __u64 u64; /* hack, so we may include kernel's ethtool.h */ typedef __u32 u32; /* ditto */ typedef __u16 u16; /* ditto */ typedef __u8 u8; /* ditto */ ]]) AC_DEFINE([HAVE_LINUX_ETHTOOL_NEEDS_U64], 1, [Define if __u8 .. __u64 must be declared explicitly before including ])) ## # Headers requiring particular libraries ## # for HostRes (Solaris 2.x) # Agent: # AC_CHECK_HEADERS(pkginfo.h, NETSNMP_SEARCH_LIBS(pkginfo, adm, AC_DEFINE(HAVE_PKGINFO, 1, [define if you have pkginfo]),,,LMIBLIBS)) AC_CHECK_HEADERS(pkg.h, NETSNMP_SEARCH_LIBS(pkg_init, pkg, AC_DEFINE(HAVE_LIBPKG, 1, [define if you have BSD pkg-ng]))) if test $ac_cv_header_pkg_h = no then unset ac_cv_header_pkg_h netsnmp_save_CPPFLAGS="$CPPFLAGS" netsnmp_save_LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS -I/usr/local/include" LDFLAGS="$LDFLAGS -L/usr/local/lib" AC_CHECK_HEADERS(pkg.h, NETSNMP_SEARCH_LIBS(pkg_init, pkg, AC_DEFINE(HAVE_LIBPKG, 1, [define if you have BSD pkg-ng]))) if test $ac_cv_header_pkg_h = no then CPPFLAGS="$netsnmp_save_CPPFLAGS" LDFLAGS="$netsnmp_save_LDFLAGS" fi fi case $target_os in aix*) # for CPU/memory statistics (AIX) # Agent: # AC_CHECK_HEADERS(libperfstat.h, NETSNMP_SEARCH_LIBS(perfstat_cpu_total, perfstat, AC_DEFINE(HAVE_PERFSTAT, 1, [on aix, if you have perfstat]), AC_MSG_ERROR([ *** To monitor CPU/memory values in AIX you need to install *** libperfstat which can be found in bos.perf ]),, LMIBLIBS),, [[ #if HAVE_SYS_PROTOSW_H #include #endif ]]) ;; hpux*) # HP-UX agent needs open_mib (XXX - not a header check!) # NETSNMP_SEARCH_LIBS(open_mib, nm, AC_DEFINE(HAVE_LIBNM, 1, [define if you have libnm]),,,LMIBLIBS) ;; *) ;; esac # for MIB-2 info (Cygwin and MinGW) # Core: # AC_CHECK_HEADERS([windows.h iphlpapi.h], [], [], [ #ifdef HAVE_WINDOWS_H #include #endif ]) # for MIB-2 info (MinGW) # Core: # if test x$with_socklib = xwinsock2; then AC_CHECK_HEADERS([winsock.h winsock2.h ws2tcpip.h]) fi # # for ucd-snmp/lmsensorsMib # AC_CHECK_HEADERS([sensors/sensors.h picl.h]) ## This is here to avoid loads of redefinition warnings during ## module configuration ## # rtentry structure checks: ## # Check struct rtentry for common fields # Agent: # AC_CHECK_MEMBERS([struct rtentry.rt_dst, struct rtentry.rt_hash, struct rtentry.rt_next, struct rtentry.rt_refcnt, struct rtentry.rt_unit, struct rtentry.rt_use],,, [ #ifdef HAVE_SYS_PARAM_H #include #endif #include #ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES #define _KERNEL_STRUCTURES 1 #endif #ifdef HAVE_SYS_SOCKET_H #ifdef NETSNMP_IFNET_NEEDS_KERNEL #define KERNEL #if !defined(__DragonFly__) #define _KERNEL 1 #endif #endif #include #undef KERNEL #undef _KERNEL #endif #ifdef HAVE_NET_ROUTE_H #include #endif ]) fi # NETSNMP_QUICK_CHECK