|  | <$PLAN9/src/mkhdr | 
|  |  | 
|  | SYSOFILES=`{sh ./sysofiles.sh} | 
|  | LIB=libthread.a | 
|  | OFILES=\ | 
|  | $SYSOFILES\ | 
|  | channel.$O\ | 
|  | daemonize.$O\ | 
|  | exec.$O\ | 
|  | ioproc.$O\ | 
|  | iorw.$O\ | 
|  | ref.$O\ | 
|  | thread.$O\ | 
|  | wait.$O\ | 
|  |  | 
|  | <$PLAN9/src/mksyslib | 
|  |  | 
|  | HFILES=thread.h threadimpl.h | 
|  | FreeBSD.$O: BSD.c | 
|  | NetBSD.$O: Linux.c | 
|  |  | 
|  | tprimes: test/tprimes.$O | 
|  | 9l -o $target test/$target.$O | 
|  | tspawn: test/tspawn.$O | 
|  | 9l -o $target test/$target.$O | 
|  | tspawnloop: test/tspawnloop.$O | 
|  | 9l -o $target test/$target.$O | 
|  |  | 
|  | %.$O: %.c | 
|  | $CC -o $target $CFLAGS -I. $stem.c | 
|  |  | 
|  | # cannot use generic .S rule because it conflicts | 
|  | # with generic .s rule in mkcommon on case-insensitive | 
|  | # systems like Mac OS X. | 
|  |  | 
|  | OpenBSD-%-asm.$O:	OpenBSD-%-asm.S | 
|  | $CC $CFLAGS OpenBSD-$stem-asm.S | 
|  |  | 
|  | Linux-sparc64-context.$O: Linux-sparc64-context.S | 
|  | $CC -m64 -mcpu=v9 $CFLAGS Linux-sparc64-context.S | 
|  |  | 
|  | Linux-sparc64-swapcontext.$O: Linux-sparc64-swapcontext.c | 
|  | $CC -m64 -mcpu=v9 $CFLAGS Linux-sparc64-swapcontext.c | 
|  |  | 
|  | test:V: tprimes tspawn | 
|  | primes 1 10007 >p1.txt | 
|  | $PLAN9/bin/time ./tprimes 10000 >tp1.txt | 
|  | cmp p1.txt tp1.txt | 
|  | primes 1 1009 >p2.txt | 
|  | $PLAN9/bin/time ./tprimes 1000 >tp2.txt | 
|  | cmp p2.txt tp2.txt | 
|  | echo tspawn should take 3 seconds, not 6 | 
|  | $PLAN9/bin/time ./tspawn sleep 3 >/dev/null | 
|  |  | 
|  | CLEANFILES=p1.txt p2.txt tp1.txt tp2.txt test/*.$O |