git: buildworld - Attempt to fix m4 bootstrapping issue (2)

Matthew Dillon dillon at
Wed Jan 23 18:37:41 PST 2013

commit f3dd7aaa1d932bfe070ada30a2bcacd0d60f3680
Author: Matthew Dillon <dillon at>
Date:   Wed Jan 23 18:35:10 2013 -0800

    buildworld - Attempt to fix m4 bootstrapping issue (2)
    * m4 depends on flex which exec's (depends on) m4.
    * Change m4 to not depend on flex and reorder the [b]yacc build to run
      before m4.  M4's lex file is now manually generated and made part of
      the source archive, and the Makefile simply compiles the .c version
      instead of trying to run flex.
      Any future update to m4 will require it's lex file to be manually
      lex'd.  Too bad, that's the way it goes.  M4 is a piece of crap and
      flex is an even bigger piece of crap for needing to exec M4.  I'm not
      going to play with this stuff more than I need to to make things compile.
    * Remove conditionals from m4 .y and .l files.  They were wrong because
      they weren't necessarily reflective of which lexer was being run,
      and now they aren't needed at all.

Summary of changes:
 Makefile.inc1                                      |   8 +-
 usr.bin/m4/Makefile                                |  21 +-
 .../ktrfmt.yy.c => usr.bin/m4/manual_tokenizer.c   | 914 ++++++++++-----------
 usr.bin/m4/parser.y                                |   3 -
 usr.bin/m4/tokenizer.l                             |   3 -
 5 files changed, 459 insertions(+), 490 deletions(-)
 copy lib/libevtr/ktrfmt.yy.c => usr.bin/m4/manual_tokenizer.c (66%)

DragonFly BSD source repository

More information about the Commits mailing list