Copyright (C) 2002,2003,2004,2013,2014,2015,2016,2017 Petr Silhavy See file `COPYING' for license conditions. This directory tree holds version 0.6.x for avldb, the database library. The file INSTALL in this directory says how to build and install avldb on various systems, once you have unpacked or checked out the entire avldb file tree. Prerequisites ============= - POSIX IPC - zlib http://zlib.net - GLib 2.0 ftp://ftp.gtk.org/pub/glib http://download.gnome.org/sources/glib - ISO C99 compiler ( tested gcc-4.8.1 gcc-4.8.2, gcc-4.9.0, gcc-6.2.0, gcc-6.3.0 and clang 3.4 ) - A "working" POSIX compatible shell, or GNU bash If you wish to change code, you'll also need: --------------------------------------------- - git - flex (2.6.2 or newer). https://github.com/westes/flex/releases - bison (3.0.4 tested or newer). https://www.gnu.org/software/bison/ https://ftp.gnu.org/gnu/bison/ - LaTex ( for debugging support - tree visualisation ) https://www.ctan.org Download ======== Releases may be found at : https://sourceforge.net/projects/avldb/ AVLDB's git repository can be checked out through anonymous access over the git or over https protocol. Depending on your network configuration you may prefer to use one or the other (for instance, if your internet access goes through a web proxy, it's unlikely that access over http will work). Checkout over GIT protocol: git clone git://git.code.sf.net/p/avldb/code avldb-code Checkout over https: git clone https://git.code.sf.net/p/avldb/code avldb-code Configuring and compiling avldb =============================== Avldb can be build using GNU auto-tools or cmake . Avldb can be compiled in the source directory but this option is deprecated. The preferred way is build it in a separate build directory. For example, if you have unpacked/checkout avldb directory tree to '/usr/src/avldb', create a directory `/usr/src/avldb-build' to put the object files in. This allows removing the whole build directory in case an error occurs, which is the safest way to get a fresh start and should always be done. Building with autoconf/automake (deprecated - See "Building with cmake" ) ========================================================================= 0. Create configure script (if necessary) If your check-out of GIT repository or extracted tar-ball doesn't contain `configure' script run from your object directory autoreconf ../PATH-TO-UNPACKED-SOURCES e.g. $ cd /usr/src/avldb-build $ autoreconf ../avldb -i 1. Configuration From your object directory, run the shell script `configure' located at the top level of the source tree. In the scenario above, you'd type $ ../avldb/configure ARGS... If you want to install avldb library to /usr/lib and includes to /usr/include specify installation prefix with : $ ../avldb/configure --prefix=/usr Please note that even though you're building in a separate build directory, the compilation may need to create or modify files and directories in the source directory. It may also be useful to set the CC and CFLAGS variables in the environment when running `configure'. CC selects the C compiler that will be used, and CFLAGS sets optimization options for the compiler. The following list describes all of the available options for `configure': `--prefix=DIRECTORY' Install machine-independent data files in sub-directories of `DIRECTORY'. The default is to install in `/usr/local'. `--exec-prefix=DIRECTORY' Install the library and other machine-dependent files in sub-directories of `DIRECTORY'. The default is to the `--prefix' directory if that option is specified, or `/usr/local' otherwise. `--disable-shared' Don't build shared libraries even if it is possible. Not all systems support shared libraries; you need ELF support and (currently) the GNU linker. 2. Compilation To build the library and related programs, type `make'. This will produce a lot of output, some of which may look like errors from `make' but isn't. Look for error messages from `make' containing `***'. Those indicate that something is seriously wrong. If you want to run a parallel make, simply pass the `-j' option with an appropriate numeric parameter to `make'. You need a recent GNU `make' version, though. Basic test programs (located in tests sub-directory) are build as default. See chapter `Running tests' for more informations. 3. Installation To install the library and its header files, and the Info files of the manual, type `sudo make install' or run `make install' as root. Building with cmake =================== 0. Configuration From your object directory, run `cmake ../PATH-TO-UNPACKED-SOURCES' $ cmake ../avldb Probably you want to specify an install prefix: $ cmake ../avldb -DCMAKE_INSTALL_PREFIX= Where can be /usr, /usr/local, /opt, etc. The default is /opt/ps . Note the install prefix is automatically searched for required libraries and header files, so if you install librt, libz and glib2 to the same prefix most configuration options are unnecessary ( or if header files and libraries can be found in standart system paths e.g. `/usr/include` and `/usr/lib*` on Unix-like system ) . 1. List of recognized cmake variables (cmake -DOption) Options ------- CMAKE_INSTALL_PREFIX - install prefix - default "/opt/ps" AVLDB_SHARED - build shared libraries - default ON AVLDB_STATIC - build static libraries - default ON) AVLDB_TESTS - build avldb tests - default ON AVLDB_HUGE_INTERVAL_BLOCK - use inflatable interval tree" - default OFF Alternatively you can set/change cmake by : $ ccmake ../avldb 2. Compilation To build the library and related programs, type `make'. This will produce a lot of output, some of which may look like errors from `make' but isn't. Look for error messages from `make' containing `***'. Those indicate that something is seriously wrong. If you want to run a parallel make, simply pass the `-j' option with an appropriate numeric parameter to `make'. You need a recent GNU `make' version, though. Basic test programs (located in tests subdirectory) are build as default. See chapter `Running tests' for more informations. 3. Instalation To install the library and its header files, and the Info files of the manual, type `sudo make install' or run `make install' as root.