Annotation of embedaddon/libnet/configure.ac, revision 1.1

1.1     ! misho       1: #
        !             2: # Libnet autoconfiguration information file
        !             3: # Copyright (c) 1998 - 2002 Mike D. Schiffman <mike@infonexus.com>
        !             4: # Modified by: Ali Abdulkadir <autostart.ini@gmail.com>,
        !             5: #              Joachim Nilsson <troglobit@gmail.com>
        !             6: # All rights reserved.
        !             7: #
        !             8: # Process this file with autoconf to produce a configure script.
        !             9: 
        !            10: AC_INIT([libnet], [1.2], [https://github.com/libnet/libnet/issues],,
        !            11:        [https://github.com/libnet/libnet])
        !            12: 
        !            13: # Visible in resulting configure script, e.g. with ./configure --version
        !            14: AC_COPYRIGHT([Copyright (C) 1998 - 2019 The libnet Developer Community.])
        !            15: AC_REVISION(${VERSION})
        !            16: 
        !            17: # the autotools and libtool should be at least these versions
        !            18: AC_PREREQ([2.69])
        !            19: LT_PREREQ([2.4.2])
        !            20: 
        !            21: AC_PROG_SHELL
        !            22: AC_PROG_SED
        !            23: AC_CHECK_PROGS([CHMOD],[chmod],[true])
        !            24: AC_CANONICAL_TARGET
        !            25: AC_CONFIG_SRCDIR([src/libnet_build_ip.c])
        !            26: AC_CONFIG_MACRO_DIR([m4])
        !            27: AM_INIT_AUTOMAKE([1.14 foreign subdir-objects no-dependencies dist-zip])
        !            28: AM_SILENT_RULES([yes])
        !            29: AC_CONFIG_HEADERS([include/config.h])
        !            30: 
        !            31: AC_CONFIG_FILES([Makefile \
        !            32:                 Doxyfile \
        !            33:                 libnet-config \
        !            34:                  doc/Makefile \
        !            35:                  doc/man/Makefile \
        !            36:                  doc/man/man1/Makefile \
        !            37:                  doc/man/man3/Makefile \
        !            38:                  include/Makefile \
        !            39:                  include/libnet.h \
        !            40:                 libnet.pc \
        !            41:                  src/Makefile \
        !            42:                  sample/Makefile \
        !            43:                 win32/Makefile])
        !            44: AC_CONFIG_FILES([doc/fixmanpages], [chmod a+x doc/fixmanpages])
        !            45: 
        !            46: # Check for the usual programs
        !            47: AC_PROG_CC
        !            48: AC_PROG_INSTALL
        !            49: AC_USE_SYSTEM_EXTENSIONS
        !            50: # The default is to use only PIC objects.
        !            51: # This can still be overwritten with --without-pic
        !            52: LT_INIT([pic-only])
        !            53: 
        !            54: #
        !            55: # Check for headers
        !            56: #
        !            57: AC_CHECK_HEADERS([sys/sockio.h])
        !            58: AC_CHECK_FUNCS([gethostbyname2])
        !            59: AC_CHECK_FUNCS([getifaddrs])
        !            60: AC_TYPE_UINT16_T
        !            61: AC_TYPE_UINT32_T
        !            62: AC_TYPE_UINT64_T
        !            63: 
        !            64: AC_MSG_CHECKING(for socklen_t)
        !            65: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
        !            66:         #include <sys/types.h>
        !            67:         #include <sys/socket.h>
        !            68:         ]], [[ socklen_t x; ]])],[have_socklen_t=yes],[have_socklen_t=no])
        !            69: AS_IF([test "x$have_socklen_t" = "xyes"], [
        !            70:         AC_DEFINE(HAVE_SOCKLEN_T, 1, [define if socklen_t is defined])])
        !            71: AC_MSG_RESULT($have_socklen_t)
        !            72: 
        !            73: #
        !            74: # And some custom things
        !            75: #
        !            76: AC_LIBNET_ENDIAN_CHECK
        !            77: AC_SUBST(ENDIANESS)
        !            78: AC_SUBST(HAVE_PACKET_SOCKET)
        !            79: AC_SUBST(ADDITIONAL_LIBS)
        !            80: AC_SUBST(PKG_CONFIG_DEFINES)
        !            81: AC_SUBST(PKG_CONFIG_LIBS)
        !            82: AC_SUBST(PKG_CONFIG_CFLAGS)
        !            83: AC_SUBST(LTLIBOBJS)
        !            84: 
        !            85: # Get link-layer interface type
        !            86: AC_ARG_WITH(
        !            87:        [link-layer],
        !            88:        [AS_HELP_STRING([--with-link-layer],
        !            89:        [when cross-compiling, one of * from libnet_link_*.c @<:@autodetect@:>@])])
        !            90: 
        !            91: AC_CHECK_HEADERS([net/pfilt.h sys/net/nit.h net/raw.h sys/dlpi.h linux/socket.h])
        !            92: 
        !            93: AC_MSG_CHECKING(link-layer packet interface type)
        !            94: 
        !            95: AS_IF([test -n "${with_link_layer}"], [
        !            96:     AS_CASE([${with_link_layer}],
        !            97:         [bpf],   [AC_LIBOBJ([libnet_link_bpf])],
        !            98:         [pf],    [AC_LIBOBJ([libnet_link_pf])],
        !            99:         [snit],  [AC_LIBOBJ([libnet_link_snit])],
        !           100:         [nit],   [AC_LIBOBJ([libnet_link_nit])],
        !           101:         [snoop], [AC_LIBOBJ([libnet_link_snoop])],
        !           102:         [dlpi],  [AC_LIBOBJ([libnet_link_dlpi])],
        !           103:         [win32], [AC_LIBOBJ([libnet_link_win32])],
        !           104:         [none],  [AC_LIBOBJ([libnet_link_none])],
        !           105:         [linux], [AC_LIBOBJ([libnet_link_linux])
        !           106:                   AC_LIBNET_CHECK_PF_PACKET
        !           107:                   AC_LIBNET_LINUX_PROCFS],
        !           108:         [AC_MSG_ERROR([Invalid link type "${with_link_layer}"])])
        !           109:      AC_MSG_RESULT(user selected link layer ${with_link_layer})],
        !           110: [test "${cross_compiling}" != "yes" -a -r /dev/bpf0], [
        !           111:     AC_LIBOBJ([libnet_link_bpf])
        !           112:     AC_MSG_RESULT(found link layer bpf)],
        !           113: [test "${ac_cv_header_net_pfilt_h}" = "yes"], [
        !           114:     AC_LIBOBJ([libnet_link_pf])
        !           115:     AC_MSG_RESULT(found link layer pf)],
        !           116: [test "${cross_compiling}" != "yes" -a -r /dev/nit], [
        !           117:     AC_LIBOBJ([libnet_link_snit])
        !           118:     AC_MSG_RESULT(found link layer snit)],
        !           119: [test "${ac_cv_header_sys_net_nit_h}" = "yes"], [
        !           120:     AC_LIBOBJ([libnet_link_nit])
        !           121:     AC_MSG_RESULT(found link layer nit)],
        !           122: [test "${ac_cv_header_net_raw_h}" = "yes"], [
        !           123:     AC_LIBOBJ([libnet_link_snoop])
        !           124:     AC_MSG_RESULT(found link layer snoop)],
        !           125: [test "${ac_cv_header_sys_dlpi_h}" = "yes"], [
        !           126:     AC_LIBOBJ([libnet_link_dlpi])
        !           127:     AC_MSG_RESULT(found link layer dlpi)
        !           128:     AC_DEFINE(HAVE_DLPI, 1, [Define if the <sys/dlpi.h> header exists.])],
        !           129: [test "${ac_cv_header_linux_socket_h}" = "yes"], [
        !           130:     AC_LIBOBJ([libnet_link_linux])
        !           131:     AC_MSG_RESULT(found link layer linux)
        !           132:     AC_LIBNET_CHECK_PF_PACKET
        !           133:     AC_LIBNET_LINUX_PROCFS],
        !           134: [test "${cross_compiling}" != "yes" -a -c /dev/bpf0], [
        !           135:     # check again in case not readable
        !           136:     AC_LIBOBJ([libnet_link_bpf])
        !           137:     AC_MSG_RESULT(found link layer bpf)],
        !           138: [test "${cross_compiling}" != "yes" -a -c /dev/nit], [
        !           139:     # check again in case not readable
        !           140:     AC_LIBOBJ([libnet_link_snit])
        !           141:     AC_MSG_RESULT(found link layer snit)],
        !           142: [test "$target_os" = "cygwin"], [
        !           143:     AC_LIBOBJ([libnet_link_win32])
        !           144:     AC_MSG_RESULT(found link layer win32 wpcap)],
        !           145: [test "$host" = "i686-w64-mingw32" -o "x86_64-w64-mingw32" -o "x86_64-pc-mingw64"], [
        !           146:     AC_LIBOBJ([libnet_link_win32])
        !           147:     AC_MSG_RESULT(found link layer win32 @<:@WinPcap@:>@)],[
        !           148:     AC_LIBOBJ([libnet_link_none])
        !           149:     AC_MSG_WARN(could not find a link-layer packet interface)
        !           150:     AC_MSG_WARN(link-layer packet injection will not be available)])
        !           151: 
        !           152: # Check for Doxygen and enable its features.
        !           153: # For details, see m4/ax_prog_doxygen.m4 and
        !           154: # http://www.bioinf.uni-freiburg.de/~mmann/HowTo/automake.html#doxygenSupport
        !           155: DX_DOXYGEN_FEATURE(ON)
        !           156: DX_DOT_FEATURE(ON)
        !           157: DX_CHI_FEATURE(OFF)
        !           158: DX_RTF_FEATURE(OFF)
        !           159: DX_XML_FEATURE(OFF)
        !           160: DX_PDF_FEATURE(OFF)
        !           161: DX_PS_FEATURE(OFF)
        !           162: DX_CHM_FEATURE(OFF)
        !           163: DX_HTML_FEATURE(ON)
        !           164: DX_MAN_FEATURE(ON)
        !           165: DX_INIT_DOXYGEN(${PACKAGE_NAME}, [${top_builddir}/Doxyfile], [doc])
        !           166: AM_CONDITIONAL(ENABLE_DOXYGEN,[test "x${DX_FLAG_doc}" = x1])
        !           167: AM_CONDITIONAL(ENABLE_HTML,[test "x${DX_FLAG_html}" = x1])
        !           168: AM_CONDITIONAL(ENABLE_MAN,[test "x${DX_FLAG_man}" = x1])
        !           169: 
        !           170: # Check for sample building
        !           171: AC_MSG_CHECKING([whether to build sample programs])
        !           172: AC_ARG_ENABLE([samples],
        !           173:     [AS_HELP_STRING([--enable-samples],[do not build sample programs @<:@default=no@:>@])],
        !           174:     [enable_samples=$enableval],
        !           175:     [enable_samples=no]
        !           176: )
        !           177: AC_MSG_RESULT([$enable_samples])
        !           178: AM_CONDITIONAL([ENABLE_SAMPLES], [test "$enable_samples" = "yes"])
        !           179: 
        !           180: # what (not) to do if the user disables shared libraries
        !           181: AM_CONDITIONAL([COND_SHARED], [test "x$enable_shared" != xno])
        !           182: 
        !           183: # Check and set OS specific parameters
        !           184: AS_CASE([$target_os],
        !           185: [*linux*], [
        !           186:     AC_DEFINE(_BSD_SOURCE, 1,
        !           187:         [Define as necessary to "unhide" header symbols.])
        !           188:     AC_DEFINE(_DEFAULT_SOURCE, 1,
        !           189:         [Define as necessary to "unhide" header symbols.])
        !           190: 
        !           191:     PKG_CONFIG_DEFINES="-D_BSD_SOURCE -D_DEFAULT_SOURCE"
        !           192:     AC_CHECK_HEADERS(net/ethernet.h, \
        !           193:         PKG_CONFIG_DEFINES="$PKG_CONFIG_DEFINES -DHAVE_NET_ETHERNET_H")
        !           194:     ],
        !           195: 
        !           196: [*freebsd*], [
        !           197:     PKG_CONFIG_DEFINES="-DHAVE_SOCKADDR_SA_LEN"
        !           198:     AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [FreeBSD has sa_len in struct sockaddr.])
        !           199: 
        !           200:     AC_MSG_CHECKING([FreeBSD version, is SOCK_RAW really raw?])
        !           201:     AC_TRY_COMPILE([#include <sys/param.h>], [
        !           202: #if (__FreeBSD_version >= 1100030)
        !           203:     return 0;
        !           204: #else
        !           205: #error FreeBSD pre-11, SOCK_RAW isn't really raw, see https://www.freebsd.org/cgi/man.cgi?ip(4)#end
        !           206: #endif],
        !           207:     AC_MSG_RESULT([yes]),
        !           208:     AC_MSG_RESULT([no])
        !           209:     AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1, [FreeBSD pre-11, libnet must byteswap raw ip_len, ip_off])
        !           210:     PKG_CONFIG_DEFINES="${PKG_CONFIG_DEFINES} -DLIBNET_BSD_BYTE_SWAP")],
        !           211: 
        !           212: [*netbsd*], [
        !           213:     AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1,
        !           214:         [Define if libnet should byteswap data.])
        !           215: 
        !           216:     PKG_CONFIG_DEFINES="-DLIBNET_BSD_BYTE_SWAP"
        !           217:     ],
        !           218: 
        !           219: [*openbsd*], [
        !           220:     AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1,
        !           221:         [Define if the sockaddr structure includes a sa_len member.])
        !           222:     ],
        !           223: 
        !           224: [*bsdi*], [
        !           225:     AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1,
        !           226:         [Define if libnet should byteswap data.])
        !           227:     PKG_CONFIG_DEFINES="-DLIBNET_BSD_BYTE_SWAP"
        !           228:     ],
        !           229: 
        !           230: [*darwin*], [
        !           231:     AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1,
        !           232:         [Define if the sockaddr structure includes a sa_len member.])
        !           233:     AC_DEFINE(LIBNET_BSD_BYTE_SWAP, 1, [Define if libnet should byteswap data.])
        !           234:     PKG_CONFIG_DEFINES="-DHAVE_SOCKADDR_SA_LEN -DLIBNET_BSD_BYTE_SWAP"
        !           235:     ],
        !           236: 
        !           237: [*solaris*], [
        !           238:     AC_DEFINE(HAVE_SOLARIS, 1, [Define if we are running on Solaris.])
        !           239:     AC_CHECK_HEADERS(sys/bufmod.h sys/dlpi_ext.h)
        !           240:     AC_MSG_CHECKING(for /dev/dlpi device)
        !           241:     AS_IF([test -c /dev/dlpi], [
        !           242:         AC_MSG_RESULT(yes)
        !           243:         AC_DEFINE(HAVE_DEV_DLPI, 1, [Define if /dev/dlpi is available.])
        !           244:     ], [
        !           245:         AC_MSG_RESULT(no)
        !           246:         dir="/dev/dlpi"
        !           247:         AC_MSG_CHECKING(for $dir directory)
        !           248:         AS_IF([test -d $dir], [
        !           249:             AC_MSG_RESULT(yes)
        !           250:             AC_DEFINE_UNQUOTED(DLPI_DEV_PREFIX, "$dir",
        !           251:                 [Define if /dev/dlpi is a directory.])
        !           252:         ], [
        !           253:             AC_MSG_RESULT(no)
        !           254:         ])
        !           255:     ])
        !           256:     AC_CHECK_LIB(socket, socket, ,AC_MSG_ERROR(libsocket not found.))
        !           257:     AC_CHECK_LIB(nsl, gethostbyname, ,AC_MSG_ERROR(libnsl not found.))
        !           258:     AC_CHECK_LIB(resolv, hstrerror, ,AC_MSG_ERROR(libresolv not found.))
        !           259: 
        !           260:     #
        !           261:     # Broken checksums?
        !           262:     #
        !           263:     AS_CASE([`uname -r`],
        !           264:     [5.4], [
        !           265:         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG, 1,
        !           266:             [Define if our version of Solaris has broken checksums.])
        !           267:         ],
        !           268:     [5.5*], [
        !           269:         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG, 1,
        !           270:             [Define if our version of Solaris has broken checksums.])
        !           271:         ],
        !           272:     [5.8], [
        !           273:         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG, 1,
        !           274:             [Define if our version of Solaris has broken checksums.])
        !           275:         AC_DEFINE(HAVE_SOLARIS_IPV6, 1,
        !           276:             [Define if our version of Solaris supports IPv6.])
        !           277: 
        !           278:         ],
        !           279:     [5.9], [
        !           280:         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG, 1,
        !           281:             [Define if our version of Solaris has broken checksums.])
        !           282:         AC_DEFINE(HAVE_SOLARIS_IPV6, 1,
        !           283:             [Define if our version of Solaris supports IPv6.])
        !           284:         ],
        !           285:     [5.10 | 5.11 | 5.12], [
        !           286:         AC_DEFINE(HAVE_SOLARIS_IPV6, 1,
        !           287:             [Define if our version of Solaris supports IPv6.])
        !           288:         ])
        !           289: 
        !           290:     ADDITIONAL_LIBS="-lresolv -lsocket -lnsl"
        !           291:     PKG_CONFIG_LIBS="$PKG_CONFIG_LIBS -lresolv -lsocket -lnsl"
        !           292:     ],
        !           293: 
        !           294: [*hpux11*], [
        !           295:     AC_DEFINE(HAVE_HPUX11, 1, [Define if we are building on HP/UX.])
        !           296:     AC_CHECK_HEADERS(sys/dlpi_ext.h)
        !           297:     ],
        !           298: 
        !           299: [*cygwin* | *msys*], [
        !           300:     WIN32="yes"
        !           301:     AC_SUBST(WIN32)
        !           302:     CFLAGS="$CFLAGS -mwin32"
        !           303:     AC_CHECK_LIB(packet, PacketSetMode, ,AC_MSG_ERROR(packet lib not found.))
        !           304:     AC_CHECK_LIB(wpcap, pcap_setmode, ,AC_MSG_ERROR(pcap lib not found.))
        !           305:     LIBS="$LIBS -lws2_32"
        !           306:     ],
        !           307: 
        !           308: [*mingw*], [
        !           309:     WIN32="yes"
        !           310:     AC_SUBST(WIN32)
        !           311: 
        !           312:     AS_IF([test "$enable_shared" = "yes"], [AC_CHECK_TOOL(WINDRES, windres, :)])
        !           313: 
        !           314:     AC_DEFINE(WIN32_LEAN_AND_MEAN, 1, [Define to limit the scope of <windows.h>])
        !           315: 
        !           316:     AC_CHECK_LIB(packet, PacketSetMode, ,AC_MSG_ERROR(libpacket.a not found. See README.win32 for more information))
        !           317:     AC_CHECK_LIB(wpcap, pcap_setmode, ,AC_MSG_ERROR(libwpcap.a not found. See README.win32 for more information))
        !           318:     LIBS="$LIBS -lws2_32 -liphlpapi"
        !           319: 
        !           320:     AS_IF([test "$host" = "i686-w64-mingw32"], [
        !           321:         CFLAGS="$CFLAGS -march=i686 -mwin32"], [
        !           322:        CFLAGS="$CFLAGS -mwin32"
        !           323: 
        !           324:        AX_CHECK_LINK_FLAG([-Wl,--high-entropy-va],
        !           325:             [LDFLAGS="$LDFLAGS -Wl,--high-entropy-va"],
        !           326:             [AC_MSG_NOTICE([Consider updating your toolchain.])])
        !           327:     ])
        !           328: 
        !           329:     AS_IF([test "${cross_compiling}" = "yes"], [
        !           330:         CFLAGS="$CFLAGS -static-libgcc"])
        !           331:     ],
        !           332: 
        !           333: [*irix*], [
        !           334:     CFLAGS="$CFLAGS -DINET6=1"
        !           335:     ], [
        !           336:     AC_MSG_WARN(${target_os} is not officially supported yet.)
        !           337:     AC_MSG_RESULT(Please report this to ${PACKAGE_BUGREPORT})])
        !           338: 
        !           339: # this only matters if we are building for Windows...
        !           340: AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"])
        !           341: 
        !           342: # Create all files from AC_CONFIG_FILES()
        !           343: AC_OUTPUT
        !           344: 
        !           345: # Helper variables for summary, below
        !           346: AS_IF([test ${DX_FLAG_doc} -eq 1], [rebuild_docs=yes], [rebuild_docs=no])
        !           347: link_layer=`"echo"${LTLIBOBJS}"" | sed 's/.*libnet_link_\(.*\)\$.*/\1/'`
        !           348: 
        !           349: AC_MSG_RESULT([
        !           350: -=-=-=-=-=-=-=-=-=-= $PACKAGE Configuration Complete =-=-=-=-=-=-=-=-=-=-
        !           351: 
        !           352:     Version ....................... ${VERSION}
        !           353: 
        !           354:     Host .......................... ${host}
        !           355:     Operating System .............. ${host_os}
        !           356:     Host CPU ...................... ${host_cpu}
        !           357:     Host Vendor ................... ${host_vendor}
        !           358:     Host OS ....................... ${host_os}
        !           359:     Prefix ........................ ${prefix}
        !           360: 
        !           361:     Cross-compiling ............... ${cross_compiling}
        !           362:     Compiler is GCC ............... ${ac_cv_c_compiler_gnu}
        !           363:     CC ............................ ${CC}
        !           364:     CFLAGS ........................ ${CFLAGS}
        !           365:     LD ............................ ${LD}
        !           366:     LDFLAGS ....................... ${LDFLAGS}
        !           367:     LIBS .......................... ${LIBS}
        !           368: 
        !           369:     Link Layer .................... ${link_layer}
        !           370:     Shared Libraries .............. ${enable_shared}
        !           371:     Static Libraries .............. ${enable_static}
        !           372:     PIC ........................... ${pic_mode}
        !           373:     Build Sample Programs ......... ${enable_samples}
        !           374:     Rebuild docs .................. ${rebuild_docs}
        !           375: 
        !           376: To override options
        !           377: 
        !           378:        $0 --help
        !           379: 
        !           380: Report bugs to ${PACKAGE_BUGREPORT}
        !           381: 
        !           382: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        !           383: To disable silent build and print the full command line of every stage
        !           384: 
        !           385:        make V=1
        !           386: ])
        !           387: AS_IF([test "$WIN32" = "yes"], [AC_MSG_RESULT(
        !           388: [To compile shared libraries on MinGW use the bundled WinPcap libraries
        !           389: in ./win32/.  GCC can NOT produce x64 compatible images with official
        !           390: WinPcap Developer Pack.  See README.win32 for more info.
        !           391: ])])
        !           392: AS_IF([test "$rebuild_docs" = "yes"], [AC_MSG_RESULT(
        !           393: [To build/update the documentation
        !           394: 
        !           395:        make doc
        !           396: ])])

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