FuJuntang
2022-07-06 e795b6226a92961ae10d5ef497d2f78fe88fb918
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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