xref: /minix/minix/llvm/generate_gold_plugin.sh (revision b89261ba)
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