[prev] [index] [next]

More on Makefiles

Some additional functionalities of Makefiles

# string-valued variables/macros
CC = gcc
CFLAGS = -g
LDFLAGS = -lm
BINS = main.o graphics.o world.o

# implicit commands, determined by suffix
main.o     : main.c graphics.h world.h
graphics.o : graphics.c world.h
world.o    : world.c

# pseduo-targets
clean :
        rm -f game main.o graphics.o world.o
	# or ... rm -f game $(BINS)

# multiple targets with same sources
stats1 stats2 : data1 data2 data3
        perl analyse1.pl data1 data2 data3 > stats1
        perl analyse2.pl data1 data2 data3 > stats2

# creating subsystems via make
parser:
	cd parser && $(MAKE)
# assumes parser directory has own Makefile