forked from uxmal/reko
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis_env
67 lines (56 loc) · 1.99 KB
/
.travis_env
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
##
## Copyright(C) 2018 Stefano Moioli <[email protected]>
## This file is part of Reko Decompiler
##
export PATH="$HOME/prefix/bin:$PATH"
export CC=$HOME/prefix/bin/gcc
export CXX=$HOME/prefix/bin/g++
APT_CACHE_DIR="$HOME/apt_cache"
REKO_PREFIX="$HOME/prefix"
CAPSTONE_VERSION=3.0.4
CAPSTONE_EXT="tar.gz"
CAPSTONE_URL="https://github.com/aquynh/capstone/archive/${CAPSTONE_VERSION}.${CAPSTONE_EXT}"
export PKG_CONFIG_PATH="${REKO_PREFIX}/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"
function before_install(){
set -x
# Initialize cache if needed
[ ! -d ${APT_CACHE_DIR}/cache ] && mkdir -p ${APT_CACHE_DIR}/cache
[ ! -d ${APT_CACHE_DIR}/lib ] && mkdir -p ${APT_CACHE_DIR}/lib
# Initialize prefix
mkdir -p ${REKO_PREFIX}/{bin,tmp}
# Restore APT state from cache
echo "Restoring APT Cache..."
sudo cp -Rv ${APT_CACHE_DIR}/cache/. /var/cache/apt/
sudo cp -Rv ${APT_CACHE_DIR}/lib/. /var/lib/apt/
sudo chown -R root:root /var/lib/apt
sudo chown -R root:root /var/cache/apt
# Check for new versions of packages
echo "Checking for package updates..."
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update -qq
sudo apt-get install -y gcc-7-multilib g++-7-multilib
sudo apt-get autoclean
# Re-create APT cache from the current state
echo "Rebuilding APT Cache..."
rm -Rf ${APT_CACHE_DIR}
mkdir -p ${APT_CACHE_DIR}
sudo cp -Rv /var/lib/apt/. ${APT_CACHE_DIR}/lib/
sudo cp -Rv /var/cache/apt/. ${APT_CACHE_DIR}/cache/
sudo chown -R travis:travis ${APT_CACHE_DIR}
# Prepare custom build prefix
echo "Setting up build environment..."
ln -s /usr/bin/gcc-7 ${REKO_PREFIX}/bin/gcc
ln -s /usr/bin/g++-7 ${REKO_PREFIX}/bin/g++
# Download and build capstone
echo "Building capstone..."
pushd ${REKO_PREFIX}/tmp
wget ${CAPSTONE_URL}
tar -xf "${CAPSTONE_VERSION}.${CAPSTONE_EXT}"
cd capstone-${CAPSTONE_VERSION}
# Install capstone to custom prefix
echo "Installing capstone..."
DESTDIR=${REKO_PREFIX} make install -j $(grep processor /proc/cpuinfo | wc -l)
popd
set +x
}