Last active
September 2, 2017 17:09
-
-
Save Ad5001/d9fd69d31b3d91f21938b97fd404f167 to your computer and use it in GitHub Desktop.
Compiles PocketMine with the C-Anvil class & level DB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
[ -z "$PHP_VERSION" ] && PHP_VERSION="7.2.0RC1" | |
PHP_IS_BETA="yes" | |
ZEND_VM="GOTO" | |
ZLIB_VERSION="1.2.11" | |
MBEDTLS_VERSION="2.4.2" | |
GMP_VERSION="6.1.2" | |
GMP_VERSION_DIR="6.1.2" | |
CURL_VERSION="curl-7_54_0" | |
READLINE_VERSION="6.3" | |
NCURSES_VERSION="6.0" | |
PHPNCURSES_VERSION="1.0.2" | |
PTHREADS_VERSION="536a7b29ddd57a25209b5fb79b5abcf0ecd85f79" | |
XDEBUG_VERSION="2.5.5" | |
WEAKREF_VERSION="0.3.3" | |
PHPYAML_VERSION="2.0.2" | |
YAML_VERSION="0.1.7" | |
YAML_VERSION_ANDROID="0.1.7" | |
PHPLEVELDB_VERSION="0.1.4" | |
PHPLEVELDB_VERSION="5cfe735dac5ceafc6848c96177509450febc12d0" | |
LEVELDB_VERSION="1.18" | |
LEVELDB_VERSION="f4022ac7c5a022f7a08a1b6dc98c06ef3eed352a" #Check MacOS | |
LIBXML_VERSION="2.9.1" | |
LIBPNG_VERSION="1.6.32" | |
BCOMPILER_VERSION="1.0.2" | |
POCKETMINE_CHUNKUTILS_VERSION="master" | |
OPENSSL_VERSION="1.1.0f" | |
echo "[PocketMine] PHP compiler for Linux, MacOS and Android" | |
DIR="$(pwd)" | |
date > "$DIR/install.log" 2>&1 | |
#trap "echo \"# \$(eval echo \$BASH_COMMAND)\" >> \"$DIR/install.log\" 2>&1" DEBUG | |
uname -a >> "$DIR/install.log" 2>&1 | |
echo "[INFO] Checking dependencies" | |
type make >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"make\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type autoconf >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"autoconf\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type automake >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"automake\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type m4 >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"m4\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type wget >> "$DIR/install.log" 2>&1 || type curl >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"wget\" or \"curl\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type getconf >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"getconf\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type gzip >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"gzip\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type bzip2 >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"bzip2\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type bison >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"bison\""; read -p "Press [Enter] to continue..."; exit 1; } | |
type g++ >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"g++\""; read -p "Press [Enter] to continue..."; exit 1; } | |
if [ "$(uname -s)" == "Darwin" ]; then | |
type glibtool >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install GNU libtool"; read -p "Press [Enter] to continue..."; exit 1; } | |
export LIBTOOL=glibtool | |
export LIBTOOLIZE=glibtoolize | |
else | |
type libtool >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"libtool\" or \"libtool-bin\""; read -p "Press [Enter] to continue..."; exit 1; } | |
export LIBTOOL=libtool | |
export LIBTOOLIZE=libtoolize | |
fi | |
#Needed to use aliases | |
shopt -s expand_aliases | |
type wget >> "$DIR/install.log" 2>&1 | |
if [ $? -eq 0 ]; then | |
alias download_file="wget --no-check-certificate -q -O -" | |
else | |
type curl >> "$DIR/install.log" 2>&1 | |
if [ $? -eq 0 ]; then | |
alias download_file="curl --insecure --silent --show-error --location --globoff" | |
else | |
echo "error, curl or wget not found" | |
fi | |
fi | |
#if type llvm-gcc >/dev/null 2>&1; then | |
# export CC="llvm-gcc" | |
# export CXX="llvm-g++" | |
# export AR="llvm-ar" | |
# export AS="llvm-as" | |
# export RANLIB=llvm-ranlib | |
#else | |
export CC="gcc" | |
export CXX="g++" | |
#export AR="gcc-ar" | |
export RANLIB=ranlib | |
#fi | |
COMPILE_FOR_ANDROID=no | |
HAVE_MYSQLI="--enable-embedded-mysqli --enable-mysqlnd --with-mysqli=mysqlnd" | |
COMPILE_TARGET="" | |
COMPILE_CURL="default" | |
COMPILE_FANCY="no" | |
HAS_ZEPHIR="no" | |
IS_CROSSCOMPILE="no" | |
IS_WINDOWS="no" | |
DO_OPTIMIZE="no" | |
DO_STATIC="no" | |
COMPILE_DEBUG="no" | |
COMPILE_LEVELDB="YES" | |
FLAGS_LTO="" | |
LD_PRELOAD="" | |
COMPILE_POCKETMINE_CHUNKUTILS="yes" | |
COMPILE_GD="no" | |
while getopts "::t:oj:srcdlxzff:ug" OPTION; do | |
case $OPTION in | |
t) | |
echo "[opt] Set target to $OPTARG" | |
COMPILE_TARGET="$OPTARG" | |
;; | |
j) | |
echo "[opt] Set make threads to $OPTARG" | |
THREADS="$OPTARG" | |
;; | |
r) | |
echo "[opt] Will compile readline and ncurses" | |
COMPILE_FANCY="yes" | |
;; | |
d) | |
echo "[opt] Will compile profiler and xdebug" | |
COMPILE_DEBUG="yes" | |
;; | |
c) | |
echo "[opt] Will force compile cURL" | |
COMPILE_CURL="yes" | |
;; | |
x) | |
echo "[opt] Doing cross-compile" | |
IS_CROSSCOMPILE="yes" | |
;; | |
l) | |
if [ $(gcc -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$/&00/') -lt 40800 ]; then | |
echo "[ERROR] gcc version 4.8 or newer is required to compile leveldb"; | |
COMPILE_LEVELDB="no" | |
else | |
echo "[opt] Will compile with LevelDB support" | |
COMPILE_LEVELDB="yes" | |
fi | |
;; | |
s) | |
echo "[opt] Will compile everything statically" | |
DO_STATIC="yes" | |
CFLAGS="$CFLAGS -static" | |
;; | |
f) | |
echo "[opt] Enabling abusive optimizations..." | |
DO_OPTIMIZE="yes" | |
#FLAGS_LTO="-fvisibility=hidden -flto" | |
ffast_math="-fno-math-errno -funsafe-math-optimizations -fno-signed-zeros -fno-trapping-math -ffinite-math-only -fno-rounding-math -fno-signaling-nans" #workaround SQLite3 fail | |
CFLAGS="$CFLAGS -O2 -DSQLITE_HAVE_ISNAN $ffast_math -ftree-vectorize -fomit-frame-pointer -funswitch-loops -fivopts" | |
if [ "$COMPILE_TARGET" != "mac" ] && [ "$COMPILE_TARGET" != "mac32" ] && [ "$COMPILE_TARGET" != "mac64" ]; then | |
CFLAGS="$CFLAGS -funsafe-loop-optimizations -fpredictive-commoning -ftracer -ftree-loop-im -frename-registers -fcx-limited-range" | |
fi | |
if [ "$OPTARG" == "arm" ]; then | |
CFLAGS="$CFLAGS -mfpu=vfp" | |
elif [ "$OPTARG" == "x86_64" ]; then | |
CFLAGS="$CFLAGS -mmmx -msse -msse2 -msse3 -mfpmath=sse -free -msahf -ftree-parallelize-loops=4" | |
elif [ "$OPTARG" == "x86" ]; then | |
CFLAGS="$CFLAGS -mmmx -msse -msse2 -mfpmath=sse -m128bit-long-double -malign-double -ftree-parallelize-loops=4" | |
fi | |
;; | |
u) | |
echo "[opt] Will compile with PocketMine-ChunkUtils C extension for Anvil" | |
COMPILE_POCKETMINE_CHUNKUTILS="yes" | |
;; | |
g) | |
echo "[opt] Will enable GD2" | |
COMPILE_GD="yes" | |
;; | |
\?) | |
echo "Invalid option: -$OPTION$OPTARG" >&2 | |
exit 1 | |
;; | |
esac | |
done | |
GMP_ABI="" | |
TOOLCHAIN_PREFIX="" | |
OPENSSL_TARGET="" | |
if [ "$IS_CROSSCOMPILE" == "yes" ]; then | |
export CROSS_COMPILER="$PATH" | |
if [[ "$COMPILE_TARGET" == "win" ]] || [[ "$COMPILE_TARGET" == "win64" ]]; then | |
TOOLCHAIN_PREFIX="x86_64-w64-mingw32" | |
[ -z "$march" ] && march=x86_64; | |
[ -z "$mtune" ] && mtune=nocona; | |
CFLAGS="$CFLAGS -mconsole" | |
CONFIGURE_FLAGS="--host=$TOOLCHAIN_PREFIX --target=$TOOLCHAIN_PREFIX --build=$TOOLCHAIN_PREFIX" | |
IS_WINDOWS="yes" | |
OPENSSL_TARGET="mingw64" | |
GMP_ABI="64" | |
echo "[INFO] Cross-compiling for Windows 64-bit" | |
elif [ "$COMPILE_TARGET" == "mac" ]; then | |
[ -z "$march" ] && march=prescott; | |
[ -z "$mtune" ] && mtune=generic; | |
CFLAGS="$CFLAGS -fomit-frame-pointer"; | |
TOOLCHAIN_PREFIX="i686-apple-darwin10" | |
CONFIGURE_FLAGS="--host=$TOOLCHAIN_PREFIX" | |
#zlib doesn't use the correct ranlib | |
RANLIB=$TOOLCHAIN_PREFIX-ranlib | |
LEVELDB_VERSION="1bd4a335d620b395b0a587b15804f9b2ab3c403f" | |
CFLAGS="$CFLAGS -Qunused-arguments -Wno-error=unused-command-line-argument-hard-error-in-future" | |
ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future" | |
OPENSSL_TARGET="darwin64-x86_64-cc" | |
GMP_ABI="32" | |
echo "[INFO] Cross-compiling for Intel MacOS" | |
elif [ "$COMPILE_TARGET" == "android-aarch64" ]; then | |
COMPILE_FOR_ANDROID=yes | |
[ -z "$march" ] && march="armv8-a"; | |
[ -z "$mtune" ] && mtune=generic; | |
TOOLCHAIN_PREFIX="aarch64-linux-musl" | |
CONFIGURE_FLAGS="--host=$TOOLCHAIN_PREFIX --disable-ipv6" | |
CFLAGS="-static $CFLAGS" | |
CXXFLAGS="-static $CXXFLAGS" | |
LDFLAGS="-static" | |
OPENSSL_TARGET="linux-aarch64" | |
echo "[INFO] Cross-compiling for Android ARMv8 (aarch64)" | |
#TODO: add cross-compile for aarch64 platforms (ios, android, rpi) | |
else | |
echo "Please supply a proper platform [mac win win64] to cross-compile" | |
exit 1 | |
fi | |
elif [[ "$COMPILE_TARGET" == "linux" ]] || [[ "$COMPILE_TARGET" == "linux64" ]]; then | |
[ -z "$march" ] && march=x86-64; | |
[ -z "$mtune" ] && mtune=nocona; | |
CFLAGS="$CFLAGS -m64" | |
GMP_ABI="64" | |
OPENSSL_TARGET="linux-x86_64" | |
echo "[INFO] Compiling for Linux x86_64" | |
elif [[ "$COMPILE_TARGET" == "mac" ]] || [[ "$COMPILE_TARGET" == "mac64" ]]; then | |
[ -z "$march" ] && march=core2; | |
[ -z "$mtune" ] && mtune=generic; | |
CFLAGS="$CFLAGS -m64 -arch x86_64 -fomit-frame-pointer -mmacosx-version-min=10.7"; | |
if [ "$DO_STATIC" == "no" ]; then | |
LDFLAGS="$LDFLAGS -Wl,-rpath,@loader_path/../lib"; | |
export DYLD_LIBRARY_PATH="@loader_path/../lib" | |
fi | |
LEVELDB_VERSION="1bd4a335d620b395b0a587b15804f9b2ab3c403f" | |
CFLAGS="$CFLAGS -Qunused-arguments -Wno-error=unused-command-line-argument-hard-error-in-future" | |
ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future" | |
GMP_ABI="64" | |
CXXFLAGS="$CXXFLAGS -stdlib=libc++" | |
OPENSSL_TARGET="darwin64-x86_64-cc" | |
echo "[INFO] Compiling for Intel MacOS x86_64" | |
#TODO: add aarch64 platforms (ios, android, rpi) | |
elif [ -z "$CFLAGS" ]; then | |
if [ `getconf LONG_BIT` == "64" ]; then | |
echo "[INFO] Compiling for current machine using 64-bit" | |
CFLAGS="-m64 $CFLAGS" | |
GMP_ABI="64" | |
else | |
echo "[ERROR] PocketMine-MP is no longer supported on 32-bit systems" | |
exit 1 | |
fi | |
fi | |
if [ "$TOOLCHAIN_PREFIX" != "" ]; then | |
export CC="$TOOLCHAIN_PREFIX-gcc" | |
export CXX="$TOOLCHAIN_PREFIX-g++" | |
export AR="$TOOLCHAIN_PREFIX-ar" | |
export RANLIB="$TOOLCHAIN_PREFIX-ranlib" | |
export CPP="$TOOLCHAIN_PREFIX-cpp" | |
export LD="$TOOLCHAIN_PREFIX-ld" | |
fi | |
echo "#include <stdio.h>" > test.c | |
echo "int main(void){" >> test.c | |
echo "printf(\"Hello world\n\");" >> test.c | |
echo "return 0;" >> test.c | |
echo "}" >> test.c | |
type $CC >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"$CC\""; read -p "Press [Enter] to continue..."; exit 1; } | |
[ -z "$THREADS" ] && THREADS=1; | |
[ -z "$march" ] && march=native; | |
[ -z "$mtune" ] && mtune=native; | |
[ -z "$CFLAGS" ] && CFLAGS=""; | |
if [ "$DO_STATIC" == "no" ]; then | |
[ -z "$LDFLAGS" ] && LDFLAGS="-Wl,-rpath='\$\$ORIGIN/../lib' -Wl,-rpath-link='\$\$ORIGIN/../lib'"; | |
fi | |
[ -z "$CONFIGURE_FLAGS" ] && CONFIGURE_FLAGS=""; | |
if [ "$mtune" != "none" ]; then | |
$CC -march=$march -mtune=$mtune $CFLAGS -o test test.c >> "$DIR/install.log" 2>&1 | |
if [ $? -eq 0 ]; then | |
CFLAGS="-march=$march -mtune=$mtune -fno-gcse $CFLAGS" | |
fi | |
else | |
$CC -march=$march $CFLAGS -o test test.c >> "$DIR/install.log" 2>&1 | |
if [ $? -eq 0 ]; then | |
CFLAGS="-march=$march -fno-gcse $CFLAGS" | |
fi | |
fi | |
rm test.* >> "$DIR/install.log" 2>&1 | |
rm test >> "$DIR/install.log" 2>&1 | |
export CC="$CC" | |
export CXX="$CXX" | |
export CFLAGS="-O2 -fPIC $CFLAGS" | |
export CXXFLAGS="$CFLAGS $CXXFLAGS" | |
export LDFLAGS="$LDFLAGS" | |
export CPPFLAGS="$CPPFLAGS" | |
export LIBRARY_PATH="$DIR/bin/php7/lib:$LIBRARY_PATH" | |
rm -r -f install_data/ >> "$DIR/install.log" 2>&1 | |
rm -r -f bin/ >> "$DIR/install.log" 2>&1 | |
mkdir -m 0755 install_data >> "$DIR/install.log" 2>&1 | |
mkdir -m 0755 bin >> "$DIR/install.log" 2>&1 | |
mkdir -m 0755 bin/php7 >> "$DIR/install.log" 2>&1 | |
cd install_data | |
set -e | |
#PHP 7 | |
echo -n "[PHP] downloading $PHP_VERSION..." | |
if [[ "$PHP_IS_BETA" == "yes" ]]; then | |
download_file "https://github.com/php/php-src/archive/php-$PHP_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv php-src-php-$PHP_VERSION php | |
else | |
download_file "http://php.net/get/php-$PHP_VERSION.tar.gz/from/this/mirror" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv php-$PHP_VERSION php | |
fi | |
echo " done!" | |
if [ "$COMPILE_FANCY" == "yes" ]; then | |
if [ "$DO_STATIC" == "yes" ]; then | |
EXTRA_FLAGS="--without-shared --with-static" | |
else | |
EXTRA_FLAGS="--with-shared --without-static" | |
fi | |
#ncurses | |
echo -n "[ncurses] downloading $NCURSES_VERSION..." | |
download_file "http://ftp.gnu.org/gnu/ncurses/ncurses-$NCURSES_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv ncurses-$NCURSES_VERSION ncurses | |
echo -n " checking..." | |
cd ncurses | |
./configure --prefix="$DIR/bin/php7" \ | |
--without-ada \ | |
--without-manpages \ | |
--without-progs \ | |
--without-tests \ | |
--with-normal \ | |
--with-pthread \ | |
--without-debug \ | |
$EXTRA_FLAGS \ | |
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
make -j $THREADS >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
cd .. | |
echo " done!" | |
HAVE_NCURSES="--with-ncurses=$DIR/bin/php7" | |
if [ "$DO_STATIC" == "yes" ]; then | |
EXTRA_FLAGS="--enable-shared=no --enable-static=yes" | |
else | |
EXTRA_FLAGS="--enable-shared=yes --enable-static=no" | |
fi | |
#readline | |
set +e | |
echo -n "[readline] downloading $READLINE_VERSION..." | |
download_file "http://ftp.gnu.org/gnu/readline/readline-$READLINE_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv readline-$READLINE_VERSION readline | |
echo -n " checking..." | |
cd readline | |
./configure --prefix="$DIR/bin/php7" \ | |
--with-curses="$DIR/bin/php7" \ | |
--enable-multibyte \ | |
$EXTRA_FLAGS \ | |
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
if make -j $THREADS >> "$DIR/install.log" 2>&1; then | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
HAVE_READLINE="--with-readline=$DIR/bin/php7" | |
else | |
echo -n " disabling..." | |
HAVE_READLINE="--without-readline" | |
fi | |
cd .. | |
echo " done!" | |
set -e | |
else | |
HAVE_NCURSES="--without-ncurses" | |
HAVE_READLINE="--without-readline" | |
fi | |
if [ "$DO_STATIC" == "yes" ]; then | |
EXTRA_FLAGS="--static" | |
else | |
EXTRA_FLAGS="--shared" | |
fi | |
#zlib | |
echo -n "[zlib] downloading $ZLIB_VERSION..." | |
download_file "https://github.com/madler/zlib/archive/v$ZLIB_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv zlib-$ZLIB_VERSION zlib | |
echo -n " checking..." | |
cd zlib | |
RANLIB=$RANLIB ./configure --prefix="$DIR/bin/php7" \ | |
$EXTRA_FLAGS >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
make -j $THREADS >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
cd .. | |
if [ "$DO_STATIC" != "yes" ]; then | |
rm -f "$DIR/bin/php7/lib/libz.a" | |
fi | |
echo " done!" | |
export jm_cv_func_working_malloc=yes | |
export ac_cv_func_malloc_0_nonnull=yes | |
export jm_cv_func_working_realloc=yes | |
export ac_cv_func_realloc_0_nonnull=yes | |
if [ "$IS_CROSSCOMPILE" == "yes" ]; then | |
EXTRA_FLAGS="" | |
else | |
EXTRA_FLAGS="--disable-assembly" | |
fi | |
#GMP | |
echo -n "[GMP] downloading $GMP_VERSION..." | |
download_file "https://gmplib.org/download/gmp/gmp-$GMP_VERSION.tar.bz2" | tar -jx >> "$DIR/install.log" 2>&1 | |
mv gmp-$GMP_VERSION_DIR gmp | |
echo -n " checking..." | |
cd gmp | |
RANLIB=$RANLIB ./configure --prefix="$DIR/bin/php7" \ | |
$EXTRA_FLAGS \ | |
--disable-posix-threads \ | |
--enable-static \ | |
--disable-shared \ | |
$CONFIGURE_FLAGS ABI="$GMP_ABI" >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
make -j $THREADS >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
cd .. | |
echo " done!" | |
if [ "$(uname -s)" != "Darwin" ] || [ "$IS_CROSSCOMPILE" == "yes" ] || [ "$COMPILE_CURL" == "yes" ]; then | |
#if [ "$DO_STATIC" == "yes" ]; then | |
# EXTRA_FLAGS="" | |
#else | |
# EXTRA_FLAGS="shared no-static" | |
#fi | |
#mbed TLS | |
echo -n "[mbed TLS] downloading $MBEDTLS_VERSION..." | |
download_file "https://tls.mbed.org/download/mbedtls-${MBEDTLS_VERSION}-gpl.tgz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv mbedtls-${MBEDTLS_VERSION} mbedtls | |
echo -n " checking..." | |
cd mbedtls | |
sed -i=".backup" 's,DESTDIR=/usr/local,,g' Makefile | |
echo -n " compiling..." | |
DESTDIR="$DIR/bin/php7" RANLIB=$RANLIB make -j $THREADS lib >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
DESTDIR="$DIR/bin/php7" make install >> "$DIR/install.log" 2>&1 | |
cd .. | |
echo " done!" | |
fi | |
#OpenSSL | |
OPENSSL_CMD="./config" | |
if [ "$OPENSSL_TARGET" != "" ]; then | |
OPENSSL_CMD="./Configure $OPENSSL_TARGET" | |
fi | |
export PKG_CONFIG_PATH="$DIR/bin/php7/lib/pkgconfig" | |
WITH_OPENSSL="--with-openssl=$DIR/bin/php7" | |
echo -n "[OpenSSL] downloading $OPENSSL_VERSION..." | |
download_file "http://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv openssl-$OPENSSL_VERSION openssl | |
echo -n " checking..." | |
cd openssl | |
RANLIB=$RANLIB $OPENSSL_CMD \ | |
--prefix="$DIR/bin/php7" \ | |
--openssldir="$DIR/bin/php7" \ | |
no-asm \ | |
no-hw \ | |
no-shared \ | |
no-threads \ | |
no-engine >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
make >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
cd .. | |
echo " done!" | |
if [ "$(uname -s)" == "Darwin" ] && [ "$IS_CROSSCOMPILE" != "yes" ] && [ "$COMPILE_CURL" != "yes" ]; then | |
HAVE_CURL="shared,/usr" | |
else | |
if [ "$DO_STATIC" == "yes" ]; then | |
EXTRA_FLAGS="--enable-static --disable-shared" | |
else | |
EXTRA_FLAGS="--disable-static --enable-shared" | |
fi | |
#curl | |
echo -n "[cURL] downloading $CURL_VERSION..." | |
download_file "https://github.com/curl/curl/archive/$CURL_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv curl-$CURL_VERSION curl | |
echo -n " checking..." | |
cd curl | |
./buildconf --force >> "$DIR/install.log" 2>&1 | |
RANLIB=$RANLIB ./configure --disable-dependency-tracking \ | |
--enable-ipv6 \ | |
--enable-optimize \ | |
--enable-http \ | |
--enable-ftp \ | |
--disable-dict \ | |
--enable-file \ | |
--without-librtmp \ | |
--disable-gopher \ | |
--disable-imap \ | |
--disable-pop3 \ | |
--disable-rtsp \ | |
--disable-smtp \ | |
--disable-telnet \ | |
--disable-tftp \ | |
--disable-ldap \ | |
--disable-ldaps \ | |
--without-libidn \ | |
--with-zlib="$DIR/bin/php7" \ | |
--without-ssl \ | |
--with-mbedtls="$DIR/bin/php7" \ | |
--enable-threaded-resolver \ | |
--prefix="$DIR/bin/php7" \ | |
$EXTRA_FLAGS \ | |
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
make -j $THREADS >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
cd .. | |
echo " done!" | |
HAVE_CURL="$DIR/bin/php7" | |
fi | |
#bcompiler | |
#echo -n "[bcompiler] downloading $BCOMPILER_VERSION..." | |
#download_file "http://pecl.php.net/get/bcompiler-$BCOMPILER_VERSION.tgz" | tar -zx >> "$DIR/install.log" 2>&1 | |
#mv bcompiler-$BCOMPILER_VERSION "$DIR/install_data/php/ext/bcompiler" | |
#echo " done!" | |
#PHP ncurses | |
#echo -n "[PHP ncurses] downloading $PHPNCURSES_VERSION..." | |
#download_file "http://pecl.php.net/get/ncurses-$PHPNCURSES_VERSION.tgz" | tar -zx >> "$DIR/install.log" 2>&1 | |
#mv ncurses-$PHPNCURSES_VERSION "$DIR/install_data/php/ext/ncurses" | |
#echo " done!" | |
if [ "$DO_STATIC" == "yes" ]; then | |
EXTRA_FLAGS="--disable-shared --enable-static" | |
else | |
EXTRA_FLAGS="--enable-shared --disable-static" | |
fi | |
#YAML | |
echo -n "[YAML] downloading $YAML_VERSION..." | |
download_file "https://github.com/yaml/libyaml/archive/$YAML_VERSION_ANDROID.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv libyaml-$YAML_VERSION yaml | |
cd yaml | |
./bootstrap >> "$DIR/install.log" 2>&1 | |
echo -n " checking..." | |
RANLIB=$RANLIB ./configure \ | |
--prefix="$DIR/bin/php7" \ | |
$EXTRA_FLAGS \ | |
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1 | |
sed -i=".backup" 's/ tests win32/ win32/g' Makefile | |
echo -n " compiling..." | |
make -j $THREADS all >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
cd .. | |
echo " done!" | |
if [ "$COMPILE_LEVELDB" == "yes" ]; then | |
#LevelDB | |
echo -n "[LevelDB] downloading $LEVELDB_VERSION..." | |
download_file "https://github.com/pmmp/leveldb-mcpe/archive/$LEVELDB_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
#download_file "https://github.com/Mojang/leveldb-mcpe/archive/$LEVELDB_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv leveldb-mcpe-$LEVELDB_VERSION leveldb | |
echo -n " checking..." | |
cd leveldb | |
echo -n " compiling..." | |
CFLAGS="$CFLAGS -I$DIR/bin/php7/include" CXXFLAGS="$CXXFLAGS -I$DIR/bin/php7/include" LDFLAGS="$LDFLAGS -L$DIR/bin/php7/lib" make -j $THREADS >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
if [ "$DO_STATIC" == "yes" ]; then | |
cp out-static/libleveldb* "$DIR/bin/php7/lib/" | |
else | |
cp out-shared/libleveldb* "$DIR/bin/php7/lib/" | |
fi | |
cp -r include/leveldb "$DIR/bin/php7/include/leveldb" | |
cd .. | |
echo " done!" | |
fi | |
if [ "$DO_STATIC" == "yes" ]; then | |
EXTRA_FLAGS="--enable-shared=no --enable-static=yes" | |
else | |
EXTRA_FLAGS="--enable-shared=yes --enable-static=no" | |
fi | |
if [ "$COMPILE_GD" == "yes" ]; then | |
#libpng | |
echo -n "[libpng] downloading $LIBPNG_VERSION..." | |
download_file "https://sourceforge.net/projects/libpng/files/libpng16/$LIBPNG_VERSION/libpng-$LIBPNG_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv libpng-$LIBPNG_VERSION libpng | |
echo -n " checking..." | |
cd libpng | |
LDFLAGS="$LDFLAGS -L${DIR}/bin/php7/lib" CPPFLAGS="$CPPFLAGS -I${DIR}/bin/php7/include" RANLIB=$RANLIB ./configure \ | |
--prefix="$DIR/bin/php7" \ | |
$EXTRA_FLAGS \ | |
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
make -j $THREADS >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
cd .. | |
echo " done!" | |
HAS_GD="--with-gd" | |
HAS_LIBPNG="--with-png-dir=${DIR}/bin/php7" | |
else | |
HAS_GD="" | |
HAS_LIBPNG="" | |
fi | |
#libxml2 | |
#echo -n "[libxml2] downloading $LIBXML_VERSION..." | |
#download_file "ftp://xmlsoft.org/libxml2/libxml2-$LIBXML_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
#mv libxml2-$LIBXML_VERSION libxml2 | |
#echo -n " checking..." | |
#cd libxml2 | |
#RANLIB=$RANLIB ./configure \ | |
#--disable-ipv6 \ | |
#--with-libz="$DIR/bin/php7" \ | |
#--prefix="$DIR/bin/php7" \ | |
#$EXTRA_FLAGS \ | |
#$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1 | |
#echo -n " compiling..." | |
#make -j $THREADS >> "$DIR/install.log" 2>&1 | |
#echo -n " installing..." | |
#make install >> "$DIR/install.log" 2>&1 | |
#cd .. | |
#echo " done!" | |
# PECL libraries | |
if [[ "$DO_STATIC" != "yes" ]] && [[ "$COMPILE_DEBUG" == "yes" ]]; then | |
#xdebug | |
echo -n "[PHP xdebug] downloading $XDEBUG_VERSION..." | |
download_file "http://pecl.php.net/get/xdebug-$XDEBUG_VERSION.tgz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv xdebug-$XDEBUG_VERSION "$DIR/install_data/php/ext/xdebug" | |
echo " done!" | |
fi | |
#TODO Uncomment this when it's ready for PHP7 | |
#if [ "$COMPILE_DEBUG" == "yes" ]; then | |
# #profiler | |
# echo -n "[PHP profiler] downloading latest..." | |
# download_file "https://github.com/krakjoe/profiler/archive/master.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
# mv profiler-master "$DIR/install_data/php/ext/profiler" | |
# echo " done!" | |
# HAS_PROFILER="--enable-profiler --with-profiler-max-frames=1000" | |
#else | |
# HAS_PROFILER="" | |
#fi | |
#pthreads | |
echo -n "[PHP pthreads] downloading $PTHREADS_VERSION..." | |
#download_file "http://pecl.php.net/get/pthreads-$PTHREADS_VERSION.tgz" | tar -zx >> "$DIR/install.log" 2>&1 | |
download_file "https://github.com/krakjoe/pthreads/archive/$PTHREADS_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv pthreads-$PTHREADS_VERSION "$DIR/install_data/php/ext/pthreads" | |
echo " done!" | |
#WeakRef | |
echo -n "[PHP Weakref] downloading $WEAKREF_VERSION..." | |
download_file "http://pecl.php.net/get/Weakref-$WEAKREF_VERSION.tgz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv Weakref-$WEAKREF_VERSION "$DIR/install_data/php/ext/weakref" | |
echo " done!" | |
#PHP YAML | |
echo -n "[PHP YAML] downloading $PHPYAML_VERSION..." | |
#download_file "http://pecl.php.net/get/yaml-$PHPYAML_VERSION.tgz" | tar -zx >> "$DIR/install.log" 2>&1 | |
#mv yaml-$PHPYAML_VERSION "$DIR/install_data/php/ext/yaml" | |
download_file "https://github.com/php/pecl-file_formats-yaml/archive/$PHPYAML_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv pecl-file_formats-yaml-$PHPYAML_VERSION "$DIR/install_data/php/ext/yaml" | |
echo " done!" | |
if [ "$COMPILE_LEVELDB" == "yes" ]; then | |
#PHP LevelDB | |
echo -n "[PHP LevelDB] downloading $PHPLEVELDB_VERSION..." | |
download_file "https://github.com/reeze/php-leveldb/archive/$PHPLEVELDB_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv php-leveldb-$PHPLEVELDB_VERSION "$DIR/install_data/php/ext/leveldb" | |
echo " done!" | |
HAS_LEVELDB=--with-leveldb="$DIR/bin/php7" | |
else | |
HAS_LEVELDB="" | |
fi | |
if [ "$COMPILE_POCKETMINE_CHUNKUTILS" == "yes" ]; then | |
echo -n "[PocketMine-ChunkUtils] Downloading $POCKETMINE_CHUNKUTILS_VERSION..." | |
download_file "https://github.com/dktapps/PocketMine-C-ChunkUtils/archive/$POCKETMINE_CHUNKUTILS_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1 | |
mv PocketMine-C-ChunkUtils-$POCKETMINE_CHUNKUTILS_VERSION "$DIR/install_data/php/ext/pocketmine_chunkutils" | |
echo " done!" | |
HAS_POCKETMINE_CHUNKUTILS=--enable-pocketmine-chunkutils | |
else | |
HAS_POCKETMINE_CHUNKUTILS="" | |
fi | |
echo -n "[PHP]" | |
if [ "$DO_OPTIMIZE" != "no" ]; then | |
echo -n " enabling optimizations..." | |
PHP_OPTIMIZATION="--enable-inline-optimization " | |
else | |
PHP_OPTIMIZATION="--disable-inline-optimization " | |
fi | |
echo -n " checking..." | |
cd php | |
rm -f ./aclocal.m4 >> "$DIR/install.log" 2>&1 | |
rm -rf ./autom4te.cache/ >> "$DIR/install.log" 2>&1 | |
rm -f ./configure >> "$DIR/install.log" 2>&1 | |
./buildconf --force >> "$DIR/install.log" 2>&1 | |
if [ "$IS_CROSSCOMPILE" == "yes" ]; then | |
sed -i=".backup" 's/pthreads_working=no/pthreads_working=yes/' ./configure | |
if [ "$IS_WINDOWS" != "yes" ]; then | |
if [ "$COMPILE_FOR_ANDROID" == "no" ]; then | |
export LIBS="$LIBS -lpthread -ldl -lresolv" | |
else | |
export LIBS="$LIBS -lpthread -lresolv" | |
fi | |
else | |
export LIBS="$LIBS -lpthread" | |
fi | |
mv ext/mysqlnd/config9.m4 ext/mysqlnd/config.m4 | |
sed -i=".backup" "s{ext/mysqlnd/php_mysqlnd_config.h{config.h{" ext/mysqlnd/mysqlnd_portability.h | |
CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-opcache=no" | |
elif [ "$DO_STATIC" == "yes" ]; then | |
export LIBS="$LIBS -ldl" | |
fi | |
if [ "$IS_WINDOWS" != "yes" ]; then | |
HAVE_PCNTL="--enable-pcntl" | |
else | |
HAVE_PCNTL="--disable-pcntl" | |
cp -f ./win32/build/config.* ./main >> "$DIR/install.log" 2>&1 | |
sed 's:@PREFIX@:$DIR/bin/php7:' ./main/config.w32.h.in > ./wmain/config.w32.h 2>> "$DIR/install.log" | |
fi | |
if [[ "$(uname -s)" == "Darwin" ]] && [[ "$IS_CROSSCOMPILE" != "yes" ]]; then | |
sed -i=".backup" 's/flock_type=unknown/flock_type=bsd/' ./configure | |
export EXTRA_CFLAGS=-lresolv | |
fi | |
if [[ "$COMPILE_DEBUG" == "yes" ]]; then | |
HAS_DEBUG="--enable-debug" | |
else | |
HAS_DEBUG="--disable-debug" | |
fi | |
RANLIB=$RANLIB CFLAGS="$CFLAGS $FLAGS_LTO" LDFLAGS="$LDFLAGS $FLAGS_LTO" ./configure $PHP_OPTIMIZATION --prefix="$DIR/bin/php7" \ | |
--exec-prefix="$DIR/bin/php7" \ | |
--with-curl="$HAVE_CURL" \ | |
--with-zlib="$DIR/bin/php7" \ | |
--with-zlib-dir="$DIR/bin/php7" \ | |
--with-gmp="$DIR/bin/php7" \ | |
--with-yaml="$DIR/bin/php7" \ | |
--with-openssl="$DIR/bin/php7" \ | |
$HAS_LIBPNG \ | |
$HAS_GD \ | |
$HAVE_NCURSES \ | |
$HAVE_READLINE \ | |
$HAS_LEVELDB \ | |
$HAS_PROFILER \ | |
$HAS_DEBUG \ | |
$HAS_POCKETMINE_CHUNKUTILS \ | |
--enable-mbstring \ | |
--enable-calendar \ | |
--enable-pthreads \ | |
--disable-fileinfo \ | |
--disable-libxml \ | |
--disable-xml \ | |
--disable-dom \ | |
--disable-simplexml \ | |
--disable-xmlreader \ | |
--disable-xmlwriter \ | |
--disable-cgi \ | |
--disable-session \ | |
--disable-pdo \ | |
--without-pear \ | |
--without-iconv \ | |
--without-pdo-sqlite \ | |
--with-pic \ | |
--enable-phar \ | |
--enable-ctype \ | |
--enable-sockets \ | |
--enable-shared=no \ | |
--enable-static=yes \ | |
--enable-shmop \ | |
--enable-maintainer-zts \ | |
--disable-short-tags \ | |
$HAVE_PCNTL \ | |
$HAVE_MYSQLI \ | |
--enable-bcmath \ | |
--enable-cli \ | |
--enable-zip \ | |
--enable-ftp \ | |
--with-zend-vm=$ZEND_VM \ | |
--enable-opcache=yes \ | |
--enable-weakref \ | |
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
if [ "$COMPILE_FOR_ANDROID" == "yes" ]; then | |
sed -i=".backup" 's/-export-dynamic/-all-static/g' Makefile | |
fi | |
sed -i=".backup" 's/PHP_BINARIES. pharcmd$/PHP_BINARIES)/g' Makefile | |
sed -i=".backup" 's/install-programs install-pharcmd$/install-programs/g' Makefile | |
if [[ "$COMPILE_LEVELDB" == "yes" ]] && [[ "$DO_STATIC" == "yes" ]]; then | |
sed -i=".backup" 's/--mode=link $(CC)/--mode=link $(CXX)/g' Makefile | |
fi | |
make -j $THREADS >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
if [[ "$(uname -s)" == "Darwin" ]] && [[ "$IS_CROSSCOMPILE" != "yes" ]]; then | |
set +e | |
install_name_tool -delete_rpath "$DIR/bin/php7/lib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libz.1.dylib" "@loader_path/../lib/libz.1.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libcurl.4.dylib" "@loader_path/../lib/libcurl.4.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libyaml-0.2.dylib" "@loader_path/../lib/libyaml-0.2.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libreadline.$READLINE_VERSION.dylib" "@loader_path/../lib/libreadline.$READLINE_VERSION.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libhistory.$READLINE_VERSION.dylib" "@loader_path/../lib/libhistory.$READLINE_VERSION.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libform.6.0.dylib" "@loader_path/../lib/libform.6.0.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libmenu.6.0.dylib" "@loader_path/../lib/libmenu.6.0.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libncurses.6.0.dylib" "@loader_path/../lib/libncurses.6.0.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libpanel.6.0.dylib" "@loader_path/../lib/libpanel.6.0.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libleveldb.dylib.1.18" "@loader_path/../lib/libleveldb.dylib.1.18" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libpng16.16.dylib" "@loader_path/../lib/libpng16.16.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libssl.1.0.0.dylib" "@loader_path/../lib/libssl.1.0.0.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libssl.1.0.0.dylib" "@loader_path/../lib/libssl.1.0.0.dylib" "$DIR/bin/php7/lib/libcurl.4.dylib" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libcrypto.1.0.0.dylib" "@loader_path/../lib/libcrypto.1.0.0.dylib" "$DIR/bin/php7/bin/php" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libcrypto.1.0.0.dylib" "@loader_path/../lib/libcrypto.1.0.0.dylib" "$DIR/bin/php7/lib/libcurl.4.dylib" >> "$DIR/install.log" 2>&1 | |
chmod 0777 "$DIR/bin/php7/lib/libssl.1.0.0.dylib" >> "$DIR/install.log" 2>&1 | |
install_name_tool -change "$DIR/bin/php7/lib/libcrypto.1.0.0.dylib" "@loader_path/libcrypto.1.0.0.dylib" "$DIR/bin/php7/lib/libssl.1.0.0.dylib" >> "$DIR/install.log" 2>&1 | |
chmod 0755 "$DIR/bin/php7/lib/libssl.1.0.0.dylib" >> "$DIR/install.log" 2>&1 | |
set -e | |
fi | |
echo -n " generating php.ini..." | |
trap - DEBUG | |
TIMEZONE=$(date +%Z) | |
echo "date.timezone=$TIMEZONE" > "$DIR/bin/php7/bin/php.ini" | |
echo "short_open_tag=0" >> "$DIR/bin/php7/bin/php.ini" | |
echo "asp_tags=0" >> "$DIR/bin/php7/bin/php.ini" | |
echo "phar.readonly=0" >> "$DIR/bin/php7/bin/php.ini" | |
echo "phar.require_hash=1" >> "$DIR/bin/php7/bin/php.ini" | |
if [[ "$COMPILE_DEBUG" == "yes" ]]; then | |
echo "zend.assertions=1" >> "$DIR/bin/php7/bin/php.ini" | |
else | |
echo "zend.assertions=-1" >> "$DIR/bin/php7/bin/php.ini" | |
fi | |
if [ "$IS_CROSSCOMPILE" != "yes" ] && [ "$DO_STATIC" == "no" ]; then | |
echo "zend_extension=opcache.so" >> "$DIR/bin/php7/bin/php.ini" | |
echo "opcache.enable=1" >> "$DIR/bin/php7/bin/php.ini" | |
echo "opcache.enable_cli=1" >> "$DIR/bin/php7/bin/php.ini" | |
echo "opcache.save_comments=1" >> "$DIR/bin/php7/bin/php.ini" | |
echo "opcache.fast_shutdown=0" >> "$DIR/bin/php7/bin/php.ini" | |
echo "opcache.max_accelerated_files=4096" >> "$DIR/bin/php7/bin/php.ini" | |
echo "opcache.interned_strings_buffer=8" >> "$DIR/bin/php7/bin/php.ini" | |
echo "opcache.memory_consumption=128" >> "$DIR/bin/php7/bin/php.ini" | |
echo "opcache.optimization_level=0xffffffff" >> "$DIR/bin/php7/bin/php.ini" | |
fi | |
if [ "$HAVE_CURL" == "shared,/usr" ]; then | |
echo "extension=curl.so" >> "$DIR/bin/php7/bin/php.ini" | |
fi | |
echo " done!" | |
if [[ "$DO_STATIC" != "yes" ]] && [[ "$COMPILE_DEBUG" == "yes" ]]; then | |
echo -n "[xdebug] checking..." | |
cd "$DIR/install_data/php/ext/xdebug" | |
$DIR/bin/php7/bin/phpize >> "$DIR/install.log" 2>&1 | |
./configure --with-php-config="$DIR/bin/php7/bin/php-config" >> "$DIR/install.log" 2>&1 | |
echo -n " compiling..." | |
make -j4 >> "$DIR/install.log" 2>&1 | |
echo -n " installing..." | |
make install >> "$DIR/install.log" 2>&1 | |
echo "zend_extension=xdebug.so" >> "$DIR/bin/php7/bin/php.ini" | |
echo " done!" | |
fi | |
cd "$DIR" | |
if [ "$COMPILE_DEBUG" != "yes" ]; then | |
echo -n "[INFO] Cleaning up..." | |
rm -r -f install_data/ >> "$DIR/install.log" 2>&1 | |
rm -f bin/php7/bin/curl* >> "$DIR/install.log" 2>&1 | |
rm -f bin/php7/bin/curl-config* >> "$DIR/install.log" 2>&1 | |
rm -f bin/php7/bin/c_rehash* >> "$DIR/install.log" 2>&1 | |
rm -f bin/php7/bin/openssl* >> "$DIR/install.log" 2>&1 | |
rm -r -f bin/php7/man >> "$DIR/install.log" 2>&1 | |
rm -r -f bin/php7/php >> "$DIR/install.log" 2>&1 | |
rm -r -f bin/php7/misc >> "$DIR/install.log" 2>&1 | |
echo " done!" | |
fi | |
#Composer | |
echo -n "[Composer] downloading..." | |
EXPECTED_SIGNATURE=$(download_file https://composer.github.io/installer.sig) | |
download_file https://getcomposer.org/installer > composer-setup.php | |
ACTUAL_SIGNATURE=$($DIR/bin/php7/bin/php -r "echo hash_file('SHA384', 'composer-setup.php');") | |
if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ] | |
then | |
>&2 echo ' ERROR: Invalid Composer installer signature' | |
echo 'ERROR: Invalid Composer installer signature' >> "$DIR/install.log" 2>&1 | |
rm composer-setup.php | |
exit 1 | |
fi | |
echo -n " installing..." | |
$DIR/bin/php7/bin/php composer-setup.php --install-dir=bin >> "$DIR/install.log" 2>&1 | |
rm composer-setup.php | |
echo " done!" | |
date >> "$DIR/install.log" 2>&1 | |
echo "[PocketMine] You should start the server now using \"./start.sh.\"" | |
echo "[PocketMine] If it doesn't work, please send the \"install.log\" file to the Bug Tracker." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
wget -O - https://gist.githubusercontent.com/Ad5001/d9fd69d31b3d91f21938b97fd404f167/raw/194c6cbae1a603dc263488748af6cefc8fc1484b/compile.sh | bash |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment