Index: pjproject/branches/symbian/build/m-armv4.mak
===================================================================
--- pjproject/branches/symbian/build/m-armv4.mak	(revision 478)
+++ pjproject/branches/symbian/build/m-armv4.mak	(revision 478)
@@ -0,0 +1,4 @@
+export M_CFLAGS := $(CC_DEF)PJ_M_ARMV4=1
+export M_CXXFLAGS :=
+export M_LDFLAGS :=
+export M_SOURCES :=
Index: pjproject/branches/symbian/build/os-symbian.mak
===================================================================
--- pjproject/branches/symbian/build/os-symbian.mak	(revision 478)
+++ pjproject/branches/symbian/build/os-symbian.mak	(revision 478)
@@ -0,0 +1,10 @@
+export OS_CFLAGS   := $(CC_DEF)PJ_SYMBIAN=1 -I$(SYMBIAN_SDK_PATH)/include -I$(SYMBIAN_SDK_PATH)/include/libc -O
+
+export OS_CXXFLAGS :=
+
+export OS_LDFLAGS  :=
+
+export OS_SOURCES  :=
+
+export TARGET_EXE := .exe
+
Index: pjproject/branches/symbian/pjlib/build/os-symbian.mak
===================================================================
--- pjproject/branches/symbian/pjlib/build/os-symbian.mak	(revision 478)
+++ pjproject/branches/symbian/pjlib/build/os-symbian.mak	(revision 478)
@@ -0,0 +1,41 @@
+#
+# PJLIB OS specific configuration for Symbian
+#
+
+#
+# PJLIB_OBJS specified here are object files to be included in PJLIB
+# (the library) for this specific operating system. Object files common
+# to all operating systems should go in Makefile instead.
+#
+export PJLIB_OBJS +=
+
+#
+# TEST_OBJS are operating system specific object files to be included in
+# the test application.
+#
+export TEST_OBJS +=	main.o
+
+#
+# RTEMS_LIBRARY_PATH points to the installed RTEMS libraries for the
+# desired target.  pjlib-test can't link without this.
+#
+#export RTEMS_LIBRARY_PATH := $(RTEMS_LIBRARY_PATH)
+
+#
+# Additional LDFLAGS for pjlib-test
+#
+export TEST_LDFLAGS +=
+
+#
+# TARGETS are make targets in the Makefile, to be executed for this given
+# operating system.
+#
+export TARGETS	    =	pjlib pjlib-test.bas
+
+pjlib-test.bas: pjlib-test
+	@echo [creating bas]
+
+
+
+
+
Index: pjproject/branches/symbian/pjlib/include/pj/compat/os_symbian.h
===================================================================
--- pjproject/branches/symbian/pjlib/include/pj/compat/os_symbian.h	(revision 478)
+++ pjproject/branches/symbian/pjlib/include/pj/compat/os_symbian.h	(revision 478)
@@ -0,0 +1,139 @@
+/* $Id$ */
+/*
+ * Copyright (C)2003-2006 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+#ifndef __PJ_COMPAT_OS_SYMBIAN_H__
+#define __PJ_COMPAT_OS_SYMBIAN_H__
+
+/**
+ * @file os_symbian.h
+ * @brief Describes Symbian operating system specifics.
+ */
+
+#define PJ_OS_NAME		    "symbian"
+
+#define PJ_HAS_ARPA_INET_H	    1
+#define PJ_HAS_ASSERT_H		    1
+#define PJ_HAS_CTYPE_H		    1
+#define PJ_HAS_ERRNO_H		    1
+#define PJ_HAS_LINUX_SOCKET_H	0
+#define PJ_HAS_MALLOC_H		    0
+#define PJ_HAS_NETDB_H		    1
+#define PJ_HAS_NETINET_IN_H	    1
+#define PJ_HAS_SETJMP_H		    1
+#define PJ_HAS_STDARG_H		    1
+#define PJ_HAS_STDDEF_H		    1
+#define PJ_HAS_STDIO_H		    1
+#define PJ_HAS_STDLIB_H		    1
+#define PJ_HAS_STRING_H		    1
+#define PJ_HAS_SYS_IOCTL_H	    1
+#define PJ_HAS_SYS_SELECT_H	    0
+#define PJ_HAS_SYS_SOCKET_H	    1
+#define PJ_HAS_SYS_TIME_H	    1
+#define PJ_HAS_SYS_TIMEB_H	    0
+#define PJ_HAS_SYS_TYPES_H	    1
+#define PJ_HAS_TIME_H		    1
+#define PJ_HAS_UNISTD_H		    1
+
+#define PJ_HAS_MSWSOCK_H	    0
+#define PJ_HAS_WINSOCK_H	    0
+#define PJ_HAS_WINSOCK2_H	    0
+
+#define PJ_SOCK_HAS_INET_ATON	    0
+
+/* Set 1 if native sockaddr_in has sin_len member.
+ * Default: 0
+ */
+#define PJ_SOCKADDR_HAS_LEN	    0
+/* Is errno a good way to retrieve OS errors?
+ */
+#define PJ_HAS_ERRNO_VAR	    1
+
+/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
+ * the status of non-blocking connect() operation.
+ */
+#define PJ_HAS_SO_ERROR             1
+
+/**
+ * If this macro is set, it tells select I/O Queue that select() needs to
+ * be given correct value of nfds (i.e. largest fd + 1). This requires
+ * select ioqueue to re-scan the descriptors on each registration and
+ * unregistration.
+ * If this macro is not set, then ioqueue will always give FD_SETSIZE for
+ * nfds argument when calling select().
+ *
+ * Default: 0
+ */
+#define PJ_SELECT_NEEDS_NFDS	    0
+
+/* This value specifies the value set in errno by the OS when a non-blocking
+ * socket recv() can not return immediate daata.
+ */
+#define PJ_BLOCKING_ERROR_VAL       EAGAIN
+
+/* This value specifies the value set in errno by the OS when a non-blocking
+ * socket connect() can not get connected immediately.
+ */
+#define PJ_BLOCKING_CONNECT_ERROR_VAL   EINPROGRESS
+
+#ifndef PJ_HAS_THREADS
+#  define PJ_HAS_THREADS	    (1)
+#endif
+
+
+/*
+ * Declare __FD_SETSIZE now before including <linux*>.
+#define __FD_SETSIZE		    PJ_IOQUEUE_MAX_HANDLES
+ */
+
+/*#define NULL			    ((void*)0)
+*/
+/*
+ * Override features.
+ */
+#define PJ_HAS_FLOATING_POINT	    0
+#define PJ_HAS_MALLOC               0
+#define PJ_HAS_SEMAPHORE	    0
+#define PJ_HAS_EVENT_OBJ	    0
+#define PJ_HAS_HIGH_RES_TIMER	    1
+#ifndef PJ_OS_HAS_CHECK_STACK
+#   define PJ_OS_HAS_CHECK_STACK    0
+#endif
+#define PJ_TERM_HAS_COLOR	    0
+#define PJ_NATIVE_STRING_IS_UNICODE 0
+
+#define PJ_ATOMIC_VALUE_TYPE	    int
+#define PJ_THREAD_DESC_SIZE	    128
+
+/* If 1, use Read/Write mutex emulation for platforms that don't support it */
+#define PJ_EMULATE_RWMUTEX	    0
+
+/* If 1, pj_thread_create() should enforce the stack size when creating
+ * threads.
+ * Default: 0 (let OS decide the thread's stack size).
+ */
+#define PJ_THREAD_SET_STACK_SIZE    	0
+
+/* If 1, pj_thread_create() should allocate stack from the pool supplied.
+ * Default: 0 (let OS allocate memory for thread's stack).
+ */
+#define PJ_THREAD_ALLOCATE_STACK    	0
+
+#endif	/* __PJ_COMPAT_OS_SYMBIAN_H__ */
+
+
+
Index: pjproject/branches/symbian/pjlib/include/pj/config.h
===================================================================
--- pjproject/branches/symbian/pjlib/include/pj/config.h	(revision 477)
+++ pjproject/branches/symbian/pjlib/include/pj/config.h	(revision 478)
@@ -1,4 +1,4 @@
 /* $Id$ */
