dnl dnl EC_MESSAGE(MESSAGE) dnl AC_DEFUN(EC_MESSAGE,[ AC_MSG_RESULT() AC_MSG_RESULT(${SB}$1...${EB}) AC_MSG_RESULT() ]) dnl dnl EC_CHECK_OPTION(STRING, VAR) dnl AC_DEFUN(EC_CHECK_OPTION,[ echo "$1 ${SB}$2${EB}" ]) dnl dnl EC_LINUX_KERNEL() dnl AC_DEFUN(EC_LINUX_KERNEL,[ AC_MSG_CHECKING(Linux kernel version) major=`uname -r | cut -f1 -d"."` minor=`uname -r | cut -f2 -d"."` uname=`uname -r` AC_MSG_RESULT($uname) if test "$major$minor" -lt 20; then AC_MSG_WARN(*******************************); AC_MSG_WARN(* Kernel >= 2.0.x REQUIRED !! *); AC_MSG_WARN(*******************************); exit; fi ]) dnl dnl EC_FREEBSD_VERSION() dnl AC_DEFUN(EC_FREEBSD_VERSION,[ AC_MSG_CHECKING(FreeBSD version) major=`uname -r | cut -f1 -d"."` minor=`uname -r | cut -f2 -d"." | cut -f1 -d"-"` uname=`uname -r` AC_MSG_RESULT($uname) if test "$major$minor" -lt 40; then AC_MSG_WARN(***************************************************); AC_MSG_WARN(* Tested only on FreeBSD 4.x !! *); AC_MSG_WARN(* Please send me comments, patches or bug-reports *); AC_MSG_WARN(* on how ettercap works within your system... *); AC_MSG_WARN(***************************************************); fi ]) dnl dnl EC_DARWIN_KERNEL() dnl AC_DEFUN(EC_DARWIN_KERNEL,[ AC_MSG_CHECKING(Darwin version) major=`uname -r | cut -f1 -d"."` minor=`uname -r | cut -f2 -d"."` uname=`uname -r` AC_MSG_RESULT($uname) if test "$major$minor" -lt 14; then ac_cv_ec_undefined="suppress" elif test "$major$minor" -gt 13; then ac_cv_ec_undefined="error" fi ]) dnl dnl EC_WINDOWS_KERNEL() dnl AC_DEFUN(EC_WINDOWS_KERNEL,[ AC_MSG_CHECKING(Windows kernel version) tech=`uname | cut -f2 -d"_" | cut -f1 -d"-"` major=`uname | cut -f2 -d"-" | cut -f1 -d"."` minor=`uname | cut -f2 -d"-" | cut -f2 -d"."` AC_MSG_RESULT($tech $major.$minor) if test "$tech" != "NT"; then ac_cv_ec_windows_version="-DWIN9X" elif test "$major$minor" -lt 50; then ac_cv_ec_windows_version="-DWINNT" else ac_cv_ec_windows_version="-DWIN2K_XP" fi AC_MSG_CHECKING(Cygwin dll version) uname=`uname -r | cut -f1 -d"("` major=`uname -r | cut -f1 -d"(" | cut -f1 -d"."` minor=`uname -r | cut -f1 -d"(" | cut -f2 -d"."` AC_MSG_RESULT($uname) if test "$major$minor" -lt 13; then AC_MSG_WARN(****************************); AC_MSG_WARN(* Cygwin 1.3.x REQUIRED !! *); AC_MSG_WARN(****************************); exit; fi ]) dnl dnl EC_PF_PACKET() dnl dnl returns HAVE_PF_PACKET dnl ac_cv_ec_nopf=1 (if fails) dnl AC_DEFUN(EC_PF_PACKET,[ AC_MSG_CHECKING(if you can create PF_PACKET socket) AC_TRY_COMPILE([ #include #include #include /* for the glibc version number */ #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 #include #include /* the L2 protocols */ #else #include #include /* The L2 protocols */ #endif], [ int sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); ], [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PF_PACKET,1) ], [ AC_MSG_RESULT(no); ac_cv_ec_nopf=1 ] ) ]) dnl dnl EC_SOCK_PACKET() dnl dnl returns HAVE_SCOK_PACKET dnl ac_cv_ec_nosock=1 (if fails) dnl AC_DEFUN(EC_SOCK_PACKET,[ AC_MSG_CHECKING(if you can create SOCK_PACKET socket) AC_TRY_COMPILE([ #include #include #include /* for the glibc version number */ #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 #include /* the L2 protocols */ #else #include #include /* The L2 protocols */ #endif], [ int sock = socket(AF_INET, SOCK_PACKET, htons(ETH_P_ALL)); ], [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SOCK_PACKET,1) ], [ AC_MSG_RESULT(no); ac_cv_ec_nosock=1 ] ) ]) dnl dnl EC_SOCKLEN_CHECK dnl dnl results: dnl dnl HAVE_SOCKLEN_T dnl AC_DEFUN(EC_SOCKLEN_CHECK, [AC_MSG_CHECKING(for socklen_t in sys/socket.h) AC_TRY_RUN([ #include #include int main() { socklen_t from; from = sizeof(socklen_t); return 0; } ], [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SOCKLEN_T) ], AC_MSG_RESULT(no); , AC_MSG_RESULT(unkown when cross-compiling) ) ]) dnl dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member dnl dnl usage: dnl dnl AC_LBL_SOCKADDR_SA_LEN dnl dnl results: dnl dnl HAVE_SOCKADDR_SA_LEN (defined) dnl AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN, [AC_MSG_CHECKING(if sockaddr struct has sa_len member) AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len, AC_TRY_COMPILE([ # include # include ], [u_int i = sizeof(((struct sockaddr *)0)->sa_len)], ac_cv_lbl_sockaddr_has_sa_len=yes, ac_cv_lbl_sockaddr_has_sa_len=no)) AC_MSG_RESULT($ac_cv_lbl_sockaddr_has_sa_len) if test $ac_cv_lbl_sockaddr_has_sa_len = yes ; then AC_DEFINE(HAVE_SOCKADDR_SA_LEN,1,[if struct sockaddr has sa_len]) fi]) dnl dnl Checks to see if unaligned memory accesses fail (from libpcap aclocal.m4) dnl dnl usage: dnl dnl AC_LBL_UNALIGNED_ACCESS dnl dnl results: dnl dnl LBL_ALIGN (DEFINED) dnl AC_DEFUN(AC_LBL_UNALIGNED_ACCESS, [AC_MSG_CHECKING(if unaligned accesses fail) AC_CACHE_VAL(ac_cv_lbl_unaligned_fail, [case "$target_cpu" in # XXX: should also check that they don't do weird things (like on arm) alpha*|arm*|hp*|mips|sparc) ac_cv_lbl_unaligned_fail=yes ;; *) cat >conftest.c < # include # include unsigned char a[[5]] = { 1, 2, 3, 4, 5 }; main() { unsigned int i; pid_t pid; int status; /* avoid "core dumped" message */ pid = fork(); if (pid < 0) exit(2); if (pid > 0) { /* parent */ pid = waitpid(pid, &status, 0); if (pid < 0) exit(3); exit(!WIFEXITED(status)); } /* child */ i = *(unsigned int *)&a[[1]]; printf("%d\n", i); exit(0); } EOF ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \ conftest.c $LIBS >/dev/null 2>&1 if test ! -x conftest ; then dnl failed to compile for some reason ac_cv_lbl_unaligned_fail=yes else ./conftest >conftest.out if test ! -s conftest.out ; then ac_cv_lbl_unaligned_fail=yes else ac_cv_lbl_unaligned_fail=no fi fi rm -f conftest* core core.conftest ;; esac]) AC_MSG_RESULT($ac_cv_lbl_unaligned_fail) if test $ac_cv_lbl_unaligned_fail = yes ; then AC_DEFINE(LBL_ALIGN,1,[if unaligned access fails]) fi]) AC_DEFUN(EC_CHECK_DATE,[ today=`date +%m%d` if test "$today" -eq "0930" -o "$today" -eq "1114" -o "$today" -eq "0125"; then if test "$today" -eq "1114"; then who="ALoR" elif test "$today" -eq "0930"; then who="NaGA" elif test "$today" -eq "0125"; then who="Ettercap" fi echo echo echo "********************************" echo "* *" echo "* Today is the $who's birthday *" echo "* *" echo "********************************" echo echo " Only for today ettercap is a" echo " cardware or emailware software." echo echo " a mail will be appreciated... ;)" echo exit fi ]) dnl dnl EC_PTHREAD_CHECK() dnl ac_cv_ec_nopthread=1 (if fails) dnl AC_DEFUN(EC_PTHREAD_CHECK,[ AC_SEARCH_LIBS(pthread_create, pthread,, [ AC_MSG_CHECKING(whether $CC accepts -pthread) CFLAGS_store="$CFLAGS" CFLAGS="$CFLAGS -pthread" AC_TRY_COMPILE([#include ],[pthread_create(NULL, NULL, NULL, NULL);], [AC_MSG_RESULT(yes) LIBS="$LIBS -pthread"], [AC_MSG_RESULT(no) CFLAGS="$CFLAGS_store" AC_MSG_WARN(***************************); AC_MSG_WARN(* PTHREAD ARE REQUIRED !! *); AC_MSG_WARN(***************************); exit ]) unset CFLAGS_store ] ) if test "$OS" = "SOLARIS"; then AC_SEARCH_LIBS(_getfp, pthread,,) fi ]) dnl dnl EC_NS_GET() dnl dnl returns HAVE_NS_GET dnl AC_DEFUN(EC_NS_GET,[ AC_MSG_CHECKING(for NS_GET32) AC_TRY_RUN([ #include int main() { int i; char *p = "\x01\x02\x03\x04"; NS_GET32(i, p); return 0; } ], [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NS_GET,1) ], [ AC_MSG_RESULT(no); ] ) ]) dnl vim:ts=3:expandtab