1PORTHFILES=\ 2 ../port/error.h\ 3 ../port/lib.h\ 4 ../port/portdat.h\ 5 ../port/portfns.h\ 6 7LIBFILES=${LIBS:%=$ROOT/Inferno/$OBJTYPE/lib/lib%.a} 8 9CLEANEXTRA= 10 11%.$O: %.s 12 $AS $ASFLAGS $stem.s 13 14%.$O: %.c 15 $CC $CFLAGS $stem.c 16 17%.$O: ../port/%.c 18 $CC $CFLAGS -I. ../port/$stem.c 19 20%.$O: ../ip/%.c 21 $CC $CFLAGS -I. ../ip/$stem.c 22 23&.$O: $HFILES $PORTHFILES 24 25$INSTALLDIR/%: % 26 cp $stem $INSTALLDIR/$stem 27 28installall:V: install-$SHELLTYPE 29all:V: default-$SHELLTYPE 30 31acid:V: i$CONF.acid 32i$CONF.acid:V: $SHELLTYPE-i$CONF.acid 33 34LIBHDIRS= -I$ROOT/libmp/port -I$ROOT/libsec/port 35 36 37rc-i$CONF.acid nt-i$CONF.acid:V: i$CONF 38 { 39 x=i$CONF; test -e i$CONF.p9 && x=i$CONF.p9 40 for (i in `{srclist -ec -r $ROOT/ $x}) { 41 echo '//FILE: ' $i 42 $CC -I. $CFLAGS $LIBHDIRS '-DKERNDATE='$KERNDATE -a $i 43 } 44 echo 'include ("inferno");' 45 } >i$CONF.acid 46 47sh-i$CONF.acid:V: i$CONF 48 x=i$CONF; test -e i$CONF.p9 && x=i$CONF.p9 49 for i in `srclist -ec -r $ROOT/ $x` 50 do 51 echo '//FILE: ' $i 52 $CC -I. $CFLAGS $LIBHDIRS '-DKERNDATE='$KERNDATE -a $i 53 done >i$CONF.acid 54 echo 'include ("inferno");' >> i$CONF.acid 55 56lib%.a:V: $SHELLTYPE-lib%.a 57 58rc-lib%.a nt-lib%.a:VQ: 59 echo '@{builtin cd' $ROOT/lib$stem ';' mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE install'}' 60 @{builtin cd $ROOT/lib$stem; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE install} 61 62sh-lib%.a:VQ: 63 echo "(cd $ROOT/lib$stem ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE install)" 64 (cd $ROOT/lib$stem; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE install) 65 66%-rc %-nt:V: 67 for(i in $CONFLIST) 68 mk 'CONF='$i $stem 69 70%-sh:V: 71 for i in $CONFLIST 72 do 73 mk 'CONF='$i $stem 74 done 75 76clean:V: cleanconf-$SHELLTYPE 77 rm -f *.[$OS] *.root.[sh] errstr.h *.out $CLEANEXTRA 78 79cleanconf-sh:V: 80 for i in $CONFLIST $CLEANCONFLIST 81 do 82 rm -f $i.c i$i i$i.* $i.ver 83 done 84 85cleanconf-rc cleanconf-nt:V: 86 for(i in $CONFLIST $CLEANCONFLIST) 87 rm -f $i.c i$i i$i.* $i.ver 88 89nuke-sh:QV: 90 for i in $LIBDIRS 91 do 92 echo "(cd $ROOT/lib$i ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE nuke)" 93 (cd $ROOT/lib$i; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE nuke) 94 done 95 96nuke-rc nuke-nt:QV: 97 for (i in $LIBDIRS) 98 { 99 echo '@{cd $ROOT/lib$i ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE nuke}' 100 @{cd $ROOT/lib$i; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE nuke} 101 } 102 103nuke:V: clean nuke-$SHELLTYPE 104 105$CONF.c: ../port/mkdevc $CONF 106 $SHELLNAME ../port/mkdevc $CONF > $CONF.c 107 108errstr.h: ../port/error.h 109 sed 's/extern //;s,;.*/\* , = ",;s, \*/,";,' < ../port/error.h > errstr.h 110 111../init/%.dis: ../init/%.b 112 cd ../init; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE $stem.dis 113 114$ROOT/libinterp/runt.h: 115 cd $ROOT/libinterp 116 mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE runt.h 117 118RUNT=$ROOT/libinterp/runt.h # for culling dependencies 119INTERP=$ROOT/include/interp.h 120 121alloc.$O: $INTERP 122devdbg.$O: $INTERP 123 124devmnt.$O: $ROOT/include/fcall.h 125devns16552.$O: ../port/netif.h 126devns16552.$O: ns16552.h 127devpipe.$O: $INTERP 128devprof.$O: $RUNT $INTERP 129devprog.$O: $RUNT $INTERP 130devroot.$O: errstr.h 131devsign.$O: $RUNT $INTERP 132devsrv.$O: $RUNT $INTERP 133dis.$O: $INTERP 134discall.$O: $INTERP 135exception.$O: $RUNT $INTERP 136inferno.$O: $RUNT $INTERP 137latin1.$O: ../port/latin1.h 138main.$O: ../port/error.h 139netif.$O: ../port/netif.h 140proc.$O: errstr.h $INTERP 141screen.$O: screen.h 142trap.$O: $ROOT/Inferno/$OBJTYPE/include/ureg.h 143 144devroot.$O: $CONF.root.h 145$CONF.$O: $CONF.root.h 146$CONF.root.s $CONF.root.h: $CONF ../init/$INIT.dis ../port/mkroot $ROOTFILES 147 $SHELLNAME ../port/mkroot $CONF 148 149%.$O: $ROOT/Inferno/$OBJTYPE/include/u.h ../port/lib.h mem.h dat.h fns.h io.h ../port/error.h ../port/portdat.h ../port/portfns.h 150