#!/bin/sh # $Author: faust $ # $Revision: 1.24 $ # $Date: 2010/04/14 08:59:02 $ ###################################################### OS=unknown sys=`uname -s` release=`uname -r | cut -b1` BUILD_DIR=`pwd` CONFFILE="../../Makefile.conf" PREFIX="/" BIN_MODE=0755 DATA_MODE=0644 DIR_MODE=0755 OWNER=root if [ -z $1 ] then MAKEOPTS="-j1" else if [ "$1" = "debug" ] then DEFS="-DDEBUG" MAKEOPTS="-j1" CXXFLAGS="$CXXFLAGS -g3 -W -Wall" else MAKEOPTS="-j1" fi fi CXXFLAGS="$CXXFLAGS -I/usr/local/include" LDFLAGS="$CXXFLAGS -L/usr/local/lib" if [ "$sys" = "Linux" ] then OS=linux release="" MAKE="make" fi if [ "$sys" = "FreeBSD" ] then case $release in 4) OS=bsd;; 5) OS=bsd5;; 6) OS=bsd5;; 7) OS=bsd7;; 8) OS=bsd7;; *) OS=unknown;; esac MAKE="gmake" fi if [ "$OS" = "unknown" ] then echo "################################################################################" echo "# Sorry, but sgauthstress currently supported by Linux, FreeBSD 4.x-8.x #" echo "################################################################################" exit 1 fi echo "#############################################################################" echo " Building sgauthstress for $sys $release" echo "#############################################################################" STG_LIBS="logger.lib locker.lib crypto.lib common.lib conffiles.lib dotconfpp.lib" PLUGINS="store/files" if [ "$OS" = "linux" ] then DEFS="$DEFS -DLINUX" LIB_THREAD=-lpthread SHELL="/bin/bash" else if [ "$OS" = "bsd" ] then DEFS="$DEFS -DFREE_BSD" LIB_THREAD=-lc_r else DEFS="$DEFS -DFREE_BSD5" if [ "$OS" = "bsd7" ] then LIB_THREAD=-lpthread else LIB_THREAD=-lc_r fi fi SHELL="/usr/local/bin/bash" fi echo -n "Checking CC... " $CC --version > /dev/null 2> /dev/null if [ $? != 0 ] then echo "FAIL!" echo "$CC not found" exit; fi echo "found" echo -n "Checking CXX... " $CXX --version > /dev/null 2> /dev/null if [ $? != 0 ] then echo "FAIL!" echo "$CXX not found" exit; fi echo "found" echo -n "Checking endianess... " echo "int main() { int probe = 0x00000001; return *(char *)&probe; }" > build_check.c $CC $CXXFLAGS $LDFLAGS build_check.c -o fake > /dev/null 2> /dev/null if [ $? != 0 ] then echo "FAIL!" echo "Endianess checking failed" exit; else ./fake if [ $? = 1 ] then ARCH=le CXXFLAGS="$CXXFLAGS -DARCH_LE" echo "Little Endian" else ARCH=be CXXFLAGS="$CXXFLAGS -DARCH_BE" echo "Big Endian" fi fi rm -f fake rm -f build_check.c echo -n "Checking for -lfbclient... " $CC $CXXFLAGS $LDFLAGS build_check.c -lfbclient $LIB_THREAD -o fake > /dev/null 2> /dev/null if [ $? != 0 ] then CHECK_FBCLIENT=no echo "no" else CHECK_FBCLIENT=yes echo "yes" fi rm -f fake echo -n "Checking for mysql_config... " MYSQL_VERSION=`mysql_config --version 2> /dev/null` if [ $? != 0 ] then echo "no"; echo -n "Checking for -lmysqlclient... " $CC $CXXFLAGS $LDFLAGS build_check.c -lmysqlclient_r $LIB_THREAD -o fake > /dev/null 2> /dev/null if [ $? != 0 ] then CHECK_MYSQLCLIENT=no echo "no" else CHECK_MYSQLCLIENT=yes echo "yes" fi rm -f fake else echo "yes" echo -n "Checking for mysql_config --cflags... " MYSQL_CFLAGS=`mysql_config --cflags 2> /dev/null` if [ $? != 0 ] then CHECK_MYSQLCLIENT=no echo "no" else #CXXFLAGS="$CXXFLAGS $MYSQL_CFLAGS" echo "[$MYSQL_CFLAGS]" echo -n "Checking for mysql_config --libs_r... " MYSQL_LDFLAGS=`mysql_config --libs_r 2> /dev/null` if [ $? != 0 ] then CHECK_MYSQLCLIENT=no echo "no" else CHECK_MYSQLCLIENT=yes #LDFLAGS="$LDFLAGS $MYSQL_LDFLAGS" echo "[$MYSQL_LDFLAGS]" fi fi fi echo -n "Checking for pg_config... " PG_VERSION=`pg_config --version 2> /dev/null` if [ $? != 0 ] then echo "no"; echo -n "Checking for -lpq... " $CC $CXXFLAGS $LDFLAGS build_check.c -lpq $LIB_THREAD -o fake > /dev/null 2> /dev/null if [ $? != 0 ] then CHECK_PQ=no echo "no" else CHECK_PQ=yes echo "yes" fi rm -f fake else echo "yes"; echo -n "Checking for pg_config --includedir... " PG_CFLAGS=`pg_config --includedir 2> /dev/null` if [ $? != 0 ] then CHECK_PQ=no echo "no" else echo "[$PG_CFLAGS]" echo -n "Checking for pg_config --libdir... " PG_LDFLAGS=`pg_config --libdir 2> /dev/null` if [ $? != 0 ] then CHECK_PQ=no echo "no" else CHECK_PQ=yes echo "[$PG_LDFLAGS]" fi fi fi rm -f build_check.c if [ "$CHECK_FBCLIENT" = "yes" ] then STG_LIBS="$STG_LIBS ibpp.lib" PLUGINS="$PLUGINS store/firebird" fi if [ "$CHECK_PQ" = "yes" ] then PLUGINS="$PLUGINS store/postgresql" fi if [ "$CHECK_MYSQLCLIENT" = "yes" ] then PLUGINS="$PLUGINS store/mysql" fi echo "OS=$OS" > $CONFFILE echo "STG_TIME=yes" >> $CONFFILE echo "DIR_BUILD=$BUILD_DIR" >> $CONFFILE echo "DIR_LIB=\$(DIR_BUILD)/../../lib" >> $CONFFILE echo "DIR_LIBSRC=\$(DIR_BUILD)/../../stglibs" >> $CONFFILE echo "DIR_INCLUDE=\$(DIR_BUILD)/../../include" >> $CONFFILE echo "DIR_MOD=\$(DIR_BUILD)/../stargazer/modules" >> $CONFFILE echo "DIR_PLUGINS=\$(DIR_BUILD)/../stargazer/plugins" >> $CONFFILE echo "ARCH=$ARCH" >> $CONFFILE echo "DEFS=$DEFS" >> $CONFFILE echo -n "STG_LIBS=" >> $CONFFILE for lib in $STG_LIBS do echo -n "$lib " >> $CONFFILE done echo "" >> $CONFFILE echo -n "PLUGINS=" >> $CONFFILE for plugin in $PLUGINS do echo -n "$plugin " >> $CONFFILE done echo "" >> $CONFFILE echo "LIB_THREAD=$LIB_THREAD" >> $CONFFILE echo "SHELL=$SHELL" >> $CONFFILE echo "CXXFLAGS=$CXXFLAGS" >> $CONFFILE echo "LDFLAGS=$LDFLAGS" >> $CONFFILE echo "PREFIX=$PREFIX" >> $CONFFILE echo "BIN_MODE=$BIN_MODE" >> $CONFFILE echo "DATA_MODE=$DATA_MODE" >> $CONFFILE echo "DIR_MODE=$DIR_MODE" >> $CONFFILE echo "OWNER=$OWNER" >> $CONFFILE $MAKE $MAKEOPTS