|
| 1 | +# usage: install-ghidra.sh [[dst] buildir] |
| 2 | +PREFIX=$(realpath ${1:-/usr}) |
| 3 | +BUILDDIR=${2:-$(mktemp -d)} |
| 4 | +GHIDRA_VERSION=10.0.4 |
| 5 | +GHIDRA_BASENAME=Ghidra_${GHIDRA_VERSION}_build |
| 6 | +GHIDRA_TARBALL=${GHIDRA_BASENAME}.tar.gz |
| 7 | +GHIDRA_BASE_URL=https://github.com/NationalSecurityAgency/ghidra/archive/refs/tags/ |
| 8 | +GHIDRA_SRC_URL=${GHIDRA_BASE_URL}/${GHIDRA_TARBALL} |
| 9 | +GHIDRA_SHA256=76f1bd9604d49a2e59c47b347aedb90484bcfe51217c792e8cc771fc6481147c |
| 10 | +GHIDRA_ROOT=ghidra-${GHIDRA_BASENAME} |
| 11 | +LIBGHIDRA_PATH=${GHIDRA_ROOT}/Ghidra/Features/Decompiler/src/decompile/cpp |
| 12 | +LIBGHIDRA_FLAGS="-O2 -std=c++11 -fPIC" |
| 13 | +LIBGHIDRA_HEADERS_INSTALL_DIR=${PREFIX}/include/ghidra |
| 14 | +LIBGHIDRA_LIBRARY_INSTALL_DIR=${PREFIX}/lib/ghidra |
| 15 | +LIBGHIDRA_PROCESSORS_INSTALL_DIR=${PREFIX}/share/ghidra/Ghidra/Processors |
| 16 | + |
| 17 | +set -x \ |
| 18 | +&& cd ${BUILDDIR} \ |
| 19 | +&& curl -sS -L -o ${GHIDRA_TARBALL} ${GHIDRA_SRC_URL} \ |
| 20 | +&& echo "${GHIDRA_SHA256} ${GHIDRA_TARBALL}" | sha256sum --check \ |
| 21 | +&& tar xzvf ${GHIDRA_TARBALL} \ |
| 22 | +&& rm ${LIBGHIDRA_PATH}/*bfd*.* ${LIBGHIDRA_PATH}/codedata.* \ |
| 23 | +&& make -C ${LIBGHIDRA_PATH} OPT_CXXFLAGS="${LIBGHIDRA_FLAGS}" libdecomp.a libsla.a \ |
| 24 | +&& make -C ${LIBGHIDRA_PATH} sleigh_opt \ |
| 25 | +&& ${LIBGHIDRA_PATH}/sleigh_opt -a ${GHIDRA_ROOT}/Ghidra \ |
| 26 | +&& install -d ${LIBGHIDRA_HEADERS_INSTALL_DIR} \ |
| 27 | +&& install -d ${LIBGHIDRA_LIBRARY_INSTALL_DIR} \ |
| 28 | +&& install -d ${LIBGHIDRA_PROCESSORS_INSTALL_DIR} \ |
| 29 | +&& install -t ${LIBGHIDRA_HEADERS_INSTALL_DIR} ${LIBGHIDRA_PATH}/*.h* \ |
| 30 | +&& install -t ${LIBGHIDRA_LIBRARY_INSTALL_DIR} ${LIBGHIDRA_PATH}/*.a \ |
| 31 | +&& cp -R ${GHIDRA_ROOT}/Ghidra/Processors/x86 ${LIBGHIDRA_PROCESSORS_INSTALL_DIR} \ |
0 commit comments