File: autoconf.info, Node: Output, Next: Configuration Actions, Prev: Input, Up: Setup 4.5 Outputting Files ==================== Every Autoconf script, e.g., ‘configure.ac’, should finish by calling ‘AC_OUTPUT’. That is the macro that generates and runs ‘config.status’, which in turn creates the makefiles and any other files resulting from configuration. This is the only required macro besides ‘AC_INIT’ (*note Input::). -- Macro: AC_OUTPUT Generate ‘config.status’ and launch it. Call this macro once, at the end of ‘configure.ac’. ‘config.status’ performs all the configuration actions: all the output files (see *note Configuration Files::, macro ‘AC_CONFIG_FILES’), header files (see *note Configuration Headers::, macro ‘AC_CONFIG_HEADERS’), commands (see *note Configuration Commands::, macro ‘AC_CONFIG_COMMANDS’), links (see *note Configuration Links::, macro ‘AC_CONFIG_LINKS’), subdirectories to configure (see *note Subdirectories::, macro ‘AC_CONFIG_SUBDIRS’) are honored. The location of your ‘AC_OUTPUT’ invocation is the exact point where configuration actions are taken: any code afterwards is executed by ‘configure’ once ‘config.status’ was run. If you want to bind actions to ‘config.status’ itself (independently of whether ‘configure’ is being run), see *note Running Arbitrary Configuration Commands: Configuration Commands. Historically, the usage of ‘AC_OUTPUT’ was somewhat different. *Note Obsolete Macros::, for a description of the arguments that ‘AC_OUTPUT’ used to support. If you run ‘make’ in subdirectories, you should run it using the ‘make’ variable ‘MAKE’. Most versions of ‘make’ set ‘MAKE’ to the name of the ‘make’ program plus any options it was given. (But many do not include in it the values of any variables set on the command line, so those are not passed on automatically.) Some old versions of ‘make’ do not set this variable. The following macro allows you to use it even with those versions. -- Macro: AC_PROG_MAKE_SET If the Make command, ‘$MAKE’ if set or else ‘make’, predefines ‘$(MAKE)’, define output variable ‘SET_MAKE’ to be empty. Otherwise, define ‘SET_MAKE’ to a macro definition that sets ‘$(MAKE)’, such as ‘MAKE=make’. Calls ‘AC_SUBST’ for ‘SET_MAKE’. If you use this macro, place a line like this in each ‘Makefile.in’ that runs ‘MAKE’ on other directories: @SET_MAKE@