AC_PROG_LEX
AC_PROG_YACC
AC_PATH_PROG(YACCEXE, $YACC, "")
-AS_IF([test "x$LEX" = "x:" -a ! -f $srcdir/ginsh/ginsh_lexer.cc],
+AS_IF([test "x$LEX" = "x:" -a ! -f $srcdir/ginsh/ginsh_lexer.cpp],
[GINAC_WARNING([ginsh will not compile, because lex/flex is missing])])
-AS_IF([test -z "$YACCEXE" -a ! -f $srcdir/ginsh/ginsh_parser.h],
+AS_IF([test -z "$YACCEXE" -a ! -f $srcdir/ginsh/ginsh_parser.hpp],
[GINAC_WARNING([ginsh will not compile, because yacc/bison is missing])])
dnl Switch to C++ language mode for the following libraries and headers.
ginsh_LDADD = ../ginac/libginac.la $(GINSH_LIBS)
AM_CPPFLAGS = -I$(srcdir)/../ginac -I../ginac -DIN_GINAC
-AM_YFLAGS = -d
man_MANS = ginsh.1
ginsh_op_help.h: ginsh.1 $(srcdir)/ginsh_op_help.py
$(PYTHON) $(srcdir)/ginsh_op_help.py -o $@ $<
-ginsh_parser.o: ginsh_fcn_help.h ginsh_op_help.h ginsh_parser.cpp
+# automake <=1.11 and automake >=1.12 have different conventions for naming C++ header files
+# made by yacc. To work with both, we write our own rule rather than using automake's.
+ginsh_parser.cpp ginsh_parser.hpp: ginsh_parser.ypp
+ $(YACC) $(YFLAGS) -o ginsh_parser.cpp --defines=ginsh_parser.hpp $<
+
+ginsh_parser.o: ginsh_fcn_help.h ginsh_op_help.h ginsh_parser.hpp
-/** @file ginsh_parser.yy
+/** @file ginsh_parser.ypp
*
* Input grammar definition for ginsh.
* This file must be processed with yacc/bison. */