diff --git a/jni/pjproject-android/.svn/pristine/7b/7bb3d5e83294b9fec0f736f8d226964d40828376.svn-base b/jni/pjproject-android/.svn/pristine/7b/7bb3d5e83294b9fec0f736f8d226964d40828376.svn-base
new file mode 100644
index 0000000..a939db4
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/7b/7bb3d5e83294b9fec0f736f8d226964d40828376.svn-base
@@ -0,0 +1,230 @@
+ifeq ($(LIBDIR),)
+LIBDIR = ../lib
+endif
+ifeq ($(BINDIR),)
+BINDIR = ../bin
+endif
+
+#
+# The name(s) of output lib file(s) (e.g. libapp.a).
+#
+LIB := $($(APP)_LIB)
+SHLIB = $($(APP)_SHLIB)
+SONAME = $($(APP)_SONAME)
+
+ifeq ($(SHLIB_SUFFIX),so)
+SHLIB_OPT := -shared -Wl,-soname,$(SHLIB)
+else ifeq ($(SHLIB_SUFFIX),dylib)
+SHLIB_OPT := -dynamiclib -undefined dynamic_lookup -flat_namespace
+else
+SHLIB_OPT := 
+endif
+
+#
+# The name of output executable file (e.g. app.exe).
+#
+EXE = $($(APP)_EXE)
+
+#
+# Source directory
+#
+SRCDIR = $($(APP)_SRCDIR)
+
+#
+# Output directory for object files (i.e. output/target)
+#
+OBJDIR = output/$(app)-$(TARGET_NAME)
+
+ifeq ($(OS_NAME),linux-kernel)
+export $(APP)_CFLAGS += -DKBUILD_MODNAME=$(app) -DKBUILD_BASENAME=$(app)
+endif
+
+
+#
+# OBJS is ./output/target/file.o
+#
+OBJS = $(foreach file, $($(APP)_OBJS), $(OBJDIR)/$(file))
+OBJDIRS := $(sort $(dir $(OBJS)))
+
+#
+# FULL_SRCS is ../src/app/file1.c ../src/app/file1.S
+#
+FULL_SRCS = $(foreach file, $($(APP)_OBJS), $(SRCDIR)/$(basename $(file)).m $(SRCDIR)/$(basename $(file)).c $(SRCDIR)/$(basename $(file)).cpp $(SRCDIR)/$(basename $(file)).S)
+
+#
+# When generating dependency (gcc -MM), ideally we use only either
+# CFLAGS or CXXFLAGS (not both). But I just couldn't make if/ifeq to work.
+#
+DEPFLAGS = $($(APP)_CXXFLAGS) $($(APP)_CFLAGS)
+
+# Dependency file
+DEP_FILE := .$(app)-$(TARGET_NAME).depend
+
+
+print_common:
+	@echo "###"
+	@echo "### DUMPING MAKE VARIABLES (I WON'T DO ANYTHING ELSE):"
+	@echo "###"
+	@echo APP=$(APP)
+	@echo OBJDIR=$(OBJDIR)
+	@echo OBJDIRS=$(OBJDIRS)
+	@echo OBJS=$(OBJS)
+	@echo SRCDIR=$(SRCDIR)
+	@echo FULL_SRCS=$(FULL_SRCS)
+	@echo $(APP)_CFLAGS=$($(APP)_CFLAGS)
+	@echo $(APP)_CXXFLAGS=$($(APP)_CXXFLAGS)
+	@echo $(APP)_LDFLAGS=$($(APP)_LDFLAGS)
+	@echo DEPFLAGS=$(DEPFLAGS)
+	@echo CC=$(CC)
+	@echo AR=$(AR)
+	@echo AR_FLAGS=$(AR_FLAGS)
+	@echo RANLIB=$(RANLIB)
+
+print_bin: print_common
+	@echo EXE=$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE))
+	@echo BINDIR=$(BINDIR)
+ 
+print_lib: print_common
+ifneq ($(LIB),)
+	@echo LIB=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB))
+endif
+ifneq ($(SHLIB),)
+	@echo SHLIB=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB))
+endif
+ifneq ($(SONAME),)
+	@echo SONAME=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME))
+endif
+	@echo LIBDIR=$(LIBDIR)
+
+ifneq ($(LIB),)
+$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
+	if test ! -d $(LIBDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR)); fi
+	$(AR) $(AR_FLAGS) $@ $(OBJS)
+	$(RANLIB) $@
+endif
+
+ifneq ($(SHLIB),)
+$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
+	if test ! -d $(LIBDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR)); fi
+	$(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$@) \
+	    $(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS) $(SHLIB_OPT)
+endif
+ 
+ifneq ($(SONAME),)
+$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME)): $(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB))
+	ln -sf $(SHLIB) $@
+endif
+
+ifneq ($(EXE),)
+$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
+	if test ! -d $(BINDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)),$(HOST_MKDIR)); fi
+	$(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)) \
+	    $(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS)
+endif
+
+$(OBJDIR)/$(app).o: $(OBJDIRS) $(OBJS)
+	$(CROSS_COMPILE)ld -r -o $@ $(OBJS)
+
+$(OBJDIR)/$(app).ko: $(OBJDIR)/$(app).o
+	@echo Creating kbuild Makefile...
+	@echo "# Our module name:" > $(OBJDIR)/Makefile
+	@echo 'obj-m += $(app).o' >> $(OBJDIR)/Makefile
+	@echo >> $(OBJDIR)/Makefile
+	@echo "# Object members:" >> $(OBJDIR)/Makefile
+	@echo -n '$(app)-objs += ' >> $(OBJDIR)/Makefile
+	@for file in $($(APP)_OBJS); do \
+		echo -n "$$file " >> $(OBJDIR)/Makefile; \
+	done
+	@echo >> $(OBJDIR)/Makefile
+	@echo >> $(OBJDIR)/Makefile
+	@echo "# Prevent .o files to be built by kbuild:" >> $(OBJDIR)/Makefile
+	@for file in $($(APP)_OBJS); do \
+		echo ".PHONY: `pwd`/$(OBJDIR)/$$file" >> $(OBJDIR)/Makefile; \
+	done
+	@echo >> $(OBJDIR)/Makefile
+	@echo all: >> $(OBJDIR)/Makefile
+	@echo -e "\tmake -C $(KERNEL_DIR) M=`pwd`/$(OBJDIR) modules $(KERNEL_ARCH)" >> $(OBJDIR)/Makefile
+	@echo Invoking kbuild...
+	make -C $(OBJDIR)
+
+../lib/$(app).ko: $(LIB) $(OBJDIR)/$(app).ko
+	cp $(OBJDIR)/$(app).ko ../lib
+
+$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.m
+	$(CC) $($(APP)_CFLAGS) \
+		$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
+		$(subst /,$(HOST_PSEP),$<) 
+
+$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.c
+	$(CC) $($(APP)_CFLAGS) \
+		$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
+		$(subst /,$(HOST_PSEP),$<) 
+
+$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.S
+	$(CC) $($(APP)_CFLAGS) \
+		$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
+		$(subst /,$(HOST_PSEP),$<) 
+
+$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cpp
+	$(CXX) $($(APP)_CXXFLAGS) \
+		$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
+		$(subst /,$(HOST_PSEP),$<)
+
+$(OBJDIRS):
+	$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
+
+$(LIBDIR):
+	$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
+
+$(BINDIR):
+	$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
+
+clean:
+	$(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)/*),$(HOST_RMR))
+	$(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)),$(HOST_RMDIR))
+ifeq ($(OS_NAME),linux-kernel)
+	rm -f ../lib/$(app).o
+endif
+
+gcov-report:
+	for file in $(FULL_SRCS); do \
+		gcov $$file -n -o $(OBJDIR); \
+	done
+
+realclean: clean
+ifneq ($(LIB),)
+	$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB)),$(HOST_RM))
+endif
+ifneq ($(SHLIB),)
+	$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB)),$(HOST_RM))
+endif
+ifneq ($(SONAME),)
+	$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME)),$(HOST_RM))
+endif
+ifneq ($(EXE),)
+	$(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)),$(HOST_RM))
+endif
+	$(subst @@,$(DEP_FILE),$(HOST_RM))
+ifeq ($(OS_NAME),linux-kernel)
+	rm -f ../lib/$(app).ko
+endif
+
+depend:
+	$(subst @@,$(DEP_FILE),$(HOST_RM))
+	for F in $(FULL_SRCS); do \
+	   if test -f $$F; then \
+	     echo "$(OBJDIR)/" | tr -d '\n' >> $(DEP_FILE); \
+	     if $(CC) -M $(DEPFLAGS) $$F | sed '/^#/d' >> $(DEP_FILE); then \
+		true; \
+	     else \
+		echo 'err:' >> $(DEP_FILE); \
+		rm -f $(DEP_FILE); \
+		exit 1; \
+	     fi; \
+	   fi; \
+	done;
+
+dep: depend
+
+-include $(DEP_FILE)
+
