Compile Link & Form for 4GL
时间:2005-12-28 来源:prefect
new_rebuild_all.sh
$ASUS $TOP is system variable
CURRDIR=`pwd`
PARALLEL_DEGREE=20 #for wait
DBLANG=en_US.8859-1;export DBLANG
umask 000
Compile()
{
for d in $systems
do
echo '====('$d') ===='
cd $TARGET/$d/4gl
cnt=0 #計數器
for i in `ls *.4gl | grep -v ".tmp.4gl"`
do
cnt=`expr $cnt + 1`
if [ $cnt -gt $PARALLEL_DEGREE ]; then
wait
cnt=0
fi
$RC `basename $i .4gl` Y > /dev/null &
done
wait
done
#rm -f ../4go$VERSION/*.err
wait
}
#----- link --------------(4go -> 4gi)-------------------------------
link()
{
for d in $systems
do
echo '====== ('$d') ======'
if [ ! -d $TARGET/$d/link ]; then
continue
fi
cd $TARGET/$d/link
cnt=0
for i in `ls *.ln`
do
echo $i
$RL `basename $i .ln` > /dev/null &
cnt=`expr $cnt + 1`
if [ $cnt -gt $PARALLEL_DEGREE ]; then
wait
cnt=0
fi
done
wait
# ====== ERROR LIST ======
done
wait
}
#----- compile form ----- (per -> frm)-------------------------------
form()
{
for d in $systems
do
echo '====== ('$d') ======'
cd $TARGET/$d/per
cnt=0
for i in `ls *.per`
do
echo $i
$RF `basename $i .per` > /dev/null &
cnt=`expr $cnt + 1`
if [ $cnt -gt $PARALLEL_DEGREE ]; then
wait
cnt=0
fi
done
wait
#rm -f *.err
rm -f *T.per
i#rm -f ../frm/*.err
# ====== ERROR LIST ======
echo '====== ('$d') [per]====== ('`date`')' > ../4gl/rebuild.rf
echo 'Error List : ('`ls |grep 'x.err' | wc -l`')' >> ../4gl/rebuild.rf
done
wait
}
#-----判斷係統別 ----------------------------------------------------
gener_sys()
{
if [ "$systems" = 'all' ]
then cd $TARGET
systems0=`ls -l | grep "^d" | cut -c 57-70 |egrep -v "lib|sub|qry"`
systems='lib sub qry '$systems0
cd $CURRDIR
fi
}
#----- SCREEN -------------------------------------------------------
echo ' 33[7m Rebuild TOPTOP systems 33[m'
#echo ' ---------------------------------------'
#echo ' (c) Compile source program (4gl -> 4go)'
#echo ' (l) Link compiled programs (4go -> 4gi)'
#echo ' (f) Compile FORM (per -> frm) '
#echo ' ---------------------------------------'
#echo ' Enter Your choice : c';read ans #read $XX 讀輸入付給$XX
#echo ' Enter TOP_systems : c';read systems
#echo ' Select Version 1)5.x 2)7.x : c';read INFOVER
INFOVER=1
case $INFOVER in
2) RC=r.cc
RL=r.ll
RF=r.ff;;
*) RC=r.c
RL=r.l
RF=r.f;;
esac
if [ -s $TEMPDIR/rebuild.out ]
then rm $TEMPDIR/rebuild.out
fi
systems="all"
if [ "$systems" = 'all' ]
then
echo "Compiling ALL"
else
echo $system
fi
#--------run compile----------
for TARGET in $ASUS $TOP
do
gener_sys
Compile 2>&1 |tee `basename $TARGET`.compile.out
done
#--------run link--------
for TARGET in $ASUS $TOP
do
gener_sys
link 2>&1 |tee `basename $TARGET`.link.out
done
#--------
for TARGET in $ASUS $TOP
do
gener_sys
form 2>&1 |tee `basename $TARGET`.form.out
done
pg $TEMPDIR/rebuild.out