Node:Combining rules by prerequisite, Next:, Previous:Letting make deduce commands, Up:Writing a makefile

Combining rules by prerequisite

When the objects of a makefile are created by implicit rules alone, an alternative style of makefile is possible. In this style of makefile, you group entries by their prerequisites instead of by their targets. Here is an example of this alternative style:

objects = main.o kbd.o command.o display.o \
          insert.o search.o files.o utils.o

edit : $(objects)
        cc -o edit $(objects)

$(objects) : defs.h
kbd.o command.o files.o : command.h
display.o insert.o search.o files.o : buffer.h

Here defs.h is given as a prerequisite of all the object files, and command.h and buffer.h are prerequisites of the specific object files listed for them.

Whether this is better is a matter of taste: it is more compact, but some people dislike it because they find it clearer to put all the information about each target in one place.