#! /bin/csh
#   Install : DAQ toolkit


if ($#argv == 0) then
        echo "usage : Install obcp99"
        echo "--"
        echo "obcp01 -> IRCS,    obcp02 -> AO,      obcp03 -> CIAO,    obcp04 -> OHS,"
        echo "obcp05 -> FOCAS,   obcp06 -> HDS,     obcp07 -> COMICS,  obcp08 -> SPCAM,"
        echo "obcp09 -> SUKA,    obcp10 -> MIRTOS,  obcp11 -> VTOS,    obcp12 -> CAC,"
        echo "obcp13 -> SKYMON,  obcp14 -> PI1,     obcp15 -> K3D,     obcp16 -> OTHER16,"
        echo "obcp17 -> MOIRCS,  obcp18 -> FMOS,     obcp19 -> OTHER19,     obcp20 -> OTHER20,"
        echo "obcp21 -> OTHER21,  obcp22 -> OTHER22,     obcp23 -> OTHER23,     obcp24 -> OTHER24,"
        echo "obcp25 -> OTHER25,  obcp26 -> OTHER26,     obcp27 -> OTHER27,     obcp28 -> OTHER28,"
        echo "obcp29 -> OTHER29,  obcp30 -> OTHER30,     obcp31 -> OTHER31,     obcp32 -> OTHER32,"
        echo "obcp99 -> WORK,    vgw    -> VGW"
        exit 1
endif

if ($#argv > 2) then
        echo "Illegal number of argument"
        echo "usage : Install obcp99"
        exit 1
endif

if ($1 != obcp01 && $1 != obcp02 && $1 != obcp03 && $1 != obcp04 && \
    $1 != obcp05 && $1 != obcp06 && $1 != obcp07 && $1 != obcp08 && \
    $1 != obcp09 && $1 != obcp10 && $1 != obcp11 && $1 != obcp12 && \
    $1 != obcp13 && $1 != obcp14 && $1 != obcp15 && $1 != obcp16 && \
    $1 != obcp17 && $1 != obcp18 && $1 != obcp19 && $1 != obcp20 && \
    $1 != obcp21 && $1 != obcp22 && $1 != obcp23 && $1 != obcp24 && \
    $1 != obcp25 && $1 != obcp26 && $1 != obcp27 && $1 != obcp28 && \
    $1 != obcp29 && $1 != obcp30 && $1 != obcp31 && $1 != obcp32 && \
    $1 != obcp99 && $1 != vgw) then
        echo "Illegal option"
        echo "usage : Install obcp99"
        exit 1
endif

echo "*** Start install DAQ toolkit ***"

echo "edit RPCL File"

if ($1 == obcp01) then
    set cmd_clnt = 0x21020103
    set cmd_svc  = 0x21010103
    set dat_clnt = 0x21010141
    set dat_svc  = 0x21020141
    set datmem_clnt = 0x21010151
else if ($1 == obcp02) then
    set cmd_clnt = 0x21020203
    set cmd_svc  = 0x21010203
    set dat_clnt = 0x21010241
    set dat_svc  = 0x21020241
    set datmem_clnt = 0x21010251
else if ($1 == obcp03) then
    set cmd_clnt = 0x21020303
    set cmd_svc  = 0x21010303
    set dat_clnt = 0x21010341
    set dat_svc  = 0x21020341
    set datmem_clnt = 0x21010351
else if ($1 == obcp04) then
    set cmd_clnt = 0x21020403
    set cmd_svc  = 0x21010403
    set dat_clnt = 0x21010441
    set dat_svc  = 0x21020441
    set datmem_clnt = 0x21010451
else if ($1 == obcp05) then
    set cmd_clnt = 0x21020503
    set cmd_svc  = 0x21010503
    set dat_clnt = 0x21010541
    set dat_svc  = 0x21020541
    set datmem_clnt = 0x21010551
else if ($1 == obcp06) then
    set cmd_clnt = 0x21020603
    set cmd_svc  = 0x21010603
    set dat_clnt = 0x21010641
    set dat_svc  = 0x21020641
    set datmem_clnt = 0x21010651
else if ($1 == obcp07) then
    set cmd_clnt = 0x21020703
    set cmd_svc  = 0x21010703
    set dat_clnt = 0x21010741
    set dat_svc  = 0x21020741
    set datmem_clnt = 0x21010751
else if ($1 == obcp08) then
    set cmd_clnt = 0x21020803
    set cmd_svc  = 0x21010803
    set dat_clnt = 0x21010841
    set dat_svc  = 0x21020841
    set datmem_clnt = 0x21010851
else if ($1 == obcp09) then
    set cmd_clnt = 0x21020903
    set cmd_svc  = 0x21010903
    set dat_clnt = 0x21010941
    set dat_svc  = 0x21020941
    set datmem_clnt = 0x21010951
else if ($1 == obcp10) then
    set cmd_clnt = 0x21020a03
    set cmd_svc  = 0x21010a03
    set dat_clnt = 0x21010a41
    set dat_svc  = 0x21020a41
    set datmem_clnt = 0x21010a51
else if ($1 == obcp11) then
    set cmd_clnt = 0x21020b03
    set cmd_svc  = 0x21010b03
    set dat_clnt = 0x21010b41
    set dat_svc  = 0x21020b41
    set datmem_clnt = 0x21010b51
else if ($1 == obcp12) then
    set cmd_clnt = 0x21020c03
    set cmd_svc  = 0x21010c03
    set dat_clnt = 0x21010c41
    set dat_svc  = 0x21020c41
    set datmem_clnt = 0x21010c51
else if ($1 == obcp13) then
    set cmd_clnt = 0x21020d03
    set cmd_svc  = 0x21010d03
    set dat_clnt = 0x21010d41
    set dat_svc  = 0x21020d41
    set datmem_clnt = 0x21010d51
else if ($1 == obcp14) then
    set cmd_clnt = 0x21020e03
    set cmd_svc  = 0x21010e03
    set dat_clnt = 0x21010e41
    set dat_svc  = 0x21020e41
    set datmem_clnt = 0x21010e51
else if ($1 == obcp15) then
    set cmd_clnt = 0x21020f03
    set cmd_svc  = 0x21010f03
    set dat_clnt = 0x21010f41
    set dat_svc  = 0x21020f41
    set datmem_clnt = 0x21010f51
else if ($1 == obcp16) then
    set cmd_clnt = 0x21021003
    set cmd_svc  = 0x21011003
    set dat_clnt = 0x21011041
    set dat_svc  = 0x21021041
    set datmem_clnt = 0x21011051
else if ($1 == obcp17) then
    set cmd_clnt = 0x21021103
    set cmd_svc  = 0x21011103
    set dat_clnt = 0x21011141
    set dat_svc  = 0x21021141
    set datmem_clnt = 0x21011151
else if ($1 == obcp18) then
    set cmd_clnt = 0x21021203
    set cmd_svc  = 0x21011203
    set dat_clnt = 0x21011241
    set dat_svc  = 0x21021241
    set datmem_clnt = 0x21011251
else if ($1 == obcp19) then
    set cmd_clnt = 0x21021303
    set cmd_svc  = 0x21011303
    set dat_clnt = 0x21011341
    set dat_svc  = 0x21021341
    set datmem_clnt = 0x21011351
else if ($1 == obcp20) then
    set cmd_clnt = 0x21021403
    set cmd_svc  = 0x21011403
    set dat_clnt = 0x21011441
    set dat_svc  = 0x21021441
    set datmem_clnt = 0x21011451
else if ($1 == obcp21) then
    set cmd_clnt = 0x21021503
    set cmd_svc  = 0x21011503
    set dat_clnt = 0x21011541
    set dat_svc  = 0x21021541
    set datmem_clnt = 0x21011551
else if ($1 == obcp22) then
    set cmd_clnt = 0x21021603
    set cmd_svc  = 0x21011603
    set dat_clnt = 0x21011641
    set dat_svc  = 0x21021641
    set datmem_clnt = 0x21011651
else if ($1 == obcp23) then
    set cmd_clnt = 0x21021703
    set cmd_svc  = 0x21011703
    set dat_clnt = 0x21011741
    set dat_svc  = 0x21021741
    set datmem_clnt = 0x21011751
else if ($1 == obcp24) then
    set cmd_clnt = 0x21021803
    set cmd_svc  = 0x21011803
    set dat_clnt = 0x21011841
    set dat_svc  = 0x21021841
    set datmem_clnt = 0x21011851
else if ($1 == obcp25) then
    set cmd_clnt = 0x21021903
    set cmd_svc  = 0x21011903
    set dat_clnt = 0x21011941
    set dat_svc  = 0x21021941
    set datmem_clnt = 0x21011951
else if ($1 == obcp26) then
    set cmd_clnt = 0x21021a03
    set cmd_svc  = 0x21011a03
    set dat_clnt = 0x21011a41
    set dat_svc  = 0x21021a41
    set datmem_clnt = 0x21011a51
else if ($1 == obcp27) then
    set cmd_clnt = 0x21021b03
    set cmd_svc  = 0x21011b03
    set dat_clnt = 0x21011b41
    set dat_svc  = 0x21021b41
    set datmem_clnt = 0x21011b51
else if ($1 == obcp28) then
    set cmd_clnt = 0x21021c03
    set cmd_svc  = 0x21011c03
    set dat_clnt = 0x21011c41
    set dat_svc  = 0x21021c41
    set datmem_clnt = 0x21011c51
else if ($1 == obcp29) then
    set cmd_clnt = 0x21021d03
    set cmd_svc  = 0x21011d03
    set dat_clnt = 0x21011d41
    set dat_svc  = 0x21021d41
    set datmem_clnt = 0x21011d51
else if ($1 == obcp30) then
    set cmd_clnt = 0x21021e03
    set cmd_svc  = 0x21011e03
    set dat_clnt = 0x21011e41
    set dat_svc  = 0x21021e41
    set datmem_clnt = 0x21011e51
else if ($1 == obcp31) then
    set cmd_clnt = 0x21021f03
    set cmd_svc  = 0x21011f03
    set dat_clnt = 0x21011f41
    set dat_svc  = 0x21021f41
    set datmem_clnt = 0x21011f51
else if ($1 == obcp32) then
    set cmd_clnt = 0x21022003
    set cmd_svc  = 0x21012003
    set dat_clnt = 0x21012041
    set dat_svc  = 0x21022041
    set datmem_clnt = 0x21012051
else if ($1 == obcp99) then
    set cmd_clnt = 0x41020103
    set cmd_svc  = 0x41010103
    set dat_clnt = 0x41010141
    set dat_svc  = 0x41020141
    set datmem_clnt = 0x41010151
else
    set cmd_clnt = 0x21020002
    set cmd_svc  = 0x21010002
    set dat_clnt = 0x21010042
    set dat_svc  = 0x21020042
    set datmem_clnt = 0x21010052
endif

cd src/cmd/lib
sed "s/PROGRAM_NO/$cmd_clnt/" RPCL.edit >DAQtkCmdSnd.x.tmp
set diffresult=`diff DAQtkCmdSnd.x DAQtkCmdSnd.x.tmp`
/bin/rm DAQtkCmdSnd.x.tmp
if ( $#diffresult != 0 ) then
	/bin/rm DAQtkCmdSnd.x
	sed "s/PROGRAM_NO/$cmd_clnt/" RPCL.edit >DAQtkCmdSnd.x
endif
cd ../../..

cd src/cmd/rpcrcv
sed "s/PROGRAM_NO/$cmd_svc/" RPCL.edit >DAQtkCmdRcv.x.tmp
set diffresult=`diff DAQtkCmdRcv.x DAQtkCmdRcv.x.tmp`
/bin/rm DAQtkCmdRcv.x.tmp
if ( $#diffresult != 0 ) then
	/bin/rm DAQtkCmdRcv.x
	sed "s/PROGRAM_NO/$cmd_svc/" RPCL.edit >DAQtkCmdRcv.x
endif
cd ../../..

cd src/dat/lib
sed "s/PROGRAM_NO/$dat_clnt/" RPCL.edit >DAQtkDatSnd.x.tmp
set diffresult=`diff DAQtkDatSnd.x DAQtkDatSnd.x.tmp`
/bin/rm DAQtkDatSnd.x.tmp
if ( $#diffresult != 0 ) then
	/bin/rm DAQtkDatSnd.x
	sed "s/PROGRAM_NO/$dat_clnt/" RPCL.edit >DAQtkDatSnd.x
endif
sed "s/PROGRAM_NO/$datmem_clnt/" RPCL2.edit >DAQtkDatSndMem.x.tmp
set diffresult=`diff DAQtkDatSndMem.x DAQtkDatSndMem.x.tmp`
/bin/rm DAQtkDatSndMem.x.tmp
if ( $#diffresult != 0 ) then
	/bin/rm DAQtkDatSndMem.x
	sed "s/PROGRAM_NO/$datmem_clnt/" RPCL2.edit >DAQtkDatSndMem.x
endif
cd ../../..

cd src/dat/rpcrcv
sed "s/PROGRAM_NO/$dat_svc/" RPCL.edit >DAQtkDatRcv.x.tmp
set diffresult=`diff DAQtkDatRcv.x DAQtkDatRcv.x.tmp`
/bin/rm DAQtkDatRcv.x.tmp
if ( $#diffresult != 0 ) then
	/bin/rm DAQtkDatRcv.x
	sed "s/PROGRAM_NO/$dat_svc/" RPCL.edit >DAQtkDatRcv.x
endif
cd ../../..


echo "compile source file"

set makeresult="makeresult"
set pwd=$PWD
set dirs=( src/* src/*/* sample/src/* sample/src/*/* )

foreach dir ( $dirs )
	if ( -d ./$dir ) then
		cd ./$dir
		if ( -e Makefile ) then
			echo $PWD
			switch ( $2 )
			case '-depend':
				make depend
				breaksw
			case '-update':
				make
				\rm $makeresult >& /dev/null
				breaksw
			default:
				\rm $makeresult >& /dev/null
				make clean
				make
				if ( -e $makeresult ) then
					\rm $makeresult
				else
					echo "*** Install failed \!\! ***"
					exit 1
				endif
				breaksw
			endsw
		endif
	endif
	cd $pwd
end

\cp -p src/sh/* bin/

echo "*** End install DAQ toolkit ***"

