1</$objtype/mkfile 2 3TARG=snoopy 4PROTOS=\ 5 aoe\ 6 aoeata\ 7 aoecmd\ 8 aoemask\ 9 aoemd\ 10 aoerr\ 11 arp\ 12 bootp\ 13 cec\ 14 dhcp\ 15 dns\ 16 dump\ 17 eap\ 18 eap_identity\ 19 eapol\ 20 eapol_key\ 21 ether\ 22 gre\ 23 hdlc\ 24 icmp6\ 25 icmp\ 26 il\ 27 ip6\ 28 ip\ 29 ninep\ 30 ospf\ 31 ppp\ 32 ppp_ccp\ 33 ppp_chap\ 34 ppp_ipcp\ 35 ppp_lcp\ 36 pppoe_disc\ 37 pppoe_sess\ 38 rarp\ 39 rc4keydesc\ 40 rtcp\ 41 rtp\ 42 tcp\ 43 ttls\ 44 udp\ 45 46POBJS=${PROTOS:%=%.$O} 47 48OFILES= main.$O\ 49 y.tab.$O\ 50 protos.$O\ 51 convM2DNS.$O\ 52 $POBJS 53 54HFILES=dat.h\ 55 protos.h\ 56 y.tab.h\ 57 58YFILES=filter.y 59 60BIN=/$objtype/bin 61UPDATE=\ 62 mkfile\ 63 dat.h\ 64 main.c\ 65 ${POBJS:%.$O=%.c}\ 66 67CLEANFILES=protos.c protos.h 68 69</sys/src/cmd/mkone 70 71convM2DNS.$O: /sys/src/cmd/ndb/convM2DNS.c 72 $CC $CFLAGS /sys/src/cmd/ndb/convM2DNS.c 73 74protos.h:D: mkfile 75 { 76 for(i in $PROTOS) 77 echo extern Proto $i';' 78 } >$target 79 80protos.c:D: mkfile 81 { 82 echo '#include <u.h>' 83 echo '#include <libc.h>' 84 echo '#include "dat.h"' 85 echo '#include "protos.h"' 86 echo 'Proto *protos[] =' 87 echo '{' 88 for(i in $PROTOS) 89 echo ' &'$i',' 90 echo ' 0,' 91 echo '};' 92 } >$target 93