APP := lib$(PROJECT)_$(MARCH).$(EXT) THIRDPARTIES_INC := ../thirdparties/android/include THIRDPARTIES_LIB := ../thirdparties/android/lib THIRDPARTIES_MARCH_LIB := ../thirdparties/android/lib/$(MARCH) ########## # Before starting to set parmeters we will override those provided by the user # ifeq ($(LICENSE),lgpl) H264 := no endif ########## # Set LD and CFLAGS according to the user parameters # # FFMPEG (Default: enabled) ifeq ($(FFMPEG), no) FFMPEG_CFLAGS := -DHAVE_FFMPEG=0 FFMPEG_LDFLAGS := else FFMPEG_CFLAGS := -DHAVE_FFMPEG=1 FFMPEG_LDFLAGS := -lavutil-$(LICENSE) -lswscale-$(LICENSE) -lavcore-$(LICENSE) -lavcodec-$(LICENSE) endif # H264 (Default: enabled) ifeq ($(H264),no) # TODO: should depend on FFMPEG FFMPEG_CFLAGS := $(FFMPEG_CFLAGS) -DHAVE_H264=0 else FFMPEG_CFLAGS := $(FFMPEG_CFLAGS) -DHAVE_H264=1 FFMPEG_LDFLAGS := $(FFMPEG_LDFLAGS) -lx264 endif # THEORA (Default: enabled) ifeq ($(THEORA),no) # TODO: should depend on FFMPEG FFMPEG_CFLAGS := $(FFMPEG_CFLAGS) -DHAVE_THEORA=0 else FFMPEG_CFLAGS := $(FFMPEG_CFLAGS) -DHAVE_THEORA=1 FFMPEG_LDFLAGS := $(FFMPEG_LDFLAGS) -ltheora -logg endif # AMR (Default: enabled) ifeq ($(OPENCORE_AMR), no) OPENCORE_AMR_CFLAGS := -DHAVE_OPENCORE_AMR=0 else OPENCORE_AMR_CFLAGS := -DHAVE_OPENCORE_AMR=1 OPENCORE_AMR_LDFLAGS := -lopencore-amrnb endif # SPEEX_DSP (Default: disabled) ifeq ($(SPEEX_DSP), yes) SPEEX_DSP_CFLAGS := -DHAVE_SPEEX_DSP=1 SPEEX_DSP_LDFLAGS := -lspeexdsp # Speex audio resampler (Default: enabled) ifneq ($(SPEEX_RESAMPLER), no) SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_RESAMPLER=1 else SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_RESAMPLER=0 endif # Speex audio/video jitterbuffer (Default: enabled) ifneq ($(SPEEX_JB), no) SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_JB=1 else SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_JB=0 endif # Speex audio denoiser (Default: disabled) ifeq ($(SPEEX_DENOISE), yes) SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_DENOISE=1 else SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_DENOISE=0 endif else SPEEX_DSP_CFLAGS := -DHAVE_SPEEX_DSP=0 endif # SPEEX (Default: disabled) ifeq ($(SPEEX), yes) SPEEX_CFLAGS := -DHAVE_LIB_SPEEX=1 SPEEX_LDFLAGS := -lspeex else SPEEX_CFLAGS := -DHAVE_LIB_SPEEX=0 endif # Google WebRTC (Default: enabled) ifeq ($(HAVE_WEBRTC), yes) WEBRTC_CFLAGS := -DHAVE_WEBRTC=1 WEBRTC_LDFLAGS := -lwebrtc_aec_$(MARCH) -lwebrtc_apm_utility_$(MARCH) -lwebrtc_ns_$(MARCH) -lwebrtc_system_wrappers_$(MARCH) else WEBRTC_CFLAGS := -DHAVE_WEBRTC=0 endif ifeq ($(HAVE_WEBRTC_DENOISE), yes) WEBRTC_CFLAGS += -DHAVE_WEBRTC_DENOISE=1 endif # ILBC (Default: disabled) ifeq ($(ILBC), yes) ILBC_CFLAGS := -DHAVE_ILBC=1 ILBC_LDFLAGS := -liLBC else ILBC_CFLAGS := -DHAVE_ILBC=0 endif # GSM (Default: enabled) ifeq ($(LIBGSM),no) LIBGSM_CFLAGS := -DHAVE_LIBGSM=0 else LIBGSM_CFLAGS := -DHAVE_LIBGSM=1 LIBGSM_LDFLAGS := -lgsm endif # BV16 (Always disabled) #BV16_CFLAGS := -DHAVE_BV16=0 -I$(THIRDPARTIES_INC)/BroadVoice16/bv16 -I$(THIRDPARTIES_INC)/BroadVoice16/bvcommon #BV16_LDFLAGS := -lbv16 # G.729 (Default: Disabled) ifeq ($(G729), yes) G729_CFLAGS := -DHAVE_G729=1 -DG729_ENABLE_VAD=0 -D__unix__ G729_LDFLAGS := -lg729b_$(MARCH) # Reset all other ITU CODECS OPENCORE_AMR_CFLAGS := -DHAVE_OPENCORE_AMR=0 OPENCORE_AMR_LDFLAGS := BV16_CFLAGS := -DHAVE_BV16=0 BV16_LDFLAGS := else G729_CFLAGS := -DHAVE_G729=0 G729_LDFLAGS := endif ################################ CFLAGS := $(CFLAGS_LIB) -I$(THIRDPARTIES_INC) $(ILBC_CFLAGS) $(LIBGSM_CFLAGS) \ $(FFMPEG_CFLAGS) $(SPEEX_CFLAGS) $(SPEEX_DSP_CFLAGS) $(WEBRTC_CFLAGS) $(OPENCORE_AMR_CFLAGS) $(BV16_CFLAGS) $(G729_CFLAGS) \ -I../tinySAK/src -I../tinyNET/src -I../tinySDP/include -I../tinyRTP/include -I../tinyMEDIA/include -I../tinyMSRP/include -I./include \ -DJB_HISTORY_SIZE=500 LDFLAGS := $(LDFLAGS_LIB) -L$(THIRDPARTIES_LIB) -L$(THIRDPARTIES_MARCH_LIB) \ $(FFMPEG_LDFLAGS) $(SPEEX_LDFLAGS) $(SPEEX_DSP_LDFLAGS) $(WEBRTC_LDFLAGS) $(OPENCORE_AMR_LDFLAGS) $(ILBC_LDFLAGS) $(LIBGSM_LDFLAGS) $(BV16_LDFLAGS) $(G729_LDFLAGS)\ -ltinySAK_$(MARCH) -ltinyNET_$(MARCH) -ltinySDP_$(MARCH) -ltinyRTP_$(MARCH) -ltinyMEDIA_$(MARCH) -ltinyMSRP_$(MARCH) -lm -lgcc all: $(APP) OBJS = \ src/tdav.o ### audio OBJS += src/audio/tdav_consumer_audio.o \ src/audio/tdav_speakup_jitterbuffer.o \ src/audio/tdav_jitterbuffer.o \ src/audio/tdav_producer_audio.o \ src/audio/tdav_session_audio.o \ src/audio/tdav_speex_denoise.o \ src/audio/tdav_speex_jitterbuffer.o \ src/audio/tdav_speex_resampler.o \ src/audio/tdav_webrtc_denoise.o ### video OBJS += src/video/tdav_converter_video.o \ src/video/tdav_runnable_video.o \ src/video/tdav_session_video.o ### msrp OBJS += src/msrp/tdav_consumer_msrp.o \ src/msrp/tdav_producer_msrp.o \ src/msrp/tdav_session_msrp.o ### codecs (AMR) OBJS += src/codecs/amr/tdav_codec_amr.o ### codecs (G.711) OBJS += src/codecs/g711/g711.o \ src/codecs/g711/tdav_codec_g711.o ### codecs (G.729) OBJS += src/codecs/g729/tdav_codec_g729.o ### codecs (GSM) OBJS += src/codecs/gsm/tdav_codec_gsm.o ### codecs (BV16) OBJS += src/codecs/bv/tdav_codec_bv16.o \ src/codecs/bv/tdav_codec_bv32.o ### codecs (iLBC) OBJS += src/codecs/ilbc/tdav_codec_ilbc.o ### codecs (Speex) OBJS += src/codecs/speex/tdav_codec_speex.o ### codecs (DTMF) OBJS += src/codecs/dtmf/tdav_codec_dtmf.o ### codecs (H.261) OBJS += src/codecs/h261/tdav_codec_h261.o ### codecs (H.263) OBJS += src/codecs/h263/tdav_codec_h263.o ### codecs (H.264) OBJS += src/codecs/h264/tdav_codec_h264.o \ src/codecs/h264/tdav_codec_h264_rtp.o ### codecs (Theora) OBJS += src/codecs/theora/tdav_codec_theora.o ### codecs (MP4V-ES) OBJS += src/codecs/mp4ves/tdav_codec_mp4ves.o ### codecs (MSRP) OBJS += src/codecs/msrp/tdav_codec_msrp.o $(APP): $(OBJS) ifeq ($(EXT), a) $(AR) rcs $@ $^ else $(CC) $(LDFLAGS) -o $@ $^ endif %.o: %.c $(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@ install: $(APP) $(ANDROID_SDK_ROOT)/tools/adb remount $(ANDROID_SDK_ROOT)/tools/adb push $(APP) $(LIB_DIR)/$(APP) $(ANDROID_SDK_ROOT)/tools/adb shell chmod 777 $(LIB_DIR)/$(APP) clean: @rm -f $(OBJS) $(APP)