common.mk
.PHONY: all clean
SRCS=$(wildcard *.c)
OBJS=$(SRCS:.c=.o)
DEPS=$(SRCS:.c=.d)
OBJS:=$(addprefix $(OBJDIR)/,$(OBJS))
DEPS:=$(addprefix $(DEPDIR)/,$(DEPS))
BIN:=$(addprefix $(BUILD_ROOT)/, $(BIN))
all: $(DEPS) $(OBJS) $(BIN)
ifneq ("$(wildcard $(DEPS))","")
include $(DEPS)
endif
SRCS=$(wildcard $(OBJDIR)/*.o)
SRCS+=$(OBJS)
$(BIN):$(SRCS)
echo $(SRCS)
gcc -o $@ $^
$(OBJDIR)/%.o:%.c
gcc -I$(INCDIR) -o $@ -c $(filter %.c,$^)
$(DEPDIR)/%.d:%.c
gcc -I$(INCDIR) -MM $(filter %.c,$^) | sed 's,\(.*\).o[ :]*,$(OBJDIR)/\1.o $@:,g' > $@
主makefile
.PHONEY: all clean
#导出一些全局变量
export BUILD_ROOT=$(shell pwd)
export DEPDIR=$(BUILD_ROOT)/dep
export INCDIR=$(BUILD_ROOT)/src/inc
export OBJDIR=$(BUILD_ROOT)/objs
all:
rm -rf ./dep/*
rm -rf ./objs/*
rm -f jsq
make -C src/jia/
make -C src/jian/
make -C src/cheng/
make -C src/
clean:
rm -rf ./dep/*
rm -rf ./objs/*
rm -f jsq
FR:徐海涛(hunk xu)