| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <meta name="generator" content=
- "HTML Tidy for Windows (vers 12 April 2005), see www.w3.org">
- <style type="text/css">
- body {
- font-family: Helvetica,sans-serif;
- font-size: 9pt;
- font-style: normal;
- font-weight: normal;
- background-color: #FFFFFF;
- margin-left: 54px;
- margin-right: 54px;
- margin-top: 10px;
- margin-bottom: 36px;
- padding:0px;
- }
- h1 {
- font-family: Helvetica, sans-serif;
- font-size: 16pt;
- font-weight: bold;
- font-variant: small-caps;
- }
- h2 {
- font-family: Helvetica, sans-serif;
- font-size: 14pt;
- font-weight: bold;
- color: #000000;
- }
- h3 {
- font-family: Helvetica, sans-serif;
- font-size: 12pt;
- font-weight: bold;
- color: #000000;
- }
- h4 {
- font-family: Helvetica, sans-serif;
- font-size: 10pt;
- font-weight: bold;
- color: #000000;
- }
- h5 {
- font-family: Helvetica, sans-serif;
- font-size: 9pt;
- font-weight: bold;
- font-style: italic;
- color: #000000;
- }
- p {
- font-family: Helvetica,sans-serif;
- font-size: 10pt;
- font-style: normal;
- font-weight: normal;
- padding-left: 0%;
- }
- pre {
- padding: 1em;
- border: 1px dashed #2f6fab;
- color: black;
- background-color: #f9f9f9;
- line-height: 1.1em;
- }
- p.caption {
- font-weight: bold;
- color: black;
- padding-top: 0px;
- padding-bottom: 12px;
- }
- div {
- font-family: Helvetica,sans-serif;
- font-size: 9pt;
- font-style: normal;
- font-weight: normal;
- padding-left: 7%;
- padding-right: 5%;
- }
- b{
- font-family: Helvetica, sans-serif;
- font-size: 9pt;
- font-weight: bold;
- }
- table {
- cellpadding: 0;
- cellspacing: 0;
- }
- table.fbtable {
- font-size: 10pt;
- border-width: 1px 1px 1px 1px;
- border-spacing: 2px;
- border-style: outset outset outset outset;
- border-color: gray gray gray gray;
- border-collapse: separate;
- background-color: white;
- }
- table.fbtable th {
- border-width: 1px 1px 1px 1px;
- padding: 1px 1px 1px 1px;
- border-style: inset inset inset inset;
- border-color: gray gray gray gray;
- background-color: white;
- -moz-border-radius: 0px 0px 0px 0px;
- }
- table.fbtable td {
- border-width: 1px 1px 1px 1px;
- padding: 1px 1px 1px 1px;
- border-style: inset inset inset inset;
- border-color: gray gray gray gray;
- background-color: white;
- -moz-border-radius: 0px 0px 0px 0px;
- }
- table.fbtable td.code {
- font-size: 10pt;
- font-family: Courier New,monospace;
- color: black;
- }
- table.platform_table caption {
- margin-left: 2px;
- margin-right: 2px;
- padding: 1px;
- font-weight: bold;
- background-color: #dee2ff;
- text-align: left;
- }
- table.platform_table tr.works td {
- background-color: lightgreen;
- border: 1px solid gray;
- }
- table.platform_table tr.broken td {
- background-color: darkred;
- border: 1px solid gray;
- padding: 1px;
- }
- table.platform_table tr.rarely td {
- background-color: lightyellow;
- border: 1px solid gray;
- padding: 1px;
- font-style: italic;
- }
- td.left {
- text-align: left;
- font-size: 9pt;
- width: 33%;
- padding-top: 10px;
- padding-bottom: 10px;}
- td.center {
- text-align: center;
- font-size: 9pt;
- width: 33%;
- padding-top: 10px;
- padding-bottom: 10px;
- }
- td.right {
- text-align: right;
- font-size: 9pt;
- width: 33%;
- padding-top: 10px;
- padding-bottom: 10px;
- }
- </style>
- <title></title>
- </head>
- <body>
- <h1>
- <a name="intro" id="intro">1.0 Introduction</a>
- </h1>
- <p>
- Firebird builds on many POSIX compatible Unix and Linux platforms.
- This document describes the process for building on these systems
- and lists the supported configurations - including compiler
- revision and OS level for best results.
- </p>
- <h1>
- <a name="contents" id="contents">2.0 Contents</a>
- </h1><a href="#intro">Introduction</a><br>
- <a href="#contents">Contents</a><br>
- <a href="#preparing">Preparing to Build Firebird</a><br>
- <ul>
- <li>
- <a href="#configure1">Generating a configure file with
- autogen.sh</a>
- </li>
- <li>
- <a href="#configure2">Running configure</a>
- </li>
- </ul><a href="#supported">Supported Platforms</a>
- <ul>
- <li>
- <a href="#aix1">AIX 6.1, Power</a>
- </li>
- <li>
- <a href="#hp1">HP-UX 11i v3, Itanium</a>
- </li>
- <li>
- <a href="#hp2">HP-UX 11i v3, PA-RISC</a>
- </li>
- <li>
- <a href="#linux1">64-bit Linux</a>
- </li>
- <li>
- <a href="#linux2">32-bit Linux</a>
- </li>
- <li>
- <a href="#sol1">Solaris 10, Sparc</a>
- </li>
- <li>
- <a href="#sol2">Solaris 10, Intel</a>
- </li>
- <li>
- <a href="#freebsd">FreeBSD</a>
- </li>
- </ul>
- <h1>
- <a name="preparing" id="preparing">3.0 Preparing to Build
- Firebird</a>
- </h1>
- <h2>
- <a name="configure1" id="configure1">3.1 Generating a configure
- file with autogen.sh</a>
- </h2>
- <p>
- Before building Firebird it is necessary to create the "configure"
- script, if one is not included with your distribution. The configure
- script is generated by running the "autogen.sh" script. Autogen.sh
- is a shell script located in the root directory of the Firebird
- build.
- </p>
- <p>
- Autogen.sh depends on the GNU autotools to create "configure".
- Modern LINUX distributions will already have the GNU autotools
- installed, but if you are attempting to build on
- AIX, HP-UX, or Solaris, you may need to install the
- necessary GNU utilities.
- </p>
- <p>
- The table below shows the versions of the GNU tools that we use to
- build Firebird 2.5 on the different POSIX hosts. We take measures
- to make configure buildable with as wide range of autotools as
- possible, but we can't check all possible combinations.
- </p>
- <table class="Fbtable">
- <tr>
- <th>
- GNU Tool
- </th>
- <th>
- Recommended Version
- </th>
- <th>
- Notes
- </th>
- </tr>
- <tr>
- <td>
- m4
- </td>
- <td>
- 1.4.12
- </td>
- <td>
- autoconf and libtool depend on m4
- </td>
- </tr>
- <tr>
- <td>
- gmake
- </td>
- <td>
- 3.81
- </td>
- <td>
- 3.80 tested ok, too
- </td>
- </tr>
- <tr>
- <td>
- autoconf
- </td>
- <td>
- 2.63
- </td>
- <td>
- 2.56 is minimum version per configure.in file
- </td>
- </tr>
- <tr>
- <td>
- automake
- </td>
- <td>
- 1.10.1
- </td>
- <td>
- 1.10.2 tested ok, too
- </td>
- </tr>
- <tr>
- <td>
- libtool
- </td>
- <td>
- 2.2.6a
- </td>
- <td>
- 1.5.26 tested ok, too
- </td>
- </tr>
- </table>
- <p class="caption">
- Recommended Version(s) of GNU Tool Chain Utilities
- </p>
- <pre>
- ./autogen.sh --with-system-editline=yes --with-system-icu --enable-debug
- </pre>
- <p class="caption">
- Sample invocation of autogen with configure options
- </p>
- <p>
- Tip! It is possible to pass the configure options directly to
- autogen, as shown in the example above.
- </p>
- <h2>
- <a name="configure2" id="configure2">3.2 Running configure</a>
- </h2>
- <p>
- Once the "configure" script is generated, it can be run repeatedly
- without re-running the autogen.sh script. This allows the user to
- retest with different configuration options.
- </p>
- <table class="fbtable">
- <tr>
- <th>
- Configure Option
- </th>
- <th>
- Description
- </th>
- <th>
- Default Value
- </th>
- </tr>
- <tr>
- <td class="code">
- --enable-debug
- </td>
- <td>
- Build debug version
- </td>
- <td class="code">
- no
- </td>
- </tr>
- <tr>
- <td class="code">
- --enable-raw-devices
- </td>
- <td>
- Enable databases on raw devices
- </td>
- <td class="code">
- yes
- </td>
- </tr>
- <tr>
- <td class="code">
- --enable-superserver
- </td>
- <td>
- Build SuperServer architecture
- </td>
- <td class="code">
- no
- </td>
- </tr>
- <tr>
- <td class="code">
- --prefix
- </td>
- <td>
- Installation location
- </td>
- <td class="code">
- /usr/local/firebird
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-editline
- </td>
- <td>
- Advanced editing and command retrieval for ISQL
- </td>
- <td class="code">
- no
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-ipc-name
- </td>
- <td>
- Specify local IPC name
- </td>
- <td class="code">
- FirebirdIPI
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-system-editline
- </td>
- <td>
- Use system version of editline, instead of bundled version
- of ICU
- </td>
- <td class="code">
- no
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-system-icu
- </td>
- <td>
- Use system version of ICU, instead of bundled version of
- ICU
- </td>
- <td class="code">
- no
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-service-name
- </td>
- <td>
- Specify inet service name
- </td>
- <td class="code">
- gds_db
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-service-port
- </td>
- <td>
- Specify inet service port
- </td>
- <td class="code">
- 3050
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-gpre-ada
- </td>
- <td>
- Support ADA in gpre
- </td>
- <td class="code">
- no
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-gpre-cobol
- </td>
- <td>
- Support COBOL in gpre
- </td>
- <td class="code">
- no
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-gpre-fortran
- </td>
- <td>
- Support FORTRAN in gpre
- </td>
- <td class="code">
- no
- </td>
- </tr>
- <tr>
- <td class="code">
- --with-gpre-pascal
- </td>
- <td>
- Support PASCAL in gpre
- </td>
- <td class="code">
- no
- </td>
- </tr>
- </table>
- <p class="caption">
- Firebird Configure Options
- </p>
- <h1>
- <a name="supported" id="supported">4.0 Supported Platforms</a>
- </h1>
- <p>
- This section lists platforms, compilers, and compiler options where
- Firebird has been successfully tested. Optional flags for
- enthusiasts are provided.
- </p>
- <p>
- When Autoconf environment variables are provided, you must export
- these before running configure.
- </p>
- <p>
- Unless otherwise noted, all builds are 64-bit.
- </p>
- <table class="platform_table" summary=
- "ICU can be built on many platforms.">
- <caption>
- Firebird POSIX platforms
- </caption>
- <tr class="works">
- <td>
- AIX 6.1, Power
- </td>
- <td>
- XL C++ Compiler, 10.1
- </td>
- <td class="works">
- Frequently Tested
- </td>
- </tr>
- <tr class="rarely">
- <td>
- AIX 5.3, Power
- </td>
- <td>
- XL C++ Compiler, 10.1
- </td>
- <td>
- Rarely Tested
- </td>
- </tr>
- <tr class="works">
- <td>
- HP-UX 11.31 (11i v3), Itanium
- </td>
- <td>
- aCC C++ Compiler 6.23
- </td>
- <td class="works">
- Frequently Tested
- </td>
- </tr>
- <tr class="works">
- <td>
- HP-UX 11.31 (11i v3), PA-RISC
- </td>
- <td>
- aCC C++ Compiler 3.85
- </td>
- <td class="works">
- Frequently Tested
- </td>
- </tr>
- <tr class="rarely">
- <td>
- HP-UX 11.23 (11i v2), Itanium
- </td>
- <td>
- aCC C++ Compiler 6.23
- </td>
- <td>
- Rarely Tested
- </td>
- </tr>
- <tr class="rarely">
- <td>
- HP-UX 11.23 (11i v2), PA-RISC
- </td>
- <td>
- aCC C++ Compiler 3.85
- </td>
- <td>
- Rarely Tested
- </td>
- </tr>
- <tr class="works">
- <td>
- Linux, Red Hat Enterprise 5.3, AMD64
- </td>
- <td>
- g++ 4.3.3
- </td>
- <td>
- Frequently Tested
- </td>
- </tr>
- <tr class="works">
- <td>
- Linux, Open SUSE 11.0, AMD64
- </td>
- <td>
- g++ 4.3.3
- </td>
- <td>
- Frequently Tested
- </td>
- </tr>
- <tr class="works">
- <td>
- Linux, Open SUSE 10.2, AMD64
- </td>
- <td>
- g++ 4.3.3
- </td>
- <td>
- Frequently Tested
- </td>
- </tr>
- <tr class="works">
- <td>
- Solaris 10, SPARC
- </td>
- <td>
- Sun Studio 12, Update 1
- </td>
- <td>
- Frequently Tested
- </td>
- </tr>
- <tr class="rarely">
- <td>
- Solaris 9 SPARC
- </td>
- <td>
- Sun Studio 12
- </td>
- <td>
- Rarely Tested
- </td>
- </tr>
- <tr class="works">
- <td>
- Solaris 10, AMD64
- </td>
- <td>
- Sun Studio 12, Update 1
- </td>
- <td class="works">
- Frequently Tested
- </td>
- </tr>
- <tr class="rarely">
- <td>
- FreeBSD 8, AMD64/i386
- </td>
- <td>
- g++ 4.2.1
- </td>
- <td>
- Rarely Tested
- </td>
- </tr>
- </table>
- <h2>
- <a name="aix1" id="aix1">4.1 AIX 6.1 on Power, IBM XL C++</a>
- </h2>
- <pre>
- export CC=cc_r
- export CXX=xlC_r
- export CFLAGS=-q64
- export CXXFLAGS=-q64
- </pre>
- <p class="caption">
- Autoconf Environment Variables for AIX
- </p>
- <p>
- This configuration was also successfully tested against AIX 5.3.
- </p>
- <p>
- Compiler version was XL C++ compiler, version 10.1.
- </p>
- <h2>
- <a name="hp1" id="hp1">4.2 HP-UX 11i v3 on Itanium, HP aCC C++
- Compiler</a>
- </h2>
- <pre>
- export CC=cc
- export CXX=aCC
- export CFLAGS=+DD64
- export CXXFLAGS=+DD64
- </pre>
- <p class="caption">
- Autoconf Environment Variables for HP-UX 11i v3, Itanium
- </p>
- <P>
- Firebird requires the HP-UX Atomic APIs ("AtomicAPI" bundle),
- released as an optional Software Pack (SPK) for HP-UX 11i v2 or v3.
- </P>
- <P>
- The Firebird build process requires HP linker (ld) option
- "-concatrpath." -concatrpath is provided in the June 2007 patch bundle.
- This update is available for HP-UX 11i v2 and v3.
- </p>
- <p>
- Compiler version was HP ANSI C++ A.06.23.
- </p>
- <p>
- The default instruction set architecture for HP-UX Itanium is
- blended. Enthusiasts may add +DSnative to the CFLAGS/CXXFLAGS,
- which tunes for the processor on which the compiler is running.
- </p>
- <h2>
- <a name="hp2" id="hp2">4.3 HP-UX 11i v3 on PA-RISC, HP aCC C++
- Compiler</a>
- </h2>
- <pre>
- export CC=cc
- export CXX=aCC
- export CFLAGS=+DD64
- export CXXFLAGS=+DD64
- </pre>
- <p class="caption">
- Autoconf Environment Variables for HP-UX 11i v3, PA-RISC
- </p>
- <P>
- Firebird requires the HP-UX Atomic APIs ("AtomicAPI" bundle),
- released as an optional Software Pack (SPK) for HP-UX 11i v2 or v3.
- </P>
- <P>
- The Firebird build process requires HP linker (ld) option
- "-concatrpath." -concatrpath is provided in the June 2007 patch bundle.
- This update is available for HP-UX 11i v2 and v3.
- </p>
- <p>
- Compiler version was HP ANSI C++ A.03.85. <b><i>Note, A.03.85 is
- the latest and last release of the aCC compiler on PA-RISC</i></b>.
- </p>
- <p>
- This configuration was also successfully tested using HP-UX 11iv2.
- </p>
- <h2>
- <a name="linux1" id="linux1">4.4 Linux on 64-bit AMD64, GNU C++
- compiler (g++)</a>
- </h2>
- <p>
- g++ 4.3.3 is reference compiler for Firebird 2.5.
- </p>
- <p>
- Firebird 2.5 has been tested on the following distributions:
- </p>
- <ul>
- <li>Open SUSE 11.0
- </li>
- <li>Open SUSE 10.2
- </li>
- <li>Red Hat Enterprise 5.3
- </li>
- <li>Debian
- </li>
- </ul>
- <p>
- No Autoconf Environment variables are required to build on 64-bit
- Linux when using g++.
- </p>
- <h2>
- <a name="linux2" id="linux2">4.5 Linux on 32-bit i386, GNU C++
- compiler (g++)</a>
- </h2>
- <p>
- g++ 4.3.3 is reference compiler for Firebird 2.5.
- </p>
- <p>
- No Autoconf Environment variables are required to build on 32-bit
- Linux when using g++.
- </p>
- <h2>
- <a name="sol1" id="sol1">4.6 Solaris 10 on SPARC, Sun Studio 12
- Update 1</a>
- </h2>
- <pre>
- export CC=cc
- export CXX=CC
- export CFLAGS="-m64"
- export CXXFLAGS="-m64"
- </pre>
- <p class="caption">
- Autoconf Environment Variables for Solaris 10, SPARC
- </p>
- <p>
- This configuration was also tested on Solaris 9, SPARC, using Sun
- Studio 12.
- </p>
- <p>
- The default instruction set architecture for Solaris SPARC is
- generic (-xarch=generic). Enthusiasts may add -xarch=native to the CFLAGS/CXXFLAGS,
- which tunes for the processor on which the compiler is running.
- </p>
- <p>
- <b>Note!</b> Sun Studio 12 is the last Sun Studio release to
- support Solaris 9. Sun Studio "Update 1" requires Solaris 10 or
- greater.
- </p>
- <h2>
- <a name="sol2" id="sol2">4.7 Solaris 10 on AMD64, Sun Studio 12
- Update 1</a>
- </h2>
- <pre>
- export CC=cc
- export CXX=CC
- export CFLAGS="-m64"
- export CXXFLAGS="-m64"
- </pre>
- <p class="caption">
- Autoconf Environment Variables Solaris 10, AMD64
- </p>
- <p>
- Firebird requires Solaris 10 or later when using Sun Studio on
- Solaris AMD64. Solaris 9 is not supported on AMD64.
- </p>
- <p>
- The default instruction set architecture for Solaris on AMD64 is
- generic (-xarch=generic). Enthusiasts may add -xarch=native to the CFLAGS/CXXFLAGS,
- which tunes for the processor on which the compiler is running.
- </p>
- <h2>
- <a name="freebsd" id="freebsd">4.8 FreeBSD, g++</a>
- </h2>
- <p>
- Firebird runs on freebsd, but not too efficient - that OS is missing support of
- futex in shared memory. Therefore SystemV semaphores are used, which is not too efficient.
- To build and run firebird you should tune kernel. The following IPC settings are known to work OK:
- </p>
- <pre>
- # ipcs -S
- seminfo:
- semmap: 1024(# of entries in semaphore map)
- semmni: 1024(# of semaphore identifiers)
- semmns: 2048(# of semaphores in system)
- semmnu: 128(# of undo structures in system)
- semmsl: 1024(max # of semaphores per id)
- semopm: 100(max # of operations per semop call)
- semume: 10(max # of undo entries per process)
- semusz: 152(size in bytes of undo structure)
- semvmx: 32767(semaphore maximum value)
- semaem: 16384(adjust on exit max value)
- </pre>
- <p>
- Please pass the following parameter to autogen.sh or configure: <br>
- --with-system-editline <br>
- or: <br>
- --without-editline (this will break command line editing in isql) <br>
- Builtin library does not compile on FreeBSD!
- </p>
- <h1>
- <a name="testing" id="testing">5.0 Testing in Place</a>
- </h1>
- <p>
- Firebird is using current (one being built) engine to complete
- build, therefore successfully finished build is somewhat tested,
- but it does not provide a "make check" option. This may be added in
- a future release.
- </p>
- <p>
- After the build has finished, you may prepare your build in-place,
- and run regession tests deploying it.
- </p>
- <p>
- To prepare you build for "in-place" testing, you need to execute
- the following commands. This assumes that Firebird was downloaded
- and built in the /u/fbtest/firebird2h1 directory:
- </p>
- <pre>
- cd /u/fbtest/firebird2h1/gen/firebird
- export FIREBIRD=/u/fbtest/firebird2h1/gen/firebird
- export PATH=$FIREBIRD/bin:$PATH
- cp misc/firebird.conf .
- cp misc/fbintl.conf intl
- cp intl/libfbintl.so lib/fbintl.so
- export LD_LIBRARY_PATH=$FIREBIRD/lib
- </pre>
- <p class="caption">
- Commands for In Place Testing of Firebird
- </p>
- <p>
- <b>Note!</b> You may also need to edit the firebird.conf file and
- change <code>RemoteFileOpenAbility=1</code> if you are testing on
- an NFS drive. <b><i>PLEASE do NOT use this option in production
- unless you really understand what are you doing!!!</i></b>
- </p>
- <p>
- At this point you can run regression tests using ISQL client.
- </p>
- <h1>
- <a name="deploying" id="deploying">6.0 Deploying</a>
- </h1>
- <p>
- The hard work is done. To install, just type
- </p>
- <pre>
- make install
- </pre>
- </body>
- </html>
|