aboutsummaryrefslogtreecommitdiff
path: root/packages/Symbian
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2008-04-22 22:53:53 +0000
committerDan Fandrich <dan@coneharvesters.com>2008-04-22 22:53:53 +0000
commit1960eebc2d021ecf5ffc3f6d4e935d54aa592c72 (patch)
tree258a993cae8cec4f2eff333347adb8b87e809b84 /packages/Symbian
parentad1dd086937138f56e5942ae0840867372c77d03 (diff)
Added support for running on Symbian OS.
Diffstat (limited to 'packages/Symbian')
-rw-r--r--packages/Symbian/bwins/libcurlu.def58
-rw-r--r--packages/Symbian/eabi/libcurlu.def58
-rw-r--r--packages/Symbian/group/bld.inf7
-rw-r--r--packages/Symbian/group/curl.iby13
-rw-r--r--packages/Symbian/group/curl.mmp23
-rw-r--r--packages/Symbian/group/libcurl.iby12
-rw-r--r--packages/Symbian/group/libcurl.mmp32
-rw-r--r--packages/Symbian/readme.txt71
8 files changed, 274 insertions, 0 deletions
diff --git a/packages/Symbian/bwins/libcurlu.def b/packages/Symbian/bwins/libcurlu.def
new file mode 100644
index 000000000..0536096e9
--- /dev/null
+++ b/packages/Symbian/bwins/libcurlu.def
@@ -0,0 +1,58 @@
+EXPORTS
+ curl_easy_cleanup @ 1 NONAME
+ curl_easy_duphandle @ 2 NONAME
+ curl_easy_escape @ 3 NONAME
+ curl_easy_getinfo @ 4 NONAME
+ curl_easy_init @ 5 NONAME
+ curl_easy_pause @ 6 NONAME
+ curl_easy_perform @ 7 NONAME
+ curl_easy_reset @ 8 NONAME
+ curl_easy_setopt @ 9 NONAME
+ curl_easy_strerror @ 10 NONAME
+ curl_easy_unescape @ 11 NONAME
+ curl_escape @ 12 NONAME
+ curl_formadd @ 13 NONAME
+ curl_formfree @ 14 NONAME
+ curl_formget @ 15 NONAME
+ curl_free @ 16 NONAME
+ curl_getdate @ 17 NONAME
+ curl_getenv @ 18 NONAME
+ curl_global_cleanup @ 19 NONAME
+ curl_global_init @ 20 NONAME
+ curl_global_init_mem @ 21 NONAME
+ curl_maprintf @ 22 NONAME
+ curl_mfprintf @ 23 NONAME
+ curl_mprintf @ 24 NONAME
+ curl_msnprintf @ 25 NONAME
+ curl_msprintf @ 26 NONAME
+ curl_multi_add_handle @ 27 NONAME
+ curl_multi_assign @ 28 NONAME
+ curl_multi_cleanup @ 29 NONAME
+ curl_multi_fdset @ 30 NONAME
+ curl_multi_info_read @ 31 NONAME
+ curl_multi_init @ 32 NONAME
+ curl_multi_perform @ 33 NONAME
+ curl_multi_remove_handle @ 34 NONAME
+ curl_multi_setopt @ 35 NONAME
+ curl_multi_socket @ 36 NONAME
+ curl_multi_socket_action @ 37 NONAME
+ curl_multi_socket_all @ 38 NONAME
+ curl_multi_strerror @ 39 NONAME
+ curl_multi_timeout @ 40 NONAME
+ curl_mvaprintf @ 41 NONAME
+ curl_mvfprintf @ 42 NONAME
+ curl_mvprintf @ 43 NONAME
+ curl_mvsnprintf @ 44 NONAME
+ curl_mvsprintf @ 45 NONAME
+ curl_share_cleanup @ 46 NONAME
+ curl_share_init @ 47 NONAME
+ curl_share_setopt @ 48 NONAME
+ curl_share_strerror @ 49 NONAME
+ curl_slist_append @ 50 NONAME
+ curl_slist_free_all @ 51 NONAME
+ curl_strequal @ 52 NONAME
+ curl_strnequal @ 53 NONAME
+ curl_unescape @ 54 NONAME
+ curl_version @ 55 NONAME
+ curl_version_info @ 56 NONAME
+
diff --git a/packages/Symbian/eabi/libcurlu.def b/packages/Symbian/eabi/libcurlu.def
new file mode 100644
index 000000000..0536096e9
--- /dev/null
+++ b/packages/Symbian/eabi/libcurlu.def
@@ -0,0 +1,58 @@
+EXPORTS
+ curl_easy_cleanup @ 1 NONAME
+ curl_easy_duphandle @ 2 NONAME
+ curl_easy_escape @ 3 NONAME
+ curl_easy_getinfo @ 4 NONAME
+ curl_easy_init @ 5 NONAME
+ curl_easy_pause @ 6 NONAME
+ curl_easy_perform @ 7 NONAME
+ curl_easy_reset @ 8 NONAME
+ curl_easy_setopt @ 9 NONAME
+ curl_easy_strerror @ 10 NONAME
+ curl_easy_unescape @ 11 NONAME
+ curl_escape @ 12 NONAME
+ curl_formadd @ 13 NONAME
+ curl_formfree @ 14 NONAME
+ curl_formget @ 15 NONAME
+ curl_free @ 16 NONAME
+ curl_getdate @ 17 NONAME
+ curl_getenv @ 18 NONAME
+ curl_global_cleanup @ 19 NONAME
+ curl_global_init @ 20 NONAME
+ curl_global_init_mem @ 21 NONAME
+ curl_maprintf @ 22 NONAME
+ curl_mfprintf @ 23 NONAME
+ curl_mprintf @ 24 NONAME
+ curl_msnprintf @ 25 NONAME
+ curl_msprintf @ 26 NONAME
+ curl_multi_add_handle @ 27 NONAME
+ curl_multi_assign @ 28 NONAME
+ curl_multi_cleanup @ 29 NONAME
+ curl_multi_fdset @ 30 NONAME
+ curl_multi_info_read @ 31 NONAME
+ curl_multi_init @ 32 NONAME
+ curl_multi_perform @ 33 NONAME
+ curl_multi_remove_handle @ 34 NONAME
+ curl_multi_setopt @ 35 NONAME
+ curl_multi_socket @ 36 NONAME
+ curl_multi_socket_action @ 37 NONAME
+ curl_multi_socket_all @ 38 NONAME
+ curl_multi_strerror @ 39 NONAME
+ curl_multi_timeout @ 40 NONAME
+ curl_mvaprintf @ 41 NONAME
+ curl_mvfprintf @ 42 NONAME
+ curl_mvprintf @ 43 NONAME
+ curl_mvsnprintf @ 44 NONAME
+ curl_mvsprintf @ 45 NONAME
+ curl_share_cleanup @ 46 NONAME
+ curl_share_init @ 47 NONAME
+ curl_share_setopt @ 48 NONAME
+ curl_share_strerror @ 49 NONAME
+ curl_slist_append @ 50 NONAME
+ curl_slist_free_all @ 51 NONAME
+ curl_strequal @ 52 NONAME
+ curl_strnequal @ 53 NONAME
+ curl_unescape @ 54 NONAME
+ curl_version @ 55 NONAME
+ curl_version_info @ 56 NONAME
+
diff --git a/packages/Symbian/group/bld.inf b/packages/Symbian/group/bld.inf
new file mode 100644
index 000000000..efba26b3b
--- /dev/null
+++ b/packages/Symbian/group/bld.inf
@@ -0,0 +1,7 @@
+//
+// libcurl and curl bld.inf file for Symbian OS
+//
+
+PRJ_MMPFILES
+ libcurl.mmp
+ curl.mmp
diff --git a/packages/Symbian/group/curl.iby b/packages/Symbian/group/curl.iby
new file mode 100644
index 000000000..33eac4ad6
--- /dev/null
+++ b/packages/Symbian/group/curl.iby
@@ -0,0 +1,13 @@
+//
+// curl file transfer utility command-line utility
+//
+
+#ifndef CURL_IBY
+#define CURL_IBY
+
+#include <openenv.iby>
+#include <libcurl.iby>
+
+file=ABI_DIR\BUILD_DIR\curl.exe System\Programs\curl.exe
+
+#endif // CURL_IBY
diff --git a/packages/Symbian/group/curl.mmp b/packages/Symbian/group/curl.mmp
new file mode 100644
index 000000000..6fbaf995e
--- /dev/null
+++ b/packages/Symbian/group/curl.mmp
@@ -0,0 +1,23 @@
+//
+// cURL network retrieval client
+//
+
+TARGET curl.exe
+TARGETTYPE exe
+UID 0x00000000 0x10206442
+
+SOURCEPATH ..\..\..\src
+SOURCE \
+ main.c hugehelp.c urlglob.c writeout.c writeenv.c \
+ getpass.c homedir.c curlutil.c
+
+SYSTEMINCLUDE ..\..\..\include ..\..\..\lib ..\..\..\include\curl \
+ \epoc32\include \epoc32\include\stdapis
+
+LIBRARY euser.lib libc.lib libcurl.lib
+STATICLIBRARY libcrt0.lib
+
+CAPABILITY ALL -Tcb
+
+EPOCSTACKSIZE 0x18000
+
diff --git a/packages/Symbian/group/libcurl.iby b/packages/Symbian/group/libcurl.iby
new file mode 100644
index 000000000..6ea4fbb9f
--- /dev/null
+++ b/packages/Symbian/group/libcurl.iby
@@ -0,0 +1,12 @@
+//
+// libcurl file transfer DLL
+//
+
+#ifndef LIBCURL_IBY
+#define LIBCURL_IBY
+
+#include <openenv.iby>
+
+file=ABI_DIR\BUILD_DIR\libcurl.dll System\Libs\libcurl.dll
+
+#endif
diff --git a/packages/Symbian/group/libcurl.mmp b/packages/Symbian/group/libcurl.mmp
new file mode 100644
index 000000000..75f572dab
--- /dev/null
+++ b/packages/Symbian/group/libcurl.mmp
@@ -0,0 +1,32 @@
+//
+// libcurl.dll cURL network retrieval client library
+//
+
+TARGET libcurl.dll
+TARGETTYPE dll
+UID 0x1000008d 0x10206D00
+
+MACRO BUILDING_LIBCURL=1
+
+SOURCEPATH ..\..\..\lib
+SOURCE \
+ file.c timeval.c base64.c hostip.c progress.c formdata.c \
+ cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \
+ ldap.c ssluse.c version.c getenv.c escape.c mprintf.c telnet.c \
+ netrc.c getinfo.c transfer.c strequal.c easy.c security.c krb4.c \
+ krb5.c memdebug.c http_chunks.c strtok.c connect.c llist.c hash.c \
+ multi.c content_encoding.c share.c http_digest.c md5.c \
+ http_negotiate.c http_ntlm.c inet_pton.c strtoofft.c strerror.c \
+ hostares.c hostasyn.c hostip4.c hostip6.c hostsyn.c hostthre.c \
+ inet_ntop.c parsedate.c select.c gtls.c sslgen.c tftp.c splay.c \
+ strdup.c socks.c ssh.c nss.c qssl.c
+
+USERINCLUDE ..\..\..\lib
+
+SYSTEMINCLUDE ..\..\..\include ..\..\..\include\curl \
+ \epoc32\include\stdapis \epoc32\include
+
+LIBRARY euser.lib libc.lib
+CAPABILITY ALL -Tcb
+
+EPOCALLOWDLLDATA
diff --git a/packages/Symbian/readme.txt b/packages/Symbian/readme.txt
new file mode 100644
index 000000000..5ce85eada
--- /dev/null
+++ b/packages/Symbian/readme.txt
@@ -0,0 +1,71 @@
+Curl on Symbian OS
+==================
+This is a basic port of curl and libcurl to Symbian OS. The port is
+a straightforward one using Symbian's P.I.P.S. POSIX compatibility
+layer. A more complete port would involve writing a Symbian C++ binding,
+or wrapping libcurl as a Symbian application server with a C++ API to
+handle requests from client applications and creating a GUI application
+to allow file transfers. The author has no current plans to do so.
+
+This means that integration with standard Symbian OS programs can be
+tricky, since libcurl isn't designed with Symbian's native asynchronous
+message passing idioms in mind. However, it may be possible to use libcurl
+in an active object-based application through libcurl's multi interface.
+The port is most easily used when porting POSIX applications to Symbian
+OS using P.I.P.S.
+
+libcurl is built as a standard Symbian ordinal-linked DLL, and curl is
+built as a text mode EXE application. They have not been Symbian
+Signed, which is required in order to install them on most phones.
+
+Following are some things to keep in mind when using this port.
+
+curl notes
+----------
+When starting curl in the Windows emulator from the Windows command-line,
+place a double-dash -- before the first curl command-line option.
+e.g. \epoc32\release\winscw\udeb\curl -- -v http://localhost/
+Failure to do so may mean that some of your options won't be correctly
+processed.
+
+Symbian OS does not provide for redirecting the standard I/O streams, so
+stdin always comes from the keyboard and stdout always goes to the
+console; stderr is thrown away. The standard curl options -o, --stderr
+and --trace-ascii can be used to redirect output to a file (or stdout)
+instead.
+
+P.I.P.S. doesn't inherit the current working directory at startup, so you
+may need to use the -o option to specify a specific location to store a
+downloaded file.
+
+P.I.P.S. provides no way to disable echoing of characters as they are
+entered, so passwords typed in on the console will be visible.
+
+All screen output disappears after curl exits, so after a transfer completes,
+curl waits by default for Enter to pressed before exiting. This behaviour
+is suppressed when the -s option is given.
+
+The "home directory" in Symbian is C:\Private\10206442\. The .curlrc is read
+from this directory on startup.
+
+libcurl notes
+-------------
+libcurl uses writeable static data, so the EPOCALLOWDLLDATA option is
+used in its MMP file, with the corresponding additional memory usage
+and limitations on the Windows emulator.
+
+curl_global_init() *must* be called before any libcurl functions that could
+allocate memory (like curl_getenv()).
+
+P.I.P.S. doesn't support signals or the alarm() call, so some timeouts
+(such as the connect timeout) are not honoured.
+
+P.I.P.S. causes a USER:87 panic if a timeout much longer than half an hour
+is selected.
+
+SSL/TLS encryption is not supported.
+
+
+Dan Fandrich
+dan@coneharvesters.com
+April 2008