gcc.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/sh
  2. ##
  3. ## gcc.sh -- GCC Package Build Utility
  4. ## Copyright (c) 2002 Ralf S. Engelschall <rse@engelschall.com>
  5. ##
  6. check="$1"
  7. shift
  8. case $check in
  9. require-binutils )
  10. # determine whether GNU gcc requires GNU binutils on this platform
  11. require="no"
  12. target="$1"
  13. shift
  14. case $target in
  15. *-linux* )
  16. # under Linux the vendor ld is GNU binutils,
  17. # but make sure it is GNU binutils >= 2.12
  18. if [ -f /etc/debian_version ]; then
  19. v=`/usr/bin/dpkg -l binutils | grep binutils | awk '{ print $3; }'`
  20. elif [ -f /etc/redhat-release ]; then
  21. v=`/bin/rpm -q --qf '%{VERSION}' binutils`
  22. elif [ -f /etc/SuSE-release ]; then
  23. v=`/bin/rpm -q --qf '%{VERSION}' binutils`
  24. else
  25. v=`(/usr/bin/ld --version | grep 'GNU ld' | sed -e 's;^[^0-9]*\([0-9].[0-9.]*\).*;\1;') 2>/dev/null`
  26. fi
  27. case "$v" in
  28. 2.1[2-9] | 2.1[2-9].* ) ;;
  29. * ) require="yes" ;;
  30. esac
  31. ;;
  32. *-freebsd* )
  33. # under FreeBSD the vendor ld is GNU binutils,
  34. # but make sure it is GNU binutils >= 2.12
  35. v=`(/usr/bin/ld --version | grep 'GNU ld' | sed -e 's;^[^0-9]*\([0-9].[0-9.]*\).*;\1;') 2>/dev/null`
  36. case "$v" in
  37. 2.1[2-9] | 2.1[2-9].* ) ;;
  38. * ) require="yes" ;;
  39. esac
  40. ;;
  41. * )
  42. # under other OS the vendor ld is usually not GNU binutils,
  43. # but if it is, make sure it is GNU binutils >= 2.12
  44. for dir in /bin /usr/bin /usr/ccs/bin /sbin /usr/sbin /usr/ccs/sbin; do
  45. if [ -f "$dir/ld" ]; then
  46. if [ ".`($dir/ld --version) 2>/dev/null | grep 'GNU ld'`" != . ]; then
  47. v=`($dir/ld --version | grep 'GNU ld' | sed -e 's;^[^0-9]*\([0-9].[0-9.]*\).*;\1;') 2>/dev/null`
  48. # require GNU binutils >= 2.12
  49. case "$v" in
  50. 2.1[2-9] | 2.1[2-9].* ) ;;
  51. * ) require="yes"; break ;;
  52. esac
  53. fi
  54. fi
  55. done
  56. ;;
  57. esac
  58. echo "$require" | awk '{ printf("%s", $1); }'
  59. ;;
  60. esac