Edit

kc3-lang/automake/depend2.am

Branch :

  • Show log

    Commit

  • Author : Tom Tromey
    Date : 1999-04-27 13:57:07
    Hash : 546c5271
    Message : * automake.in (handle_lib_objects_cond): Prefer `$1' over `\1'. Minor rewrite for clarity. (check_canonical_spelling): Prefer `$1' over `\1'. * depend2.am (@OBJ@): Renamed. Use @SOURCE@, @COMPILE@. Always use `-o $@'. (@LTOBJ@): Likewise. * automake.in (handle_single_transform_list): Don't print rule if doing dependency tracking and the file's language supports it. (initialize_per_input): Initialize lang_specific_files. (add_depend2): New function. (handle_dependencies): Use it. * automake.in (lang_ppf77_finish): Use lang_f77_finish. ratfor compiler name is `RCOMPILE'. ppf77 compiler name changed to `PPF77COMPILE' to allow use of f77 and ppf77 in the same directory. (lang_ratfor_finish): Use lang_f77_finish. * compile.am (NOTDEPEND.c.o): Removed. (OBJEXT.c.obj): Likewise. * automake.in: Added `flags' attribute to all relevant languages. (handle_single_transform_list): Handle per-derived-object flags. Changed interface and all callers. (handle_built_sources): Don't call handle_single_transform_list. Added `compile' and `compiler-name' attribute to all relevant languages. (finish_languages): Define compiler variables here. (lang_cxx_finish): Don't call define_compiler_variable. Don't define flag variable or .o rules. Don't add to @suffixes. (lang_f77_finish): Likewise. (lang_ppf77_finish): Likewise. (lang_objc_finish): Likewise. (lang_java_finish): Likewise. (finish_languages): Define flag variable here. Added `output-arg' attribute to all relevant languages. (finish_languages): Define `.o' rules here. (finish_languages): Put extension on @suffixes. (get_object_extension): Don't transform NOTDEPEND or MINUSO.

  • depend2.am
  • ## automake - create Makefile.in from Makefile.am
    ## Copyright (C) 1994-1998, 1999 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.
    @OBJ@: @SOURCE@
    	@echo '@COMPILE@ -c -o $@ $<'; \
    ## There are various ways to get dependency output from gcc.  Here's
    ## why we pick this rather obscure method:
    ## - Don't want to use -MD because we'd like the dependencies to end
    ##   up in a subdir.  Having to rename by hand is ugly.
    ##   (We might end up doing this anyway to support other compilers.)
    ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
    ##   -MM, not -M (despite what the docs say).
    ## - Using -M directly means running the compiler twice (even worse
    ##   than renaming).
    	@COMPILE@ -Wp,-MD,.deps/$(*D)/$(*F).pp -c -o $@ $<
    ## This next piece of magic avoids the `deleted header file' problem.
    ## The problem is that when a header file which appears in a .P file
    ## is deleted, the dependency causes make to die (because there is
    ## typically no way to rebuild the header).  We avoid this by adding
    ## dummy dependencies for each header file.  Too bad gcc doesn't do
    ## this for us directly.
    	@-cp .deps/$(*D)/$(*F).pp .deps/$(*D)/$(*F).P; \
    	tr ' ' '\012' < .deps/$(*D)/$(*F).pp \
    ## Some versions of gcc put a space before the `:'.  On the theory
    ## that the space means something, we add a space to the output as
    ## well.
    	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
    	    >> .deps/$(*D)/$(*F).P; \
    	rm .deps/$(*D)/$(*F).pp
    
    @LTOBJ@: @SOURCE@
    	@echo '@LTCOMPILE@ -c -o $@ $<'; \
    ## See above to understand implementation weirdness.
    	@LTCOMPILE@ -Wp,-MD,.deps/$(*D)/$(*F).pp -c -o $@ $<
    ## Account for versions of gcc that put a space before the `:'.
    	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
    	  < .deps/$(*D)/$(*F).pp > .deps/$(*D)/$(*F).P; \
    ## See above to understand deleted header file trick.
    	tr ' ' '\012' < .deps/$(*D)/$(*F).pp \
    ## Some versions of gcc put a space before the `:'.  On the theory
    ## that the space means something, we add a space to the output as
    ## well.
    	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
    	    >> .deps/$(*D)/$(*F).P; \
    	rm -f .deps/$(*D)/$(*F).pp