#!/bin/bash set -e # Repos URLs LLVMSRC=https://github.com/llvm/llvm-project.git MISRC=https://github.com/cdl-saarland/MemInstrument.git BINUTILS=git://sourceware.org/git/binutils-gdb.git # Basic structure INSTALL_ROOT="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" MIREPOS=$INSTALL_ROOT/meminstrument-repos MIBUILD=$INSTALL_ROOT/meminstrument-build mkdir -p $MIREPOS $MIBUILD # Setup binutils cd $MIREPOS git clone $BINUTILS -b gdb-12-branchpoint --depth 1 # Clone LLVM 12 git clone $LLVMSRC -b release/12.x --depth 1 # Check out MemInstrument cd llvm-project/llvm/projects git clone $MISRC meminstrument cd meminstrument git submodule init && git submodule update # Build with meminstrument enabled LLVMBUILD=$MIBUILD/llvm-meminstrument-build mkdir -p $LLVMBUILD cd $LLVMBUILD cmake -G Ninja -D LLVM_ENABLE_PROJECTS="clang" -D CMAKE_BUILD_TYPE=Release -D LLVM_TARGETS_TO_BUILD=X86 -D LLVM_BINUTILS_INCDIR=$MIREPOS/binutils-gdb/include $MIREPOS/llvm-project/llvm ninja