mirror of
https://github.com/AdaCore/PolyORB.git
synced 2026-02-12 13:01:15 -08:00
(README.md): Add pointer to README.DSA
(INSTALL): Minor reformatting, list automake and libtool version
requirements
(docs/Installation.rst) Minor reorganization to make the process to
build from the source repository clearer.
Prompted by S312-064
283 lines
8.0 KiB
ReStructuredText
283 lines
8.0 KiB
ReStructuredText
.. _Installation:
|
|
|
|
************
|
|
Installation
|
|
************
|
|
|
|
|
|
.. _Supported_Platforms:
|
|
|
|
Supported Platforms
|
|
===================
|
|
|
|
PolyORB has been compiled and successfully tested on the following
|
|
platforms:
|
|
|
|
* AIX
|
|
* FreeBSD
|
|
* HP-UX
|
|
* Linux
|
|
* MacOS X
|
|
* Solaris
|
|
* Tru64
|
|
* VxWorks
|
|
* Windows
|
|
|
|
*Note: PolyORB should compile and run on every target for which
|
|
GNAT and the `GNAT.Sockets` package are available.*
|
|
|
|
.. _Build_requirements:
|
|
|
|
Build requirements
|
|
==================
|
|
|
|
GNU tar is required to unpack PolyORB source packages.
|
|
|
|
GNU make 3.80 or newer is required to build PolyORB.
|
|
|
|
Ada compiler:
|
|
|
|
* GNAT Pro 6.2.* or later
|
|
* GNAT GPL 2009 or later
|
|
* FSF GCC 4.4 or later
|
|
|
|
For builds for cross targets, both a native and a cross compiler are
|
|
required, as some tools (like an IDL-to-Ada compiler) are meant for
|
|
use on the build host.
|
|
|
|
A Python interpreter is required for installation.
|
|
|
|
Optional:
|
|
|
|
* (Only for older versions of GNAT, and only if you want to build
|
|
the CORBA application personality): A C++ compiler. The OMG IDL
|
|
specification mandates that IDL source files be preprocessed according
|
|
to standard C++ preprocessing rules. Newer versions of GNAT provide an
|
|
integrated IDL preprocessor. This feature is detected and used
|
|
automatically. However, for older versions of GNAT, PolyORB relies on
|
|
an external preprocessor provided by a suitable C++ compiler. Please
|
|
refer to the documentation of your particular version of GNAT to know
|
|
if it supports this feature.
|
|
|
|
* XML/Ada (`http://libre.adacore.com/libre/tools/xmlada/ <http://libre.adacore.com/libre/tools/xmlada/>`_) if you
|
|
want to build the SOAP protocol personality.
|
|
|
|
Note: per construction, the macro *configure* used to find
|
|
your GNAT compiler looks first for the executable *gnatgcc*,
|
|
then *adagcc* and finally *gcc* to find out which
|
|
Ada compiler to use. You should be very careful with your path and
|
|
executables if you have multiple GNAT versions installed. See the
|
|
explanation below on the ADA environment variable if you need to
|
|
override the default guess.
|
|
|
|
.. _Build_instructions:
|
|
|
|
Build instructions
|
|
==================
|
|
|
|
Developers building PolyORB from the version control repository
|
|
will first need to build the configure script and other support files.
|
|
|
|
To do so, from
|
|
the top-level source directory, run the following command initially, and
|
|
after each update from the repository::
|
|
|
|
$ support/reconfig
|
|
|
|
In addition to the requirements above, developers will need autoconf 2.60
|
|
or newer, automake 1.6.3 or newer, and libtool 1.5.8 or newer.
|
|
|
|
To compile and install PolyORB, execute::
|
|
|
|
$ ./configure [some options]
|
|
$ make
|
|
$ make install
|
|
|
|
This will install files in standard locations. If you want to choose
|
|
a prefix other than :file:`/usr/local`, give configure a
|
|
*--prefix=whereveryouwant* argument.
|
|
|
|
.. _Additional_instructions_for_cross_platforms:
|
|
|
|
Additional instructions for cross platforms
|
|
===========================================
|
|
|
|
The :file:`RANLIB` environment variable must be set to the path of the
|
|
cross :file:`ranlib` prior to running :file:`configure` with the
|
|
appropriate `--target` option.
|
|
|
|
For example, for VxWorks 5 execute:
|
|
|
|
::
|
|
|
|
$ export RANLIB=ranlibppc
|
|
$ ./configure --target=powerpc-wrs-vxworks [some options]
|
|
$ make
|
|
$ make install
|
|
|
|
|
|
Only one PolyORB installation (native or cross) is currently possible
|
|
with a given `--prefix`. If both a native and a cross
|
|
installation are needed on the same machine, distinct prefixes must be
|
|
used.
|
|
|
|
Use `./configure --help` for a full list of available configuration
|
|
switches.
|
|
|
|
.. _Building_the_documentation_and_PolyORB's_examples:
|
|
|
|
Building the documentation and PolyORB's examples
|
|
=================================================
|
|
|
|
PolyORB's documentation and examples are built separately.
|
|
|
|
To build the examples, run *make examples* in the root
|
|
directory. The build process will only build examples that correspond
|
|
to the personalities you configured. Note that some examples require the
|
|
CORBA COS Naming and IR services to be enabled (using
|
|
*--enable-corba-services="naming ir"* on the *configure*
|
|
command line).
|
|
|
|
Similarly, to build the documentation, run *make docs*.
|
|
|
|
You may install PolyORB's documentation in a standard location using
|
|
*make install*.
|
|
|
|
.. _Build_Options:
|
|
|
|
Build Options
|
|
=============
|
|
|
|
Available options for the 'configure' script include:
|
|
|
|
|
|
* *--with-appli-perso="..."*: application personalities to build
|
|
|
|
Available personalities: CORBA, DSA, MOMA
|
|
|
|
e.g. *--with-appli-perso="corba moma"* to build both the CORBA
|
|
and MOMA personalities
|
|
|
|
* *--with-proto-perso="..."*: protocol personalities to build
|
|
|
|
Available personalities: GIOP, SOAP
|
|
|
|
e.g. *--with-proto-perso="giop soap"* to build both the GIOP
|
|
and SOAP personalities
|
|
|
|
* *--with-idl-compiler="..."*: select IDL compiler
|
|
|
|
Available IDL compilers: iac (default), idlac
|
|
|
|
e.g. *--with-idl-compiler=''iac''* to build iac
|
|
|
|
* *--with-corba-services="..."*: CORBA COS services to build
|
|
|
|
Available services: event, ir, naming, notification, time
|
|
|
|
e.g. *--with-corba-services="event naming"* to build only
|
|
COS Event and COS Naming.
|
|
|
|
|
|
By default, only the CORBA and GIOP personalities are built, and no
|
|
CORBA Services are built.
|
|
|
|
|
|
* *--with-openssl*: build SSL support and SSL dependent
|
|
features, including the IIOP/SSLIOP personality
|
|
|
|
* *--help*: list all options available
|
|
|
|
* *--enable-shared*: build shared libraries.
|
|
|
|
* *--enable-debug*: enable debugging information generation
|
|
and supplementary runtime checks. Note that this option has a significant
|
|
space and time cost, and is not recommended for production use.
|
|
|
|
|
|
.. _Compiler,_Tools_and_Run-Time_libraries_Options:
|
|
|
|
Compiler, Tools and Run-Time libraries Options
|
|
==============================================
|
|
|
|
The following environment variables can be used to override configure's
|
|
guess at what compilers to use:
|
|
|
|
|
|
* `CC`: the C compiler
|
|
* `ADA`: the Ada compiler (e.g. gcc, gnatgcc or adagcc)
|
|
* `CXXCPP`, `CXXCPPFLAGS`: the preprocessor used by
|
|
the IDL-to-Ada compiler (only when setting up the CORBA application
|
|
personality). CORBA specifications require this preprocessor to be
|
|
compatible with the preprocessing rules defined in the C++
|
|
programming language specifications.
|
|
|
|
|
|
For example, if you have two versions of GNAT installed and available
|
|
in your `PATH`, and configure picks the wrong one, you can
|
|
indicate what compiler should be used with the following (assuming
|
|
Bourne shell syntax):
|
|
|
|
|
|
::
|
|
|
|
$ ADA=/path/to/good/compiler/gcc ./configure [options]
|
|
|
|
|
|
PolyORB will be compiled with GNAT build host's configuration,
|
|
including run-time library. You may override this setting using
|
|
`ADA_INCLUDE_PATH` and `ADA_OBJECTS_PATH` environment
|
|
variables. See GNAT User's Guide for more details.
|
|
|
|
You can add specific build options to GNAT using the
|
|
`EXTRA_GNATMAKE_FLAGS` variable:
|
|
|
|
|
|
::
|
|
|
|
$ EXTRA_GNATMAKE_FLAGS=--RTS=rts-sjlj ./configure [options]
|
|
|
|
|
|
You can also pass compiler-only flags using the `ADAFLAGS` variable.
|
|
|
|
.. _Platform_notes:
|
|
|
|
Platform notes
|
|
==============
|
|
|
|
Solaris (all versions):
|
|
|
|
/usr/ucb/tr and /usr/bin/tr are not suitable to build PolyORB. Your PATH must
|
|
be set to that tr(1) is /use/xpg4/bin/tr or GNU tr. (However note that
|
|
if you have GNU make in /usr/local/bin, then /usr/xpg4/bin must occur
|
|
*after* /usr/local/bin in your PATH, since /usr/xpg4/bin/make is
|
|
not suitable to build PolyORB.
|
|
|
|
So, assuming GNU make is installed in /usr/local/bin, a suitable PATH
|
|
setting would be: PATH=/usr/local/bin:/usr/xpg4/bin:/usr/ccs/bin:/usr/bin.
|
|
|
|
Tru64 5.1A:
|
|
|
|
The default maximal data segment size may not be sufficient to compile
|
|
PolyORB. If a GNAT heap exhausted error message occurs during build,
|
|
try raising this limit using:
|
|
|
|
::
|
|
|
|
ulimit -d unlimited
|
|
|
|
|
|
AIX 5.2:
|
|
|
|
PolyORB must be compiled with the -mminimal-toc compiler switch. This is
|
|
taken care of automatically by the PolyORB configure script.
|
|
|
|
The 'ulimit' command may be needed as for Tru64 (see above).
|
|
|
|
HP-UX 11.00:
|
|
|
|
The version of install(1) from /opt/imake/bin on HP-UX is not suitable
|
|
for installing PolyORB. Make sure that /opt/imake/bin is not on the PATH
|
|
when building and installing PolyORB.
|
|
|