1#!/bin/sh 2 3cd $(dirname $0) 4 5: ${NETBSDSRCDIR=${PWD}/../..} 6: ${LLVMSRCDIR=${NETBSDSRCDIR}/external/bsd/llvm/dist} 7: ${ARCH=i386} 8: ${JOBS=1} 9: ${OBJ_LLVM=${NETBSDSRCDIR}/../obj_llvm.${ARCH}} 10: ${OBJ=${NETBSDSRCDIR}/../obj.${ARCH}} 11: ${CROSS_TOOLS=${OBJ}/"tooldir.`uname -s`-`uname -r`-`uname -m`"/bin} 12 13echo ${NETBSDSRCDIR} 14echo ${LLVMSRCDIR} 15echo ${OBJ_LLVM} 16echo ${OBJ} 17echo ${CROSS_TOOLS} 18 19# Retrieve all the GPL sources 20cd ${NETBSDSRCDIR} 21find . -name fetch.sh -exec '{}' \; 22 23# Build LLVM manually 24mkdir -p ${OBJ_LLVM} 25cd ${OBJ_LLVM} 26 27${LLVMSRCDIR}/llvm/configure \ 28 --enable-targets=x86 \ 29 --with-c-include-dirs=/usr/include/clang-3.4:/usr/include \ 30 --disable-timestamps \ 31 --prefix=/usr \ 32 --sysconfdir=/etc/llvm \ 33 --with-clang-srcdir=${LLVMSRCDIR}/clang \ 34 --host=i586-elf32-minix \ 35 --with-binutils-include=${NETBSDSRCDIR}/external/gpl3/binutils/dist/include \ 36 --disable-debug-symbols \ 37 --enable-assertions \ 38 --enable-bindings=none \ 39 llvm_cv_gnu_make_command=make \ 40 ac_cv_path_CIRCO="echo circo" \ 41 ac_cv_path_DOT="echo dot" \ 42 ac_cv_path_DOTTY="echo dotty" \ 43 ac_cv_path_FDP="echo fdp" \ 44 ac_cv_path_NEATO="echo neato" \ 45 ac_cv_path_TWOPI="echo twopi" \ 46 ac_cv_path_XDOT="echo xdot" \ 47 --enable-optimized 48 49make -j ${JOBS} 50 51# Copy the gold plugin where the NetBSD build system expects it. 52mkdir -p ${NETBSDSRCDIR}/minix/llvm/bin/ 53cp ${OBJ_LLVM}/./Release+Asserts/lib/libLTO.so ${NETBSDSRCDIR}/minix/llvm/bin/ 54cp ${OBJ_LLVM}/./Release+Asserts/lib/LLVMgold.so ${NETBSDSRCDIR}/minix/llvm/bin/ 55 56# Copy useful LLVM tools 57mkdir -p ${CROSS_TOOLS} 58cp ${OBJ_LLVM}/./Release+Asserts/bin/llc ${CROSS_TOOLS} 59cp ${OBJ_LLVM}/./Release+Asserts/bin/opt ${CROSS_TOOLS} 60cp ${OBJ_LLVM}/./Release+Asserts/bin/llvm-* ${CROSS_TOOLS} 61 62# Generate and Install default MINIX passes 63cd ${NETBSDSRCDIR}/minix/llvm/passes/WeakAliasModuleOverride 64make install 65 66cd ${NETBSDSRCDIR}/minix/llvm/passes/hello 67make install 68