#!/bin/ksh
#
# Build script for Palladium 
#
NLSPATH=/pd/build/pdbase/%N
SHLIB_PATH=/usr/lib:/opt/audio/lib:/opt/image/lib:/opt/CC/lib
PATH=/pd/build/bin:/pd/build/utils:/usr/sbin:/usr/bin:/usr/ccs/bin:/usr/contrib/bin:/usr/bin/X11:/usr/contrib/bin/X11:/opt/upgrade/bin:/opt/CC/bin:/opt/langtools/bin:/sbin:/usr/local/bin
LOGNAME=build
PDBASE=/pd/build/pdbase
SHELL=/usr/bin/ksh
HOME=/home/build

mv -f /pd/build/buildlog /pd/build/buildlog.OLD > /dev/null 2>&1
echo "********************************************" > /pd/build/buildlog 2>&1
echo "Build commencing at " >> /pd/build/buildlog 2>&1
echo `date` >> /pd/build/buildlog 2>&1
cd /pd/build >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
#
# clean up build environment
#
echo "clean up build environment" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "removing good build lock" >> /pd/build/buildlog 2>&1
rm -rf /pd/build/goodbuild.lock >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "removing /pd/build/bld.OLD" >> /pd/build/buildlog 2>&1
rm -rf /pd/build/bld.OLD >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "saving old /pd/build/bld" >> /pd/build/buildlog 2>&1
mv /pd/build/bld /pd/build/bld.OLD >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "mkbuild" >> /pd/build/buildlog 2>&1
/pd/build/tools/mkbuild >> /pd/build/buildlog 2>&1
if [ $? -ne 0 ]; then
   echo "mkbuild failed...exiting...\n"  >> /pd/build/buildlog 2>&1
   exit 1
fi
echo "********************************************" >> /pd/build/buildlog 2>&1
#
# clean up OLD directories
#
echo "clean up OLD directories" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "rm /build/build/obj.OLD" >> /pd/build/buildlog 2>&1
rm -rf /build/build/obj.OLD >> /pd/build/buildlog 2>&1
echo "rm /build/build/nsobj.OLD" >> /pd/build/buildlog 2>&1
rm -rf /build/build/nsobj.OLD >> /pd/build/buildlog 2>&1
echo "rm /build/build/lib.OLD" >> /pd/build/buildlog 2>&1
rm -rf /build/build/lib.OLD >> /pd/build/buildlog 2>&1
echo "rm /build/build/nsbin.OLD" >> /pd/build/buildlog 2>&1
rm -rf /build/build/nsbin.OLD >> /pd/build/buildlog 2>&1
echo "rm /build/build/bin.OLD" >> /pd/build/buildlog 2>&1
rm -rf /build/build/bin.OLD >> /pd/build/buildlog 2>&1
echo "unlink /pd/build/nsobj.OLD" >> /pd/build/buildlog 2>&1
unlink /pd/build/nsobj.OLD >> /pd/build/buildlog 2>&1
echo "unlink /pd/build/obj.OLD" >> /pd/build/buildlog 2>&1
unlink /pd/build/obj.OLD >> /pd/build/buildlog 2>&1
echo "unlink /pd/build/lib.OLD" >> /pd/build/buildlog 2>&1
unlink /pd/build/lib.OLD >> /pd/build/buildlog 2>&1
echo "unlink /pd/build/nsbin.OLD" >> /pd/build/buildlog 2>&1
unlink /pd/build/nsbin.OLD >> /pd/build/buildlog 2>&1
echo "unlink /pd/build/bin.OLD" >> /pd/build/buildlog 2>&1
unlink /pd/build/bin.OLD >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
#
# save old shared obj and bin
#
echo "save shared obj" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "mv /build/build/obj /build/build/obj.OLD" >> /pd/build/buildlog 2>&1
mv -f /build/build/obj /build/build/obj.OLD >> /pd/build/buildlog 2>&1
echo "ln /build/build/obj.OLD /pd/build/obj.OLD" >> /pd/build/buildlog 2>&1
ln -sf /build/build/obj.OLD /pd/build/obj.OLD >> /pd/build/buildlog 2>&1
echo "save bin" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "mv /build/build/bin /build/build/bin.OLD" >> /pd/build/buildlog 2>&1
mv -f /build/build/bin /build/build/bin.OLD >> /pd/build/buildlog 2>&1
echo "ln /build/build/bin.OLD /pd/build/bin.OLD" >> /pd/build/buildlog 2>&1
ln -sf /build/build/bin.OLD /pd/build/bin.OLD >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
#
# save old nonshared obj and bin
#
echo "save old obj" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "mv /build/build/nsobj /build/build/nsobj.OLD" >> /pd/build/buildlog 2>&1
mv -f /build/build/nsobj /build/build/nsobj.OLD >> /pd/build/buildlog 2>&1
echo "ln /build/build/nsobj.OLD /pd/build/nsobj.OLD" >> /pd/build/buildlog 2>&1
ln -sf /build/build/nsobj.OLD /pd/build/nsobj.OLD >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "save old nonshared bin" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "mv /build/build/nsbin /build/build/nsbin.OLD" >> /pd/build/buildlog 2>&1
mv -f /build/build/nsbin /build/build/nsbin.OLD >> /pd/build/buildlog 2>&1
echo "ln /build/build/nsbin.OLD /pd/build/nsbin.OLD" >> /pd/build/buildlog 2>&1
ln -sf /build/build/nsbin.OLD /pd/build/nsbin.OLD >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "save old lib" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "mv /build/build/lib /build/build/lib.OLD" >> /pd/build/buildlog 2>&1
mv -f /build/build/lib /build/build/lib.OLD >> /pd/build/buildlog 2>&1
echo "ln /build/build/lib.OLD /pd/build/lib.OLD" >> /pd/build/buildlog 2>&1
ln -sf /build/build/lib.OLD /pd/build/lib.OLD >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
#
# make new empty obj, bin and libs
#
echo " make new empty obj, bin and libs" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "mkdir /build/build/obj" >> /pd/build/buildlog 2>&1
mkdir /build/build/obj >> /pd/build/buildlog 2>&1
echo "ln /build/build/obj /pd/build/obj" >> /pd/build/buildlog 2>&1
ln -sf /build/build/obj /pd/build/obj >> /pd/build/buildlog 2>&1
echo "mkdir /build/build/bin" >> /pd/build/buildlog 2>&1
mkdir /build/build/bin >> /pd/build/buildlog 2>&1
echo "ln /build/build/bin /pd/build/bin" >> /pd/build/buildlog 2>&1
ln -sf /build/build/bin /pd/build/bin >> /pd/build/buildlog 2>&1
echo "mkdir /build/build/lib" >> /pd/build/buildlog 2>&1
mkdir /build/build/lib >> /pd/build/buildlog 2>&1
echo "ln /build/build/lib /pd/build/lib" >> /pd/build/buildlog 2>&1
ln -sf /build/build/lib /pd/build/lib >> /pd/build/buildlog 2>&1
#
# make nonshared versions
# these are built in obj, bin and lib
#
echo "Building nonshared versions" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
/pd/build/tools/mk -ns -v -g prod >> /pd/build/buildlog 2>&1
if [ $? -ne 0 ]; then
   echo "tools/mk failed for nonshared version...exiting...\n"  >> /pd/build/buildlog 2>&1
   exit 1
