home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / perl-5.003-base.tgz / perl-5.003-base.tar / fsf / perl / hints / 3b1cc < prev    next >
Text File  |  1994-10-18  |  2KB  |  89 lines

  1. # To incorporate the 7300/3b1 shared library, run this script in place
  2. # of 'CC'.
  3. # You can skip this is you have the shcc program installed as cc in
  4. # your path.
  5. # First: Run 'Configure' through to the end and run 'make depend'.
  6. # Second: Edit 'makefile' ( not Makefile ) and set CC = 3b1cc.
  7. # Third: Edit 'x2p/makefile' and set CC = 3b1cc.
  8. #
  9. # Do not use '3b1cc' as the default compiler.  The call to the default
  10. # compiler is used by 'perl' and will not be available when running
  11. # 'perl'.
  12. #
  13. # Note: This script omits libraries which are redundant in the shared
  14. # library.  It is an excerpt from a grander version available upon
  15. # request from "zebra!vern" or "vern@zebra.alphacdc.com".
  16.  
  17. CC="cc"
  18. LIBS=
  19. INCL=
  20.  
  21. LD="ld"
  22. SHAREDLIB="/lib/crt0s.o /lib/shlib.ifile"
  23.  
  24. # Local variables
  25. COBJS=
  26. LOBJS=
  27. TARG=
  28. FLAGS=
  29. CMD=
  30.  
  31. # These are libraries which are incorporated in the shared library
  32. OMIT="-lmalloc"
  33.  
  34. # These routines are in libc.a but not in the shared library
  35. if [ ! -f vsprintf.o -o ! -f doprnt.o ]
  36. then
  37.     echo "Extracting vsprintf.o from libc.a"
  38.     ar -x /lib/libc.a vsprintf.o doprnt.o
  39. fi
  40.  
  41. CMD="$CC"
  42. while [ $# -gt 0 ]
  43. do
  44.     case $1 in
  45.     -c)    CFLAG=$1;;
  46.     -o)    CFLAG=$1
  47.         shift
  48.         TARG="$1";;
  49.     -l*)    match=false
  50.         for i in $OMIT
  51.         do
  52.             [ "$i" = "$1" ] && match=true
  53.         done
  54.         [ "$match" != false ] || LIBS="$LIBS $1";;
  55.     -*)    FLAGS="$FLAGS $1";;
  56.     *.c)    COBJS="$COBJS $1";;
  57.     *.o)    LOBJS="$LOBJS $1";;
  58.     *)    TARG="$1";;
  59.     esac
  60.     shift
  61. done
  62.  
  63. if [ -n "$COBJS" ]
  64. then
  65.     CMD="$CMD $FLAGS $INCL $LPATHS $LIBS $COBJS $CFLAG $TARG"
  66. elif [ -n "$LOBJS" ]
  67. then
  68.     LOBJS="$LOBJS vsprintf.o doprnt.o"
  69.     CMD="$LD -r $LOBJS $LPATHS $LIBS -o temp.o"
  70.     echo "\t$CMD"
  71.     $CMD
  72.     CMD="$LD -s temp.o $SHAREDLIB -o $TARG"
  73.     echo "\t$CMD"
  74.     $CMD
  75.     ccrslt=$?
  76.     if [ $ccrslt -ne 0 ]
  77.     then
  78.         exit $ccrslt
  79.     fi
  80.     CMD="rm -f temp.o"
  81. else
  82.     exit 1
  83. fi
  84. echo "\t$CMD"
  85. $CMD
  86. ccrslt=$?
  87. rm -f $$.c    
  88. exit $ccrslt
  89.