Commit aaf99e5e authored by Jan Maria Matejka's avatar Jan Maria Matejka
Browse files

M4: generate synchronization lines

This also includes Bison version check. Versions before 3.0 don't
support them in a reliable way and we don't promise to work with
versions older than 2.4.
parent 1279a831
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ MAKEFLAGS += -r
CPPFLAGS=-I$(objdir) -I$(srcdir) @CPPFLAGS@
CFLAGS=$(CPPFLAGS) @CFLAGS@
LDFLAGS=@LDFLAGS@
M4FLAGS=@M4FLAGS@
LIBS=@LIBS@
DAEMON_LIBS=@DAEMON_LIBS@
CLIENT_LIBS=@CLIENT_LIBS@
+16 −0
Original line number Diff line number Diff line
@@ -175,3 +175,19 @@ AC_DEFUN([BIRD_CHECK_PROG_FLAVOR_GNU],
  )
  esac
])

AC_DEFUN([BIRD_CHECK_BISON_VERSION],
[
  $1=`bison --version | ( read line; echo ${line##* } )`
  case "$$1" in
    1.* | 2.0* | 2.1* | 2.2* | 2.3* )
      AC_MSG_ERROR([Provided Bison version $$1 is too old, need at least 2.4])
      ;;
    2.*)
      bird_bison_synclines=no
      ;;
    3.* | 4.* | 5.* | 6.* | 7.* | 8.* | 9.* )
      bird_bison_synclines=yes
      ;;
  esac
])
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ BISON_DEBUG=-t
endif

$(conf-y-targets): $(s)confbase.Y $(s)flowspec.Y
	$(M4) -P $| $^ >$@
	$(M4) $(M4FLAGS) -P $| $^ >$@

$(o)cf-parse.y: | $(s)gen_parser.m4
$(o)keywords.h: | $(s)gen_keywords.m4
+9 −0
Original line number Diff line number Diff line
@@ -157,6 +157,15 @@ test -z "$FLEX" && AC_MSG_ERROR([Flex is missing.])
test -z "$BISON" && AC_MSG_ERROR([Bison is missing.])
test -z "$M4"	 && AC_MSG_ERROR([M4 is missing.])

AC_MSG_CHECKING([bison version])
BIRD_CHECK_BISON_VERSION(BISON_VERSION)
AC_MSG_RESULT([$BISON_VERSION])
if test "$bird_bison_synclines" = yes; then
  M4FLAGS="$M4FLAGS -s"
fi

AC_SUBST([M4FLAGS])

BIRD_CHECK_PROG_FLAVOR_GNU([$M4],
  [],
  [AC_MSG_ERROR([Provided M4 is not GNU M4.])]