Skip to content

Instantly share code, notes, and snippets.

@cecekpawon
Last active July 9, 2020 07:21
Show Gist options
  • Select an option

  • Save cecekpawon/76bf8fa3c6689f2ae48c82a21bb853a3 to your computer and use it in GitHub Desktop.

Select an option

Save cecekpawon/76bf8fa3c6689f2ae48c82a21bb853a3 to your computer and use it in GitHub Desktop.
Compile MTOC.NEW
#!/bin/bash
# MTOC.NEW
# @cecekpawon Fri Dec 16 22:21:10 2016
# thrsh.net
SRC=$HOME/Desktop/mtoc
gCctoolsVer="949.0.1"
uCctools="https://opensource.apple.com/tarballs/cctools/"
dLLVM="LLVM"
gLLVMRev="289949"
dLLVMInc="include/llvm-c"
uLLVM="https://llvm.org/svn/llvm-project/llvm/trunk/"
gDisassembler="Disassembler.h"
gMTOC="MTOC.NEW"
#gTmp=$(curl -s $uCctools | xmllint --html --xpath '//tr[last()-1]/td/a' - 2>/dev/null | sed -nE 's/^.*\-([0-9]+)\.tar\.gz.*$/\1/p')
gTmp=$(curl -s $uCctools | xmllint --html --xpath '//tr[4]/td/a' - 2>/dev/null | sed -nE 's/^.*\-([0-9.]+)\.tar\.gz.*$/\1/p')
if [[ $gTmp =~ ^[0-9]+$ ]]; then
gCctoolsVer=$gTmp
fi
echo gCctoolsVer: ${gCctoolsVer}
gTmp=$(curl -s $uLLVM | xmllint --html --xpath '//title' - 2>/dev/null | tr -cd '0-9')
if [[ $gTmp =~ ^[0-9]+$ ]]; then
gLLVMRev=$gTmp
fi
echo gLLVMRev: ${gLLVMRev}
fCctools="cctools-${gCctoolsVer}"
gCctools="${fCctools}.tar.gz"
mkdir -p "${SRC}" && cd "${SRC}"
[[ ! -e $gCctools ]] && curl -O -L "${uCctools}${gCctools}"
tar xvfz $gCctools
mv "${fCctools}/${dLLVMInc}/${gDisassembler}" "${fCctools}"
svn checkout -r $gLLVMRev "${uLLVM}${dLLVMInc}" "${dLLVM}"
cp "${dLLVM}/"*.* "${fCctools}/${dLLVMInc}"
cd "${fCctools}" && mv $gDisassembler $dLLVMInc && make
cd "efitools" && make
[[ -e $gMTOC ]] && mv $gMTOC "${SRC}"
cd "${SRC}" && find . ! -name $gMTOC -mindepth 1 -maxdepth 1 -exec rm -rf "{}" \;
echo "done: ${SRC}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment