File: autoconf.info, Node: Makefile Substitutions, Next: Configuration Headers, Prev: Configuration Files, Up: Setup 4.8 Substitutions in Makefiles ============================== Each subdirectory in a distribution that contains something to be compiled or installed should come with a file ‘Makefile.in’, from which ‘configure’ creates a file ‘Makefile’ in that directory. To create ‘Makefile’, ‘configure’ performs a simple variable substitution, replacing occurrences of ‘@VARIABLE@’ in ‘Makefile.in’ with the value that ‘configure’ has determined for that variable. Variables that are substituted into output files in this way are called “output variables”. They are ordinary shell variables that are set in ‘configure’. To make ‘configure’ substitute a particular variable into the output files, the macro ‘AC_SUBST’ must be called with that variable name as an argument. Any occurrences of ‘@VARIABLE@’ for other variables are left unchanged. *Note Setting Output Variables::, for more information on creating output variables with ‘AC_SUBST’. A software package that uses a ‘configure’ script should be distributed with a file ‘Makefile.in’, but no makefile; that way, the user has to properly configure the package for the local system before compiling it. *Note Makefile Conventions: (standards)Makefile Conventions, for more information on what to put in makefiles. * Menu: * Preset Output Variables:: Output variables that are always set * Installation Directory Variables:: Other preset output variables * Changed Directory Variables:: Warnings about ‘datarootdir’ * Build Directories:: Supporting multiple concurrent compiles * Automatic Remaking:: Makefile rules for configuring