1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Configuring Berkeley DB</title>
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
<link rel="start" href="index.html" title="Berkeley DB Installation and Build Guide" />
<link rel="up" href="build_unix.html" title="Chapter 7. Building Berkeley DB for UNIX/POSIX" />
<link rel="prev" href="build_unix.html" title="Chapter 7. Building Berkeley DB for UNIX/POSIX" />
<link rel="next" href="build_unix_sql.html" title="Configuring the SQL Interface" />
</head>
<body>
<div xmlns="" class="navheader">
<div class="libver">
<p>Library Version 11.2.5.3</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Configuring Berkeley DB</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="build_unix.html">Prev</a> </td>
<th width="60%" align="center">Chapter 7.
Building Berkeley DB for UNIX/POSIX
</th>
<td width="20%" align="right"> <a accesskey="n" href="build_unix_sql.html">Next</a></td>
</tr>
</table>
<hr />
</div>
<div class="sect1" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a id="build_unix_conf"></a>Configuring Berkeley DB</h2>
</div>
</div>
</div>
<p>There are several arguments you can specify when configuring Berkeley DB.
Although only the Berkeley DB-specific ones are described here, most of the
standard GNU autoconf arguments are available and supported. To see a
complete list of possible arguments, specify the --help flag to the
configure program.</p>
<p>The Berkeley DB specific arguments are as follows:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><a id="build_unix_conf.--disable-largefile"></a>
<span class="bold"><strong>--disable-largefile</strong></span>
</p>
<p>
Some systems, notably versions of Solaris, require
special compile-time options in order to create files larger
than 2^32 bytes. These options are automatically enabled when
Berkeley DB is compiled. For this reason, binaries built on
current versions of these systems may not run on earlier
versions of the system because the library and system calls
necessary for large files are not available. To disable
building with these compile-time options, enter
--disable-largefile as an argument to configure.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--disable-shared, --disable-static</strong></span>
</p>
<p>
On systems supporting shared libraries, Berkeley DB builds both
static and shared libraries by default. (Shared libraries are
built using
<a class="ulink" href="http://www.gnu.org/software/libtool/libtool.html" target="_top">
the GNU Project's Libtool</a> distribution, which supports
shared library builds on many (although not all) systems.) To
not build shared libraries, configure using the
--disable-shared argument. To not build static libraries,
configure using the --disable-static argument.
</p>
</li>
<li>
<p><a id="build_unix_conf.--disable-heap"></a>
<span class="bold"><strong>--disable-heap</strong></span>
</p>
<p>
Disables the Heap access method so that it cannot be used by
Berkeley DB applications.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--enable-compat185</strong></span>
</p>
<p>
To compile or load Berkeley DB 1.85 applications against this
release of the Berkeley DB library, enter --enable-compat185 as
an argument to configure. This will include Berkeley DB 1.85
API compatibility code in the library.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--enable-cxx</strong></span>
</p>
<p>
To build the Berkeley DB C++ API, enter --enable-cxx as an
argument to configure.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-debug"></a>
<span class="bold"><strong>--enable-debug</strong></span>
</p>
<p>
To build Berkeley DB with <span class="bold"><strong>-g</strong></span>
as a compiler flag and with <span class="bold"><strong>DEBUG</strong></span> #defined during compilation,
enter --enable-debug as an argument to configure. This will
create a Berkeley DB library and utilities with debugging
symbols, as well as load various routines that can be called
from a debugger to display pages, cursor queues, and so forth.
If installed, the utilities will not be stripped. This
argument should not be specified when configuring to build
production binaries.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-debug_rop"></a>
<span class="bold"><strong>--enable-debug_rop</strong></span>
</p>
<p>
To build Berkeley DB to output log records for read operations,
enter --enable-debug_rop as an argument to configure. This
argument should not be specified when configuring to build
production binaries.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-debug_wop"></a>
<span class="bold"><strong>--enable-debug_wop</strong></span>
</p>
<p>
To build Berkeley DB to output log records for write
operations, enter --enable-debug_wop as an argument to
configure. This argument should not be specified when
configuring to build production binaries.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-diagnostic"></a>
<span class="bold"><strong>--enable-diagnostic</strong></span>
</p>
<p>
To build Berkeley DB with run-time debugging checks, enter
--enable-diagnostic as an argument to configure. This causes a
number of additional checks to be performed when Berkeley DB is
running, and also causes some failures to trigger process abort
rather than returning errors to the application. Applications
built using this argument should not share database
environments with applications built without this argument.
This argument should not be specified when configuring to build
production binaries.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--enable-dump185</strong></span>
</p>
<p>
To convert Berkeley DB 1.85 (or earlier) databases to this
release of Berkeley DB, enter --enable-dump185 as an argument
to configure. This will build the <a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility, which can dump
Berkeley DB 1.85 and 1.86 databases in a format readable by the
Berkeley DB <a href="../api_reference/C/db_load.html" class="olink">db_load</a> utility.
</p>
<p>
The system libraries with which you are loading the
<a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility must already contain the Berkeley DB 1.85 library
routines for this to work because the Berkeley DB distribution
does not include them. If you are using a non-standard library
for the Berkeley DB 1.85 library routines, you will have to
change the Makefile that the configuration step creates to load
the <a href="../api_reference/C/db_dump.html" class="olink">db_dump185</a> utility with that library.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-java"></a>
<span class="bold"><strong>--enable-java</strong></span>
</p>
<p>
To build the Berkeley DB Java API, enter --enable-java as an
argument to configure. To build Java, you must also build with
shared libraries. Before configuring, you must set your PATH
environment variable to include javac. Note that it is not
sufficient to include a symbolic link to javac in your PATH
because the configuration process uses the location of javac to
determine the location of the Java include files (for example,
jni.h). On some systems, additional include directories may be
needed to process jni.h; see <a class="xref" href="build_unix_flags.html" title="Changing compile or load options">Changing compile or load options</a> for more information.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-posixmutexes"></a>
<span class="bold"><strong>--enable-posixmutexes</strong></span>
</p>
<p>
To force Berkeley DB to use the POSIX pthread mutex interfaces
for underlying mutex support, enter --enable-posixmutexes as an
argument to configure. This is rarely necessary: POSIX mutexes
will be selected automatically on systems where they are the
preferred implementation.
</p>
<p>
The --enable-posixmutexes configuration argument is normally
used in two ways: First, when there are multiple mutex
implementations available and the POSIX mutex implementation is
not the preferred one (for example, on Solaris where the LWP
mutexes are used by default). Second, by default the Berkeley
DB library will only select the POSIX mutex implementation if
it supports mutexes shared between multiple processes, as
described for the pthread_condattr_setpshared and
pthread_mutexattr_setpshared interfaces. The
--enable-posixmutexes configuration argument can be used to
force the selection of POSIX mutexes in this case, which can
improve application performance significantly when the
alternative mutex implementation is a non-blocking one (for
example test-and-set assembly instructions). However,
configuring to use POSIX mutexes when the implementation does
not have inter-process support will only allow the creation of
private database environments, that is, environments where the
<a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a> flag is specified to the <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a> method.
</p>
<p>
Specifying the --enable-posixmutexes configuration argument may require
that applications and Berkeley DB be linked with the -lpthread library.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-pthread_api"></a>
<span class="bold"><strong>--enable-pthread_api</strong></span>
</p>
<p>
To configure Berkeley DB for a POSIX pthreads application (with
the exception that POSIX pthread mutexes may not be selected as
the underlying mutex implementation for the build), enter
--enable-pthread_api as an argument to configure. The build
will include the Berkeley DB replication manager interfaces and
will use the POSIX standard pthread_self and pthread_yield
functions to identify threads of control and yield the
processor. The --enable-pthread_api argument requires POSIX
pthread support already be installed on your system.
</p>
<p>
Specifying the --enable-pthread_api configuration argument may
require that applications and Berkeley DB be linked with the
-lpthread library.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-sql"></a>
<span class="bold"><strong>--enable-sql</strong></span>
</p>
<p>
To build the command tool dbsql, enter --enable-sql as an argument to configure. The dbsql utility provides access to the Berkeley DB SQL interface. See
<a class="xref" href="build_unix_sql.html" title="Configuring the SQL Interface">Configuring the SQL Interface</a>
for more information.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--enable-sql_compat</strong></span>
</p>
<p>
To build the command tool sqlite3, enter --enable-sql_compat as an argument to configure. Sqlite3 is a command line tool that enables you to manually enter and execute SQL
commands. It is identical to the dbsql executable but named so that existing scripts for SQLite can easily work with Berkeley DB. See
<a class="xref" href="build_unix_sql.html" title="Configuring the SQL Interface">Configuring the SQL Interface</a>
for more information.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--enable-sql_codegen</strong></span>
</p>
<p>
To build the command line tool db_sql_codegen, enter --enable-sql_codegen as an argument to configure.
The db_sql_codegen utility translates a schema description written in a SQL Data Definition Language dialect into C code that implements the schema using Berkeley DB.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--enable-smallbuild</strong></span>
</p>
<p>
To build a small memory footprint version of the Berkeley DB
library, enter --enable-smallbuild as an argument to configure.
The --enable-smallbuild argument is equivalent to individually
specifying --with-cryptography=no, --disable-hash,
--disable-queue, --disable-replication, --disable-statistics
and --disable-verify, turning off cryptography support, the
Hash and Queue access methods, database environment replication
support and database and log verification support. See
<a class="xref" href="build_unix_small.html" title="Building a small memory footprint library">Building a small memory footprint library</a>
for more information.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--enable-stl</strong></span>
</p>
<p>
To build the Berkeley DB C++ STL API, enter --enable-stl as an
argument to configure. Setting this argument implies that --enable-cxx is set,
and the Berkeley DB C++ API will be built too.
</p>
<p>
There will be a libdb_stl-X.X.a and libdb_stl-X.X.so
built, which are the static and shared library you should link your application with in order to
make use of Berkeley DB via its STL API.
</p>
<p>
If your compiler is not ISO C++ compliant, the configure may fail with this argument
specified because the STL API requires standard C++ template features. In this case,
you will need a standard C++ compiler. So far gcc is the best choice, we have tested and found
that gcc-3.4.4 and all its newer versions can build the Berkeley DB C++ STL API successfully.
</p>
<p>For information on db_stl supported compilers, see the <a href="../programmer_reference/stl.html#stl_intro_portability" class="olink">Portability section</a> in the <span class="emphasis"><em>Programmer's Reference Guide</em></span>.</p>
<p>
And you need to include the STL API header files in your application code.
If you are using the Berkeley DB source tree, the header files are in <Berkeley DB Source Root >/stl directory;
If you
are using the installed version, these header files are in < Berkeley DB Installed Directory>/include, as well as the
db.h and db_cxx.h header files.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--enable-tcl</strong></span>
</p>
<p>
To build the Berkeley DB Tcl API, enter --enable-tcl as an
argument to configure. This configuration argument expects to
find Tcl's tclConfig.sh file in the
<code class="filename">/usr/local/lib</code> directory. See the
--with-tcl argument for instructions on specifying a
non-standard location for the Tcl installation. See
<a href="../programmer_reference/tcl.html#tcl_intro" class="olink">Loading Berkeley DB with Tcl</a> for information on sites from which you can
download Tcl and which Tcl versions are compatible with
Berkeley DB. To build Tcl, you must also build with shared
libraries.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-test"></a>
<span class="bold"><strong>--enable-test</strong></span>
</p>
<p>
To build the Berkeley DB test suite, enter --enable-test as an
argument to configure. To run the Berkeley DB test suite, you
must also build the Tcl API. This argument should not be
specified when configuring to build production binaries.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-uimutexes"></a>
<span class="bold"><strong>--enable-uimutexes</strong></span>
</p>
<p>
To force Berkeley DB to use the UNIX International (UI) mutex
interfaces for underlying mutex support, enter
--enable-uimutexes as an argument to configure. This is rarely
necessary: UI mutexes will be selected automatically on systems
where they are the preferred implementation.
</p>
<p>
The --enable-uimutexes configuration argument is normally used
when there are multiple mutex implementations available and the
UI mutex implementation is not the preferred one (for example,
on Solaris where the LWP mutexes are used by default).
</p>
<p>
Specifying the --enable-uimutexes configuration argument may
require that applications and Berkeley DB be linked with the
-lthread library.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-umrw"></a>
<span class="bold"><strong>--enable-umrw</strong></span>
</p>
<p>
Rational Software's Purify product and other run-time tools
complain about uninitialized reads/writes of structure fields
whose only purpose is padding, as well as when heap memory that
was never initialized is written to disk. Specify the
--enable-umrw argument during configuration to mask these
errors. This argument should not be specified when configuring
to build production binaries.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-dtrace"></a>
<span class="bold"><strong>--enable-dtrace</strong></span>
[<span class="bold"><strong>--enable-perfmon-statistics</strong></span>]
</p>
<p>
To build Berkeley DB with performance event monitoring probes
add --enable-dtrace to the configuration options. Both native
DTrace (on Solaris and Mac OS X) and the
Statically Defined Tracing compatibility layer
in Linux SystemTap version 1.1 or better are supported.
That compatibility package may be called systemtap-sdt-devel;
it includes <code class="filename">sys/sdt.h</code>.
</p>
<p>
If --enable-perfmon-statistics is combined with --enable-dtrace
then additional probes are defined for the tracking variables
from which DB's statistics are obtained.
They allow DTrace and SystemTap access to these values when
they are updated, are the basis of the statistics
as displayed db_stat and the API functions that return statistics.
</p>
<p>
The --enable-dtrace option may not be specified at the same time
as --disable-statistics.
</p>
<p>
For information on Berkeley DB Performance Event Monitoring,
see the
<a href="../programmer_reference/program_perfmon.html" class="olink">Performance Event Monitoring</a>
section in the
<span class="emphasis"><em>Programmer's Reference Guide</em></span>.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-localization"></a>
<span class="bold"><strong>--enable-localization</strong></span>
</p>
<p>
Enable localized error message text, if available.
This option should not be used when
<code class="literal">--enable-stripped_messages</code>
is in use.
</p>
</li>
<li>
<p><a id="build_unix_conf.--enable-stripped_messages"></a>
<span class="bold"><strong>--enable-stripped_messages</strong></span>
</p>
<p>
Causes all error messages to be stripped of their textual
information. Instead, only error return codes are used. This
option should not be used when
<code class="literal">--enable-localization</code>
is in use. Use of this build option can reduce your library
foot print by up to 44KB (.so) or 50KB (.a).
</p>
<p>
If you use this configuration option, you can get an idea of
what text should be issued for a given error message by using
the <a href="../articles/mssgtxt/index.html" class="olink">Message
Reference for Stripped Libraries</a> guide.
</p>
</li>
<li>
<p><a id="build_unix_conf.--with-cryptography"></a>
<span class="bold"><strong>--with-cryptography</strong></span>
</p>
<p>
To build Berkeley DB with support for cryptography, enter --with-cryptography=yes as an argument to configure.
</p>
<p>To build Berkeley DB without support for cryptography, enter --with-cryptography=no as an argument to configure.
</p>
<p>To build Berkeley DB with support for cryptography using Intel's Performance Primitive (IPP) library, enter --with-cryptography=ipp as an argument to configure. Additionally, set the following arguments:</p>
<p>-L/path/to/ipp/sharedlib to LDFLAGS</p>
<p>-I/path/to/ipp/include to CPPFLAGS</p>
<p>-lippcpem64t -lpthread to LIBS</p>
<p> An example configuration command for IPP encryption is as follows:</p>
<p></p>
<pre class="programlisting"> ../dist/configure -with-cryptography=ipp
CPPFLAGS="-I/opt/intel/ipp/6.1.3.055/em64t/include"
LDFLAGS="-L/opt/intel/ipp/6.1.3.055/em64t/sharedlib"
LIBS="-lippcpem64t -lpthread"</pre>
<p>See the<a class="ulink" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation/" target="_top"> Intel Documenation</a> for specific instructions on configuring environment variables.</p>
<p>Note: The --with-cryptography=ipp argument works only on Linux.</p>
</li>
<li>
<p><a id="build_unix_conf.--with-mutex"></a>
<span class="bold"><strong>--with-mutex=MUTEX</strong></span>
</p>
<p>
To force Berkeley DB to use a specific mutex implementation,
configure with --with-mutex=MUTEX, where MUTEX is the mutex
implementation you want. For example,
--with-mutex=x86/gcc-assembly will configure Berkeley DB to use
the x86 GNU gcc compiler based test-and-set assembly mutexes.
This is rarely necessary and should be done only when the
default configuration selects the wrong mutex implementation.
A list of available mutex implementations can be found in the
distribution file <code class="filename">dist/aclocal/mutex.m4</code>.
</p>
</li>
<li>
<p>
<span class="bold"><strong>--with-tcl=DIR</strong></span>
</p>
<p>
To build the Berkeley DB Tcl API, enter --with-tcl=DIR,
replacing DIR with the directory in which the Tcl tclConfig.sh
file may be found. See <a href="../programmer_reference/tcl.html#tcl_intro" class="olink">Loading Berkeley DB with Tcl</a> for information on sites from
which you can download Tcl and which Tcl versions are
compatible with Berkeley DB. To build Tcl, you must also build
with shared libraries.
</p>
</li>
<li>
<p><a id="build_unix_conf.--with-uniquename=NAME"></a>
<span class="bold"><strong>--with-uniquename=NAME</strong></span>
</p>
<p>
To build Berkeley DB with unique symbol names (in order to
avoid conflicts with other application modules or libraries),
enter --with-uniquename=NAME, replacing NAME with a string that
to be appended to every Berkeley DB symbol. If "=NAME" is not
specified, a default value of "_MAJORMINOR" is used, where
MAJORMINOR is the major and minor release numbers of the
Berkeley DB release. See <a class="xref" href="install_multiple.html" title="Building with multiple versions of Berkeley DB">Building with multiple versions of Berkeley DB</a> for more information.
</p>
</li>
</ul>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="build_unix.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="build_unix.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="build_unix_sql.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Chapter 7.
Building Berkeley DB for UNIX/POSIX
</td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Configuring the SQL Interface</td>
</tr>
</table>
</div>
</body>
</html>
|