summaryrefslogtreecommitdiffstats
path: root/src/rocksdb/java/crossbuild/build-linux-alpine.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/rocksdb/java/crossbuild/build-linux-alpine.sh')
-rwxr-xr-xsrc/rocksdb/java/crossbuild/build-linux-alpine.sh70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/rocksdb/java/crossbuild/build-linux-alpine.sh b/src/rocksdb/java/crossbuild/build-linux-alpine.sh
new file mode 100755
index 000000000..561d34141
--- /dev/null
+++ b/src/rocksdb/java/crossbuild/build-linux-alpine.sh
@@ -0,0 +1,70 @@
+#!/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