Tag
Hash :
c5881ccb
Author :
Date :
2006-08-19T18:31:51
* lib/am/lex.am, lib/am/yacc.am: Drop the inline rules, always use ylwrap. Suggested by Akim Demaille long ago, to ease maintenance. * automake.in (handle_languages): Do not define MORE-THAN-ONE. (yacc_lex_finish_helper, lang_yacc_finish, lang_lex_finish): Always require ylwrap. * doc/automake.texi (Auxiliary Programs, Yacc and Lex): Update the documentation of ylwrap. * tests/lex.test, tests/lex4.test, tests/mmodely.test, tests/yacc.test, tests/yacc2.test, tests/yacc3.test, tests/yaccpp.test: Adjust.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
## automake - create Makefile.in from Makefile.am
## Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2006
## Free Software Foundation, Inc.
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2, or (at your option)
## any later version.
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
## 02110-1301, USA.
## We want to disable the Yacc rebuild rule when
## 1. AM_MAINTAINER_MODE is used, and
## 2. --enable-maintainer-mode is not specified, and
## 3. parser.c already exist, and
## 4. parser.y and parser.c are distributed.
## Point #3 is because `make maintainer-clean' erases parser.c, yet
## the GNU Coding Standards require that ./configure; make works even
## after that.
## Point #4 is because parsers listed in nodist_*_SOURCES are always
## built on the user's side, so it makes no sense to disable them.
##
## Points #1, #2, #3 are solved by unconditionally prefixing the rule
## with $(am__skipyacc) defined below only when needed.
##
## Point #4 requires a condition on whether parser.y/parser.c are
## distributed or not. We cannot have a generic rule that works in
## both cases, so we ensure in automake that nodist_ parsers always
## use non-generic rules.
if %?MAINTAINER-MODE%
if %?FIRST%
@MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ ||
endif %?FIRST%
endif %?MAINTAINER-MODE%
?GENERIC?%EXT%%DERIVED-EXT%:
?!GENERIC?%OBJ%: %SOURCE%
?GENERIC? $(am__skipyacc) $(SHELL) $(YLWRAP) %SOURCE% y.tab.c %OBJ% y.tab.h %BASE%.h y.output %BASE%.output -- %COMPILE%
?!GENERIC??DIST_SOURCE? $(am__skipyacc) \
## For non-suffix rules, we must emulate a VPATH search on %SOURCE%.
?!GENERIC? $(SHELL) $(YLWRAP) `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% y.tab.c %OBJ% y.tab.h %BASE%.h y.output %BASE%.output -- %COMPILE%