@@ -4,28 +4,40 @@ # Generate configure script ./build/autogen.sh # Download TCC +tcc_version='0.9.26' +tcc_url="http://download.savannah.gnu.org/releases/tinycc/tcc-${tcc_version}.tar.bz2" +tcc_sha256='521e701ae436c302545c3f973a9c9b7e2694769c71d9be10f70a2460705b6d71' ( - TCC_VERSION="0.9.26" - TCC_URL="http://download.savannah.gnu.org/releases/tinycc/tcc-${TCC_VERSION}.tar.bz2" - TCC_SHA256='521e701ae436c302545c3f973a9c9b7e2694769c71d9be10f70a2460705b6d71' - rm -rf __TMP__ mkdir __TMP__ || exit 1 cd __TMP__ || exit 1 - wget -O tcc.tar.bz2.new "${TCC_URL}" || rm -f tcc.tar.bz2.new - TCC_NEW_SHA256="$(openssl sha256 < tcc.tar.bz2.new | sed 's@.*= *@@')" + + wget -O 'new' "${tcc_url}" || rm -f new + new_sha256="$(openssl sha256 new | sed 's@.*= *@@')" + + if [ "${new_sha256}" != "${tcc_sha256}" ]; then + echo "Checksum Mismatch: Downloaded: ${new_sha256}; Expected: ${tcc_sha256}" >&2 + + rm -f new - if [ "${TCC_NEW_SHA256}" = "${TCC_SHA256}" ]; then - mv tcc.tar.bz2.new tcc.tar.bz2 + exit 1 fi - tar -xf tcc.tar.bz2 - rm -f tcc.tar.bz2 + mv new "tcc-${tcc_version}.tar.bz2" + + bzip2 -dc "tcc-${tcc_version}.tar.bz2" | tar -xf - + + rm -f "tcc-${tcc_version}.tar.bz2" + + ## Apply patches + for patchfile in ../build/tcc-patches/${tcc_version}/*.diff; do + ( cd * && patch -p1 ) < "${patchfile}" + done rm -rf ../tcc mkdir ../tcc || exit 1 mv */* ../tcc/ ) rm -rf __TMP__