1
This is the README file for POCO - The C++ Portable Components.
3
In this document you will find a brief description of the directory layout,
4
as well as a description necessary steps to build the C++ Portable Components.
6
The C++ Portable Components currently consist of four libraries.
7
The Foundation library contains a platform abstraction layer (including classes
8
for multithreading, file system access, logging, etc.), as well as
9
a large number of useful utility classes, such various stream buffer and stream
10
classes, URI handling, and many more.
11
The XML library contains an XML parser with SAX2 and DOM interfaces,
12
as well as an XMLWriter.
13
The Util library contains classes for working with configuration files and
14
command line arguments, as well as various utility classes.
15
The Net library contains network classes (sockets, HTTP, etc.)
16
All libraries come with a test suite and a number of sample programs.
18
The directory layout is as follows:
20
build/ the build system for Unix/OpenVMS and additional utility scripts
21
config/ build configurations for various Unix platforms
22
rules/ common build rules for all platforms
23
scripts/ build and utility scripts
24
vms/ OpenVMS build system scripts
26
bin/ all executables (dynamic link libraries on Windows)
28
doc/ additional documentation
30
lib/ all libraries (import libraries on Windows)
32
CppUnit/ project and make/build files for the CppUnit unit testing framework
33
doc/ additional documentation
35
CppUnit/ header files for CppUnit
36
src/ source files for CppUnit
37
WinTestRunner/ Windows GUI for CppUnit
39
Foundation/ project and make/build files for the Foundation library
41
Foundation/ header files for the Foundation library
42
src/ source files for the Foundation library
43
testsuite/ project and make/build files for the Foundation testsuite
44
src/ source files for the Foundation testsuite
45
bin/ test suite executables
46
samples/ sample applications for the Foundation library
48
XML/ project and make/build files for the XML library
50
Foundation/ header files for the XML library
51
src/ source files for the XML library
52
testsuite/ project and make/build files for the XML testsuite
53
src/ source files for the XML testsuite
54
bin/ test suite executables
55
samples/ sample applications for the XML library
61
Online browsable reference documentation in HTML is available at
62
<http://poco.appinf.com/docs/>. Additional documentation,
63
including and overview and an introduction to the samples
64
is available at <http://poco/appinf.com/documentation/>.
70
Microsoft Visual Studio 7.1 (2003) or 8.0 (2005) is required to build the C++ Portable Components
71
on Windows platforms. Solution and project files for both versions are included.
72
You can either build from within Visual Studio (Build->Batch Build->Select All;Rebuild)
73
or from the command line. To build from the command line, start the
74
Visual Studio .NET 2003 (or 2005) Command Prompt and cd to the directory where you have
75
extracted the C++ Portable Components sources. Then simply start the build_vs71.cmd (or
76
build_vs80.cmd, respectively) batch file. This will build all libraries, test suites and
77
sample programs, in both debug and release versions. The dynamic link libraries will be
78
placed in the top-most bin directory. The import libraries will be placed in the top-most lib
79
directory. The test suite executables will be placed in the testsuite/bin directories.
80
The sample executables will be placed in the sample/*/bin directories.
82
In order to run the test suite and the samples, the top-most bin directory containing
83
the shared libraries must be in the PATH environment variable.
85
If you want to run the test suite or samples from within Visual Studio, we recommend that
86
you download and install the free Solution Build Environment for Visual Studio .NET 2003,
87
from <http://www.workspacewhiz.com/SolutionBuildEnvironmentReadme.html>.
89
You can then add the bin directory to the PATH environment variable in a .slnenv file,
90
using the following entry.
93
PATH=$(PATH);$(POCO_BASE)\bin
95
Of course you will have to change the path p:\poco so that it matches your environment.
98
BUILDING ON UNIX/LINUX/MAC OS X
99
===============================
101
For building on Unix platforms, the C++ Portable Components come with their own
102
build system. The build system is based on GNU Make 3.80, with the help from a few
103
shell scripts. If you do not have GNU Make 3.80 (or later) installed on your machine,
104
you will need to download it from <http://directory.fsf.org/devel/build/make.html>,
105
build and install it prior to building the C++ Portable Components.
107
You can check the version of GNU Make installed on your system with
115
Once you have GNU Make up and running, the rest is quite simple.
116
To extract the sources and build all libraries, testsuites and samples, simply
118
> gunzip poco-X.Y.tar.gz
119
> tar -xf poco-X.Y.tar.gz
124
See the configure script source for a list of possible options.
126
Once you have successfully built POCO, you can install it
127
to /usr/local (or another directory specified as parameter
128
to configure --prefix=<path>):
130
> sudo gmake -s install
132
To build on Mac OS X 10.3 with GCC 3, do the following:
134
> ./configure --config=Darwin7
138
BUILDING ON QNX NEUTRINO
139
========================
141
For QNX Neutrino, the Unix build system (see the instructions above) is used.
142
You can use the build system to cross-compile for a target platform on a Solaris or
143
Linux host. Unfortunately, the Cygwin-based Windows host environment has some major
144
quirks that prevent the build system from working there. You can also use the
145
build system on a self-hosted QNX system. The default build configuration for QNX
146
(found in build/config/QNX) is for a self-hosted x86 platform. To specify another
147
target, edit the CCVER setting in the build configuration file. For example, to
148
compile for a PowerPC target, specify CCVER=3.3.1,gcc_ntoppcbe.
150
Service Pack 1 for QNX Neutrino 6.3 must be installed, otherwise compiling the
151
Foundation library will fail due to a problem with the <list> header in the
152
default (Dinkumware) C++ standard library.
158
OpenVMS is no longer supported in recent versions of POCO, due to both a
159
lack of interest and a lack of contributors. The following
160
instructions are here for historical reasons.
162
The C++ Portable Components come with their own build system for OpenVMS, implemented
163
by a bunch of DCL scripts. The scripts can be found in the build/vms directory.
165
To build the C++ Portable Components on OpenVMS, follow the following steps.
167
1) Download the .zip distribution of the C++ Portable Components
170
$ unzip -aa poco-0_91_4.zip
172
3) Change the directory
173
$ set def [.poco-0_01_4]
175
4) Create a lib directory
178
5) Run the buildvms.com script
181
This will build the debug versions of the libraries. To build the release
189
For more information, see the Applied Informatics C++ Portable Components website
190
at <http://poco.appinf.com>.
194
$Id: //poco/1.2/dist/README#1 $