The make utility is used for maintaining groups of programs. The purpose of the tool is to determine which pieces of a package need to be recompiled, and to automatically issue the commands to recompile them.

Error Messages

make: * No rule to make target `distclean'. Stop.

This error may occur when attempting to run make against a Makefile generated by ?Automake.

Causes

The cause of this error is due to the ?Automake tool failing to generate a distclean target.

Makefile: : *** missing separator. Stop.

This error may occur when attempting to run make against a Makefile generated by ?Automake.

Cause 1: The configure.ac file was incorrectly sequenced during script generation

A Makefile has been generated by a configure script that was generated using an incorrectly sequenced configure.ac file. This error may occur, if the AM_INIT_AUTOMAKE macro is placed after the AC_OUTPUT macro in the configure.ac file. A symptom of this is that the generated Makefile contains unexpanded macros, such as:

@SET_MAKE@

Resolution

It is necessary to correct the configure.ac file, placing the AM_INIT_AUTOMAKE macro before the AC_OUTPUT macro and use the [Autoreconf] tool, to regenerate the build instruction files, before re-running the configure script.

Cause 2: The Makefile.am target list was disrupted by the editor before script generation

If the project has several target files, it is possible that the ?Editor used to created the Makefile.am file disrupted the flow of the target list by applying linewrap to the file. The ?Nano editor may do this, if the target list lines reach 76 characters in width. It is recommended that the target list is kept short and continuation characters are used to span the list across several lines, with each line being kept below 76 characters.

Resolution

It is necessary to correct the Makefile.am file and use the autoreconf tool, to regenerate the build instruction files, before re-running the configure script.

See Also

Makefile

Targets and Dependencies


CategorySoftware | CategoryProgramming