make-util
上传用户:dgyhgb
上传日期:2007-01-07
资源大小:676k
文件大小:5k
源码类别:

SQL Server

开发平台:

Unix_Linux

  1. #! /bin/sh
  2. # make-util :  This script is an auxilary part of makefiles
  3. #              it's primary aim is to do make-back - delete 
  4. #              all files generated by previous make invocation.
  5. # This file is a part of GNU SQL Server
  6. #
  7. # Copyright (c) 1996, Free Software Foundation, Inc
  8. # Developed at the Institute of System Programming
  9. # This file is written by Michael Kimelman
  10. # Contacts: gss@ispras.ru
  11. #
  12. # echo "$0: $* at "`pwd`" "
  13. # distribution source tree ------------------------
  14. srcdir=`echo $0 | sed 's/make-util$//g;s/etc[/]$//g;s/[/]$//g' `
  15. if [ x$srcdir = x ]; then 
  16.   srcdir="."
  17. fi
  18. localtree=`pwd`
  19. cd $srcdir
  20. srcdir=`pwd`
  21. cd $localtree
  22. # -------------------------------------------------
  23. # set -x
  24. case $1 in
  25.   install)
  26.       ## install cleanning subdirectories from the deepest level to '.'
  27. LN_S="$2"
  28. dbhome="$3"
  29. bindir="$4"
  30. mandir="$5"
  31. infodir="$6"
  32. prefix="$7"
  33. #    put link to clients tools (compiler, runtime, mans, infos etc)
  34. #    into commonly used places
  35. link_it ()  ## what to as
  36. {
  37.   if [ -z "$3" ]; then
  38.     linkname="$3"
  39.   else
  40.     linkname="$1"
  41.   fi
  42.   if [ -h $2/$linkname ]; then
  43.     rm -f $2/$linkname
  44.   fi
  45.   current="`pwd`"
  46.   cd $2
  47.   ${LN_S} $current/$1 $linkname
  48.   cd $current
  49. }
  50.       ( 
  51.         cd ${dbhome}/client;
  52.         for f in `ls` ; do
  53.           if [ -x $f ]; then
  54.             link_it $f ${bindir}
  55.           fi 
  56.         done
  57.         for f in `ls *.a` ; do
  58.           link_it $f ${prefix}/lib
  59.         done
  60.         link_it include ${prefix}/include gnusql
  61.       )
  62.       
  63.       ( cd ${dbhome}/doc
  64.         for f in `ls gss*` ; do
  65.           link_it $f ${infodir}
  66.         done
  67.         if [ -f ${infodir}/dir ]; then ## add it to the list
  68.           sed "/^.*gss[.]info.*$/d" ${infodir}/dir >$$
  69.           rm -f ${infodir}/dir
  70.           cat $$ - >${infodir}/dir <<EOF
  71. * GNU SQL server: (gss.info).   GNU SQL Server documentation 
  72. EOF
  73.           rm -f $$
  74.         fi
  75.         for f in `ls *.1` ; do
  76.           link_it $f ${mandir}/man1
  77.         done
  78.       )
  79.      ;;
  80.   clean)
  81.       shift
  82.       if  [ "x$1" = x ] ; then
  83.         MAKECLEAN="make clean"
  84.         echo "MAKECLEAN guessed to '$MAKECLEAN'"
  85.       else
  86.         MAKECLEAN="$*"
  87.       fi
  88.       ## cleanning subdirectories from the deepest level to '.'
  89.       for dir in `find . -type d -depth -print ` ; do
  90.         if [ $dir = . ]; then continue; fi
  91.         if [ -r $dir/Makefile -o -r $dir/makefile ]; then
  92.           ( cd $dir;  ${MAKECLEAN}  );  ## it can invoke that code recursively
  93.         else
  94.           ( cd $dir; $srcdir/etc/make-util clean "${MAKECLEAN}" );
  95.         fi
  96.         if [ -h $dir/Makefile.in ]; then
  97.           rm -f $dir/Makefile.in
  98.         fi
  99.         # it can be directory comletely generated from RCS.
  100.         # let's check it
  101.         fc=`ls  -1 $dir | wc -l`
  102.         if [ -h $dir/RCS ]; then
  103.           if [ -f $dir/Makefile ]; then
  104.             if [ $fc -eq 3 -a -f $dir/Makefile_h ]; then
  105.               rm -f $dir/Makefile_h
  106.               fc=`ls  -1 $dir | wc -l`
  107.             fi
  108.             if [ $fc -eq 2 ]; then
  109.               rm -f $dir/Makefile
  110.               fc=`ls  -1 $dir | wc -l`
  111.             fi
  112.           fi
  113.           if [ $fc -eq 1 ]; then
  114.             echo "$dir removing..."
  115.             rm -f $dir/RCS
  116.             fc=`ls  -1 $dir | wc -l`
  117.           fi
  118.         fi
  119.         if [ $fc -eq 0 ]; then
  120.           rmdir $dir
  121.         fi
  122.       done
  123.       ## cleanning in current directory
  124.       ## clean garbage
  125.       rm -f *~ #* core *.bak *.BAK *% *.out TAGS *.__ log tmp *.flc .??*
  126.       rm -f aaa aa qqq qq xx xxx zzz zz
  127.       ## clean gss libraries timestamps
  128.       rm -f libgss* *stamp *.a *.o *.exe
  129.       ## clean dependencies
  130.       rm_list=""
  131.       flist=`ls -1 | sed 's/^(.*)[.]([^.]*)$/1 2/g;s/^([^ .]*)$/1 ./g'`
  132. check_deps () ###
  133. {
  134.   if [ "$1" = "$fext" ]; then
  135.     for ext in $2 ; do
  136.       if [ -f $fn$ext ]; then 
  137.         rm_list="$rm_list $fn$ext"
  138.       fi
  139.     done
  140.   fi
  141. }
  142.       while [ "x$flist" != x ]; do
  143.         set $flist ; fn=$1 ; fext=$2 ; shift 2; flist="$*"
  144.         check_deps "k"  ' .c .h '
  145.         check_deps "kt" ' .c .h '
  146.         check_deps "y"  ' .c .h '
  147.         check_deps "l"  ' .c '
  148.         check_deps "ec" ' .c .Sc .par .sem .s3 .opt .dmp '
  149.         check_deps "x"  ' .h _svc.c _clnt.c _xdr.c '
  150.       done
  151.       if  [ "x$rm_list" != x ]; then 
  152. #        echo rm -f $rm_list
  153.         rm -f $rm_list
  154.       fi
  155.       set +x
  156.       ## clean configurable files.
  157.       for fn in xxx.in `ls *.in 2>/dev/null` ; do
  158.         f1=`echo $fn | sed 's/[.]in$//1'`
  159.         if [ -f $f1 -a $f1 != Makefile -a $f1 != Makefile_h -a $f1 != configure -a 
  160.              $f1 != config.h -a $f1 != stamp-h ]; then
  161.           rm -f $f1
  162.         fi
  163.         if [ -h $fn ]; then
  164.           rm -f $fn
  165.         fi
  166.       done
  167.       if [ -d RCS ] ; then
  168.          ## if there is RCS -- clear makefiles to version files
  169.          rcsclean
  170.       fi
  171.      ;;
  172.   *)
  173.     exit 1
  174.     ;;
  175. esac
  176. exit 0