testreps = 10000000 ifeq "$(shell uname -s | tr 'A-Z' 'a-z')" "linux" ostype := 1 else # assume cygwin ostype := 2 endif default: minasm.4th minforth.4th pytest pfcompile.pfcompile minasm.4th minforth.4th test: proof_ds proof_d proof_c proof_i proof_s @echo $(testreps) repetitions of each program @echo -n proof_ds: && time proof_ds || echo average of 8 and 4 is $$? @echo -n proof_d: && time proof_d || echo average of 8 and 4 is $$? @echo -n proof_c: && time proof_c || echo average of 8 and 4 is $$? @echo -n proof_i: && time proof_i || echo average of 8 and 4 is $$? @echo -n proof_s: && time proof_s || echo average of 8 and 4 is $$? proof%: proof%.o ld -o $@ $< proof%.o: proof%.s as --defsym OS=$(ostype) \ --defsym REPS=$(testreps) -o $@ $< proof_c: proof_c.c Makefile gcc -D REPS=$(testreps) -o proof_c proof_c.c proof_liu: proof_liu.o ld -s -o $@ $< # strip symbols from this one if ./$@; then echo "errorcode zero, wrong!"; rm $@; false; \ elif [ "$$?" = "2" ]; then echo "errorcode two, right!"; \ else echo "errorcode $$?, bad!"; rm $@ && false; \ fi %.bin: %.asm fasm $< strip $@ if ./$@; then echo "errorcode zero, wrong!"; rm $@; false; \ elif [ "$$?" = "2" ]; then echo "errorcode two, right!"; \ else echo "errorcode $$?, bad!"; rm $@ && false; \ fi diff: proof_liu liu_junfeng_pe.bin objdump --all-headers proof_liu > /tmp/proof_liu.dmp objdump --all-headers liu_junfeng_pe.bin > /tmp/liu_junfeng_pe.bin.dmp -diff /tmp/proof_liu.dmp /tmp/liu_junfeng_pe.bin.dmp xxd proof_liu > /tmp/proof_liu.xxd xxd liu_junfeng_pe.bin > /tmp/liu_junfeng_pe.bin.xxd -diff /tmp/proof_liu.xxd /tmp/liu_junfeng_pe.bin.xxd clean: rm -f *.o *.exe proof_[a-z] proof_[a-z][a-z] *.pyc *.bin minimum: minimum.elf grep '^0' $< | \ awk '{print $$2$$3$$4$$5}' | \ xxd -r -p \ > $@ commit: rsync -avuzb . www.jcomeau.com:/usr/src/repository/postforth-1/