2 Star 0 Fork 0

manaphp/cphalcon

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
install 3.83 KB
一键复制 编辑 原始数据 按行查看 历史
Ruud Boon 提交于 2019-02-06 13:31 +08:00 . Updated CFLAG default build param
#!/usr/bin/env bash
#
# Phalcon Framework
#
# Copyright (c) 2011-present Phalcon Team (https://phalconphp.com)
#
# This source file is subject to the New BSD License that is bundled
# with this package in the file LICENSE.txt.
#
# If you did not receive a copy of the license and are unable to
# obtain it through the world-wide-web, please send an email
# to license@phalconphp.com so we can send you a copy immediately.
#
# Authors: Andres Gutierrez <andres@phalconphp.com>
# Eduar Carvajal <eduar@phalconphp.com>
#
# Available params:
# --arch
# --phpize
# --php-config
#
# Example:
# ./install --phpize /usr/bin/phpize7.3 --php-config /usr/bin/php-config7.3 --arch 32bits
# Check best compilation flags for GCC
# By default we compile to be as compatible as possible with all processors.
# If you would like instruct the compiler to generate optimized machine code that matches the processor where it is currently running on you can set your own compile flags by exporting CFLAGS before the build.
#
# Example:
# export CFLAGS="-march=native -O2 -fomit-frame-pointer"
#
# This will generate the best possible code for that chipset but will likely break the compiled object on older chipsets.
export CC="gcc"
if [ -z "$CFLAGS" ]
then
export CFLAGS="-mtune=native -O2 -fomit-frame-pointer"
fi
export CPPFLAGS="-DPHALCON_RELEASE"
# Set defaults
ARCH=
PHPIZE_BIN=$(command -v phpize 2>/dev/null)
PHPCONFIG_BIN=$(command -v php-config 2>/dev/null)
# Translate long options to short
for arg in "$@"; do
shift
case "$arg" in
"--arch") set -- "$@" "-a" ;;
"--phpize") set -- "$@" "-i" ;;
"--php-config") set -- "$@" "-c" ;;
*) set -- "$@" "$arg"
esac
done
# Options switcher
while getopts a:i:c: opts; do
case ${opts} in
a) ARCH=${OPTARG} ;;
i) PHPIZE_BIN=${OPTARG} ;;
c) PHPCONFIG_BIN=${OPTARG} ;;
esac
done
PHP_FULL_VERSION=`${PHPCONFIG_BIN} --version`
if [ $? != 0 ]; then
echo "php-config is not installed"
exit 1
fi
if [ "${PHP_FULL_VERSION:0:1}" == "5" ]; then
echo "php 5 is no longer supported"
exit 1
fi
PHP_VERSION="php7"
# Detect possible flags
echo "int main() {}" > t.c
gcc ${CFLAGS} t.c -o t 2> t.t
if [ $? != 0 ]; then
chmod +x gcccpuopt
BFLAGS=`./gcccpuopt`
export CFLAGS="-O2 -fomit-frame-pointer $BFLAGS"
gcc ${CFLAGS} t.c -o t 2> t.t
if [ $? != 0 ]; then
export CFLAGS="-O2"
fi
fi
# Activate some gcc specific optimizations for gcc >= 4
if [ $(gcc -dumpversion | cut -f1 -d.) -ge 4 ]; then
gcc ${CFLAGS}-fvisibility=hidden t.c -o t 2> t.t && export CFLAGS="$CFLAGS -fvisibility=hidden"
fi
# gcc $CFLAGS -flto t.c -o t 2> t.t && { export CFLAGS="$CFLAGS -flto"; export LDFLAGS="$LDFLAGS $CFLAGS"; }
rm -f t.t t.c t
# Check processor architecture
if [ -z ${ARCH} ]; then
DIR="32bits"
gcc gccarch.c -o gccarch
if [ -f gccarch ]; then
P64BITS=`./gccarch`
if [ "$P64BITS" == "1" ]; then
DIR="64bits"
fi
fi
else
DIR=${ARCH}
fi
# Move to specified architecture
cd "$PHP_VERSION/$DIR"
# Clean current compilation
if [ -f Makefile ]; then
make clean
${PHPIZE_BIN} --clean
fi
# Perform the compilation
${PHPIZE_BIN}
# For some reason the libtool script being generated by autogen contains lines referring
# to "$echo message" instead of "echo message".
export echo=echo
# Detect Gentoo Linux
if [ -f /etc/gentoo-release ]; then
LIBTOOLIZE_BIN=$(command -v libtoolize 2>/dev/null)
aclocal && ${LIBTOOLIZE_BIN} --force && autoheader && autoconf
fi
# Detect macOS
if [ "$(uname -s 2>/dev/null)" = "Darwin" ]; then
LIBTOOLIZE_BIN=$(command -v glibtoolize 2>/dev/null)
aclocal && ${LIBTOOLIZE_BIN} --force && autoheader && autoconf
fi
./configure --silent --with-php-config=${PHPCONFIG_BIN} --enable-phalcon
make -s -j"$(getconf _NPROCESSORS_ONLN)"
make -s install
echo -e "\nThanks for compiling Phalcon!\nBuild succeed: Please restart your web server to complete the installation\n"
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/manaphp/cphalcon.git
git@gitee.com:manaphp/cphalcon.git
manaphp
cphalcon
cphalcon
master

搜索帮助