diff --git a/jni/pjproject-android/pjmedia/build/os-auto.mak.in b/jni/pjproject-android/pjmedia/build/os-auto.mak.in
new file mode 100644
index 0000000..04224e8
--- /dev/null
+++ b/jni/pjproject-android/pjmedia/build/os-auto.mak.in
@@ -0,0 +1,188 @@
+# @configure_input@
+
+# Define the desired video device backend
+# Valid values are:
+#   - mac_os
+#   - iphone_os
+AC_PJMEDIA_VIDEO = @ac_pjmedia_video@
+
+# SDL flags
+SDL_CFLAGS = @ac_sdl_cflags@
+SDL_LDFLAGS = @ac_sdl_ldflags@
+
+# FFMPEG dlags
+FFMPEG_CFLAGS = @ac_ffmpeg_cflags@ 
+FFMPEG_LDFLAGS =  @ac_ffmpeg_ldflags@
+
+# Video4Linux2
+V4L2_CFLAGS = @ac_v4l2_cflags@
+V4L2_LDFLAGS = @ac_v4l2_ldflags@
+
+# QT
+AC_PJMEDIA_VIDEO_HAS_QT = @ac_pjmedia_video_has_qt@
+QT_CFLAGS = @ac_qt_cflags@
+
+# iOS
+IOS_CFLAGS = @ac_ios_cflags@
+
+# PJMEDIA features exclusion
+export CFLAGS += @ac_no_small_filter@ @ac_no_large_filter@ @ac_no_speex_aec@ \
+		 $(SDL_CFLAGS) $(FFMPEG_CFLAGS) $(V4L2_CFLAGS) $(QT_CFLAGS) \
+		 $(IOS_CFLAGS)
+export LDFLAGS += $(SDL_LDFLAGS) $(FFMPEG_LDFLAGS) $(V4L2_LDFLAGS)
+
+# Define the desired sound device backend
+# Valid values are:
+#   - pa_unix:	    	PortAudio on Unix (OSS or ALSA)
+#   - pa_darwinos:  	PortAudio on MacOSX (CoreAudio)
+#   - pa_old_darwinos:  PortAudio on MacOSX (old CoreAudio, for OSX 10.2)
+#   - pa_win32:	    	PortAudio on Win32 (WMME)
+#   - ds:	    	Win32 DirectSound (dsound.c)
+#   - null:	    	Null sound device (nullsound.c)
+#   - external:		Link with no sounddev (app will provide)
+AC_PJMEDIA_SND=@ac_pjmedia_snd@
+
+# For Unix, specify if ALSA should be supported
+AC_PA_USE_ALSA=@ac_pa_use_alsa@
+
+# Additional PortAudio CFLAGS are in @ac_pa_cflags@
+
+#
+# Codecs
+#
+AC_NO_G711_CODEC=@ac_no_g711_codec@
+AC_NO_L16_CODEC=@ac_no_l16_codec@
+AC_NO_GSM_CODEC=@ac_no_gsm_codec@
+AC_NO_SPEEX_CODEC=@ac_no_speex_codec@
+AC_NO_ILBC_CODEC=@ac_no_ilbc_codec@
+AC_NO_G722_CODEC=@ac_no_g722_codec@
+AC_NO_G7221_CODEC=@ac_no_g7221_codec@
+AC_NO_OPENCORE_AMRNB=@ac_no_opencore_amrnb@
+AC_NO_OPENCORE_AMRWB=@ac_no_opencore_amrwb@
+
+export CODEC_OBJS=
+
+ifeq ($(AC_NO_G711_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_G711_CODEC=0
+else
+export CODEC_OBJS +=
+endif
+
+ifeq ($(AC_NO_L16_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_L16_CODEC=0
+else
+export CODEC_OBJS += l16.o
+endif
+
+ifeq ($(AC_NO_GSM_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_GSM_CODEC=0
+else
+export CODEC_OBJS += gsm.o
+endif
+
+ifeq ($(AC_NO_SPEEX_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_SPEEX_CODEC=0
+else
+export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include
+export CODEC_OBJS += speex_codec.o
+
+ifneq (@ac_no_speex_aec@,1)
+export PJMEDIA_OBJS += echo_speex.o
+endif
+
+endif
+
+ifeq ($(AC_NO_ILBC_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_ILBC_CODEC=0
+else
+export CODEC_OBJS += ilbc.o
+endif
+
+ifeq ($(AC_NO_G722_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_G722_CODEC=0
+else
+export CODEC_OBJS += g722.o g722/g722_enc.o g722/g722_dec.o
+endif
+
+ifeq ($(AC_NO_G7221_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_G7221_CODEC=0
+else
+export CODEC_OBJS += g7221.o
+export G7221_CFLAGS += -I$(THIRD_PARTY)
+endif
+
+ifeq ($(AC_NO_OPENCORE_AMRNB),1)
+export CFLAGS += -DPJMEDIA_HAS_OPENCORE_AMRNB_CODEC=0
+else
+export CODEC_OBJS += opencore_amr.o
+endif
+
+ifeq ($(AC_NO_OPENCORE_AMRWB),1)
+export CFLAGS += -DPJMEDIA_HAS_OPENCORE_AMRWB_CODEC=0
+else
+ifeq ($(AC_NO_OPENCORE_AMRNB),1)
+export CODEC_OBJS += opencore_amr.o
+endif
+endif
+
+
+#
+# PortAudio
+#
+ifneq ($(findstring pa,$(AC_PJMEDIA_SND)),)
+ifeq (@ac_external_pa@,1)
+# External PA
+export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=1
+else
+# Our PA in third_party
+export CFLAGS += -I$(THIRD_PARTY)/build/portaudio -I$(THIRD_PARTY)/portaudio/include -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=1
+endif
+endif
+
+#
+# Windows specific
+#
+ifneq ($(findstring win32,$(AC_PJMEDIA_SND)),)
+export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_WMME=1
+else
+export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_WMME=0
+endif
+
+#
+# Null sound device
+#
+ifeq ($(AC_PJMEDIA_SND),null)
+export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0 -DPJMEDIA_AUDIO_DEV_HAS_WMME=0
+endif
+
+#
+# External sound device
+#
+ifeq ($(AC_PJMEDIA_SND),external)
+export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0 -DPJMEDIA_AUDIO_DEV_HAS_WMME=0
+endif
+
+#
+# QT video device
+#
+ifeq ($(AC_PJMEDIA_VIDEO_HAS_QT),yes)
+export PJMEDIA_VIDEODEV_OBJS += qt_dev.o
+endif
+
+#
+# iOS video device
+#
+ifeq ($(AC_PJMEDIA_VIDEO),iphone_os)
+export PJMEDIA_VIDEODEV_OBJS += ios_dev.o
+endif
+
+#
+# Determine whether we should compile the obj-c version of a particular source code
+#
+ifneq (,$(filter $(AC_PJMEDIA_VIDEO),mac_os iphone_os))
+# Mac and iPhone OS specific, use obj-c
+export PJMEDIA_VIDEODEV_OBJS += sdl_dev_m.o
+else
+# Other platforms, compile .c
+export PJMEDIA_VIDEODEV_OBJS += sdl_dev.o
+endif
