cygport/cygclass/berkdb.cygclass

Cygport Reference Manual

### TABLE OF CONTENTS

- berkdb.cygclass

- CATEGORY (berkdb)
- SUMMARY (berkdb)
- DESCRIPTION (berkdb)
- HOMEPAGE (berkdb)
- SRC_URI (berkdb)
- PATCH_URI (berkdb)
- PKG_NAMES (berkdb)
- berkdb_autoreconf
- berkdb_compile
- berkdb_install
- berkdb_postinst
- src_compile (berkdb)
- src_install (berkdb)

## 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

autotools.cygclass

## 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
    }