Makefile (844B)
1 LIBZ_INCLUDES = /usr/include 2 3 LIBA_DIR = liba 4 LIBA_INCLUDES = $(LIBA_DIR) 5 LIBA_LIBS = -lz 6 LIBA_OBJS = $(LIBA_DIR)/a.o 7 8 9 LIBB_DIR = libb 10 LIBB_OBJS = $(LIBB_DIR)/b.o 11 LIBB_INCLUDES = $(LIBB_DIR) $(LIBA_INCLUDES) 12 LIBB_DEPOBJS = $(LIBA_OBJS) 13 LIBB_LIBS = $(LIBA_LIBS) $(LIBA_OBJS) 14 15 PROGRAM_OBJS = prog.o 16 PROGRAM_INCLUDES = $(LIBB_INCLUDES) 17 PROGRAM_DEPOBJS = $(LIBB_DEPOBJS) $(LIBB_OBJS) 18 PROGRAM_LIBS = $(LIBA_LIBS) $(LIBB_LIBS) 19 PROGRAM = program 20 21 all: $(PROGRAM) 22 23 $(LIBA_OBJS): $(LIBA_DIR)/a.c $(LIBA_DIR)/a.h 24 $(CC) -o $@ -c $< $(CFLAGS) 25 26 $(LIBB_OBJS): $(LIBB_DIR)/b.cpp $(LIBB_DIR)/b.h $(LIBB_DEPOBJS) 27 $(CXX) -o $@ -c $< $(CFLAGS) 28 29 $(PROGRAM_OBJS): program.c 30 $(CC) -o $@ -c $< $(CFLAGS) $(foreach incdir, $(LIBB_INCLUDES), -I $(incdir)) 31 32 $(PROGRAM): $(PROGRAM_OBJS) $(PROGRAM_DEPOBJS) 33 $(CXX) -o $@ $+ $(LDFLAGS) $(LIBB_LIBS) 34 35 clean: 36 echo TODO 37