From: adam Date: Thu, 25 Apr 2013 04:31:31 +0000 (+0700) Subject: #12 X-Git-Tag: v1.2.12~344 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e3edbc3d098822f4af7f5293151aa0528b80757e;p=platform%2Fupstream%2Fejdb.git #12 --- diff --git a/Changelog b/Changelog index f8b87e0..9e7c349 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,7 @@ +2013-04-25 Anton Adamansky. + * EJDB and TokyoCabinet API ported to Windows (ticket #12) + - Release 1.1.0 + 2013-03-22 Anton Adamansky. * Fixed number index crash #54 - Release 1.0.68 diff --git a/README.md b/README.md index 5002e94..43cf926 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ JSON representation of queries and data implemented with API based on [C BSON](h News =============================== +* `2013-04-25` **[EJDB and TokyoCabinet API ported to Windows](https://github.com/Softmotions/ejdb/blob/master/tcejdb/WIN32.md)** * `2013-04-03` **[Java API binding available](https://github.com/Softmotions/ejdb/blob/master/jejdb/)** * `2013-03-20` **[Lua binding available](https://github.com/Softmotions/ejdb/blob/master/luaejdb/)** * `2013-02-15` **[EJDB Python3 binding available](https://github.com/Softmotions/ejdb/blob/master/pyejdb/)** @@ -21,6 +22,7 @@ News Features ================================ * LGPL license allows you to embed this library into proprietary software. +* [EJDB and TokyoCabinet API ported to Windows](https://github.com/Softmotions/ejdb/blob/master/tcejdb/WIN32.md) * MongoDB-like queries and overall philosophy. * Collection level write locking. * Collection level transactions. diff --git a/tcejdb/Changelog b/tcejdb/Changelog index f8b87e0..9e7c349 100644 --- a/tcejdb/Changelog +++ b/tcejdb/Changelog @@ -1,3 +1,7 @@ +2013-04-25 Anton Adamansky. + * EJDB and TokyoCabinet API ported to Windows (ticket #12) + - Release 1.1.0 + 2013-03-22 Anton Adamansky. * Fixed number index crash #54 - Release 1.0.68 diff --git a/tcejdb/WIN32.md b/tcejdb/WIN32.md new file mode 100644 index 0000000..d8d0432 --- /dev/null +++ b/tcejdb/WIN32.md @@ -0,0 +1,100 @@ +Building EJDB and TokyoCabinet for windows +========================================== + +All TokyoCabinet and EJDB API are ported to windows! + +Prerequsties +------------------------------------------ + + * Install **Linux x64 OS** (tested on debian/ubuntu) + * Install thise packages: + + + autoconf automake bash bison bzip2 cmake + flex gcc intltool libtool make openssl + patch perl pkg-config scons sed unzip + wget xz-utils yasm zip wine git + +Creating build environment +----------------------------------------- + +You need checkout specific branch of [MXE cross build environmen](http://mxe.cc/) +to build win32 and win64 binaries: + + git clone https://github.com/tonytheodore/mxe.git + git checkout multi-rebase + +Then create MXE settings file: + + cd + nano ./settings.mk + +And enter the following settings into `./settings.mk`: + + JOBS := 1 + MXE_TARGETS := x86_64-w64-mingw32 i686-w64-mingw32 + #SOURCEFORGE_MIRROR := downloads.sourceforge.net + LOCAL_PKG_LIST := winpthreads pcre zlib cunit + .DEFAULT local-pkg-list: + local-pkg-list: $(LOCAL_PKG_LIST) + +Then make MXE build env: + + cd + make + +Building EJDB and TokyoCabinet +------------------------------------ + + git clone https://github.com/Softmotions/ejdb.git + cd ejdb + +To make win build we have to run this script: `tcejdb/mxe/mxe-build.sh` + + mxe-build.sh w32|w64 [optional ./configure options] + +Example: building win32 binaries + EJDB test cases + + tcejdb/mxe/mxe-build.sh ${HOME}/mxe w32 "--enable-tests" + +Example: building win64 binaries: + + tcejdb/mxe/mxe-build.sh ${HOME}/mxe w64 + +As result you will get zip archive in the folder `./tcejdb`: + `tcejdb-1.1.0-mingw32-i686.zip` or `tcejdb-1.1.0-mingw32-x86_64.zip` + +In those archives you will found: + + * TC/EJDB header files `./include/tcejdb` + * library DLL: `tcejdbdll.dll` **(Exported All TokyoCabinet and EJDB API)** + * DLL Import library for MSVC: `tcejdbdll.lib(.exp)` and for GCC: `libtcejdbdll.a` + * Library for static linking: `libtcejdb.a` + + +Sample code +-------------------------------- +Sample code can be found in `./tcejdb/samples/` + + * `sample1_mingw` Netbeans project for MinGW build env + * `sample1_win32` Visual studio express 2010 solution + + +Notes +-------------------------------- + +* In order to build MSVC static library we need Microsoft's `lib.exe` tool, +it automatically downloaded by `mxe-build.sh` from my dropbox account. So do not be surprised =) + +* Database files size on windows 32-bit are limited to 2GB, because on win32 all data is memmory mapped. + +* Due to strange reasons any generic gcc optimizations `-O1` `-O2` `-O3` generate bad EJDB testing code on win32, as +workaround for this: all gcc optimization flags related to `O2` level are explicitly specified for gcc command (but without `-O2` arg). + +* HDB `tchdbsetxmsiz()` takes no effect because all file data is memory mapped on windows platform. + + + + + +