(autoconf.info)Build Directories


Next: Automatic Remaking Prev: Preset Output Variables Up: Makefile Substitutions
Enter node , (file) or (file)node

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


automatically generated by info2www version 1.2.2.9