1.0 Introduction

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.

2.0 Contents

Introduction
Contents
Preparing to Build Firebird

Supported Platforms

3.0 Preparing to Build Firebird

3.1 Generating a configure file with autogen.sh

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 toolchain to create "configure". Modern LINUX distributions will already have the GNU toolchain installed, but if you are attempting a build on a different POSIX system, such as 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.

3.2 Running configure

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. You can always get actual list options using './configure –help'.

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 instead Classic / SuperClassic

no

--prefix

Installation location

/usr/local/firebird

--with-editline

Advanced editing and command retrieval for ISQL

no

--with-ipc-name

Specify local IPC name (mingw build only)

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

4.0 Supported Platforms

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. Linux 32-bit builds are also frequently tested.

Firebird POSIX platforms

AIX 6.1, Power

XL C++ Compiler, 10.1

Frequently Tested

AIX 5.3, Power

XL C++ Compiler, 10.1

Rarely Tested

HP-UX 11.31 (11i v3), PA-RISC

aCC C++ Compiler 3.85

Frequently Tested

HP-UX 11.31 (11i v3), Itanium

aCC C++ Compiler 3.85

Frequently Tested

HP-UX 11.23 (11i v2), PA-RISC

aCC C++ Compiler 3.85

Rarely Tested

HP-UX 11.23 (11i v2), Itanium

aCC C++ Compiler 3.85

Rarely Tested

Linux, Red Hat Enterprise 5.3, AMD64

g++ 4.3.3

Frequently Tested

Linux, Open SUSE 11.0, AMD64

g++ 4.3.3

Frequently Tested

Linux, Open SUSE 10.2, AMD64

g++ 4.3.3

Frequently Tested

Solaris 10, SPARC

Sun Studio 12, Update 1

Frequently Tested

Solaris 9 SPARC

Sun Studio 12

Rarely Tested

Solaris 10, AMD64

Sun Studio 12, Update 1

Frequently Tested

4.1 AIX 6.1 on Power, IBM XL C++

   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.

4.2 HP-UX 11i v3 on Itanium, HP aC++ Compiler

   export CC=cc
   export CXX=aCC
   export CFLAGS=+DD64
   export CXXFLAGS=+DD64

Autoconf Environment Variables for HP-UX 11i v3, Itanium

Compiler version was HP ANSI C++ 3.85.

The default instruction set architecture for HP-UX Itanium is blended. Enthusiasts may compile with +DSnative, which tunes for the processor on which the compiler is running.

4.3 HP-UX 11i v3 on PA-RISC, HP aC++ Compiler

   export CC=cc
   export CXX=aCC
   export CFLAGS=+DD64
   export CXXFLAGS=+DD64

Autoconf Environment Variables for HP-UX 11iv3, PA-RISC

Compiler version was HP ANSI C++ 3.85.

This configuration was also succesfully tested using HP-UX 11iv2.

4.4 Linux on 64-bit AMD64, GNU C++ compiler (g++)

g++ 4.3.3 is reference compiler for Firebird 2.5.

Firebird 2.5 has been tested on the following distributions:

No Autoconf Environment variables are required to build on 64-bit Linux when using g++.

4.5 Linux on 32-bit i386, GNU C++ compiler (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++.

4.6 Solaris 10 on SPARC, Sun Studio 12 Update 1

   export CC=cc
   export CXX=CC
   export CFLAGS="-m64 -xarch=sparcvis"
   export CXXFLAGS="-m64 -xarch=sparcvis"

Autoconf Environment Variables for Solaris 10, SPARC

This configuration was also tested on Solaris 9, SPARC, using Sun Studio 12.

Note! Sun Studio 12 is the last Sun Studio release to support Solaris 9. Sun Studio "Update 1" requires Solaris 10 or greater.

4.7 Solaris 10 on AMD64, Sun Studio 12 Update 1

   export CC=cc
   export CXX=CC
   export CFLAGS="-m64 -xarch=sse2a"
   export CXXFLAGS="-m64 -xarch=sse2a"

Autoconf Environment Variables Solaris 10, AMD64

Note! Firebird requires Solaris 10 when using Sun Studio on Solaris AMD64

5.0 Testing in Place

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 well what are you doing!

At this point you can run regression tests using ISQL client.

6.0 Deploying

The hard work is done. To install, just type

make install