DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(autocf21.info.gz) Build Directories

Info Catalog (autocf21.info.gz) Preset Output Variables (autocf21.info.gz) Makefile Substitutions (autocf21.info.gz) Automatic Remaking
 
 3.3.2 Build Directories
 -----------------------
 
 You can support compiling a software package for several architectures
 simultaneously from the same copy of the source code.  The object files
 for each architecture are kept in their own directory.
 
    To support doing this, `make' uses the `VPATH' variable to find the
 files that are in the source directory.  GNU `make' and most other
 recent `make' programs can do this.  Older `make' programs do not
 support `VPATH'; when using them, the source code must be in the same
 directory as the object files.
 
    To support `VPATH', each `Makefile.in' should contain two lines that
 look like:
 
      srcdir = @srcdir@
      VPATH = @srcdir@
 
    Do not set `VPATH' to the value of another variable, for example
 `VPATH = $(srcdir)', because some versions of `make' do not do variable
 substitutions on the value of `VPATH'.
 
    `configure' substitutes in the correct value for `srcdir' when it
 produces `Makefile'.
 
    Do not use the `make' variable `$<', which expands to the pathname
 of the file in the source directory (found with `VPATH'), except in
 implicit rules.  (An implicit rule is one such as `.c.o', which tells
 how to create a `.o' file from a `.c' file.)  Some versions of `make'
 do not set `$<' in explicit rules; they expand it to an empty value.
 
    Instead, `Makefile' command lines should always refer to source
 files by prefixing them with `$(srcdir)/'.  For example:
 
      time.info: time.texinfo
              $(MAKEINFO) $(srcdir)/time.texinfo
 
Info Catalog (autocf21.info.gz) Preset Output Variables (autocf21.info.gz) Makefile Substitutions (autocf21.info.gz) Automatic Remaking
automatically generated byinfo2html