#/bin/sh

# Prepare test suite & Make Makefile shell script for RPC & TIRPC Test Suite
# (c) 2007 BULL S.A.S.
# created by Cyril Lacabanne (cyril.lacabanne@bull.net)
# creation : 2007-05-25 revision : 2007-06-06

# ***************************
# *** initialization part ***
# ***************************

#define current directory, where test suite is installed
RPCTSDIR=`pwd`
DEFAULTDIR=$RPCTSDIR/tests_pack
DEFAULTIP=localhost
DEFAULTUSR=root
TSTPACKDIR=$RPCTSDIR/tests_pack
NBTHREADPROCESS=4
NBTESTPROCESS=100
NBPERFTESTITER=10
SCALINSTNUMBER=8

export TSTPACKDIR
export SERVERTSTPACKDIR
export CLIENTTSTPACKDIR
export NBTHREADPROCESS
export NBTESTPROCESS

# **********************************************
# *** test is RPC & TIRPC Test Suite can run ***
# **********************************************



# *****************************************
# *** prepare run script for test suite ***
# *****************************************
cat inc/rpc_ts_run.hdr>rpc_ts_run.sh

# Prompt for Server tests pack dir

SERVERTSTPACKDIR=$DEFAULTDIR
echo 'SERVERTSTPACKDIR='$SERVERTSTPACKDIR >>rpc_ts_run.sh

CLIENTTSTPACKDIR=$DEFAULTDIR
echo 'CLIENTTSTPACKDIR='$CLIENTTSTPACKDIR >>rpc_ts_run.sh

echo "# LOCALIP variable is computer IP/name used to run tests scripts" >>rpc_ts_run.sh
echo "# if LOCALIP = SERVERIP = CLIENTIP, that means all tests are in local mode" >>rpc_ts_run.sh
echo "# (run on the same machine)" >>rpc_ts_run.sh

LOCALIP=$DEFAULTIP
echo 'LOCALIP='$LOCALIP >>rpc_ts_run.sh


SERVERIP=$DEFAULTIP
echo :'SERVERIP='$SERVERIP >>rpc_ts_run.sh

CLIENTIP=$DEFAULTIP
echo 'CLIENTIP='$CLIENTIP >>rpc_ts_run.sh

SERVERUSER=$DEFAULTUSR
echo 'SERVERUSER='$SERVERUSER >>rpc_ts_run.sh

CLIENTUSER=$DEFAULTUSR
echo 'CLIENTUSER='$CLIENTUSER >>rpc_ts_run.sh

echo "# number of threads for thread tests" >>rpc_ts_run.sh
NBTHREADPROCESS2=$NBTHREADPROCESS
echo 'NBTHREADPROCESS='$NBTHREADPROCESS2 >>rpc_ts_run.sh

NBTESTPROCESS2=$NBTESTPROCESS
echo 'NBTESTPROCESS='$NBTESTPROCESS2 >>rpc_ts_run.sh

echo "# number of test instances for performance test" >>rpc_ts_run.sh
NBPERFTESTITER2=$NBPERFTESTITER
echo 'NBPERFTESTITER='$NBPERFTESTITER2 >>rpc_ts_run.sh

echo "# maximal number of test instances for scalability test" >>rpc_ts_run.sh
SCALINSTNUMBER2=$SCALINSTNUMBER
echo 'SCALINSTNUMBER='$SCALINSTNUMBER2 >>rpc_ts_run.sh

cat inc/rpc_ts_run.ftr>>rpc_ts_run.sh

# ***********************************
# *** prepare installation script ***
# ***********************************

cat inc/install.hdr >install.sh
echo "">>install.sh
echo 'SERVERTSTPACKDIR='$SERVERTSTPACKDIR >>install.sh
echo 'CLIENTTSTPACKDIR='$CLIENTTSTPACKDIR >>install.sh
echo 'LOCALIP='$LOCALIP >>install.sh
echo 'SERVERIP='$SERVERIP >>install.sh
echo 'CLIENTIP='$CLIENTIP >>install.sh
echo 'SERVERUSER='$SERVERUSER >>install.sh
echo 'CLIENTUSER='$CLIENTUSER >>install.sh
echo 'TSTPACKDIR='$TSTPACKDIR >>install.sh
echo "">>install.sh
cat inc/install.ftr >>install.sh

# ************************
# *** prepare Makefile ***
# ************************
cat inc/Makefile.hdr>Makefile
cat inc/Makefile.hdr>Makefile.svc
cat inc/Makefile.hdr>Makefile.clnt

# find all non TI-RPC sources
find $TSTPACKDIR -name "*.c" | grep -v tirpc | while read fil
do
		echo '	$(CC) '$fil' $(CFLAGS_RPC) -o '`echo $fil | cut -d '.' -f1`".bin">>Makefile
	
		TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
		OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
		echo '	$(CC) '$SFILE' $(CFLAGS_RPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
	
		OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
		echo '	$(CC) '$SFILE' $(CFLAGS_RPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
	
	
done

# find all TI-RPC sources
find $TSTPACKDIR -name "*.c" | grep tirpc | while read fil
do
	echo '	$(CC) $(LDFLAGS_TIRPC) '$fil' $(CFLAGS_TIRPC) -o '`echo $fil | cut -d '.' -f1`".bin">>Makefile
	
	TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
	OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
	echo '	$(CC) $(LDFLAGS_TIRPC) '$SFILE' $(CFLAGS_TIRPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
	
	OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
	echo '	$(CC) $(LDFLAGS_TIRPC) '$SFILE' $(CFLAGS_TIRPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
done

echo "">>Makefile
echo "">>Makefile.svc
echo "">>Makefile.clnt

# generate Makefile clean part
echo "clean:">>Makefile
echo "clean:">>Makefile.svc
echo "clean:">>Makefile.clnt

find $TSTPACKDIR -name "*.c" | while read fil
do
	echo '	rm -f '`echo $fil | cut -d '.' -f1`".bin">>Makefile
	
	TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
	OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
	echo '	rm -f '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
	
	OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
	echo '	rm -f '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
done
