11#! /bin/bash
22
3+ set -x
4+ set -e
5+
36mkdir -p build
7+ mkdir -p " build-x86"
48mkdir -p output/opt
59
6- # -DCMAKE_CROSSCOMPILING=True \
7- # -DCMAKE_CXX_FLAGS='-march=armv7-a -mcpu=cortex-a9 -mfloat-abi=hard -DENDIAN_LITTLE=1' \
8- # -DCMAKE_C_COMPILER=/usr/bin/arm-linux-gnueabihf-gcc-4.8 \
10+ MAKE_PACKAGES=
11+ BUILD_X86=n
12+ VERBOSE=
13+
14+ while [[ $# -gt 0 ]]; do
15+ case $1 in
16+ --make-packages)
17+ echo " *** Making packages ***"
18+ MAKE_PACKAGES=y
19+ shift
20+ ;;
21+ --build-x86)
22+ echo " *** Building x86_64 (in addition to ARM) ***"
23+ BUILD_X86=y
24+ shift
25+ ;;
26+ --verbose)
27+ VERBOSE=" -v"
28+ shift
29+ ;;
30+ esac
31+ done
932
1033CMAKE_COMMAND=" \
1134 cmake -G Ninja \
1235 /work/obfuscator-llvm \
1336 -DCMAKE_INSTALL_PREFIX=/opt/llvm-obfuscator \
14- -DLLVM_TABLEGEN=/usr/bin/llvm-tblgen-4.0 \
15- -DCLANG_TABLEGEN=/usr/bin/clang-tblgen-4.0 \
16- -DLLVM_DEFAULT_TARGET_TRIPLE=arm-linux-gnueabihf \
17- -DLLVM_TARGET_ARCH=ARM \
18- -DLLVM_TARGETS_TO_BUILD=ARM \
37+ -DLLVM_TARGETS_TO_BUILD=ARM\;X86 \
1938 -DCMAKE_CXX_FLAGS='-DENDIAN_LITTLE=1' \
2039 -DCMAKE_C_COMPILER=/usr/bin/gcc \
2140 -DCMAKE_CXX_COMPILER=/bin/cpp_wrapper.py \
2241 -DCMAKE_BUILD_TYPE=Release \
42+ -DLLVM_BINUTILS_INCDIR=/usr/include \
43+ -DLLVM_INCLUDE_TESTS=OFF"
44+
45+ CMAKE_COMMAND_X86=" \
46+ cmake -G Ninja \
47+ /work/obfuscator-llvm \
48+ -DCMAKE_INSTALL_PREFIX=/opt/llvm-obfuscator \
49+ -DCMAKE_CXX_FLAGS='-DENDIAN_LITTLE=1' \
50+ -DCMAKE_C_COMPILER=/usr/bin/gcc \
51+ -DCMAKE_CXX_COMPILER=/bin/cpp_wrapper.py \
52+ -DCMAKE_BUILD_TYPE=Release \
53+ -DLLVM_TARGET_ARCH=X86 \
54+ -DLLVM_TARGETS_TO_BUILD=X86 \
55+ -DLLVM_BINUTILS_INCDIR=/usr/include \
2356 -DLLVM_INCLUDE_TESTS=OFF"
2457
2558PATCH_COMMAND=" git apply /patches/*.patch"
@@ -29,4 +62,39 @@ docker run -i -t --rm \
2962 -v $PWD /output/opt:/opt \
3063 -v $PWD /patches:/patches \
3164 arm-llvm-obf:base \
32- /bin/bash -c " cd /work/obfuscator-llvm && $PATCH_COMMAND && cd /work/build && $CMAKE_COMMAND && ninja -v && ninja -v install"
65+ /bin/bash -c " cd /work/obfuscator-llvm \
66+ && $PATCH_COMMAND \
67+ && cd /work/build \
68+ && $CMAKE_COMMAND \
69+ && ninja $VERBOSE \
70+ && ninja $VERBOSE install"
71+
72+ if [[ -n " $MAKE_PACKAGES " ]]; then
73+
74+ ./stage_sysroot.bash
75+ tar -C output -cJf " llvm-obfuscator-arm-x86.txz" .
76+ fi
77+
78+ if [[ -n " $BUILD_X86 " ]]; then
79+
80+ docker run -i -t --rm \
81+ -v $PWD /output/opt:/opt \
82+ arm-llvm-obf:base \
83+ /bin/bash -c " rm -rvf /opt/*"
84+
85+ docker run -i -t --rm \
86+ -v " $PWD /build-x86:/work/build" \
87+ -v $PWD /output/opt:/opt \
88+ -v $PWD /patches:/patches \
89+ arm-llvm-obf:base \
90+ /bin/bash -c " cd /work/obfuscator-llvm \
91+ && $PATCH_COMMAND \
92+ && cd /work/build \
93+ && $CMAKE_COMMAND_X86 \
94+ && ninja $VERBOSE \
95+ && ninja $VERBOSE install"
96+
97+ if [[ -n " $MAKE_PACKAGES " ]]; then
98+ tar -C output -cJf " llvm-obfuscator-x86.txz" .
99+ fi
100+ fi
0 commit comments