find_m4.sh
上传用户:xu_441
上传日期:2007-01-04
资源大小:1640k
文件大小:2k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. # Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
  3. # All rights reserved.
  4. #
  5. # By using this file, you agree to the terms and conditions set
  6. # forth in the LICENSE file which can be found at the top level of
  7. # the sendmail distribution.
  8. #
  9. #
  10. #       $Id: find_m4.sh,v 8.7 1999/02/07 07:25:58 gshapiro Exp $
  11. #
  12. # Try to find a working M4 program.
  13. # If $M4 is already set, we use it, otherwise we prefer GNU m4.
  14. EX_UNAVAILABLE=69
  15. test="ifdef(`pushdef', `',
  16. `errprint(`You need a newer version of M4, at least as new as System V or GNU')
  17. include(NoSuchFile)')
  18. define(`BadNumber', `10')
  19. ifdef(`BadNumber', `', `errprint(`This version of m4 is broken')')"
  20. if [ "$M4" ]
  21. then
  22. err=`(echo "$test" | $M4) 2>&1 >/dev/null`
  23. code=$?
  24. else
  25. firstfound=
  26. ifs="$IFS"; IFS="${IFS}:"
  27. for m4 in gm4 gnum4 pdm4 m4
  28. do
  29. for dir in $PATH /usr/5bin /usr/ccs/bin
  30. do
  31. [ -z "$dir" ] && dir=.
  32. if [ -f $dir/$m4 ]
  33. then
  34. err=`(echo "$test" | $dir/$m4) 2>&1 >/dev/null`
  35. ret=$?
  36. if [ $ret -eq 0 -a "X$err" = "X" ]
  37. then
  38. M4=$dir/$m4
  39. code=0
  40. break
  41. else
  42. case "$firstfound:$err" in
  43.   :*version of*)
  44. firstfound=$dir/$m4
  45. firsterr="$err"
  46. firstcode=$ret
  47. ;;
  48. esac
  49. fi
  50. fi
  51. done
  52. [ "$M4" ] && break
  53. done
  54. IFS="$ifs"
  55. if [ ! "$M4" ]
  56. then
  57. if [ "$firstfound" ]
  58. then
  59. M4=$firstfound
  60. err="$firsterr"
  61. code=$firstcode
  62. else
  63. echo "ERROR: Can not locate an M4 program" >&2
  64. exit $EX_UNAVAILABLE
  65. fi
  66. fi
  67. fi
  68. if [ $code -ne 0 ]
  69. then
  70. echo "ERROR: Using M4=$M4: $err" | grep -v NoSuchFile >&2
  71. exit $EX_UNAVAILABLE
  72. elif [ "X$err" != "X" ]
  73. then
  74. echo "WARNING: $err" >&2
  75. fi
  76. echo $M4
  77. exit 0