| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | #!/bin/bash -xesrcdir=gnusrcdstdir=gnu.riscv.buildprefix="$(pwd)/gnu"MAKE="${MAKE:-make}"make_flags="${gnu_makeflags}"if [ -z "$make_flags" ]; then make_flags="$MAKEFLAGS"; fiMAKEFLAGS="$make_flags"export MAKEFLAGSdeclare -A xconfigxconfig['binutils']="$riscv_binutils_configargs"xconfig['gcc0']="$riscv_gcc_configargs"xconfig['gcc']="$riscv_gcc_configargs"xconfig['newlib']="$riscv_newlib_configargs"declare -A buildbuild['gcc']=all-gccdeclare -A installinstall['gcc']=install-gccPATH="$prefix/bin:$PATH"export PATHbuilt_something=falsefor tool in binutils gcc newlib; do    toolsrc="$srcdir"/"$tool"    tooldst="$dstdir"/"$tool"    mkdir -p "$tooldst"    dsthead=$(cat "$tooldst"/HEAD 2>/dev/null || true)    srchead=$(cd "$toolsrc" && git rev-parse HEAD)    if [ x$dsthead != x$srchead ]; then	cd "$tooldst"	if [ ! -f ./config.status ] ||	   [ ./config.status -ot ../../"$toolsrc"/configure ]; then	    ../../"$toolsrc"/configure \		 $riscv_config ${xconfig[$tool]} \		 CFLAGS_FOR_TARGET="$riscv_target_flags" \		 CXXFLAGS_FOR_TARGET="$riscv_target_flags"	fi	$MAKE ${build[$tool]}	$MAKE ${install[$tool]:-install}	echo "$srchead" > HEAD	built_something=true	cd ../..    fidone# Additional gcc stuff after newlib buildif $built_something; then    tool=gcc    toolsrc="$srcdir"/"$tool"    tooldst="$dstdir"/"$tool"    cd "$tooldst"    $MAKE    $MAKE install    cd ../..fi
 |