download_prerequisites: Conditionally verify checksums of downloaded pacakges.
2016-10-24 Moritz Klammler <moritz@glammler.eu> * download_prerequisites: Conditionally verify checksums of downloaded pacakges. Add help text. * prerequisites.md5: New file. * prerequisites.sha512: New file. From-SVN: r241483
This commit is contained in:
parent
d168c883c5
commit
38000825cd
@ -1,3 +1,10 @@
|
|||||||
|
2016-10-24 Moritz Klammler <moritz@glammler.eu>
|
||||||
|
|
||||||
|
* download_prerequisites: Conditionally verify checksums of
|
||||||
|
downloaded pacakges. Add help text.
|
||||||
|
* prerequisites.md5: New file.
|
||||||
|
* prerequisites.sha512: New file.
|
||||||
|
|
||||||
2016-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2016-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* check_GNU_style.sh (remove_testsuite): New function.
|
* check_GNU_style.sh (remove_testsuite): New function.
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
#! -*- coding:utf-8; mode:shell-script; -*-
|
||||||
|
|
||||||
# Download some prerequisites needed by gcc.
|
# Download some prerequisites needed by GCC.
|
||||||
# Run this from the top level of the gcc source tree and the gcc
|
# Run this from the top level of the GCC source tree and the GCC build will do
|
||||||
# build will do the right thing.
|
# the right thing. Run it with the `--help` option for more information.
|
||||||
#
|
#
|
||||||
# (C) 2010-2016 Free Software Foundation
|
# (C) 2010-2016 Free Software Foundation
|
||||||
#
|
#
|
||||||
@ -19,42 +20,196 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see http://www.gnu.org/licenses/.
|
# along with this program. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
# If you want to disable Graphite loop optimizations while building GCC,
|
|
||||||
# DO NOT set GRAPHITE_LOOP_OPT as yes so that the isl package will not
|
|
||||||
# be downloaded.
|
|
||||||
GRAPHITE_LOOP_OPT=yes
|
|
||||||
|
|
||||||
if [ ! -e gcc/BASE-VER ] ; then
|
program='download_prerequisites'
|
||||||
echo "You must run this script in the top level GCC source directory."
|
version='(unversioned)'
|
||||||
exit 1
|
|
||||||
|
# MAINTAINERS: If you update the package versions below, please
|
||||||
|
# remember to also update the files `contrib/prerequisites.sha512` and
|
||||||
|
# `contrib/prerequisites.md5` with the new checksums.
|
||||||
|
|
||||||
|
gmp='gmp-6.1.0.tar.bz2'
|
||||||
|
mpfr='mpfr-3.1.4.tar.bz2'
|
||||||
|
mpc='mpc-1.0.3.tar.gz'
|
||||||
|
isl='isl-0.16.1.tar.bz2'
|
||||||
|
|
||||||
|
base_url='ftp://gcc.gnu.org/pub/gcc/infrastructure/'
|
||||||
|
|
||||||
|
echo_archives() {
|
||||||
|
echo "${gmp}"
|
||||||
|
echo "${mpfr}"
|
||||||
|
echo "${mpc}"
|
||||||
|
if [ ${graphite} -gt 0 ]; then echo "${isl}"; fi
|
||||||
|
}
|
||||||
|
|
||||||
|
graphite=1
|
||||||
|
verify=1
|
||||||
|
force=0
|
||||||
|
chksum='sha512'
|
||||||
|
directory='.'
|
||||||
|
|
||||||
|
helptext="usage: ${program} [OPTION...]
|
||||||
|
|
||||||
|
Downloads some prerequisites needed by GCC. Run this from the top level of the
|
||||||
|
GCC source tree and the GCC build will do the right thing.
|
||||||
|
|
||||||
|
The following options are available:
|
||||||
|
|
||||||
|
--directory=DIR download and unpack packages into DIR instead of '.'
|
||||||
|
--force download again overwriting existing packages
|
||||||
|
--no-force do not download existing packages again (default)
|
||||||
|
--isl download ISL, needed for Graphite loop optimizations (default)
|
||||||
|
--graphite same as --isl
|
||||||
|
--no-isl don't download ISL
|
||||||
|
--no-graphite same as --no-isl
|
||||||
|
--verify verify package integrity after download (default)
|
||||||
|
--no-verify don't verify package integrity
|
||||||
|
--sha512 use SHA512 checksum to verify package integrity (default)
|
||||||
|
--md5 use MD5 checksum to verify package integrity
|
||||||
|
--help show this text and exit
|
||||||
|
--version show version information and exit
|
||||||
|
"
|
||||||
|
|
||||||
|
versiontext="${program} ${version}
|
||||||
|
Copyright (C) 2016 Free Software Foundation, Inc.
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
|
||||||
|
die() {
|
||||||
|
echo "error: $@" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
for arg in "$@"
|
||||||
|
do
|
||||||
|
case "${arg}" in
|
||||||
|
--help)
|
||||||
|
echo "${helptext}"
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
--version)
|
||||||
|
echo "${versiontext}"
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
unset arg
|
||||||
|
|
||||||
|
argnext=
|
||||||
|
for arg in "$@"
|
||||||
|
do
|
||||||
|
if [ "x${argnext}" = x ]
|
||||||
|
then
|
||||||
|
case "${arg}" in
|
||||||
|
--directory)
|
||||||
|
argnext='directory'
|
||||||
|
;;
|
||||||
|
--directory=*)
|
||||||
|
directory="${arg#--directory=}"
|
||||||
|
;;
|
||||||
|
--force)
|
||||||
|
force=1
|
||||||
|
;;
|
||||||
|
--no-force)
|
||||||
|
force=0
|
||||||
|
;;
|
||||||
|
--isl|--graphite)
|
||||||
|
graphite=1
|
||||||
|
;;
|
||||||
|
--no-isl|--no-graphite)
|
||||||
|
graphite=0
|
||||||
|
;;
|
||||||
|
--verify)
|
||||||
|
verify=1
|
||||||
|
;;
|
||||||
|
--no-verify)
|
||||||
|
verify=0
|
||||||
|
;;
|
||||||
|
--sha512)
|
||||||
|
chksum='sha512'
|
||||||
|
verify=1
|
||||||
|
;;
|
||||||
|
--md5)
|
||||||
|
chksum='md5'
|
||||||
|
verify=1
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
die "unknown option: ${arg}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
die "too many arguments"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
case "${arg}" in
|
||||||
|
-*)
|
||||||
|
die "Missing argument for option --${argnext}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "${argnext}" in
|
||||||
|
directory)
|
||||||
|
directory="${arg}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
die "The impossible has happened"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
argnext=
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[ "x${argnext}" = x ] || die "Missing argument for option --${argnext}"
|
||||||
|
unset arg argnext
|
||||||
|
|
||||||
|
[ -e ./gcc/BASE-VER ] \
|
||||||
|
|| die "You must run this script in the top-level GCC source directory"
|
||||||
|
|
||||||
|
[ -d "${directory}" ] \
|
||||||
|
|| die "No such directory: ${directory}"
|
||||||
|
|
||||||
|
for ar in $(echo_archives)
|
||||||
|
do
|
||||||
|
if [ ${force} -gt 0 ]; then rm -f "${directory}/${ar}"; fi
|
||||||
|
[ -e "${directory}/${ar}" ] \
|
||||||
|
|| wget --no-verbose -O "${directory}/${ar}" "${base_url}${ar}" \
|
||||||
|
|| die "Cannot download ${ar} from ${base_url}"
|
||||||
|
done
|
||||||
|
unset ar
|
||||||
|
|
||||||
|
if [ ${verify} -gt 0 ]
|
||||||
|
then
|
||||||
|
chksumfile="contrib/prerequisites.${chksum}"
|
||||||
|
[ -r "${chksumfile}" ] || die "No checksums available"
|
||||||
|
for ar in $(echo_archives)
|
||||||
|
do
|
||||||
|
grep "${ar}" "${chksumfile}" \
|
||||||
|
| ( cd "${directory}" && "${chksum}sum" --check ) \
|
||||||
|
|| die "Cannot verify integrity of possibly corrupted file ${ar}"
|
||||||
|
done
|
||||||
|
unset chksumfile
|
||||||
fi
|
fi
|
||||||
|
unset ar
|
||||||
|
|
||||||
# Necessary to build GCC.
|
for ar in $(echo_archives)
|
||||||
MPFR=mpfr-3.1.4
|
do
|
||||||
GMP=gmp-6.1.0
|
package="${ar%.tar*}"
|
||||||
MPC=mpc-1.0.3
|
if [ ${force} -gt 0 ]; then rm -rf "${directory}/${package}"; fi
|
||||||
|
[ -e "${directory}/${package}" ] \
|
||||||
|
|| ( cd "${directory}" && tar -xf "${ar}" ) \
|
||||||
|
|| die "Cannot extract package from ${ar}"
|
||||||
|
unset package
|
||||||
|
done
|
||||||
|
unset ar
|
||||||
|
|
||||||
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1
|
for ar in $(echo_archives)
|
||||||
tar xjf $MPFR.tar.bz2 || exit 1
|
do
|
||||||
if test -L mpfr; then rm -f mpfr; fi
|
target="${directory}/${ar%.tar*}/"
|
||||||
ln -sf $MPFR mpfr || exit 1
|
linkname="${ar%-*}"
|
||||||
|
if [ ${force} -gt 0 ]; then rm -f "${linkname}"; fi
|
||||||
|
[ -e "${linkname}" ] \
|
||||||
|
|| ln -s "${target}" "${linkname}" \
|
||||||
|
|| die "Cannot create symbolic link ${linkname} --> ${target}"
|
||||||
|
unset target linkname
|
||||||
|
done
|
||||||
|
unset ar
|
||||||
|
|
||||||
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 || exit 1
|
echo "All prerequisites downloaded successfully."
|
||||||
tar xjf $GMP.tar.bz2 || exit 1
|
|
||||||
if test -L gmp; then rm -f gmp; fi
|
|
||||||
ln -sf $GMP gmp || exit 1
|
|
||||||
|
|
||||||
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz || exit 1
|
|
||||||
tar xzf $MPC.tar.gz || exit 1
|
|
||||||
if test -L mpc; then rm -f mpc; fi
|
|
||||||
ln -sf $MPC mpc || exit 1
|
|
||||||
|
|
||||||
# Necessary to build GCC with the Graphite loop optimizations.
|
|
||||||
if [ "$GRAPHITE_LOOP_OPT" = "yes" ] ; then
|
|
||||||
ISL=isl-0.16.1
|
|
||||||
|
|
||||||
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$ISL.tar.bz2 || exit 1
|
|
||||||
tar xjf $ISL.tar.bz2 || exit 1
|
|
||||||
if test -L isl; then rm -f isl; fi
|
|
||||||
ln -sf $ISL isl || exit 1
|
|
||||||
fi
|
|
||||||
|
4
contrib/prerequisites.md5
Normal file
4
contrib/prerequisites.md5
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
86ee6e54ebfc4a90b643a65e402c4048 gmp-6.1.0.tar.bz2
|
||||||
|
b8a2f6b0e68bef46e53da2ac439e1cf4 mpfr-3.1.4.tar.bz2
|
||||||
|
d6a1d5f8ddea3abd2cc3e98f58352d26 mpc-1.0.3.tar.gz
|
||||||
|
ac1f25a0677912952718a51f5bc20f32 isl-0.16.1.tar.bz2
|
4
contrib/prerequisites.sha512
Normal file
4
contrib/prerequisites.sha512
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
3c82aeab9c1596d4da8afac2eec38e429e84f3211e1a572cf8fd2b546493c44c039b922a1133eaaa48bd7f3e11dbe795a384e21ed95cbe3ecc58d7ac02246117 gmp-6.1.0.tar.bz2
|
||||||
|
51066066ff2c12ed2198605ecf68846b0c96b548adafa5b80e0c786d0df488411a5e8973358fce7192dc977ad4e68414cf14500e3c39746de62465eb145bb819 mpfr-3.1.4.tar.bz2
|
||||||
|
0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43 mpc-1.0.3.tar.gz
|
||||||
|
c188667a84dc5bdddb4ab7c35f89c91bf15a8171f4fcaf41301cf285fb7328846d9a367c096012fec4cc69d244f0bc9e95d84c09ec097394cd4093076f2a041b isl-0.16.1.tar.bz2
|
Loading…
Reference in New Issue
Block a user