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