[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Interesting automake feature



On Mon, Nov 25, 2002 at 12:32:02PM +0200, Jan Ekholm wrote:
> Ok, I'll do that later today. I have no doubt that it works, but I'm still
> interested in why automake thinks it's ok to clobber files named "foo",
> any why it ends up doing it. Compiling "foo.cpp" file should IMO not write
> the output to "foo".

Because that's just "how it's done."  From the "make" info pages:

     Certain standard ways of remaking target files are used very often.
  For example, one customary way to make an object file is from a C
  source file using the C compiler, `cc'.
  
     "Implicit rules" tell `make' how to use customary techniques so that
  you do not have to specify them in detail when you want to use them.
  For example, there is an implicit rule for C compilation.  File names
  determine which implicit rules are run.  For example, C compilation
  typically takes a `.c' file and makes a `.o' file.  So `make' applies
  the implicit rule for C compilation when it sees this combination of
  file name endings.
  
     A chain of implicit rules can apply in sequence; for example, `make'
  will remake a `.o' file from a `.y' file by way of a `.c' file.
  
     The built-in implicit rules use several variables in their commands
  so that, by changing the values of the variables, you can change the
  way the implicit rule works.  For example, the variable `CFLAGS'
  controls the flags given to the C compiler by the implicit rule for C
  compilation.


-bill!