makefile模板

个人用惯了cmake,从没有写过makefile, 突然领导交代要给一个小工程写个makefile。

硬着头皮花了1天的时间,写出来一个,才发现原来makefile也不是那么的难已忍受,

新技能get,贴个模板以备以后使用:

DIR_obj := ./build
DIR_LIB := ./lib


SRC += $(wildcard *.cpp)
OBJ := $(patsubst %.cpp, $(DIR_obj)/%.o, $(SRC))
SHARE_LIB := $(DIR_LIB)/libneuralnetworks.so
STATIC_LIB := $(DIR_LIB)/libneuralnetworks.a


CFLAGS += -fPIC -std=c++11 
LDFLAGS += -shared -fPIC


SIMULATOR_SDK_DIR = /home/kg/work/nnapi/simulator4/build/sdk
INCLUDE += -I$(SIMULATOR_SDK_DIR)/include


DIRVER_DIR += $(SIMULATOR_SDK_DIR)/drivers
LIBS += $(wildcard $(SIMULATOR_SDK_DIR)/drivers/*.so)
LINK_LIBS += $(patsubst %.so, -L %.so, $(LIBS))




ifeq ($(NN_DUMP), 1)
SRC += $(wildcard json/*.cpp)
OBJ += $(patsubst json/%.cpp, $(DIR_obj)/json/%.o, $(wildcard json/*.cpp))
CFLAGS += -DDUMP_NEURALNETWORK
endif


ifeq ($(NN_DEBUG), 1)
CFLAGS += -DNN_DEBUG
endif


ifeq ($(FORMAT_SWITCH), 1)
CFLAGS += -DFORMAT_SWITCH
endif


all:$(OBJ)
@echo src: $(SRC)
@echo comiling... $(OBJ)
@echo libs: $(LIBS)
@echo LINK_libs: $(LINK_LIBS)
@echo include: $(INCLUDE)
g++ $(LDFLAGS) -o $(SHARE_LIB) $(OBJ)

$(DIR_obj)/%.o:%.cpp
gcc -g  $(CFLAGS) -c $< -o $@ $(INCLUDE)


ifeq ($(NN_DUMP), 1)


$(DIR_obj)/json/%.o:json/%.cpp
@if test ! -d $(DIR_obj)/json;\
then\
mkdir $(DIR_obj)/json;\
fi
gcc -g  $(CFLAGS) -c $< -o $@ $(INCLUDE)
endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值