SHELL = /bin/bash
|
|
CC := gcc
|
CPP := g++
|
LD := ld
|
AR := ar
|
STRIP := strip
|
RM := rm
|
|
CFLAGS += -c -Wall -DWITH_DOM -DWITH_NONAMESPACES -DWITH_OPENSSL
|
CFLAGS += -DPROTOBUF_USS_DLLS
|
CFLAGS += -fPIC -Wunused-function
|
|
SOURCES_CORE += \
|
core/soapC.c \
|
core/soapClient.c \
|
core/stdsoap2.c \
|
core/dom.c \
|
core/mecevp.c \
|
core/smdevp.c \
|
core/struct_timeval.c \
|
core/threads.c \
|
core/wsaapi.c \
|
core/wsseapi.c
|
|
SOURCES_SRVS += \
|
service/probe/probe.c \
|
service/deviceinfo/dev_info.c \
|
service/capabilities/capa.c \
|
service/ptz/ptz.c \
|
service/av_demux/av_demux.c
|
|
SOURCES_COMM += \
|
comm/proto_dbg.c \
|
comm/proto_comm.c \
|
|
OBJECTS_ONVIF_CORE := $(patsubst %.c,$(TEMPDIR)%.o,$(filter %.c, $(SOURCES_CORE)))
|
OBJECTS_ONVIF_SRVS := $(patsubst %.c,$(TEMPDIR)%.o,$(filter %.c, $(SOURCES_SRVS)))
|
OBJECTS_ONVIF_COMM := $(patsubst %.c,$(TEMPDIR)%.o,$(filter %.c, $(SOURCES_COMM)))
|
|
FFMPEG_DIR = thirdparty/ffmpeg
|
OPENSSL_DIR = thirdparty/openssl
|
|
TARGET_LIB = libonvif_std.so
|
#
|
INCLUDE += -Icore/ \
|
-Icomm/ \
|
-Iservice \
|
-I$(FFMPEG_DIR)/include \
|
-I$(OPENSSL_DIR)/include
|
CFLAGS += $(INCLUDE)
|
|
CFLAGS += -Wno-unused
|
LDFLAGS += -L$(FFMPEG_DIR)/lib
|
LDFLAGS += -L$(OPENSSL_DIR)/lib
|
LDFLAGS += -Lthirdparty
|
LDLIBS += -lavcodec -lavdevice -lavfilter -lavformat \
|
-lavutil -lswresample -lswscale
|
LDLIBS += -lcrypto -lssl -lpthread -ldl -lrt -lm
|
|
CFLAGS += -fPIC
|
|
DIRS_TEST = test/probe_test test/ptz_test test/av_test
|
|
%.o: $(SOURCES_CORE)/%.cpp $(SOURCES_SRVS)/%.cpp $(SOURCES_COMM)/%.cpp
|
@echo " CPP " $@;
|
@$(CPP) $(CFLAGS) -c -o $@ $<
|
|
%.o: $(SOURCES_CORE)/%.c $(SOURCES_SRVS)/%.c $(SOURCES_COMM)/%.c
|
@echo " CC " $@;
|
@$(CC) $(CFLAGS) -c -o $@ $<
|
|
all: $(OBJECTS_ONVIF_CORE) $(OBJECTS_ONVIF_SRVS) $(OBJECTS_ONVIF_COMM)
|
$(CC) -o ${TARGET_LIB} -shared -fPIC ${OBJECTS_ONVIF_CORE} ${OBJECTS_ONVIF_SRVS} ${OBJECTS_ONVIF_COMM}
|
@ for dir in ${DIRS_TEST}; do (cd $${dir}; ${MAKE}) ; done
|
|
clean:
|
$(RM) ${TARGET_LIB}
|
$(RM) $(OBJECTS_ONVIF_COMM)
|
$(RM) $(OBJECTS_ONVIF_SRVS)
|
@for dir in ${DIRS_TEST}; do (cd $${dir}; ${MAKE} clean) ; done
|
|
allclean: clean
|
$(RM) $(OBJECTS_ONVIF_CORE)
|
@ for dir in ${DIRS}; do (cd $${dir}; ${MAKE} allclean) ; done
|
|
.PHONY: all clean allclean
|
|