-/* 
+/*
  * Copyright (C)2003-2006 Benny Prijono <benny@prijono.org>
  *
@@ -15,5 +15,5 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #ifndef __PJ_CONFIG_H__
@@ -56,4 +56,6 @@
 #elif defined(PJ_RTEMS) && PJ_RTEMS!=0
 #  include <pj/compat/os_rtems.h>
+#elif defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
+#  include <pj/compat/os_symbian.h>
 #else
 #  error "Please specify target os."
@@ -231,5 +233,5 @@
  * Default: 8192
  */
-#ifndef PJ_THREAD_DEFAULT_STACK_SIZE 
+#ifndef PJ_THREAD_DEFAULT_STACK_SIZE
 #  define PJ_THREAD_DEFAULT_STACK_SIZE    8192
 #endif
@@ -270,11 +272,11 @@
 /**
  * Constants for declaring the maximum handles that can be supported by
- * a single IOQ framework. This constant might not be relevant to the 
- * underlying I/O queue impelementation, but still, developers should be 
+ * a single IOQ framework. This constant might not be relevant to the
+ * underlying I/O queue impelementation, but still, developers should be
  * aware of this constant, to make sure that the program will not break when
  * the underlying implementation changes.
  *
  * For implementation based on select(), the value here will be used as the
- * maximum number of socket handles passed to select() (i.e. FD_SETSIZE will 
+ * maximum number of socket handles passed to select() (i.e. FD_SETSIZE will
  * be set to this value).
  *
@@ -296,6 +298,6 @@
  * employing reference counter to each handle.
  *
- * In addition, the ioqueue will preallocate memory for the handles, 
- * according to the maximum number of handles that is specified during 
+ * In addition, the ioqueue will preallocate memory for the handles,
+ * according to the maximum number of handles that is specified during
  * ioqueue creation.
  *
@@ -435,5 +437,5 @@
  * then stricmp/strcasecmp, but they can be slower on other systems.
  * When disabled, pjlib will fallback to stricmp/strnicmp.
- * 
+ *
  * Default: 0
  */
