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: ${MAKE=make} 13 14echo ${NETBSDSRCDIR} 15echo ${LLVMSRCDIR} 16echo ${OBJ_LLVM} 17echo ${OBJ} 18echo ${CROSS_TOOLS} 19 20# Retrieve all the GPL sources 21cd ${NETBSDSRCDIR} 22find . -name fetch.sh -exec '{}' \; 23 24# Build LLVM manually 25mkdir -p ${OBJ_LLVM} 26cd ${OBJ_LLVM} 27 28${LLVMSRCDIR}/llvm/configure \ 29 --enable-targets=x86 \ 30 --with-c-include-dirs=/usr/include/clang-3.6:/usr/include \ 31 --disable-timestamps \ 32 --prefix=/usr \ 33 --sysconfdir=/etc/llvm \ 34 --with-clang-srcdir=${LLVMSRCDIR}/clang \ 35 --host=i586-elf32-minix \ 36 --with-binutils-include=${NETBSDSRCDIR}/external/gpl3/binutils/dist/include \ 37 --disable-debug-symbols \ 38 --enable-assertions \ 39 --enable-bindings=none \ 40 llvm_cv_gnu_make_command=${MAKE} \ 41 ac_cv_path_CIRCO="echo circo" \ 42 ac_cv_path_DOT="echo dot" \ 43 ac_cv_path_DOTTY="echo dotty" \ 44 ac_cv_path_FDP="echo fdp" \ 45 ac_cv_path_NEATO="echo neato" \ 46 ac_cv_path_TWOPI="echo twopi" \ 47 ac_cv_path_XDOT="echo xdot" \ 48 --enable-optimized 49 50${MAKE} -j ${JOBS} 51 52# Copy the gold plugin where the NetBSD build system expects it. 53mkdir -p ${NETBSDSRCDIR}/minix/llvm/bin/ 54cp ${OBJ_LLVM}/./Release+Asserts/lib/libLTO.so ${NETBSDSRCDIR}/minix/llvm/bin/ 55cp ${OBJ_LLVM}/./Release+Asserts/lib/LLVMgold.so ${NETBSDSRCDIR}/minix/llvm/bin/ 56 57# Copy useful LLVM tools 58mkdir -p ${CROSS_TOOLS} 59cp ${OBJ_LLVM}/./Release+Asserts/bin/llc ${CROSS_TOOLS} 60cp ${OBJ_LLVM}/./Release+Asserts/bin/opt ${CROSS_TOOLS} 61cp ${OBJ_LLVM}/./Release+Asserts/bin/llvm-* ${CROSS_TOOLS} 62 63# Generate and Install default MINIX passes 64cd ${NETBSDSRCDIR}/minix/llvm/passes/WeakAliasModuleOverride 65${MAKE} install 66 67cd ${NETBSDSRCDIR}/minix/llvm/passes/hello 68${MAKE} install 69 70cd ${NETBSDSRCDIR}/minix/llvm/passes/sectionify 71${MAKE} install 72 73cd ${NETBSDSRCDIR}/minix/llvm/passes/magic 74${MAKE} install 75 76cd ${NETBSDSRCDIR}/minix/llvm/passes/asr 77${MAKE} install 78