#!/bin/sh
#*---------------------------------------------------------------------*/
#*    serrano/prgm/project/bigloo/distribution/boot ...                */
#*                                                                     */
#*    Author      :  Manuel Serrano                                    */
#*    Creation    :  Mon Mar  1 08:32:22 1993                          */
#*    Last change :  Mon Apr 18 08:28:38 1994 (serrano)                */
#*                                                                     */
#*    Le scrypte qui se charge de booter Bigloo sur un site.           */
#*    -------------------------------------------------------------    */
#*    !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!  */
#*    Don't edit this file.                                            */
#*---------------------------------------------------------------------*/

#*---------------------------------------------------------------------*/
#*    Les variables utilisateurs                                       */
#*---------------------------------------------------------------------*/
cc="gcc"
version="1.6"

#*---------------------------------------------------------------------*/
#*    Le site                                                          */
#*---------------------------------------------------------------------*/
site=`pwd`

#*---------------------------------------------------------------------*/
#*    Quelques autres variables                                        */
#*---------------------------------------------------------------------*/
cflags="-O -I$site/lib/$version -w"

tools_dir="$site/tools"
runtime_dir="$site/runtime$version"
comptime_dir="$site/comptime$version"
lib_dir="$site/lib/$version"
bin_dir="$site/bin"

arch=`$tools_dir/arch`
dirname=$tools_dir/dirname

#*---------------------------------------------------------------------*/
#*    C'est bon, on va compiler les deux librairies:                   */
#*---------------------------------------------------------------------*/
cd $runtime_dir

case $arch in
  "mips"|"ds3100")
    (echo "mips_mach_dep.s:"
     cd Gc
     as mips_mach_dep.s -o mips_mach_dep.o
     cp mips_mach_dep.o ../.Olib/Gc/mach_dep.o
     mv mips_mach_dep.o ../.Olib_u/Gc/mach_dep.o
     break);;

  "AIX")
    (echo "rs6000_mach_dep.s:"
     cd Gc
     as rs6000_mach_dep.s -o rs6000_mach_dep.o
     cp rs6000_mach_dep.o ../.Olib/Gc/mach_dep.o
     mv rs6000_mach_dep.o ../.Olib_u/Gc/mach_dep.o
     \rm -f mach_dep.c
     break);;
esac

for d in Ieee Llib Rgc Match Pp 
do
  for p in .Olib*/$d/*.c
  do
    (cd `$dirname $p`

     arg1=`basename $p`
     if( test -f `basename  $arg1 .c`.o ); then
        echo $arg1 already done
     else
        echo $arg1:
        $cc $cflags -c `basename $arg1` || exit $?
     fi) || exit $?
  done
done

for p in Clib Gc
do
  for f in $p/*.c
  do
    (cd .Olib/$p

     ln -s $runtime_dir/$f .

     arg1=`basename $f`
     if( test -f `basename  $arg1 .c`.o ); then
       echo $arg1 already done
     else
       echo $arg1:
       $cc $cflags -c `basename $arg1` || exit $?
     fi

     \rm `basename $f`) || exit $?
  done
done

cp .Olib/Clib/* .Olib_u/Clib
cp .Olib/Gc/* .Olib_u/Gc

ar rcv $lib_dir/libbigloo.a .Olib/Clib/*.o    \
                            .Olib/Llib/*.o    \
                            .Olib/Ieee/*.o    \
                            .Olib/Gc/*.o      \
                            .Olib_u/Rgc/*.o   \
                            .Olib_u/Match/*.o \
                            .Olib_u/Pp/*.o    

ar rcv $lib_dir/libbigloo_u.a .Olib_u/*/*.o

ranlib $lib_dir/libbigloo.a
ranlib $lib_dir/libbigloo_u.a

echo "Libraries done"

#*---------------------------------------------------------------------*/
#*    On va compiler `comptime'                                        */
#*---------------------------------------------------------------------*/
cd $comptime_dir

for p in */*.c
do
  (cd `$dirname $p`

   arg1=`basename $p`
      
   if( test -f `basename  $arg1 .c`.o ); then
     echo $arg1 already done
   else
     echo $arg1:
     $cc $cflags -c `basename $arg1` || exit $?
   fi) || exit $?
done

$cc $cflags -o $bin_dir/bigloo$version */*.o -L$lib_dir -lbigloo -lm

if (test ! $arch = "next" ); then
  strip $bin_dir/bigloo$version > /dev/null
fi

echo "Bigloo done"

