Edit

kc3-lang/automake/lib/am/yacc.am

Branch :

  • Show log

    Commit

  • Author : Tom Tromey
    Date : 2001-06-24 03:38:27
    Hash : 081f2d51
    Message : Fix for yacc5.test: * lib/ylwrap: Changed usage. * lib/am/yacc.am: Rewrote to use new substitutions. * lib/am/lex.am: Likewise. * automake.in (handle_languages): Skip files whose language doesn't have a compiler. Handle `define_flag' attribute. Changed '$' to "\$" to aid Emacs fontification. (struct): Added `rule_file'. Removed `derived_autodep'. Added `_target_hook' and `define_flag'. (yacc, yaccxx, lex, lexxx): Set `rule_file', `flags', `compile', and `compiler' attributes. Removed `linker', `derived_autodep', and `ansi' attributes. Added `define_flag'. (yacc, yaccxx): Added `_target_hook'. (saw_extension): Count number of times extension seen. (count_files_for_language): New sub. (saw_sources_p): Use it. (handle_single_transform_list): Allow language rewrite function to return a new source extension. Call target_hook. (yacc_sources, lex_sources): Removed. (initialize_per_input): Don't initialize yacc_sources or lex_sources. (lang_yacc_rewrite): Rewrote. (lang_yaccxx_rewrite): Likewise. (lang_lex_rewrite): Likewise. (lang_lexxx_rewrite): Likewise. (output_yacc_build_rule): Removed. (output_lex_build_rule): Removed. (lang_yacc_finish): Removed build rule generation. (lang_lex_finish): Likewise. (DASH_D_PATTERN): New global. (lang_yacc_target_hook): New function. (_target_hook): New function. (register_language): Default `define_flag'. * tests/yacc5.test: Updated test. * tests/yacc4.test: Exit with status 77 if bison doesn't work. * tests/yacc3.test: Remove bogus `make' invocation. Added test for all YFLAGS variables.

  • lib/am/yacc.am
  • ## automake - create Makefile.in from Makefile.am
    ## Copyright 1998, 1999, 2001 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., 59 Temple Place - Suite 330, Boston, MA
    ## 02111-1307, USA.
    
    ?GENERIC?.%EXT%.%DERIVED-EXT%:
    ?!GENERIC?%OBJ%: %SOURCE%
    if %?MORE-THAN-ONE%
    	$(SHELL) $(YLWRAP) %SOURCE% y.tab.c %OBJ% y.tab.h %BASE%.h -- %COMPILE%
    else !%?MORE-THAN-ONE%
    	%COMPILE% %SOURCE% && mv y.tab.c %OBJ%
    	if test -f y.tab.h; then \
    	  if cmp -s y.tab.h %BASE%.h; then \
    	    rm -f y.tab.h; \
    	  else \
    	    mv y.tab.h %BASE%.h; \
    	  fi; \
    	fi
    endif !%?MORE-THAN-ONE%
    
    ## Also generate a dependency for the .h file.
    ## FIXME: does this sort of suffix rule really work?
    if %?GENERIC%
    .%EXT%.h:
    	@:
    else !%?GENERIC%
    %BASE%.h: %SOURCE%
    endif !%?GENERIC%