TABLE OF CONTENTS
berkdb.cygclass
[ Top ] [ Cygclasses ] [ Cygclasses ]
SYNOPSIS
inherit [java] [tcl] berkdb
DESCRIPTION
The Berkeley DB is an embedded database in the form of a C library and several command-line utilities, and includes optional C++, Java, and Tcl bindings.
This cygclass does all the work involved in building and packaging versions 3.x, 4.x, and 5.x of the Berkeley DB. Older versions are not supported.
The C++ bindings are always enabled, but the Java and Tcl bindings will only be enabled if their respective cygclasses are inherited _before_ berkdb.
INHERITS
CATEGORY (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
DEFINITION
CATEGORY="Database Libs"
SUMMARY (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
DEFINITION
SUMMARY="Berkeley DB version ${SLOT}"
DESCRIPTION (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
DEFINITION
DESCRIPTION="Oracle Berkeley DB is the industry-leading open source, embeddable database engine that provides developers with fast, reliable, local persistence with zero administration. Oracle Berkeley DB is a library that links directly into your application. Your application makes simple function calls, rather than sending messages to a remote server, eliminating the performance penalty of client-server architectures."
HOMEPAGE (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
DEFINITION
HOMEPAGE="http://www.oracle.com/technology/products/berkeley-db/db/index.html"
SRC_URI (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
DESCRIPTION
Download location of the Berkeley DB source tarball.
PATCH_URI (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
NOTE
Upstream patches are automatically downloaded based on the fourth component of PV; e.g. version 4.6.21.4 will download patches 1-4 for the 4.6.21 tarball.
WARNING
If additional custom patches are required, be sure to add to, not override, the PATCH_URI variable as so:
PATCH_URI+=" 4.6-libtool22.patch"
Failure to do so will result in upstream patches not being included in your package.
PKG_NAMES (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
DESCRIPTION
The following binary packages are created automatically:
- dbX.Y: command-line utilities, Cygwin and upstream READMEs;
- dbX.Y-doc: HTML documentation;
- libdbX.Y: C and C++ runtime libraries;
- libdbX.Y-devel: C and C++ headers and import libraries.
The following packages are created if their bindings are enabled:
- java-dbX.Y: JNI binding and Java jar;
- tcl-dbX.Y: Tcl bindings.
berkdb_autoreconf
[ Top ] [ berkdb.cygclass ] [ Compile Functions ]
DESCRIPTION
This function is used instead of cygautoreconf due to the unique build system of the Berkeley DB. This step is required, as several build system files will need to be patched for a working build:
- chmod +w dist/Makefile.in dist/aclocal/tcl.ac dist/configure.ac
- Add LT_OUTPUT after AC_PROG_LIBTOOL in dist/configure.ac
- sed -i -e 's/aix\*/aix*|cygwin*/g' dist/aclocal/tcl.ac
- Modify/define MAKEFILE_TSOLINK (not needed with 4.5+)
- Undefine __lock_* macros in lock/lock_region.c (not needed with 4.3+)
REQUIRES
autoconf, automake, libtool
berkdb_compile
[ Top ] [ berkdb.cygclass ] [ Compile Functions ]
DESCRIPTION
This function calls cygconf with the necessary options for building the the C library shared and static, and the C++, Java and/or Tcl bindings.
NOTE
The C++ library, JNI bindings, and Tcl bindings are specially built to link against the C library instead of including the sources thereof. This means that the java-dbX.Y and tcl-dbX.Y packages must depend on libdbX.Y.
berkdb_install
[ Top ] [ berkdb.cygclass ] [ Install Functions ]
DESCRIPTION
This function installs the Berkeley DB into $D and moves some files so that multiple versions may be installed in parallel.
berkdb_postinst
[ Top ] [ berkdb.cygclass ] [ Install Functions ]
DESCRIPTION
This function creates postinstall and preremove scripts which manage the unversioned symlinks for the headers and link libraries with alternatives(8). No such symlinks are created for the command-line utilities, as the database and/or log formats do change from one version to the next.
NOTE
All libdbX.Y-devel packages must depend on alternatives.
src_compile (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
DEFINITION
src_compile() { cd ${S}/dist berkdb_autoreconf cd ${B} berkdb_compile }
src_install (berkdb)
[ Top ] [ berkdb.cygclass ] [ Overloads ]
DEFINITION
src_install() { cd ${B} berkdb_install berkdb_postinst }