makefile自动生成依赖关系可自动检测头文件变化

DEBUG=1

CC=gcc

CXX=g++

ifeq($(调试),1)

选择=o0 - g -DDEBUG endif


CFLAGS=- fpic - i (COMPILE_DIR)我(vesdkdev) -我美元美元(es_common)我(vesdk) - (vesdk)/美元提振美元- 153/包括我(vesdkproject)

CXXFLAGS=$ (CFLAGS)


=libServerCfg目标。所以

VPATH=src

OBJDIR=obj/

DEPDIR=deps/


CXXFLAGS +=$(选择)

CXXFLAGS +=-我. ./. ./global_include/i (CrossOnvifLib)/ClientSo/包装-我美元(CrossOnvifLib)/ClientSo onvifgen - i (CrossPlatformLib)/美元vesdkdev \

我$ (CrossOnvifLib)/共同/gsoap/分享/gsoap/插件我美元(CrossOnvifLib)/共同/gsoap/包括我(CrossPlatformLib)/es_common -美元(CrossPlatformLib)/vesdk \

我(CrossPlatformLib)/美元vesdkdev/跑龙套/mt/


LDFLAGS +=- shared - lm pthread


填词=-lOnvifClient -lsqlite3 -lboost_system


OBJ=帮手。o媒体。o DevicesMgmt。o成像。o PTZ。o DiskTool。o ServerCfg。o


OBJ=$ ((OBJDIR),美元addprefix (OBJ))

DEPS=$ ((DEPDIR),美元addprefix (OBJ))


: OBJ美元(目标)


(目标):美元美元(OBJ)

@echo美元(目标)

(CXX) (CXXFLAGS)美元$ ^ - o $ @ $ (LDFLAGS) $ (LIBS)

cp美元(目标)特性


美元(OBJDIR) %。o:

$ % . cpp (CC) (CXXFLAGS) - c <美元- o $ @


obj:

mkdir - p obj

deps:

mkdir - p deps

。假的:清洁


清洁:

rm射频(obj)美元(目标)

ifeq(" $(通配符deps) "”、“)

DEP_DIR_DEPS:=deps

endif


包括美元(deps: . o=.d)


美元(DEPDIR) %。d: %。cpp $ (DEP_DIR_DEPS)

设置- e;rm - f $ @;\

$ (CC)毫米(CXXFLAGS) <>美元$ @ $ $ $ $;\

sed ' s \ $ * \ \。o [:] * (OBJDIR) \ 1美元。$ @:阿,g”<$ @。$ $ $ $> $ @;\

rm - f $ @。$ $ $ $


makefile自动生成依赖关系可自动检测头文件变化