#!/bin/sh # $Author: nobunaga $ # $Revision: 1.2 $ # $Date: 2008/01/05 12:11: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="$LDFLAGS -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 sgconf currently supported by Linux, FreeBSD 4.x, 5.x, 6.x #" echo "#############################################################################" exit 1 fi echo "#############################################################################" echo " Building sgconf for $sys $release" echo "#############################################################################" STG_LIBS="conffiles.lib crypto.lib common.lib srvconf.lib" if [ "$OS" = "linux" ] then DEFS="$DEFS -DLINUX" LIB_THREAD=-lpthread SHELL="/bin/bash" else if [ "$OS" = "bsd" ] then DEFS="$DEFS -DFREE_BSD" 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 gcc... " gcc --version > /dev/null 2> /dev/null if [ $? != 0 ] then echo "FAIL!" echo "gcc not found" exit; fi echo "found" echo -n "Checking g++... " g++ --version > /dev/null 2> /dev/null if [ $? != 0 ] then echo "FAIL!" echo "g++ not found" exit; fi echo "found" echo -n "Checking endianess... " echo "int main() { int probe = 0x00000001; return *(char *)&probe; }" > build_check.c gcc $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 echo -n "Checking for -lexpat... " echo "int main() { return 0; }" > build_check.c gcc $CXXFLAGS $LDFLAGS build_check.c -lexpat -o fake > /dev/null 2> /dev/null if [ $? != 0 ] then CHECK_EXPAT=no echo "no" else CHECK_EXPAT=yes echo "yes" fi rm -f fake rm -f build_check.c if [ "$CHECK_EXPAT" != "yes" ] then echo "-lexpat not found!" exit 1 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 "ARCH=$ARCH" >> $CONFFILE echo "CHECK_EXPAT=$CHECK_EXPAT" >> $CONFFILE echo "DEFS=$DEFS" >> $CONFFILE echo -n "STG_LIBS=" >> $CONFFILE for lib in $STG_LIBS do echo -n "$lib " >> $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