diff --git a/src/build/installer.sh b/src/build/installer.sh index e97aee552..1a5dbc561 100644 --- a/src/build/installer.sh +++ b/src/build/installer.sh @@ -7,6 +7,8 @@ RPI_BUILD="PHP_5.5.9_ARM_Raspbian_hard" AND_BUILD="PHP_5.5.9_ARMv7_Android" IOS_BUILD="PHP_5.5.9_ARMv6_iOS" update=off +forcecompile=off +alldone=no #Needed to use aliases shopt -s expand_aliases @@ -23,11 +25,14 @@ else fi -while getopts "udv:" opt; do +while getopts "ucdv:" opt; do case $opt in u) update=on ;; + c) + forcecompile=on + ;; d) PMMP_VERSION="master" ;; @@ -60,7 +65,6 @@ rm -f LICENSE rm -f start.sh rm -f start.bat echo "[1/3] Downloading PocketMine-MP $PMMP_VERSION..." -set -e download_file "https://github.com/PocketMine/PocketMine-MP/archive/$PMMP_VERSION.tar.gz" | tar -zx > /dev/null mv -f PocketMine-MP-$PMMP_VERSION/* ./ rm -f -r PocketMine-MP-$PMMP_VERSION/ @@ -72,7 +76,7 @@ if [ $update == on ]; then else echo -n "[3/3] Obtaining PHP:" echo " detecting if build is available..." - if [ "$(uname -s)" == "Darwin" ]; then + if [ "$forcecompile" == "off" ] && [ "$(uname -s)" == "Darwin" ]; then set +e UNAME_M=$(uname -m) IS_IOS=$(expr match $UNAME_M 'iP[a-zA-Z0-9,]*') @@ -82,57 +86,71 @@ else echo -n "[3/3] iOS PHP build available, downloading $IOS_BUILD.tar.gz..." download_file "http://sourceforge.net/projects/pocketmine/files/builds/$IOS_BUILD.tar.gz" | tar -zx > /dev/null 2>&1 chmod +x ./bin/php5/bin/* - echo -n " regenerating php.ini..." - echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini" - echo "short_open_tag=0" >> "./bin/php5/lib/php.ini" - echo "asp_tags=0" >> "./bin/php5/lib/php.ini" - echo " done" + echo -n " checking..." + if [ $(./bin/php5/bin/php -r 'echo "yes";') == "yes" ]; then + echo -n " regenerating php.ini..." + echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini" + echo "short_open_tag=0" >> "./bin/php5/lib/php.ini" + echo "asp_tags=0" >> "./bin/php5/lib/php.ini" + echo " done" + alldone=yes + else + echo " invalid build detected" + fi else rm -r -f bin/ >> /dev/null 2>&1 echo -n "[3/3] Mac OSX PHP build available, downloading $MAC_BUILD.tar.gz..." download_file "http://sourceforge.net/projects/pocketmine/files/builds/$MAC_BUILD.tar.gz" | tar -zx > /dev/null 2>&1 chmod +x ./bin/php5/bin/* - echo -n " regenerating php.ini..." - OPCACHE_PATH=$(find "./bin/php5" -name opcache.so) - echo "zend_extension=\"$OPCACHE_PATH\"" > "./bin/php5/lib/php.ini" - echo "opcache.enable=1" >> "./bin/php5/lib/php.ini" - echo "opcache.enable_cli=1" >> "./bin/php5/lib/php.ini" - echo "opcache.save_comments=0" >> "./bin/php5/lib/php.ini" - echo "opcache.fast_shutdown=1" >> "./bin/php5/lib/php.ini" - echo "opcache.max_accelerated_files=4096" >> "./bin/php5/lib/php.ini" - echo "opcache.interned_strings_buffer=8" >> "./bin/php5/lib/php.ini" - echo "opcache.memory_consumption=128" >> "./bin/php5/lib/php.ini" - echo "opcache.optimization_level=0xffffffff" >> "./bin/php5/lib/php.ini" - echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini" - echo "short_open_tag=0" >> "./bin/php5/lib/php.ini" - echo "asp_tags=0" >> "./bin/php5/lib/php.ini" - echo " done" + echo -n " checking..." + if [ $(./bin/php5/bin/php -r 'echo "yes";') == "yes" ]; then + echo -n " regenerating php.ini..." + echo "zend_extension=opcache.so" > "./bin/php5/lib/php.ini" + echo "opcache.enable=1" >> "./bin/php5/lib/php.ini" + echo "opcache.enable_cli=1" >> "./bin/php5/lib/php.ini" + echo "opcache.save_comments=0" >> "./bin/php5/lib/php.ini" + echo "opcache.fast_shutdown=1" >> "./bin/php5/lib/php.ini" + echo "opcache.max_accelerated_files=4096" >> "./bin/php5/lib/php.ini" + echo "opcache.interned_strings_buffer=8" >> "./bin/php5/lib/php.ini" + echo "opcache.memory_consumption=128" >> "./bin/php5/lib/php.ini" + echo "opcache.optimization_level=0xffffffff" >> "./bin/php5/lib/php.ini" + echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini" + echo "short_open_tag=0" >> "./bin/php5/lib/php.ini" + echo "asp_tags=0" >> "./bin/php5/lib/php.ini" + echo " done" + alldone=yes + else + echo " invalid build detected" + fi fi else - set +e grep -q BCM2708 /proc/cpuinfo > /dev/null 2>&1 - if [ $? -eq 0 ]; then - set -e + if [ $? -eq 0 ] && [ "$forcecompile" == "off" ]; then rm -r -f bin/ >> /dev/null 2>&1 echo -n "[3/3] Raspberry Pi PHP build available, downloading $RPI_BUILD.tar.gz..." download_file "http://sourceforge.net/projects/pocketmine/files/builds/$RPI_BUILD.tar.gz" | tar -zx > /dev/null 2>&1 chmod +x ./bin/php5/bin/* - echo -n " regenerating php.ini..." - OPCACHE_PATH=$(find "./bin/php5" -name opcache.so) - echo "zend_extension=\"$OPCACHE_PATH\"" > "./bin/php5/lib/php.ini" - echo "opcache.enable=1" >> "./bin/php5/lib/php.ini" - echo "opcache.enable_cli=1" >> "./bin/php5/lib/php.ini" - echo "opcache.save_comments=0" >> "./bin/php5/lib/php.ini" - echo "opcache.fast_shutdown=1" >> "./bin/php5/lib/php.ini" - echo "opcache.max_accelerated_files=4096" >> "./bin/php5/lib/php.ini" - echo "opcache.interned_strings_buffer=8" >> "./bin/php5/lib/php.ini" - echo "opcache.memory_consumption=128" >> "./bin/php5/lib/php.ini" - echo "opcache.optimization_level=0xffffffff" >> "./bin/php5/lib/php.ini" - echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini" - echo "short_open_tag=0" >> "./bin/php5/lib/php.ini" - echo "asp_tags=0" >> "./bin/php5/lib/php.ini" - echo " done" - elif [ "$(uname -s)" == "Linux" ]; then + echo -n " checking..." + if [ $(./bin/php5/bin/php -r 'echo "yes";') == "yes" ]; then + echo -n " regenerating php.ini..." + echo "zend_extension=opcache.so" > "./bin/php5/lib/php.ini" + echo "opcache.enable=1" >> "./bin/php5/lib/php.ini" + echo "opcache.enable_cli=1" >> "./bin/php5/lib/php.ini" + echo "opcache.save_comments=0" >> "./bin/php5/lib/php.ini" + echo "opcache.fast_shutdown=1" >> "./bin/php5/lib/php.ini" + echo "opcache.max_accelerated_files=4096" >> "./bin/php5/lib/php.ini" + echo "opcache.interned_strings_buffer=8" >> "./bin/php5/lib/php.ini" + echo "opcache.memory_consumption=128" >> "./bin/php5/lib/php.ini" + echo "opcache.optimization_level=0xffffffff" >> "./bin/php5/lib/php.ini" + echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini" + echo "short_open_tag=0" >> "./bin/php5/lib/php.ini" + echo "asp_tags=0" >> "./bin/php5/lib/php.ini" + echo " done" + alldone=yes + else + echo " invalid build detected" + fi + elif [ "$forcecompile" == "off" ] && [ "$(uname -s)" == "Linux" ]; then rm -r -f bin/ >> /dev/null 2>&1 if [ `getconf LONG_BIT` = "64" ]; then echo -n "[3/3] Linux 64-bit PHP build available, downloading $LINUX_64_BUILD.tar.gz..." @@ -143,22 +161,28 @@ else fi download_file "http://sourceforge.net/projects/pocketmine/files/builds/$LINUX_BUILD.tar.gz" | tar -zx > /dev/null 2>&1 chmod +x ./bin/php5/bin/* - echo -n " regenerating php.ini..." - OPCACHE_PATH=$(find "./bin/php5" -name opcache.so) - echo "zend_extension=\"$OPCACHE_PATH\"" > "./bin/php5/lib/php.ini" - echo "opcache.enable=1" >> "./bin/php5/lib/php.ini" - echo "opcache.enable_cli=1" >> "./bin/php5/lib/php.ini" - echo "opcache.save_comments=0" >> "./bin/php5/lib/php.ini" - echo "opcache.fast_shutdown=1" >> "./bin/php5/lib/php.ini" - echo "opcache.max_accelerated_files=4096" >> "./bin/php5/lib/php.ini" - echo "opcache.interned_strings_buffer=8" >> "./bin/php5/lib/php.ini" - echo "opcache.memory_consumption=128" >> "./bin/php5/lib/php.ini" - echo "opcache.optimization_level=0xffffffff" >> "./bin/php5/lib/php.ini" - echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini" - echo "short_open_tag=0" >> "./bin/php5/lib/php.ini" - echo "asp_tags=0" >> "./bin/php5/lib/php.ini" - echo " done" - else + echo -n " checking..." + if [ $(./bin/php5/bin/php -r 'echo "yes";') == "yes" ]; then + echo -n " regenerating php.ini..." + echo "zend_extension=opcache.so" > "./bin/php5/lib/php.ini" + echo "opcache.enable=1" >> "./bin/php5/lib/php.ini" + echo "opcache.enable_cli=1" >> "./bin/php5/lib/php.ini" + echo "opcache.save_comments=0" >> "./bin/php5/lib/php.ini" + echo "opcache.fast_shutdown=1" >> "./bin/php5/lib/php.ini" + echo "opcache.max_accelerated_files=4096" >> "./bin/php5/lib/php.ini" + echo "opcache.interned_strings_buffer=8" >> "./bin/php5/lib/php.ini" + echo "opcache.memory_consumption=128" >> "./bin/php5/lib/php.ini" + echo "opcache.optimization_level=0xffffffff" >> "./bin/php5/lib/php.ini" + echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini" + echo "short_open_tag=0" >> "./bin/php5/lib/php.ini" + echo "asp_tags=0" >> "./bin/php5/lib/php.ini" + echo " done" + alldone=yes + else + echo " invalid build detected" + fi + fi + if [ "$alldone" == "no" ]; then set -e echo "[3/3] no build found, compiling PHP" exec ./src/build/compile.sh