#!/bin/sh ############################################################################################ # Name : /public/scripts/WinBuild # Purpose : A script to run a full Windows/MFC/VC++ Globecom software build, # Based on perforce system # By : Yariv Sheizaf # Date : 02-Sep-2001 # Argumnets : # 1 - configuration name # 2 - Build number # if [ "$USER" != "cmadm" -a "$USER" != "yariv" ] then echo "" echo "$0 should be run with user cmadm or yariv. Exit..." echo "" exit 1 fi HOSTN=`hostname` if [ "$HOSTN" != "PRO2K-SEPHI" ] then echo "" echo "$0 should be run from host PRO2K-SEPHI. Exit..." echo "" exit 1 fi ## Define servers WINSRVR="PRO2K-SEPHI" if [ $# -lt 2 ] then echo "Usage: $0 configuration-name Build-number" echo "Example: $0 prd_2.0 1.8.6" exit 1 fi CNFNAME=$1 ## Check configuration existing in P4 DB ISCNF="n" for i in `p4 dirs //Globecom/\* | awk -F/ '{print $NF}'` do if [ "$i" = "$CNFNAME" ] then ISCNF="y" fi done if [ "$ISCNF" = "n" ] then echo "" echo $CNFNAME" is not a valid configuration. Exit..." echo "" exit 1 fi ## If version 2.x - Z2H_epop exist. else - not. echo $CNFNAME | grep "_2." if [ "$?" = "0" ] then ISZ2HEPOP="y" else ISZ2HEPOP="n" fi UNIXDRIVE=/cygdrive/f WINDRIVE=/cygdrive/o UNIXHOME=$UNIXDRIVE"/home/cmadm" WRKROOTDIR=$WINDRIVE"/Globecom/"$CNFNAME"/Globecom" INSDIR=$UNIXDRIVE"/"$CNFNAME"/ins" if [ ! -d $INSDIR ] then echo "" echo $INSDIR" is not exist. Exit..." echo "" exit 1 fi BUILDNUM=$2 ## Prevent write into P4 DB echo "Set P4 protect to open-only mode" p4 protect -o > /tmp/$$.p4protect p4 protect -o | sed 's/write/open/' | p4 protect -i ## Clean working directorties, then put head revision's source files for i in Z2H epop do echo "Remove old "$i" source files" p4 sync //Globecom/$CNFNAME/Globecom/$i/...#none > /dev/null echo "Remove old "$i" directories" rm -rf $WRKROOTDIR/$i echo "Synchronize head revision of "$i p4 sync //Globecom/$CNFNAME/Globecom/$i/... > /dev/null echo "" done if [ "$ISZ2HEPOP" = "y" ] then echo "Remove old Z2H_epop source files" p4 sync //Globecom/$CNFNAME/Globecom/Z2H_epop/...#none > /dev/null echo "Remove old Z2H_epop directories" rm -rf $WRKROOTDIR/Z2H_epop echo "Synchronize head revision of Z2H_epop" p4 sync //Globecom/$CNFNAME/Globecom/Z2H_epop/... > /dev/null echo "" fi ## Z2H Build for i in `ls -l $WRKROOTDIR | grep Z2H | awk '{print $NF}'` do echo "" Z2HDIR=$WRKROOTDIR"/"$i echo "Start "$i" Build..." echo "Build "$i" Template Convertor" cd $Z2HDIR/templateConvertor msdev templateConvertor.dsp /MAKE "templateConvertor - RELEASE" /REBUILD # msdev templateConvertor.dsp /MAKE ALL /REBUILD echo "Run TemplateConvertor - create *.h files" cd $Z2HDIR/templateConvertor/Release ./templateConvertor.exe ../../Templates ../../XmlConvertor/templates echo "Build XmlConvertor" cd $Z2HDIR/XmlConvertor msdev XmlConvertor.dsp /MAKE "XmlConvertor - RELEASE" /REBUILD # msdev XmlConvertor.dsp /MAKE ALL /REBUILD done ## Copy Z2H files from WIN environment to Unix environment Z2HTMPDIR=$UNIXHOME/Z2H_templates/$CNFNAME echo "Copy product *.h files to "$Z2HTMPDIR if [ -d $Z2HTMPDIR ] then rm -f $Z2HTMPDIR/*.h else mkdir $Z2HTMPDIR chmod 777 $Z2HTMPDIR fi Z2HMAINDIR=$WRKROOTDIR"/Z2H" cp $Z2HMAINDIR/XmlConvertor/templates/*.h $Z2HTMPDIR chmod 666 $Z2HTMPDIR/*.h echo "Copy Xmlconvertor to "$INSDIR rm -f $INSDIR/XmlConvertor.exe cp $Z2HMAINDIR/XmlConvertor/Release/XmlConvertor.exe $INSDIR echo "Copy images and JS files to "$INSDIR"/misc" if [ -d $INSDIR/misc ] then rm -rf $INSDIR/misc/* else mkdir $INSDIR/misc fi mkdir $INSDIR/misc/Windows mkdir $INSDIR/misc/Unix chmod -R 777 $INSDIR/misc/* ### *************** cp images and resources to $INSDIR/misc ??? ****************** cp $Z2HMAINDIR/ConvertorRes/Images/* $INSDIR/misc cp $Z2HMAINDIR/ConvertorRes/Js/Windows/* $INSDIR/misc/Windows cp $Z2HMAINDIR/ConvertorRes/Js/Unix/* $INSDIR/misc/Unix ### *************** cp images and resources to $INSDIR/CI ??? ****************** cp $Z2HMAINDIR/ConvertorRes/Images/* $INSDIR/CI/ConvertorRes/Images cp $Z2HMAINDIR/ConvertorRes/Js/Windows/* $INSDIR/CI/ConvertorRes/Js for i in EPOP-Source do echo "Copy files for "$i ## Copy Z2H_epop files from WIN environment to Unix environment echo "Copy Xerces DLLs to installation directory" if [ -d $INSDIR/$i ] then rm -f $INSDIR/$i/* else mkdir $INSDIR/$i chmod 777 $INSDIR/$i fi cp $Z2HMAINDIR/XmlConvertor/Release/xerces*.dll $INSDIR/$i if [ "$ISZ2HEPOP" = "y" ] then Z2HEPOPDIR=$WRKROOTDIR"/Z2H_epop" cp $Z2HEPOPDIR/XmlConvertor/Release/xerces*.dll $INSDIR/$i cp $Z2HEPOPDIR/XmlConvertor/Release/EpopConvertor.exe $INSDIR/$i cp $Z2HEPOPDIR/ConvertorRes/Images/* $INSDIR/$i cp $Z2HEPOPDIR/ConvertorRes/Js/* $INSDIR/$i fi done ## EPOP build echo "Start EPOP build..." EPOPDIR=$WRKROOTDIR"/epop" CURPWD=`pwd` cd $EPOPDIR for i in `ls -l | awk '{print $NF}' | tail +2 | grep -v InstallShield ` do echo "Build "$i cd $i msdev $i.dsp /MAKE "$i - RELEASE" /REBUILD # msdev $i.dsp /MAKE ALL /REBUILD echo "Copy "$i".exe to installation directory" cp Release/$i.exe $INSDIR/EPOP-Source cd $EPOPDIR done cd $CURPWD ## Reopen P4 protect for write to programmers echo "Reconstruct P4 protect to write-mode" p4 protect -i < /tmp/$$.p4protect rm -f /tmp/$$.p4protect echo "" exit 0