+MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
+YACC_GEN = $(AM_V_GEN)$(YACC) $(YFLAGS)
+LEX_GEN = $(AM_V_GEN)$(LEX) $(LFLAGS)
+
+program/lex.yy.c: program/program_lexer.l
+ $(MKDIR_GEN)
+ $(LEX_GEN) -o $@ $(srcdir)/program/program_lexer.l
+
+program/program_parse.tab.c program/program_parse.tab.h: program/program_parse.y
+ $(MKDIR_GEN)
+ $(YACC_GEN) -o $@ -p "_mesa_program_" --defines=$(builddir)/program/program_parse.tab.h $(srcdir)/program/program_parse.y
+
+if GEN_ASM_OFFSETS
+matypes.h: $(gen_matypes_SOURCES)
+ $(AM_V_GEN)$(COMPILE) $< -DASM_OFFSETS -S -o - | \
+ sed -n '/^->/{s:^->::;/[$$]/{s:^:#define :;s:[$$]::};p}' > $@
+else
+matypes.h: gen_matypes
+ $(AM_V_GEN)./gen_matypes > $@
+endif
+