示例:
HOME := $(shell echo ${GSF_HOME})
CC := $(shell echo ${GSF_CC})
AR := $(shell echo ${GSF_AR})
CFLAGS := $(shell echo ${GSF_CFLAGS})
LDFLAGS := -g $(shell echo ${GSF_LDFLAGS}) $(shell echo ${GSF_EXECFLAGS})
TARG := bin/bsp.exe
#=============================================================
INCS := -I$(HOME) -Isrc -Iinc
TMPDIR := ./objs
VPATH = ./src
SRCS := $(notdir $(wildcard ./src/*.c))
OBJS = $(SRCS:%.c=$(TMPDIR)/%.o)
DEPS = $(SRCS:%.c=$(TMPDIR)/%.d)
PRES = $(SRCS:%.c=$(TMPDIR)/%.i)
LIBS += -L$(HOME)/lib/$(GSF_CPU_ARCH) -lcfifo -lrt -lnm -lcjson -lcomm -lm -lpthread
$(TARG): $(OBJS) $(PRES)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
cp $(TARG) $(HOME)/bin/$(GSF_CPU_ARCH)/ -v
$(TMPDIR)/%.o: %.c $(TMPDIR)/%.d
$(CC) $(CFLAGS) $(INCS) -c -MMD -MP $< -o $@
$(TMPDIR)/%.i: %.c $(TMPDIR)/%.d
$(CC) $(CFLAGS) $(INCS) -E $< -o $@
clean:
-rm $(TARG) $(OBJS) $(DEPS) $(PRES) src/*.bak -rf
$(TMPDIR)/%.d: ;
-include $(DEPS)
.Phony: clean
参考链接:https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options