aclocal.m4
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. dnl Autoconf extensions for pthreads package.
  2. dnl
  3. ifelse(regexp(AC_DEFINE(xxxxx),.*@@@.*),-1,,[define(IS_AUTOHEADER)])])dnl
  4. dnl
  5. dnl Now, the real stuff needed by the pthreads package.
  6. dnl
  7. AC_DEFUN([PTHREADS_CHECK_ONE_SYSCALL],
  8. [AC_MSG_CHECKING(for syscall $1)
  9. AC_CACHE_VAL(pthreads_cv_syscall_$1,
  10. AC_TRY_LINK([
  11. /* FIXME: This list should be generated from info in configure.in.  */
  12. #ifdef HAVE_SYSCALL_H
  13. #include <syscall.h>
  14. #else
  15. #ifdef HAVE_SYS_SYSCALL_H
  16. #include <sys/syscall.h>
  17. #else
  18. where is your syscall header file??
  19. #endif
  20. #endif
  21. ],[
  22. int x;
  23. x = SYS_$1 ;
  24. ],
  25. eval pthreads_cv_syscall_$1=yes,
  26. eval pthreads_cv_syscall_$1=no))
  27. if eval test $pthreads_cv_syscall_$1 = yes ; then
  28. pthreads_syscall_present=yes
  29. available_syscalls="$available_syscalls $1"
  30. dnl Can't just do the obvious substitution here or autoheader gets
  31. dnl sorta confused.  (Sigh.)  Getting the requoting of the brackets right
  32. dnl would be a pain too.
  33. macroname=HAVE_SYSCALL_`echo $1 | tr '[[[a-z]]]' '[[[A-Z]]]'`
  34. AC_DEFINE_UNQUOTED($macroname)
  35. else
  36. pthreads_syscall_present=no
  37. missing_syscalls="$missing_syscalls $1"
  38. fi
  39. AC_MSG_RESULT($pthreads_syscall_present)
  40. ])dnl
  41. dnl
  42. AC_DEFUN(PTHREADS_CHECK_SYSCALLS,dnl
  43. ifdef([IS_AUTOHEADER],[#
  44. dnl Need to fake out autoheader, since there's no way to add a new class
  45. dnl of features to generate config.h.in entries for.
  46. @@@syscalls="$1"@@@
  47. @@@funcs="$funcs syscall_`echo $syscalls | sed 's/ / syscall_/g'`"@@@
  48. ],
  49. [pthreads_syscall_list="$1"
  50. for pthreads_syscallname in $pthreads_syscall_list ; do
  51.   PTHREADS_CHECK_ONE_SYSCALL([$]pthreads_syscallname)
  52. done
  53. ]))dnl
  54. dnl
  55. dnl Requote each argument.
  56. define([requote], [ifelse($#, 0, , $#, 1, "$1",
  57. "$1" [requote(builtin(shift,$@))])])dnl
  58. dnl
  59. dnl Determine proper typedef value for a typedef name, and define a
  60. dnl C macro to expand to that type.  (A shell variable with that value
  61. dnl is also created.)  If none of the specified types to try match, the
  62. dnl macro is left undefined, and the shell variable empty.  If the
  63. dnl typedef name cannot be found in the specified header files, this
  64. dnl test errors out; perhaps it should be changed to simply leave the
  65. dnl macro undefined...
  66. dnl
  67. dnl PTHREADS_FIND_TYPE(typedefname,varname,includes,possible values...)
  68. dnl
  69. AC_DEFUN(PTHREADS_FIND_TYPE,
  70. ifdef([IS_AUTOHEADER],[#
  71. @@@syms="$syms $2"@@@
  72. ],[dnl
  73. AC_MSG_CHECKING(type of $1)
  74. AC_CACHE_VAL(pthreads_cv_type_$1,
  75. [AC_TRY_COMPILE([$3],[ extern $1 foo; ],
  76. [  for try_type in [requote(builtin(shift,builtin(shift,builtin(shift,$@))))] ; do
  77.   AC_TRY_COMPILE([$3],[ extern $1 foo; extern $try_type foo; ],
  78.     [ pthreads_cv_type_$1="$try_type" ; break ])
  79.   done],
  80.   AC_MSG_ERROR(Can't find system typedef for $1.))])
  81. if test -n "$pthreads_cv_type_$1" ; then
  82.   AC_DEFINE_UNQUOTED($2,$pthreads_cv_type_$1)
  83. fi
  84. $2=$pthreads_cv_type_$1
  85. AC_MSG_RESULT($pthreads_cv_type_$1)]))dnl
  86. dnl
  87. dnl
  88. dnl Like above, but the list of types to try is pre-specified.
  89. dnl
  90. AC_DEFUN(PTHREADS_FIND_INTEGRAL_TYPE,[
  91. PTHREADS_FIND_TYPE([$1], [$2], [$3],
  92. int, unsigned int, long, unsigned long,
  93. short, unsigned short, char, unsigned char,
  94. long long, unsigned long long)])dnl