Tag
Hash :
546c5271
Author :
Date :
1999-04-27T13:57:07
* 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.
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 50 51 52 53 54 55 56 57 58 59
## 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