home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / bin / pcc < prev    next >
Encoding:
Text File  |  1979-01-10  |  1.2 KB  |  72 lines

  1. T=/tmp/$$ PATH=/bin:/usr/bin O= OTWO= S= N=yes OPT= ret=0 prof=
  2. L=/lib COPT=/lib/c2
  3. LC="$L/crt0.o" LIBS=" $L/libc.a" NAS=as LD=ld CCOMP=/usr/lib/ccom
  4. ECHO=echo
  5. trap "rm -f $T.*; exit 1" 1 2 3 15
  6. trap 'rm -f $T.*; exit $ret' 0
  7. for A
  8. do    case $A in
  9.     *.c)    B=`basename $A .c`
  10.         $ECHO "$B.c"
  11.         case "$S$OPT" in
  12.         -S)    if /lib/cpp $O $A $T.i &&
  13.                $CCOMP $prof <$T.i $OTWO >$B.s; then
  14.                 : OK
  15.             else
  16.                 ret=$?
  17.             fi ;;
  18.         -Syes)    if /lib/cpp $O $A $T.i &&
  19.                $CCOMP $prof <$T.i $OTWO >$T.s &&
  20.                $COPT $T.s $B.s; then
  21.                 : OK
  22.             else
  23.                 ret=$?
  24.             fi ;;
  25.         yes)    if /lib/cpp $O $A $T.i &&
  26.                 $CCOMP $prof <$T.i $OTWO >$T.x &&
  27.                 $COPT $T.x  $T.s &&
  28.                 $NAS - -o $B.o $T.s ; then
  29.                 ll="$ll $B.o"
  30.             else
  31.                 N=no ret=$?
  32.             fi ;;
  33.         *)    if /lib/cpp $O $A $T.i &&
  34.                $CCOMP $prof <$T.i $OTWO >$T.s &&
  35.                 $NAS - -o $B.o $T.s ; then
  36.                 ll="$ll $B.o"
  37.             else
  38.                 N=no ret=$?
  39.             fi ;;
  40.         esac ;;
  41.  
  42.     -S)    N=no S=-S OTWO=-l ;;
  43.  
  44.     -X)    CCOMP=/usr/scj/pcc/comp ;;
  45.  
  46.     -O)    OPT=yes ;;
  47.  
  48.     -[IDU]*)    O="$O $A" ;;
  49.  
  50.     -c)    N=no ;;
  51.  
  52.     -)    ECHO=: ;;
  53.  
  54.     *.s)    B=`basename $A .s`
  55.         if echo "$B.s:" &&
  56.         $NAS - -o $B.o $A; then
  57.             ll="$ll $B.o"
  58.         else
  59.             N=no ret=$?
  60.         fi ;;
  61.  
  62.     -p)    prof=-p  ;;
  63.  
  64.     *)    ll="$ll $A"
  65.     esac
  66. done
  67. case $N in
  68.     no)    : ;;
  69.     *)    $LD $LC $ll $LIBS
  70.     ret=$?
  71. esac
  72.