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>