Newer bison includes the defines file in the parser so the name must match.

Index: src/memory-models/Makefile
--- src/memory-models/Makefile.orig
+++ src/memory-models/Makefile
@@ -16,12 +16,8 @@ all: mmcc$(EXEEXT)
 
 ###############################################################################
 
-mm_y.tab.cpp: parser.y
-	$(YACC) $(YFLAGS) $$flags -pyymm -d parser.y -o $@
-
-mm_y.tab.h: mm_y.tab.cpp
-	if [ -e mm_y.tab.hpp ] ; then mv mm_y.tab.hpp mm_y.tab.h ; else \
-        mv mm_y.tab.cpp.h mm_y.tab.h ; fi
+mm_y.tab.cpp mm_y.tab.h: parser.y
+	$(YACC) $(YFLAGS) $$flags -pyymm --defines=mm_y.tab.h parser.y -o $@
 
 mm_lex.yy.cpp: scanner.l
 	$(LEX) -Pyymm -o$@ scanner.l
