#!/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 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 ## 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|EPOP ****************** for i in EPOP-Source CI do echo "Copy images, JS and dlls to "$i" installation directory" cp $Z2HMAINDIR/ConvertorRes/Images/* $INSDIR/$i/ConvertorRes/Images cp $Z2HMAINDIR/ConvertorRes/Js/Windows/* $INSDIR/$i/ConvertorRes/Js cp $Z2HMAINDIR/XmlConvertor/Release/xerces*.dll $INSDIR/$i cp $Z2HMAINDIR/XmlConvertor/Release/XmlConvertor.exe $INSDIR/$i done ## Synchronize CI files CIDIR=$WRKROOTDIR"/CI" echo "Remove old CI source files" p4 sync //Globecom/$CNFNAME/Globecom/CI/...#none > /dev/null rm -rf $CIDIR echo "Synchronize head revision of CI" p4 sync //Globecom/$CNFNAME/Globecom/CI/\* > /dev/null echo "" for i in def Empty Xtras do echo "Synchronize head revision of CI "$i p4 sync //Globecom/$CNFNAME/Globecom/CI/$i/... > /dev/null echo "" done ## Copy other files into CI installation directory" echo "Copy images, JS and dlls to "$i" CI installation directory" mkdir $CIDIR/ConvertorRes mkdir $CIDIR/ConvertorRes/Images mkdir $CIDIR/ConvertorRes/Js cp $Z2HMAINDIR/ConvertorRes/Images/* $CIDIR/ConvertorRes/Images cp $Z2HMAINDIR/ConvertorRes/Js/Windows/* $CIDIR/ConvertorRes/Js cp $Z2HMAINDIR/XmlConvertor/Release/xerces*.dll $CIDIR cp $Z2HMAINDIR/XmlConvertor/Release/XmlConvertor.exe $CIDIR ## 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