-$(BUILDDIR)program/lex.yy.c: program/program_lexer.l
- $(AM_V_at)$(MKDIR_P) program
- $(AM_V_GEN) $(LEX) --never-interactive --outfile=$@ $<
+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