summaryrefslogtreecommitdiff
path: root/TAO/IIOP/docs/BUILDING
blob: d37985de7439a6a9f027dcfdbb65d00a3ee91a02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
@(#)BUILDING	1.2 95/09/13

[ THIS HAS NOT YET BEEN UPDATED for the new source tree ... ]


HOW TO BUILD AND TEST THIS SOFTWARE
-----------------------------------
This software uses uses an autoconfiguration script to provide portability
to a wide variety of UNIX-like platforms, since not all platforms adhere
closely to such standards as X/Open UNIX.  On Microsoft operating systems,
you will need to create one or more compiler-specific project files (for
the library, and each program using it) based on the Makefile included
with the distribution, and with a "getopt()" implementation from somewhere
other than this software distribution.

These directions assume that your source directory is the same as your
build directory.  For some suggestions about configuring trees when this
is not the appropriate source tree layout (e.g. one source tree shared
among multiple build directories, with different OS/CPU/compiler platforms
used in each build directory), see the file "IMPLEMENTATION".

On UNIX, or UNIX-like systems, type the following commands to your shell
(here assumed to have a prompt of "% ").  Your output should look something
like this; your performance will differ, reflecting varying CPU speeds and
same-host TCP overheads:

	% ./configure
	creating cache ./config.cache
	... you'll see lots of other output
	% make check
	CC -g -DDEBUG   -c  cdr.cc
	...
	testing non-polling server with oneway and null calls
	20 call non-polling loop timings:
	oneway hello avg time	= 0.130ms,	7692 calls/second
	null call avg time	= 0.525ms,	1904 calls/second

	testing with 'cube' calls, stub + DII, IOR strings
	cube average call time	= 1.031ms, 	969 calls/second
	1000 calls, 0 errors

	testing request forwarding with 'cube' calls, stub + DII
	cube average call time	= 1.032ms, 	968 calls/second
	1000 calls, 0 errors

	testing transmission of primitive data types
	test1_clnt:  100 loops, 3100 tests (0 errors)

	testing echo of primitive data values
	echo_clnt:  15 tests (0 errors)

	%

With some older versions of "make", you may need to modify the Makefile
to get the build to work correctly.  Current versions of GNU make are a
simple fix, should you encounter this problem, and have other advantages.

If you forget the separate "configure" step above, there is a chance
that the code will compile and run yet be incorrect.  For example, the
native byte order might be configured wrongly, and you wouldn't be
able to tell.  You can run "configure" again at any time, if you want
to be sure that the software had been configured correctly.  (You may
want to "make distclean" just in case, to make sure configurations do
not get inappropriately cached or intermixed.)

You can issue a "configure -help" command to get a summary of the many
options the configure script accepts.

After you have gotten the software to compile and pass the single-machine
sanity test of "make check", you may want to try inter-machine testing
using these programs.  (Several teams have done this to verify that their
independent IIOP implementations interoperate with this code.)  Read the
"TESTS" file for further information about how to do such testing using
the command line interface to these test programs.


COMPILER AND OPERATING SYSTEM PLATFORMS
---------------------------------------
This software has been compiled using these C++ compilers:

    - SunSoft SPARCworks (for SPARC) 3.0.1 (C++ 4.0.1)
    - SunSoft PROcompiler (for x86 and PowerPC) 3.0.1 (C++ 4.0.1)
    - Borland C++ (BC++) 4.5
    - GNU C++ (G++) 2.6.3 and 2.7.0
    - Microsoft Visual C++ (VC++) 2.0/2.1 (for x86)

Compilers not listed above often have problems such as poor support for
standard C++ class nesting or templates, preventing their use with this
source code.  If you get lots of compiler errors, this may well be the
root cause of your problem.  Consider switching to a newer compiler; GNU
C++ is free, and recent versions work well with this code.  (You may need
to use the GNU C++ library too; "configure" may require it.)

This software, or a slightly earlier version of it, has been tested on these
OS platforms; not all compiler/hardware/OS combinations were tested:

    - Solaris 2.4 and later; SPARC, Intel, PowerPC platforms.
    - SunOS 4.1, on SPARC
    - Linux (1.1.47 and later) on 486 hardware.
    - NEXTSTEP 3.2 on 486 hardware. (1)
    - Windows NT Workstation 3.5 on 486 hardware. (2)
    - HP/UX 9.01 on HP9000/7xx (PA RISC)
    - HP/UX 8.00 on HP9000/3xx (m68k CPU)
    - OSF/1 v3.0 on DEC Alpha
    - Ultrix 4.2 on DECstation
    - SINIX 5.42 on Siemens/Nixdorf RM400

    (1) NEXTSTEP normally includes an "old" compiler, GCC version 2.5.8, which
    has a number of serious bugs in its C++ support.  To use this on NeXT
    systems, you will need a more recent comiler, such as GCC 2.6.3 or 2.7.0.

    (2) On Windows NT, standard "getopt" command line parsing is not part
    of the operating system's standard libraries.  To use the included test
    programs, you will need to provide getopt, perhaps the GNU getopt.  FTP
    sites from which the GNU getopt is available include prep.ai.mit.edu and
    (a mirror) ftp.uu.net; it's part of the GNU C library and other GNU
    distributions.

This code hasn't recently been tested on Windows 3.1, but it should be easy
to make it work there again.  If you make this code run on other operating
systems, such as OS/2 or MacOS, please consider sending your changes to the
contact point (above) so that your changes can be part of later versions.