# Compiler/Linker CC = gcc LD = gcc # compiler/linker flags CFLAGS = -g -Wall LDFLAGS = -g # files removal RM = /bin/rm -f # programs' object files LPD_OBJS = tiny-lpd.o tiny-lp-common.o LPR_OBJS = tiny-lpr.o tiny-lp-common.o HEADERS = tiny-common.h # programs' executables LPD = tiny-lpd LPR = tiny-lpr # top-level rule all: $(LPD) $(LPR) $(LPD): $(LPD_OBJS) $(LD) $(LDFLAGS) $(LPD_OBJS) -o $(LPD) $(LPR): $(LPR_OBJS) $(LD) $(LDFLAGS) $(LPR_OBJS) -o $(LPR) # compile C source files into object files. %.o: %.c $(HEADERS) $(CC) $(CFLAGS) -c $< # clean everything clean: $(RM) $(LPD_OBJS) $(LPR_OBJS) $(LPD) $(LPR)