71 lines
1.5 KiB
Bash
71 lines
1.5 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||
|
|
||
|
set -e
|
||
|
|
||
|
# update Alpine with latest versions
|
||
|
echo '@edge http://nl.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories
|
||
|
echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories
|
||
|
apk update
|
||
|
apk upgrade
|
||
|
|
||
|
# install CA certificates
|
||
|
apk add ca-certificates
|
||
|
|
||
|
# install build tools
|
||
|
apk add \
|
||
|
build-base \
|
||
|
coreutils \
|
||
|
file \
|
||
|
git \
|
||
|
perl \
|
||
|
automake \
|
||
|
autoconf \
|
||
|
cmake
|
||
|
|
||
|
# install tool dependencies for building RocksDB static library
|
||
|
apk add \
|
||
|
curl \
|
||
|
bash \
|
||
|
wget \
|
||
|
tar \
|
||
|
openssl
|
||
|
|
||
|
# install RocksDB dependencies
|
||
|
apk add \
|
||
|
snappy snappy-dev \
|
||
|
zlib zlib-dev \
|
||
|
bzip2 bzip2-dev \
|
||
|
lz4 lz4-dev \
|
||
|
zstd zstd-dev \
|
||
|
linux-headers \
|
||
|
jemalloc jemalloc-dev
|
||
|
|
||
|
# install OpenJDK7
|
||
|
apk add openjdk7 \
|
||
|
&& apk add java-cacerts \
|
||
|
&& rm /usr/lib/jvm/java-1.7-openjdk/jre/lib/security/cacerts \
|
||
|
&& ln -s /etc/ssl/certs/java/cacerts /usr/lib/jvm/java-1.7-openjdk/jre/lib/security/cacerts
|
||
|
|
||
|
# cleanup
|
||
|
rm -rf /var/cache/apk/*
|
||
|
|
||
|
# puts javac in the PATH
|
||
|
export JAVA_HOME=/usr/lib/jvm/java-1.7-openjdk
|
||
|
export PATH=/usr/lib/jvm/java-1.7-openjdk/bin:$PATH
|
||
|
|
||
|
# gflags from source
|
||
|
cd /tmp &&\
|
||
|
git clone -b v2.0 --single-branch https://github.com/gflags/gflags.git &&\
|
||
|
cd gflags &&\
|
||
|
./configure --prefix=/usr && make && make install &&\
|
||
|
rm -rf /tmp/*
|
||
|
|
||
|
|
||
|
# build rocksdb
|
||
|
cd /rocksdb
|
||
|
make jclean clean
|
||
|
PORTABLE=1 make -j8 rocksdbjavastatic
|
||
|
cp /rocksdb/java/target/librocksdbjni-* /rocksdb-build
|
||
|
cp /rocksdb/java/target/rocksdbjni-* /rocksdb-build
|