diff options
Diffstat (limited to 'tinyDAV/droid-makefile')
-rw-r--r-- | tinyDAV/droid-makefile | 297 |
1 files changed, 297 insertions, 0 deletions
diff --git a/tinyDAV/droid-makefile b/tinyDAV/droid-makefile new file mode 100644 index 0000000..75c2aa2 --- /dev/null +++ b/tinyDAV/droid-makefile @@ -0,0 +1,297 @@ +APP := lib$(PROJECT)_$(MARCH).$(EXT) + +THIRDPARTIES_INC := ../thirdparties/android/include +THIRDPARTIES_INC_COMMON := ../thirdparties/common/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 +# LibYUV (Default: enabled) +ifeq ($(LIBYUV), no) + LIBYUV_CFLAGS := -DHAVE_LIBYUV=0 + LIBYUV_LDFLAGS := +else + LIBYUV_CFLAGS := -DHAVE_LIBYUV=1 -I$(THIRDPARTIES_INC_COMMON)/libyuv + LIBYUV_LDFLAGS := -lyuv_$(MARCH) +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 +# VP8 (Default: disabled because of NEON) +ifeq ($(VPX),yes) + VPX_CFLAGS := -DHAVE_LIBVPX=1 + VPX_LDFLAGS := -lvpx_$(MARCH) + +else + VPX_CFLAGS := -DHAVE_LIBVPX=0 +endif + +# OPUS (Default: enabled) +ifeq ($(OPUS), no) + OPUS_CFLAGS := -DHAVE_LIBOPUS=0 +else + OPUS_CFLAGS := -DHAVE_LIBOPUS=1 + OPUS_LDFLAGS := -lopus +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 ($(WEBRTC), yes) + WEBRTC_CFLAGS := -DHAVE_WEBRTC=1 + WEBRTC_LDFLAGS := -lwebrtc_aec_$(MARCH) -lwebrtc_spl_$(MARCH) -lwebrtc_apm_utility_$(MARCH) -lwebrtc_nsx_$(MARCH) -lwebrtc_system_wrappers_$(MARCH) +else + WEBRTC_CFLAGS := -DHAVE_WEBRTC=0 +endif + +ifeq ($(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 + +# SRTP (Default: enabled) +ifeq ($(SRTP),no) + LIBSRTP_CFLAGS := -DHAVE_SRTP=0 +else + LIBSRTP_CFLAGS := -DHAVE_SRTP=1 + LIBSRTP_LDFLAGS := -lsrtp +endif + + +################################ + +CFLAGS := $(CFLAGS_LIB) -I$(THIRDPARTIES_INC) -I$(THIRDPARTIES_INC_COMMON) $(ILBC_CFLAGS) $(LIBGSM_CFLAGS) \ + $(FFMPEG_CFLAGS) $(LIBYUV_CFLAGS) $(VPX_CFLAGS) $(SPEEX_CFLAGS) $(SPEEX_DSP_CFLAGS) $(WEBRTC_CFLAGS) $(OPUS_CFLAGS) $(OPENCORE_AMR_CFLAGS) $(BV16_CFLAGS) $(G729_CFLAGS) \ + $(LIBSRTP_CFLAGS) \ + -I../tinySAK/src -I../tinyNET/src -I../tinyIPSec/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) $(LIBYUV_LDFLAGS) $(VPX_LDFLAGS) $(SPEEX_LDFLAGS) $(SPEEX_DSP_LDFLAGS) $(WEBRTC_LDFLAGS) $(OPUS_LDFLAGS) $(OPENCORE_AMR_LDFLAGS) $(ILBC_LDFLAGS) $(LIBGSM_LDFLAGS) $(BV16_LDFLAGS) $(G729_LDFLAGS) \ + $(LIBSRTP_LDFLAGS) \ + -ltinySAK_$(MARCH) -ltinyNET_$(MARCH) -ltinyIPSec_$(MARCH) -ltinySDP_$(MARCH) -ltinyRTP_$(MARCH) -ltinyMEDIA_$(MARCH) -ltinyMSRP_$(MARCH) -lm -lgcc + +all: $(APP) + +OBJS = \ + src/tdav.o \ + src/tdav_session_av.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_consumer_video.o \ + src/video/tdav_converter_video.o \ + src/video/tdav_runnable_video.o \ + src/video/tdav_session_video.o \ + src/video/jb/tdav_video_frame.o \ + src/video/jb/tdav_video_jb.o + + ### T.140 +OBJS += src/t140/tdav_consumer_t140.o \ + src/t140/tdav_producer_t140.o \ + src/t140/tdav_session_t140.o + + ### msrp +OBJS += src/msrp/tdav_consumer_msrp.o \ + src/msrp/tdav_producer_msrp.o \ + src/msrp/tdav_session_msrp.o + + ### codecs (OPUS) +OBJS += src/codecs/opus/tdav_codec_opus.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.722) +OBJS += src/codecs/g722/g722_decode.o \ + src/codecs/g722/g722_encode.o \ + src/codecs/g722/tdav_codec_g722.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 (FEC) +OBJS += src/codecs/fec/tdav_codec_red.o \ + src/codecs/fec/tdav_codec_ulpfec.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 (VPX) +OBJS += src/codecs/vpx/tdav_codec_vp8.o + + ### codecs (MP4V-ES) +OBJS += src/codecs/mp4ves/tdav_codec_mp4ves.o + + ### codecs (MSRP) +OBJS += src/codecs/msrp/tdav_codec_msrp.o + + ### T.140 +OBJS += src/codecs/t140/tdav_codec_t140.o + +$(APP): $(OBJS) +ifeq ($(EXT), a) + $(AR) rcs $@ $^ +else + $(CC) $(LDFLAGS) -o $@ $^ +endif + +%.o: %.c + $(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@ + +%.o: %.cxx + $(CPP) -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)
\ No newline at end of file |