diff --git a/makefile b/makefile index a02a110..c55bc00 100644 --- a/makefile +++ b/makefile @@ -2,23 +2,28 @@ REV=${shell [ -d .hg ] && hg id -n || git rev-parse --short HEAD} -.PHONY: em emwarn debug trace fixed +em_objs = em.o em +em_deps = \ + em.c regs.h emdev.h ea64v.h ea32i.h fp.h dispatch.h geom.h \ + devpnc.h devamlc.h swap.h -em: # normal - rm -rf em.o - cc -DREV=\"${REV}\" -DNOTRACE -DFAST -O -Winline em.c -o em +.PHONY: emwarn debug trace fixed -emwarn: # lots of compiler warnings - rm -rf em.o - cc -DREV=\"${REV}\" -DNOTRACE -DFAST -O -Wall -Wextra -pedantic -Wconversion em.c -o em +# normal +em: $(em_deps) + $(CC) -DREV=\"${REV}\" -DNOTRACE -DFAST -O -Winline em.c -o em -debug: # gdb - rm -rf em.o - cc -DREV=\"${REV}\" -DNOTRACE -DFAST -g -O0 em.c -o em +# lots of compiler warnings +emwarn: $(em_deps) + $(CC) -DREV=\"${REV}\" -DNOTRACE -DFAST -O -Wall -Wextra -pedantic -Wconversion em.c -o em -trace: # tracing - rm -rf em.o - cc -DREV=\"${REV}\" -DFAST -O em.c -o em +# gdb +debug: $(em_deps) + $(CC) -DREV=\"${REV}\" -DNOTRACE -DFAST -g -O0 em.c -o em + +# tracing +trace: $(em_deps) + $(CC) -DREV=\"${REV}\" -DFAST -O em.c -o em # the fixed clock rate build is useful for making problems reproduceable. # @@ -26,6 +31,9 @@ trace: # tracing # PRIMOS.COMI to get a more consistent instruction count for the # failure, then enable tracing a little before that with -trace -fixed: # fixed clock rate - rm -rf em.o - cc -DREV=\"${REV}\" -DFIXEDCLOCK -DNOIDLE -DFAST -O em.c -o em +# fixed clock rate +fixed: $(em_deps) + $(CC) -DREV=\"${REV}\" -DFIXEDCLOCK -DNOIDLE -DFAST -O em.c -o em + +clean: + rm -f $(em_objs)