################OPTION################### OUTPUT = gb28181device CCOMPILE = gcc CPPCOMPILE = g++ COMPILEOPTION += -c -O3 -Wall COMPILEOPTION += -DIOS 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/usr/local/include LIBDIRS += -L/usr/local/lib 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) $(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