summaryrefslogtreecommitdiffstats
path: root/release/vagrant-static/build.sh
blob: aa0491b360557f2f0d2a3b1ee649b7e0f6c36fc6 (plain)
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/env bash

OS=$(uname -s)
if test x"${OS}" != x"FreeBSD"; then
    source scl_source enable devtoolset-9
fi

if test x"${OS}" != x"FreeBSD"; then
    MAKE=make
else
    MAKE=gmake
fi

FAKE_ROOT=/home/vagrant/fake.root

SRC_VERSION=$1

mkdir -p ~/github

cd ~/github
if ! test -d lnav; then
    git clone https://github.com/tstack/lnav.git
fi

cd ~/github/lnav
git restore .
git pull --rebase

if test -n "$SRC_VERSION"; then
    git checkout "$SRC_VERSION"
fi

saved_PATH=${PATH}
export PATH=${FAKE_ROOT}/bin:${PATH}
saved_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${FAKE_ROOT}/lib
if test ! -f "configure"; then
    ./autogen.sh
    rm -rf ~/github/lbuild
    mkdir -p ~/github/lbuild
fi
cd ~/github/lbuild

TARGET_FILE='/vagrant/lnav-linux.zip'
if test x"${OS}" != x"FreeBSD"; then
    if test x"$(lsb_release | awk '{print $3}')" == x"Alpine"; then
        TARGET_FILE='/vagrant/lnav-musl.zip'
        ../lnav/configure \
            --with-libarchive=${FAKE_ROOT} \
            CFLAGS='-static -g1 -gz=zlib -no-pie -O2' \
            CXXFLAGS='-static -g1 -gz=zlib -U__unused -no-pie -O2' \
            LDFLAGS="-L${FAKE_ROOT}/lib" \
            CPPFLAGS="-I${FAKE_ROOT}/include" \
            LIBS="-L${FAKE_ROOT}/lib -lexecinfo -lssh2 -llzma -lssl -lcrypto -lz" \
            --enable-static
            PATH="${FAKE_ROOT}/bin:${PATH}"
    else
        ../lnav/configure \
            --enable-static \
            --with-libarchive=${FAKE_ROOT} \
            LDFLAGS="-L${FAKE_ROOT}/lib" \
            CPPFLAGS="-I${FAKE_ROOT}/include -O2" \
            LIBS="-L${FAKE_ROOT}/lib -lssh2 -llzma -lssl -lcrypto -lz" \
            PATH="${FAKE_ROOT}/bin:${PATH}"
    fi
else
    ../lnav/configure \
        --enable-static \
        LDFLAGS="-L${FAKE_ROOT}/lib -static" \
        LIBS="-lm -lelf" \
        CPPFLAGS="-I${FAKE_ROOT}/include -O2" \
        PATH="${FAKE_ROOT}/bin:${PATH}"
fi

${MAKE} -j2 && cp src/lnav /vagrant/lnav

if test x"${OS}" != x"FreeBSD"; then
    mkdir instdir
    make install DESTDIR=$PWD/instdir
    (cd instdir/ && zip -r "${TARGET_FILE}" .)
fi

export PATH=${saved_PATH}
export LD_LIBRARY_PATH=${saved_LD_LIBRARY_PATH}