fi

rm -rf /pd/build/pddmsg >> /pd/build/buildlog 2>&1
/pd/build/tools/mk -ns -v -g pddmsg >> /pd/build/buildlog 2>&1

#
# move obj and bin to nonshared obj and bin
#
echo "move obj and bin to nonshared obj and bin" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "move /build/build/obj /build/build/nsobj" >> /pd/build/buildlog 2>&1
mv -f /build/build/obj /build/build/nsobj >> /pd/build/buildlog 2>&1
echo "ln /build/build/nsobj /pd/build/nsobj" >> /pd/build/buildlog 2>&1
ln -sf /build/build/nsobj /pd/build/nsobj >> /pd/build/buildlog 2>&1
echo "move /build/build/bin /build/build/nsbin" >> /pd/build/buildlog 2>&1
mv -f /build/build/bin /build/build/nsbin >> /pd/build/buildlog 2>&1
echo "ln /build/build/nsbin /pd/build/nsbin" >> /pd/build/buildlog 2>&1
ln -sf /build/build/nsbin /pd/build/nsbin >> /pd/build/buildlog 2>&1
#
# make new empty obj and bin
#
echo "make new empty obj and bin" >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "mkdir /build/build/obj" >> /pd/build/buildlog 2>&1
mkdir /build/build/obj >> /pd/build/buildlog 2>&1
echo "ln /build/build/obj /pd/build/obj" >> /pd/build/buildlog 2>&1
ln -sf /build/build/obj /pd/build/obj >> /pd/build/buildlog 2>&1
echo "mkdir /build/build/bin" >> /pd/build/buildlog 2>&1
mkdir /build/build/bin >> /pd/build/buildlog 2>&1
echo "ln /build/build/bin /pd/build/bin" >> /pd/build/buildlog 2>&1
ln -sf /build/build/bin /pd/build/bin >> /pd/build/buildlog 2>&1
#
# make shared versions
# contine to use same lib directory
#
echo "Building shared versions" >> /pd/build/buildlog 
echo "********************************************" >> /pd/build/buildlog
/pd/build/tools/mk -v -g prod >> /pd/build/buildlog 2>&1
if [ $? -ne 0 ]; then
   echo "tools/mk failed for shared version...exiting...\n" >> /pd/build/buildlog 2>&1
   exit 1
fi
/pd/build/tools/mk -v -g pddmsg >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
echo "Build completed at " >> /pd/build/buildlog 
echo `date` >> /pd/build/buildlog 
echo " " >> /pd/build/buildlog 
echo `time` >> /pd/build/buildlog 
echo "********************************************" >> /pd/build/buildlog 
echo "restoring good build lock" >> /pd/build/buildlog 2>&1
touch /pd/build/goodbuild.lock >> /pd/build/buildlog 2>&1
echo "********************************************" >> /pd/build/buildlog 2>&1
#
# begin regression suite
. /pd/build/do_reliability
