AR=ar
LD=ld
CCPATH=
CC=$(CCPATH)clang
CXX=$(CCPATH)clang++
INC =
LIBS = -lm #-lpthread -lm -lstdc++
CFLAGS =
LLVMFLAGS = -emit-llvm -S -Xclang -disable-O0-optnone
#注:"\"后面不能有空格,并且该句写完后最好有个换行
#注释部分推荐在单独的一行编写
#只改下面几行变量值就够了
#动态库需要 -fPIC -shared
SOFLAGS = #-O2 -fPIC -shared
# Search paths
VPATH =
SRC_ROOT = .
#这里递归遍历3级子目录
DIRS := $(shell find $(SRC_ROOT) -type d)
#这里循环遍历目录的cpp文件
CPPFILES := $(foreach dir,$(DIRS),$(wildcard $(dir)/*.cpp))
CFILES += $(foreach dir,$(DIRS),$(wildcard $(dir)/*.c))
#定义宏
DEF = #-DLINUX -DENABLE_EPOLL
CPPLLS := $(patsubst %.cpp,%.ll, $(CPPFILES))
CLLS := $(patsubst %.c,%.ll, $(CFILES))
all:$(CLLS) $(CPPLLS)
$(CLLS):%.ll:%.c
$(CC) -c $< $(LLVMFLAGS) -o $@
$(CPPLLS):%.ll:%.cpp
$(CXX) -c $< $(LLVMFLAGS) -o $@
.ll.c:
$(CC) -c $< $(LLVMFLAGS) -o $@
.ll.cpp:
$(CXX) -c $< $(LLVMFLAGS) -o $@
clean:
$(RM) $(CPPLLS ) $(CLLS )
来源:CSDN
作者:liubaosen
链接:https://blog.csdn.net/liubaosen/article/details/104551747