summaryrefslogblamecommitdiff
path: root/build.sh
blob: 0d67f941e08c1436a74696c32db4573c408a3558 (plain) (tree)




























































































































































                                                                                                              
#!/usr/bin/env bash

CMD="$1"
MAKE=make

if [[ -z "${CMD}" ]]; then
    export CMD="default"
fi

if [ -x "/usr/bin/mariadb_config" ]; then
    export SQL=" --with-mysql=/usr/bin/mariadb_config"
elif [ -x "/usr/bin/mysql_config" ]; then
    export SQL=" --with-mysql=/usr/bin/mysql_config"
elif [ -x "/usr/local/bin/mysql_config" ]; then
    export SQL=" --with-mysql=/usr/local/bin/mysql_config"
else
    export SQL=""
fi

source src/evol/tools/vars.sh

COMMON="--enable-packetver=20170517 --enable-debug=gdb${SQL}"

if [[ "$(uname)" == "FreeBSD" ]]; then
    MAKE=gmake
    export CORES=$(sysctl hw.ncpu | awk '{print $2}')
elif [[ "$(uname)" == "Darwin" ]]; then
    export CORES=$(sysctl hw.ncpu | awk '{print $2}')
else
    COMMON+=" --enable-epoll"
    export CORES=$(cat /proc/cpuinfo|grep processor|wc -l)
fi
export COMMON
export MAKE

autoreconf
if [ "$?" != 0 ]; then
    exit 1
fi
if [[ "${CMD}" == "default" || "${CMD}" == "all" ]]; then
    export CC=gcc
    ./configure --enable-manager=no --enable-sanitize=full ${COMMON} CPPFLAGS="${VARS}"
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} -j${CORES}
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} install
    if [ "$?" != 0 ]; then
        exit 1
    fi
    cd src/evol
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ./build.sh
    if [ "$?" != 0 ]; then
        exit 1
    fi
elif [[ "${CMD}" == "old" ]]; then
    ./configure --disable-lto ${COMMON} CPPFLAGS="${VARS}"
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} -j${CORES}
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} install
    if [ "$?" != 0 ]; then
        exit 1
    fi
    cd src/evol
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ./build.sh old
    if [ "$?" != 0 ]; then
        exit 1
    fi
elif [[ "${CMD}" == "valgrind" ]]; then
    ./configure --enable-manager=no ${COMMON} CPPFLAGS="${VARS}"
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} -j${CORES}
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} install
    if [ "$?" != 0 ]; then
        exit 1
    fi
    cd src/evol
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ./build.sh old
    if [ "$?" != 0 ]; then
        exit 1
    fi
elif [[ "${CMD}" == "gprof" ]]; then
    ./configure --enable-manager=no --enable-profiler=gprof ${COMMON} CPPFLAGS="${VARS}"
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} -j${CORES}
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} install
    if [ "$?" != 0 ]; then
        exit 1
    fi
    cd src/evol
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ./build.sh gprof
    if [ "$?" != 0 ]; then
        exit 1
    fi
elif [[ "${CMD}" == "server" ]]; then
    ./configure --enable-sanitize ${COMMON} CPPFLAGS="${VARS}"
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} -j${CORES}
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} install
    if [ "$?" != 0 ]; then
        exit 1
    fi
elif [[ "${CMD}" == "static" ]]; then
    ./configure LIBS="-lmysqlclient -lssl -lcrypto -pthread -lm -lz" --disable-64bit --enable-static ${COMMON}
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} -j${CORES}
    if [ "$?" != 0 ]; then
        exit 1
    fi
elif [[ "${CMD}" == "static64" ]]; then
    ./configure --enable-static ${COMMON} CPPFLAGS="${VARS}"
    if [ "$?" != 0 ]; then
        exit 1
    fi
    ${MAKE} -j${CORES}
    if [ "$?" != 0 ]; then
        exit 1
    fi
fi
echo "OK"