mirror of
https://github.com/PaperMC/Velocity.git
synced 2024-11-21 03:11:38 +08:00
1bb84f81df
OpenSSL is much more portable and optimized (important for aarch64) and most systems already have a version. Unfortunately, OpenSSL likes to break their ABI. Thankfully, Velocity's natives system is very flexible largely, so we can provide multiple versions of this crypto. Versions of the dynamically-linked crypto were compiled on CentOS 7 (still supported until 2024, uses OpenSSL 1.0.x) and Debian 9 (the oldest distro including OpenSSL 1.1.0, whose LTS supports ends in 2022). The choice of distros was intended to cover most modern distributions (2014 and afterwards). An ARM compilation (using Debian 9) will be published soon.
19 lines
719 B
Bash
Executable File
19 lines
719 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ ! -d libdeflate ]; then
|
|
echo "Cloning libdeflate..."
|
|
git clone https://github.com/ebiggers/libdeflate.git
|
|
fi
|
|
|
|
echo "Compiling libdeflate..."
|
|
cd libdeflate || exit
|
|
CFLAGS="-fPIC -O2" make
|
|
cd ..
|
|
|
|
CFLAGS="-O3 -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/ -fPIC -shared -Wl,-z,noexecstack"
|
|
ARCH=$(uname -m)
|
|
mkdir -p src/main/resources/linux_$ARCH
|
|
gcc $CFLAGS -Ilibdeflate src/main/c/jni_util.c src/main/c/jni_zlib_deflate.c src/main/c/jni_zlib_inflate.c \
|
|
libdeflate/libdeflate.a -o src/main/resources/linux_$ARCH/velocity-compress.so
|
|
gcc $CFLAGS -I $MBEDTLS_ROOT/include -shared src/main/c/jni_util.c src/main/c/jni_cipher.c \
|
|
-o src/main/resources/linux_$ARCH/velocity-cipher.so -lcrypto |