据所有独立的c文件生成相应执行文件通用Makefile

  • Post author:
  • Post category:其他


CFILES := $(wildcard *.c) #过滤部分c文件 filters := xx.c CFILES := $(filter-out $(filters),$(CFILES)) TARGETS = $(patsubst %.c, %.cgi, $(CFILES)) #生成目录 ODIR := ./ # 编译参数 CFLAGS := -m32 #链接参数 LDFLAGS := -L/usr/local/ -lsqlite3 -lsybdb # 定义编译规则 define define_compile_rules $(patsubst %.c,%.cgi, $(1)): $(1) @echo ” + Compiling ‘{1}lt;’ -> ‘$@'” $(CC) $(CFLAGS) {1}lt; -o $(ODIR)/$@ $(LDFLAGS) endef all: $(TARGETS) #生成编译规则 $(foreach file,$(CFILES),$(eval $(call define_compile_rules,$(file))))