|
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.
Introduction
Contents
Preparing to Build Firebird
Supported Platforms
Before building Firebird it is necessary to create the "configure"
script, if one is not included with your distrubtion. 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.
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.
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.
|
GNU Tool
|
Recommended Version
|
Notes
|
|
m4
|
1.4.12
|
autoconf and libtool depend on m4
|
|
gmake
|
3.81
|
3.80 tested ok, too
|
|
autoconf
|
2.63
|
2.56 is minimum version per configure.in file
|
|
automake
|
1.10.1
|
1.10.2 tested ok, too
|
|
libtool
|
2.2.6a
|
1.5.26 tested ok, too
|
Recommended Version(s) of GNU Tool Chain Utilities
./autogen.sh --with-system-editline=yes --with-system-icu --enable-debug
Sample invocation of autogen with configure options
Tip! It is possible to pass the configure options directly to
autogen, as shown in the example above.
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.
|
Configure Option
|
Description
|
Default Value
|
|
--enable-debug
|
Build debug version
|
no
|
|
--enable-raw-devices
|
Enable databases on raw devices
|
yes
|
|
--enable-superserver
|
Build SuperServer architecture
|
no
|
|
--prefix
|
Installation location
|
/usr/local/firebird
|
|
--with-editline
|
Advanced editing and command retrieval for ISQL
|
no
|
|
--with-ipc-name
|
Specify local IPC name
|
FirebirdIPI
|
|
--with-system-editline
|
Use system version of editline, instead of bundled version
of ICU
|
no
|
|
--with-system-icu
|
Use system version of ICU, instead of bundled version of
ICU
|
no
|
|
--with-service-name
|
Specify inet service name
|
gds_db
|
|
--with-service-port
|
Specify inet service port
|
3050
|
|
--with-gpre-ada
|
Support ADA in gpre
|
no
|
|
--with-gpre-cobol
|
Support COBOL in gpre
|
no
|
|
--with-gpre-fortran
|
Support FORTRAN in gpre
|
no
|
|
--with-gpre-pascal
|
Support PASCAL in gpre
|
no
|
Firebird Configure Options
This section lists platforms, compilers, and compiler options where
Firebird has been succesfully tested. Optional flags for
enthusiasts are provided.
When Autoconf environment variables are provided, you must export
these before running configure.
Unless otherwise noted, all builds are 64-bit.
export CC=cc_r
export CXX=xlC_r
export CFLAGS=-q64
export CXXFLAGS=-q64
Autoconf Environment Variables for AIX
This configuration was also succesfully tested against AIX 5.3.
Compiler version was XL C++ compiler, version 10.1.
export CC=cc
export CXX=aCC
export CFLAGS=+DD64
export CXXFLAGS=+DD64
Autoconf Environment Variables for HP-UX 11i v3, Itanium
Firebird requires the HP-UX Atomic APIs ("AtomicAPI" bundle),
released as an optional Software Pack (SPK) for HP-UX 11i v2 or v3.
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.
Compiler version was HP ANSI C++ A.06.23.
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.
export CC=cc
export CXX=aCC
export CFLAGS=+DD64
export CXXFLAGS=+DD64
Autoconf Environment Variables for HP-UX 11i v3, PA-RISC
Firebird requires the HP-UX Atomic APIs ("AtomicAPI" bundle),
released as an optional Software Pack (SPK) for HP-UX 11i v2 or v3.
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.
Compiler version was HP ANSI C++ A.03.85. Note, A.03.85 is
the latest and last release of the aCC compiler on PA-RISC.
This configuration was also succesfully tested using HP-UX 11iv2.
g++ 4.3.3 is reference compiler for Firebird 2.5.
Firebird 2.5 has been tested on the following distributions:
- Open SUSE 11.0
- Open SUSE 10.2
- Red Hat Enterprise 5.3
- Debian
No Autoconf Environment variables are required to build on 64-bit
Linux when using g++.
g++ 4.3.3 is reference compiler for Firebird 2.5.
No Autoconf Environment variables are required to build on 32-bit
Linux when using g++.
export CC=cc
export CXX=CC
export CFLAGS="-m64"
export CXXFLAGS="-m64"
Autoconf Environment Variables for Solaris 10, SPARC
This configuration was also tested on Solaris 9, SPARC, using Sun
Studio 12.
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.
Note! Sun Studio 12 is the last Sun Studio release to
support Solaris 9. Sun Studio "Update 1" requires Solaris 10 or
greater.
export CC=cc
export CXX=CC
export CFLAGS="-m64"
export CXXFLAGS="-m64"
Autoconf Environment Variables Solaris 10, AMD64
Firebird requires Solaris 10 or later when using Sun Studio on
Solaris AMD64. Solaris 9 is not supported on AMD64.
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.
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.
After the build has finished, you may prepare your build in-place,
and run regession tests deploying it.
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:
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
Commands for In Place Testing of Firebird
Note! You may also need to edit the firebird.conf file and
change RemoteFileOpenAbility=1 if you are testing on
an NFS drive. PLEASE do NOT use this option in production
unless you really understand what are you doing!!!
At this point you can run regression tests using ISQL client.
The hard work is done. To install, just type
make install
|