Skip to content

Instantly share code, notes, and snippets.

@phalcon
Last active December 20, 2015 19:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phalcon/6186423 to your computer and use it in GitHub Desktop.
Save phalcon/6186423 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Check best compilation flags for GCC
export CC="gcc"
export CFLAGS="-march=native -mtune=native -O2 -fno-delete-null-pointer-checks -finline-functions -fomit-frame-pointer -fno-builtin-memcmp"
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 -fno-delete-null-pointer-checks -finline-functions -fomit-frame-pointer -fno-builtin-memcmp $BFLAGS"
gcc $CFLAGS t.c -o t 2> t.t
if [ $? != 0 ]; then
export CFLAGS="-O2 -fno-delete-null-pointer-checks"
fi
fi
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 $1 ]; then
DIR="32bits"
gcc gccarch.c -o gccarch
if [ -f gccarch ]; then
P64BITS=`./gccarch`
if [ "$P64BITS" == "1" ]; then
DIR="64bits"
fi
fi
else
DIR=$1
fi
#Move to specified architecture
cd $DIR
#Clean current compilation
if [ -f Makefile ]; then
make clean
/Applications/XAMPP/xamppfiles/bin/phpize --clean
fi
#Perform the compilation
/Applications/XAMPP/xamppfiles/bin/phpize && ./configure --enable-phalcon --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config && make && make install && echo -e "\nThanks for compiling Phalcon!\nBuild succeed: Please restart your web server to complete the installation"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment