Files
gb28181/GB28181Device/Makefile
2024-12-15 20:42:32 +08:00

263 lines
5.8 KiB
Makefile

################OPTION###################
OUTPUT = gb28181device
CCOMPILE = gcc
CPPCOMPILE = g++
COMPILEOPTION += -c -O3 -Wall
COMPILEOPTION += -DEPOLL
COMPILEOPTION += -DMEDIA_FILE
COMPILEOPTION += -DMEDIA_DEVICE
COMPILEOPTION += -DMEDIA_PROXY
COMPILEOPTION += -DRTMP_PROXY
COMPILEOPTION += -DSRT_PROXY
COMPILEOPTION += -DOVER_HTTP
COMPILEOPTION += -DOVER_WEBSOCKET
COMPILEOPTION += -DHTTPS
LINK = g++
LINKOPTION += -o $(OUTPUT)
INCLUDEDIR += -I./bm
INCLUDEDIR += -I./http
INCLUDEDIR += -I./librtmp
INCLUDEDIR += -I./media
INCLUDEDIR += -I./rtmp
INCLUDEDIR += -I./rtp
INCLUDEDIR += -I./rtsp
INCLUDEDIR += -I./sip
INCLUDEDIR += -I./srt
INCLUDEDIR += -I./libsrt/include
INCLUDEDIR += -I./ffmpeg/include
INCLUDEDIR += -I./openssl/include
INCLUDEDIR += -I./zlib/include
LIBDIRS += -L./libsrt/lib/linux
LIBDIRS += -L./ffmpeg/lib/linux
LIBDIRS += -L./openssl/lib/linux
LIBDIRS += -L./zlib/lib/linux
OBJS += bm/base64.o
OBJS += bm/digcalc.o
OBJS += bm/hqueue.o
OBJS += bm/hxml.o
OBJS += bm/ihash.o
OBJS += bm/linked_list.o
OBJS += bm/ppstack.o
OBJS += bm/rfc_md5.o
OBJS += bm/sys_buf.o
OBJS += bm/sys_log.o
OBJS += bm/sys_os.o
OBJS += bm/util.o
OBJS += bm/word_analyse.o
OBJS += bm/xml_node.o
OBJS += media/media_parse.o
OBJS += media/media_util.o
OBJS += rtp/aac_rtp_rx.o
OBJS += rtp/h264_util.o
OBJS += rtp/h265_util.o
OBJS += rtp/pcm_rtp_rx.o
OBJS += rtp/ps.o
OBJS += rtp/rtp.o
OBJS += rtp/rtp_rx.o
OBJS += rtp/rtp_tx.o
OBJS += rtsp/mansrtsp.o
OBJS += rtsp/rtsp_parse.o
OBJS += sip/gb28181.o
OBJS += sip/gb28181_cfg.o
OBJS += sip/gb28181_msg.o
OBJS += sip/gb28181_subscribe.o
OBJS += sip/hsip.o
OBJS += sip/sip_cm.o
OBJS += sip/sip_msg.o
OBJS += sip/sip_parse.o
OBJS += sip/sip_pstate.o
OBJS += sip/sip_reg.o
OBJS += sip/sip_rx.o
OBJS += sip/sip_timer.o
OBJS += sip/sip_trans.o
OBJS += sip/sip_tx.o
OBJS += sip/sip_util.o
OBJS += sip/sua.o
OBJS += sip/sua_sdp.o
OBJS += sip/ua_media.o
OBJS += getopt.o
OBJS += main.o
ffmpeg := 0
ifneq ($(findstring MEDIA_FILE, $(COMPILEOPTION)),)
ffmpeg := 1
endif
ifneq ($(findstring MEDIA_DEVICE, $(COMPILEOPTION)),)
ffmpeg := 1
endif
ifeq ($(ffmpeg), 1)
OBJS += media/audio_decoder.o
OBJS += media/audio_encoder.o
OBJS += media/audio_play.o
OBJS += media/avcodec_mutex.o
OBJS += media/media_codec.o
OBJS += media/video_decoder.o
OBJS += media/video_encoder.o
ifeq ($(findstring IOS, $(COMPILEOPTION)),)
OBJS += media/alsa.o
OBJS += media/audio_play_linux.o
else
OBJS += media/audio_play_avf.o
OBJS += media/audio_play_mac.o
endif
endif
ifneq ($(findstring MEDIA_FILE, $(COMPILEOPTION)),)
OBJS += media/file_demux.o
endif
ifneq ($(findstring MEDIA_DEVICE, $(COMPILEOPTION)),)
OBJS += media/audio_capture.o
OBJS += media/screen_capture.o
OBJS += media/video_capture.o
OBJS += media/window_capture.o
ifeq ($(findstring IOS, $(COMPILEOPTION)),)
OBJS += media/v4l2.o
OBJS += media/v4l2_comm.o
OBJS += media/xcb_util.o
OBJS += media/audio_capture_linux.o
OBJS += media/screen_capture_linux.o
OBJS += media/video_capture_linux.o
OBJS += media/window_capture_linux.o
else
OBJS += media/audio_capture_avf.o
OBJS += media/audio_capture_mac.o
OBJS += media/screen_capture_avf.o
OBJS += media/screen_capture_mac.o
OBJS += media/video_capture_avf.o
OBJS += media/video_capture_mac.o
OBJS += media/window_capture_avf.o
OBJS += media/window_capture_mac.o
endif
endif
ifneq ($(findstring MEDIA_LIVE, $(COMPILEOPTION)),)
OBJS += media/live_audio.o
OBJS += media/live_video.o
endif
ifneq ($(findstring MEDIA_PROXY, $(COMPILEOPTION)),)
OBJS += http/http_cln.o
OBJS += http/http_mjpeg_cln.o
OBJS += http/http_parse.o
OBJS += http/http_test.o
OBJS += media/media_proxy.o
OBJS += rtp/h264_rtp_rx.o
OBJS += rtp/h265_rtp_rx.o
OBJS += rtp/mjpeg_rtp_rx.o
OBJS += rtp/mjpeg_tables.o
OBJS += rtp/mpeg4.o
OBJS += rtp/mpeg4_rtp_rx.o
OBJS += rtsp/rtsp_cln.o
OBJS += rtsp/rtsp_rcua.o
OBJS += rtsp/rtsp_util.o
OBJS += rtsp/rtsp_ws.o
endif
ifneq ($(findstring RTMP_PROXY, $(COMPILEOPTION)),)
OBJS += librtmp/amf.o
OBJS += librtmp/hashswf.o
OBJS += librtmp/log.o
OBJS += librtmp/parseurl.o
OBJS += librtmp/rtmp.o
OBJS += rtmp/rtmp_cln.o
endif
ifneq ($(findstring SRT_PROXY, $(COMPILEOPTION)),)
OBJS += rtp/ts_parser.o
OBJS += srt/srt_cln.o
endif
ifeq ($(ffmpeg), 1)
SHAREDLIB += -lavcodec
SHAREDLIB += -lavformat
SHAREDLIB += -lavutil
SHAREDLIB += -lswresample
SHAREDLIB += -lswscale
SHAREDLIB += -lopus
SHAREDLIB += -lx264
SHAREDLIB += -lx265
ifeq ($(findstring IOS, $(COMPILEOPTION)),)
SHAREDLIB += -lasound
else
SHAREDLIB += -framework AudioToolbox
SHAREDLIB += -framework AVFoundation
SHAREDLIB += -framework CoreAudio
SHAREDLIB += -framework CoreFoundation
SHAREDLIB += -framework CoreGraphics
SHAREDLIB += -framework CoreMedia
SHAREDLIB += -framework CoreVideo
SHAREDLIB += -framework Foundation
endif
endif
ifneq ($(findstring MEDIA_DEVICE, $(COMPILEOPTION)),)
SHAREDLIB += -lxcb
endif
ifneq ($(findstring SRT_PROXY, $(COMPILEOPTION)),)
SHAREDLIB += -lsrt
endif
openssl := 0
ifneq ($(findstring HTTPS, $(COMPILEOPTION)),)
openssl := 1
endif
ifneq ($(findstring RTMP_PROXY, $(COMPILEOPTION)),)
openssl := 1
endif
ifneq ($(findstring SRT_PROXY, $(COMPILEOPTION)),)
openssl := 1
endif
ifeq ($(openssl), 1)
SHAREDLIB += -lcrypto
SHAREDLIB += -lssl
SHAREDLIB += -lz
endif
SHAREDLIB += -lpthread
APPENDLIB =
################OPTION END################
$(OUTPUT):$(OBJS) $(APPENDLIB)
./mklinks.sh
$(LINK) $(LINKOPTION) $(LIBDIRS) $(OBJS) $(SHAREDLIB) $(APPENDLIB)
clean:
rm -f $(OBJS)
rm -f $(OUTPUT)
all: clean $(OUTPUT)
.PRECIOUS:%.cpp %.cc %.cxx %.c %.m %.mm
.SUFFIXES:
.SUFFIXES: .cpp .cc .cxx .c .m .mm .o
.cpp.o:
$(CPPCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.cpp
.cc.o:
$(CCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.cc
.cxx.o:
$(CPPCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.cxx
.c.o:
$(CCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.c
.m.o:
$(CCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.m
.mm.o:
$(CPPCOMPILE) -c -o $*.o $(COMPILEOPTION) $(INCLUDEDIR) $*.mm