You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.5 KiB
62 lines
2.5 KiB
#!/bin/sh |
|
## |
|
## gcc.sh -- GCC Package Build Utility |
|
## Copyright (c) 2002 Ralf S. Engelschall <rse@engelschall.com> |
|
## |
|
|
|
check="$1" |
|
shift |
|
case $check in |
|
require-binutils ) |
|
# determine whether GNU gcc requires GNU binutils on this platform |
|
require="no" |
|
target="$1" |
|
shift |
|
case $target in |
|
*-linux* ) |
|
# under Linux the vendor ld is GNU binutils, |
|
# but make sure it is GNU binutils >= 2.12 |
|
if [ -f /etc/debian_version ]; then |
|
v=`/usr/bin/dpkg -l binutils | grep binutils | awk '{ print $3; }'` |
|
elif [ -f /etc/redhat-release ]; then |
|
v=`/bin/rpm -q --qf '%{VERSION}' binutils` |
|
elif [ -f /etc/SuSE-release ]; then |
|
v=`/bin/rpm -q --qf '%{VERSION}' binutils` |
|
else |
|
v=`(/usr/bin/ld --version | grep 'GNU ld' | sed -e 's;^[^0-9]*\([0-9].[0-9.]*\).*;\1;') 2>/dev/null` |
|
fi |
|
case "$v" in |
|
2.1[2-9] | 2.1[2-9].* ) ;; |
|
* ) require="yes" ;; |
|
esac |
|
;; |
|
*-freebsd* ) |
|
# under FreeBSD the vendor ld is GNU binutils, |
|
# but make sure it is GNU binutils >= 2.12 |
|
v=`(/usr/bin/ld --version | grep 'GNU ld' | sed -e 's;^[^0-9]*\([0-9].[0-9.]*\).*;\1;') 2>/dev/null` |
|
case "$v" in |
|
2.1[2-9] | 2.1[2-9].* ) ;; |
|
* ) require="yes" ;; |
|
esac |
|
;; |
|
* ) |
|
# under other OS the vendor ld is usually not GNU binutils, |
|
# but if it is, make sure it is GNU binutils >= 2.12 |
|
for dir in /bin /usr/bin /usr/ccs/bin /sbin /usr/sbin /usr/ccs/sbin; do |
|
if [ -f "$dir/ld" ]; then |
|
if [ ".`($dir/ld --version) 2>/dev/null | grep 'GNU ld'`" != . ]; then |
|
v=`($dir/ld --version | grep 'GNU ld' | sed -e 's;^[^0-9]*\([0-9].[0-9.]*\).*;\1;') 2>/dev/null` |
|
# require GNU binutils >= 2.12 |
|
case "$v" in |
|
2.1[2-9] | 2.1[2-9].* ) ;; |
|
* ) require="yes"; break ;; |
|
esac |
|
fi |
|
fi |
|
done |
|
;; |
|
esac |
|
echo "$require" | awk '{ printf("%s", $1); }' |
|
;; |
|
esac |
|
|
|
|