Warning, /pim/akregator/src/storage/metakit/README is written in an unsupported language. File is not indexed.
0001 The Metakit Library 2.4.9.5 Nov 2005 0002 ============================================================================== 0003 0004 0005 WHAT IT IS - Metakit is an embeddable database which runs on Unix, Windows, 0006 Macintosh, and other platforms. It lets you build applications which 0007 store their data efficiently, in a portable way, and which will not need a 0008 complex runtime installation. In terms of the data model, Metakit takes 0009 the middle ground between RDBMS, OODBMS, and flat-file databases - yet it 0010 is quite different from each of them. 0011 0012 TECHNOLOGY - Everything is stored variable-sized yet with efficient positional 0013 row access. Changing an existing datafile structure is as simple as re- 0014 opening it with that new structure. All changes are transacted, including 0015 restructuring. You can mix and match software written in C++, Python, 0016 and Tcl. Things can't get much more flexible... 0017 0018 CORE - The Metakit core library is written in C++. It has a code footprint of 0019 just over 100 Kb on Windows. It can be used as DLL, or linked statically. 0020 Debug builds include extensive assertion checks to catch problems early. 0021 0022 PYTHON - The binding for Python is called "Mk4py". It uses SCXX by Gordon 0023 McMillan as C++ glue interface. The source is in directory "python/". 0024 0025 TCL/TK - The MK extension for Tcl is called "Mk4tcl". It is being used in a 0026 number of commercial projects. The source is in directory "tcl/". 0027 0028 LICENSE AND SUPPORT - Metakit is now distributed as open source software (the 0029 X/MIT-style license is at the end of this document). Commercial support 0030 is available through an Enterprise License, see the URL mentioned below. 0031 0032 DOCUMENTATION - All documentation uses HTML. The main page is "Metakit.html", 0033 which leads to the rest of the documentation in the "doc/" directory. 0034 The C++ API Reference is extracted from the source code using Doxygen. 0035 0036 WEBSITE URLS - The main pages on the world wide web, for news and downloads: 0037 Homepage: http://www.equi4.com/metakit.html 0038 Python news: http://www.equi4.com/metakit/python.html 0039 Tcl/Tk news: http://www.equi4.com/metakit/tcl.html 0040 License info: http://www.equi4.com/mklicense.html 0041 Contact info: http://www.equi4.com/contact.html 0042 0043 ACKNOWLEDGEMENTS - Thanks to everyone who has helped shape and extend Metakit, 0044 including Kyrill Denisenko, Mark Roseman, Gordon McMillan, Matt Newman, 0045 Christian Tismer, John Bushakra, Steve Landers, Jacob Levy, John Barnard, 0046 Nicholas Riley, Brian Kelley, and many more people who have reported bugs 0047 and helped fix them. Last but not least, many thanks to all enterprise 0048 license customers and all my clients for funding Metakit work. 0049 0050 0051 INSTALLATION 0052 ============ 0053 0054 (NOTE to Python users: you could also do "cd python; python setup.py ...") 0055 0056 All platform builds and language bindings are designed to work from a single 0057 common "builds/" directory. Where possible, that is - it turns out to be 0058 impossible to keep build side-effects limited to *just* this directory 0059 (CodeWarrior can't be told where to place its temp data, and Visual C++ still 0060 alters a few files next to the project ".dsw" file, to name two offenders). 0061 0062 UNIX (ALSO MAC OS X) 0063 0064 It is no longer advised to build the Unix code in the "unix/" directory. 0065 Instead, you should perform the following steps: 0066 % cd builds 0067 % ../unix/configure 0068 % make 0069 % make test 0070 And optionally (this only installs the core lib, not script extensions): 0071 % make install 0072 0073 By switching to the "builds/" directory, you will keep the distribution 0074 directory tree 100% unaltered. All changes are made in this subdir, and 0075 all final build results are left behind in this same subdir. 0076 0077 To build with STL containers and strings, you can do the following: 0078 make CXXFLAGS='-Dq4_STD' test # add -O3 etc, as needed 0079 0080 To build the Mk4tcl extension on Unix, change the configure to: 0081 % ../unix/configure --with-tcl=<dir-where-tcl.h-is> 0082 To build the Mk4py extension on Unix, change the configure to: 0083 % ../unix/configure --with-python=<dir-where-include/-is> 0084 E.g. 0085 % ../unix/configure --with-tcl=/usr/include --with-python=/usr 0086 0087 Use "../unix/configure --help" to find out about other variants, when the 0088 include & lib dirs are completely different, and for other build options. 0089 0090 WINDOWS 0091 0092 There is a "win/" directory which contains subdirectories for a number of 0093 compiler systems. Metakit has been built with many different compilers 0094 in the past (Microsoft, Borland, Watcom, Symantec, Metrowerks, Optima), 0095 only a few are maintained (there are 12 configurations for MSVC6 alone!). 0096 0097 The MS Visual C++ 6.0 project is "win/msvc60/mksrc.dsw", with subprojects 0098 for the C++ demo (mkdemo), building dll's (mkdll), static libs (mklib), 0099 regression tests (mktest), as well as Tcl (mktcl) and Python (mkpython). 0100 It has been set up to place all intermediate files and final results in 0101 the "builds/" subdirectory, even though you'll launch it from "win/". 0102 0103 An MSVC 7.0 project by David Van Maren is in win/msvc70/mksrc.sln. 0104 0105 To build with STL containers and strings under MSVC, define "q4_STD". 0106 To build with MFC containers and strings under MSVC, define "q4_MFC". 0107 0108 The Metrowerks Codewarrior project is in the "mac/" directory, and can be 0109 used to build both Mac and Windows versions (on either Mac *or* Windows). 0110 The core libraries are built with "mac/cw5.mcp", demos / tests are built 0111 with "cw5apps.mcp", Tcl is "cw5tcl.mcp", and Python is "cw5python.mcp". 0112 0113 The Borland C++ Builder projects have not yet been incorporated in this 0114 release, but the "KitViewer" application is an example of how to use BCB. 0115 0116 The Cygwin build (B20.1 / gcc 2.95.2) is different, because it uses the 0117 unix autoconf system, and must be launched as described above for UNIX. 0118 I have upgraded to the latest development of libtool to be able to build 0119 DLL's with Cygwin. You can build the "-mno-cygwin" version by editing 0120 the Makefile by hand and adding that option to CXXFLAGS. 0121 0122 Rob Bloodgood adds that the following GCC options are for maximum code 0123 efficiency on x86 hardware: "-O2 -m486 -malign-loops=2 -malign-jumps=2". 0124 I have not yet tried this myself, but am passing on the tip. 0125 0126 MACINTOSH CLASSIC 0127 0128 The Mac version requires Metrowerks CodeWarrior 6. See the info above 0129 in the Windows section (MWCW is multi-platform). The projects are all 0130 located in the "mac/" folder, which is also where MWCW will place its own 0131 "... Data" folders with intermediate results. As with all other setups, 0132 final results are made to end up in the "builds/" directory. 0133 0134 0135 LICENSE AND COPYRIGHT STATEMENT 0136 =============================== 0137 0138 Copyright (c) 1996-2005 Jean-Claude Wippler 0139 0140 Permission is hereby granted, free of charge, to any person obtaining a 0141 copy of this software and associated documentation files (the "Software"), 0142 to deal in the Software without restriction, including without limitation 0143 the rights to use, copy, modify, merge, publish, distribute, sublicense, 0144 and/or sell copies of the Software, and to permit persons to whom the 0145 Software is furnished to do so, subject to the following conditions: 0146 0147 The above copyright notice and this permission notice shall be included 0148 in all copies or substantial portions of the Software. 0149 0150 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 0151 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 0152 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 0153 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 0154 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 0155 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 0156 DEALINGS IN THE SOFTWARE. 0157 0158 0159 ============================================================================== 0160 -- Jean-Claude Wippler <jcw@equi4.com>