aclocal.m4
上传用户:nilegod
上传日期:2007-01-08
资源大小:220k
文件大小:4k
源码类别:

网络截获/分析

开发平台:

C/C++

  1. dnl
  2. dnl EC_MESSAGE(MESSAGE)
  3. dnl
  4. AC_DEFUN(EC_MESSAGE,[
  5.   AC_MSG_RESULT()
  6.   AC_MSG_RESULT($1...)
  7.   AC_MSG_RESULT()
  8. ])
  9. dnl
  10. dnl EC_LINUX_KERNEL()
  11. dnl
  12. AC_DEFUN(EC_LINUX_KERNEL,[
  13. AC_MSG_CHECKING(Linux kernel version)
  14. major=`uname -r  | cut -f1 -d"."`
  15. minor=`uname -r  | cut -f2 -d"."`
  16. AC_MSG_RESULT(`uname -r`)
  17. if test "$major$minor" -lt 20; then
  18. AC_MSG_WARN(*******************************);
  19. AC_MSG_WARN(* Kernel >= 2.0.x REQUIRED !! *);
  20. AC_MSG_WARN(*******************************);
  21. exit;
  22. fi
  23. ])
  24. dnl
  25. dnl EC_FREEBSD_VERSION()
  26. dnl
  27. AC_DEFUN(EC_FREEBSD_VERSION,[
  28. AC_MSG_CHECKING(FreeBSD version)
  29. major=`uname -r  | cut -f1 -d"."`
  30. minor=`uname -r  | cut -f2 -d"." | cut -f1 -d"-"`
  31. AC_MSG_RESULT(`uname -r`)
  32. if test "$major$minor" -lt 42; then
  33. AC_MSG_WARN(************************************************);
  34. AC_MSG_WARN(* Tested only on FreeBSD 4.2 !!                *);
  35. AC_MSG_WARN(* Please send me comment patches or bug-report *);
  36. AC_MSG_WARN(* on how ettercap works within your system...  *);
  37. AC_MSG_WARN(************************************************);
  38. fi
  39. ])
  40. dnl
  41. dnl EC_PF_PACKET()
  42. dnl
  43. dnl returns  HAVE_PF_PACKET
  44. dnl            nopf=1  (if fails)
  45. dnl
  46. AC_DEFUN(EC_PF_PACKET,[
  47. AC_MSG_CHECKING(if you can create PF_PACKET socket)
  48. AC_TRY_RUN([
  49. #include <arpa/inet.h>
  50. #include <sys/socket.h>
  51. #include <features.h>         /* for the glibc version number */
  52. #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
  53. #include <net/ethernet.h>     /* the L2 protocols */
  54. #else
  55. #include <asm/types.h>
  56. #include <linux/if_ether.h>   /* The L2 protocols */
  57. #endif
  58. main()
  59. {
  60. int sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
  61. if (sock < 0)
  62.    exit(1);
  63. exit(0);
  64. }
  65. ],
  66. [  AC_MSG_RESULT(yes)
  67. AC_DEFINE(HAVE_PF_PACKET,1)
  68. ],
  69.   AC_MSG_RESULT(no);
  70. nopf=1,
  71. AC_MSG_RESULT(no when cross-compiling)
  72. )
  73. ])
  74. dnl
  75. dnl EC_SOCK_PACKET()
  76. dnl
  77. dnl returns  HAVE_SCOK_PACKET
  78. dnl            nosock=1 (if fails)
  79. dnl
  80. AC_DEFUN(EC_SOCK_PACKET,[
  81. AC_MSG_CHECKING(if you can create SOCK_PACKET socket)
  82. AC_TRY_RUN([
  83. #include <arpa/inet.h>
  84. #include <sys/socket.h>
  85. #include <features.h>         /* for the glibc version number */
  86. #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
  87. #include <net/ethernet.h>     /* the L2 protocols */
  88. #else
  89. #include <asm/types.h>
  90. #include <linux/if_ether.h>   /* The L2 protocols */
  91. #endif
  92. main()
  93. {
  94. int sock = socket(AF_INET, SOCK_PACKET, htons(ETH_P_ALL));
  95. if (sock < 0)
  96.    exit(1);
  97. exit(0);
  98. }
  99. ],
  100. [  AC_MSG_RESULT(yes)
  101. AC_DEFINE(HAVE_SOCK_PACKET,1)
  102. ],
  103.   AC_MSG_RESULT(no);
  104. nosock=1,
  105. AC_MSG_RESULT(no when cross-compiling)
  106. )
  107. ])
  108. dnl
  109. dnl     EC_ENDIAN_CHECK
  110. dnl
  111. dnl results:
  112. dnl
  113. dnl     HAVE_MACHINE_BIG = 1   or
  114. dnl     HAVE_MACHINE_LIL = 1
  115. dnl
  116. AC_DEFUN(EC_ENDIAN_CHECK,
  117. [AC_MSG_CHECKING(machine endianess)
  118. AC_TRY_RUN([
  119. #include <stdio.h>
  120. #include <stdlib.h>
  121.         int main()
  122.         {
  123.             union
  124.             {
  125.                 short s;
  126.                 char c[sizeof(short)];
  127.             } un;
  128.             un.s = 0x4612; // magic number for me... ;)
  129.             if (un.c [0] == 0x46 && un.c [1] == 0x12)
  130.             {
  131. exit(1);
  132. }
  133.             else
  134.             {
  135.              if (un.c [0] == 0x12 && un.c [1] == 0x46)
  136. exit(0);
  137.             }
  138.         }
  139. ],
  140. [  AC_MSG_RESULT(lil)
  141. AC_DEFINE(HAVE_MACHINE_LIL)
  142. ],
  143.   AC_MSG_RESULT(BIG);
  144.   AC_DEFINE(HAVE_MACHINE_BIG)
  145.   AC_MSG_WARN(*************************************************************);
  146. AC_MSG_WARN(* BIG ENDIANNESS not yet tested... use at your own risk...  *);
  147. AC_MSG_WARN(*************************************************************);
  148. ,
  149.   AC_MSG_RESULT(unkon when cross-compiling)
  150. )
  151. ])