summaryrefslogtreecommitdiff
path: root/ACE-INSTALL.html
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-06-26 16:26:40 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-06-26 16:26:40 +0000
commitff67d1e4a44795bdc48203dc60177f4ffaf9ec15 (patch)
tree926c29b9b943197b8c48ae227c3bdbe60d29d60e /ACE-INSTALL.html
parenta9971f5f00b0f51f63fab0a0fd0a8425b64a600c (diff)
downloadATCD-ff67d1e4a44795bdc48203dc60177f4ffaf9ec15.tar.gz
Added more info for {Free,Net}BSD.
Diffstat (limited to 'ACE-INSTALL.html')
-rw-r--r--ACE-INSTALL.html1503
1 files changed, 761 insertions, 742 deletions
diff --git a/ACE-INSTALL.html b/ACE-INSTALL.html
index e29edc82dfa..98ed7836a98 100644
--- a/ACE-INSTALL.html
+++ b/ACE-INSTALL.html
@@ -2,8 +2,8 @@
<!-- $Id$ -->
<HEAD>
- <TITLE>Building and Installing ACE and Its Network Services</TITLE>
- <link rev=made href="mailto:schmidt@cs.wustl.edu">
+<TITLE>Building and Installing ACE and Its Network Services</TITLE>
+<link rev=made href="mailto:schmidt@cs.wustl.edu">
</HEAD>
<BODY text = "#000000"
@@ -26,12 +26,12 @@ HREF="ACE.FAQ.html">FAQ</A> before building and installing ACE.
<H4>Document Index</H4>
<UL>
-<LI><A HREF="#platforms">Supported Platforms and Compilers</A>
-<LI><A HREF="#installnotes">Installation Notes for Supported Platforms</A>
-<LI><A HREF="#g++">Compiling ACE with GNU g++</A>
-<LI><A HREF="#aceinstall">Building and Installing ACE</A>
-<LI><A HREF="#svcsinstall">Building and Installing ACE Network Services</A>
-<LI><A HREF="#advanced">Advanced Topics</A>
+ <LI><A HREF="#platforms">Supported Platforms and Compilers</A>
+ <LI><A HREF="#installnotes">Installation Notes for Supported Platforms</A>
+ <LI><A HREF="#g++">Compiling ACE with GNU g++</A>
+ <LI><A HREF="#aceinstall">Building and Installing ACE</A>
+ <LI><A HREF="#svcsinstall">Building and Installing ACE Network Services</A>
+ <LI><A HREF="#advanced">Advanced Topics</A>
</UL>
<P><HR><P>
@@ -55,32 +55,28 @@ mailing list</A> and we'll try to fix it for you.
is known to support well.<P>
<table width="100%" border=1>
- <tr valign=top>
- <td><b>Fully supported, i.e., continually tested and used daily</b></td>
- <td>Solaris 2.5, Windows NT (MSVC++ 4.x and 5.0),
- DEC Alpha Windows NT (MSVC++ 5.0), Linux/Intel,
- Linux/Alpha, VxWorks, LynxOS, Digital UNIX 4.0,
- HP/UX, AIX
- </td>
- </tr>
- <tr valign=top bgcolor="#AFAFAF">
- <td><b>Nearly fully supported, i.e., periodically tested</b></td>
- <td>Solaris 2.6, Windows 95, Windows CE, IRIX 6.x, MVS
- </td>
- </tr>
- <tr valign=top>
- <td><b>Partially supported, i.e., infrequently tested</b></td>
- <td>
- PSoS, Tandem, Chorus, SCO, UnixWare, SunOS 4.x,
- FreeBSD, NetBSD
- </td>
- </tr>
- <tr valign=top bgcolor="#AFAFAF">
- <td><b>Planned support, i.e., pending</b></td>
- <td>
- Windows CE
- </td>
- </tr>
+ <tr valign=top>
+ <td><b>Fully supported, i.e., continually tested and used daily</b></td>
+ <td>Solaris 2.5, Windows NT (MSVC++ 4.x and 5.0),
+ DEC Alpha Windows NT (MSVC++ 5.0), Linux/Intel,
+ Linux/Alpha, VxWorks, LynxOS, Digital UNIX 4.0,
+ HP/UX, AIX
+ </td>
+ </tr>
+ <tr valign=top bgcolor="#AFAFAF">
+ <td><b>Nearly fully supported, i.e., periodically tested</b></td>
+ <td>Solaris 2.6, Windows 95, Windows CE, IRIX 6.x, MVS
+ </td>
+ </tr>
+ <tr valign=top>
+ <td><b>Partially supported, i.e., infrequently tested</b></td>
+ <td> PSoS, Tandem, Chorus, SCO, UnixWare, SunOS 4.x, FreeBSD, NetBSD
+ </td>
+ </tr>
+ <tr valign=top bgcolor="#AFAFAF">
+ <td><b>Planned support, i.e., pending</b></td>
+ <td> Windows CE </td>
+ </tr>
</table>
<P>In general, any UNIX/POSIX variation is a potential target platform
@@ -90,283 +86,306 @@ for ACE. Ideally, ACE will compile on any POSIX conforming OS.
<H3><A NAME="installnotes">Installation Notes for Supported Platforms</A></H3>
<UL>
-<LI> <B>Win32 (Windows NT/i386, NT/Alpha and Windows '95) </B><P>
-
-All of ACE has been ported to the Win32 API (which includes Windows NT
-and Windows '95). The entire release now compiles using the Microsoft
-Visual C++ 4.x and 5.0 compilers (the 2.0 compiler may also work, but
-we haven't tested it recently). ACE can be built as both a static and
-dynamic library, using the Win32 installation process described
-below.<P>
-
-<li> <b>Windows CE</b><p>
-
-Most of ACE has been ported to Windows CE using Visual C++ 5.0 with CE
- Toolkit. ACE has been tested on x86 Emulator and an HP 360LX
- with an SH series CPU. Please be sure to read this file (<a
- href="CE-status.txt">CE-status.txt</a>) for
- up-to-date information about ACE on CE. ACE can only be built as
- DLL library now.
-
-<LI> <B> Sun OS 5.x/4.x (a.k.a. Solaris 2.x/1.x) using Sun CC 3.0.1, Sun
- C++ 4.0.x, Centerline C++ 2.x, and GNU gcc 2.7.x. </B> <P>
-
-All the source code and tests should build and run without
- any problems on the Solaris and SunOS platforms using the
- Sun C++ compilers.<P>
-
-<LI> <B> Sun OS 4.1.x using Centerline C++ 2.x, Sun CC 3.x, and Lucid
- Energize 3.2. </B> <P>
-
-Note that shared libraries do not interact very well with
- Centerline C++ or Sun C++ on SunOS 4.1.x. This is due to
- odd behavior of the SunOS 4.1.x linker, which (1) does not
- properly call constructors of global objects within shared
- libraries and (2) does not call the init() and fini()
- functions in shared libraries, even though the manual claims
- that these functions are called! In particular, this means
- that the tests in the directory
- $(ACE_ROOT)/tests/Service_Configurator/IPC-tests/server/
- will not work for statically linked services...<P>
-
- Some versions of SunOS 4.1.x do not contain the
- /usr/lib/libnsl.a library. This library seems to be
- optional since System V Transport Layer Interface (TLI)
- support is optional on SunOS 4.1.x (in contrast, it's the
- "preferred" transport interface on Solaris).<P>
-
- The best work-around for now is probably to either add a
- dummy libnsl.a in /lib (which may not be feasible) or simply
- comment out the line:<P>
-
- LIBS += -lnsl<P>
-
- in the <CODE>$ACE_ROOT/include/makeinclude/wrapper_macros.GNU</CODE>
- file. Naturally, any programs, e.g., the TLI_SAP tests,
- that use the TLI wrappers aren't going to work!<P>
-
- Note that on SunOS 4.x you may get warnings from the linker
- that "archive has no table of contents; add one using
- ranlib(1)" for certain libraries, e.g., libASX.a,
- libThreads.a, and libSPIPE.a. This occurs since SunOS 4.x
- does not support these features.<P>
-
-<LI><B>AIX</B>P>
-
- The ACE port to AIX assumes that the user has installed the
- AIX patch containing the dl*() APIs. To use these APIs, IBM
- has created a separate product (free to AIX licensees)
- called shared library hookable symbols (or slhs/6000). If
- you don't have this patch, the sv* commands for compiling
- and linking will not be present on the system.<P>
-
- If you are using AIX 4.2.1 or later, there is no patch needed;
- the dynamic library APIs are included in the base operating
- system.<P>
-
- BTW, here's a technique from Rob Jordan &lt<A
- HREF="mailto:jordan@hursley.ibm.com">jordan@hursley.ibm.com</A>&gt
- that can reduce the size of the ACE libraries by
- about one third, and can also be applied to applications. It works
- by optimising the sharing of template functions, which are created in an
- ``unusual'' way under AIX. It also speeds up compilation.<P>
-
- Here's how to optimise the ACE library generation:<P>
-
- Look at the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ace/Makefile">Makefile</a>
- in <CODE>$ACE_ROOT/ace</CODE>. Create a file called
- <CODE>ACE_All_Src.cpp</CODE>, and add a line to #include
- each of the source files
- listed under <CODE>FILES=</CODE> in the Makefile. Create a
- file called <CODE>ACE_All_Tmp.h</CODE>
- and add a line to #include each of the .h files listed under
- <CODE>TEMPLATE_FILES=</CODE> in the Makefile. Now update the Makefile so that
- <CODE>FILES=ACE_All_Src</CODE> and <CODE>TEMPLATE_FILES=ACE_All_Tmp</CODE>.<P>
-
-<LI><B>Linux</B><P>
-
-ACE has been ported to <A
-HREF="http://www.cs.wustl.edu/~cleeland/ace/">Linux</A> on both Intel
-and Alpha platforms. If you use a RedHat 5.x distribution, it's best
-to use RedHat 5.1. With RedHat 5.0, you'll need some <A
-HREF="os-patches/linux-patches.html">updates and possibly som
-patches</A> to get ACE working with LinuxThreads. Some of the patches
-are necessary with Alpha CPUs and with some older kernels. egcs 1.0.1
-can also be used, but it may need patches, described in the patches
-file, as well.<P>
-
-<strong>NOTE:</strong> Be careful when installing egcs. If
-you don't remove your old gcc and libg++ RPMs, it's best to
-install egcs in a different directory than /usr, such as /usr/local,
-and set your PATH and LD_LIBRARY_PATH accordingly.<p>
-
-Some of the ACE tests fail on older, pre-glibc-2 Linux platforms.<p>
-
-<LI><B>SCO UNIX</B><P>
-
-ACE has been ported to SCO UNIX using the GNU g++ 2.7.2 compiler.
-Arturo Montes &lt<A
-HREF="mailto:mitosys@colomsat.net.co">mitosys@colomsat.net.co</A>&gt
-maintains this code. In addition, he also maintains a version of <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/FSU-threads.ps.gz">FSU
-pthreads</A>.<P>
-
-<LI><B>SGI IRIX 5.x and 6.x</B><P>
-
-ACE used to build fine using the SGI C++ and GNU GCC compilers for
- IRIX 5.x.
- It has been ported to IRIX 6.x using the SGI MipsPro 7.1 C++
- compiler;
- be aware that in IRIX 6.2 there is a number of patches that
- have to be installed and exceptions appear to fail with the
- O32 ABI.
- Please check the config files for the details.<P>
-
-<LI> <B> HP-UX 9.x, 10.x, and 11.00 </B> <P>
-
-HP sells 2 C++ compilers for HP-UX 10.x and 11.00. If you are using 9.x,
- there's only the first one.
-<UL>
-<LI>HP C++ - this is CC, HP's cfront-based compiler. As of ACE 4.4, it
- can be used, but some people have problems with templates.
- Caveat emptor. It's been said that you should run version 10.24,
- if not later.
-
-<LI>HP aC++ - this is aCC, HP's new, ANSI-to-be compiler. It handles ACE
- pretty well. You should use version A.01.12 on HP-UX 10.x and
- version A.03.05 on HP-UX 11.00. Also see further notes on
- this platform at Riverace's
- <A HREF="http://www.riverace.com/ACE/hints_hpux.html">HP-UX Hints</A>
- page.
-
-</UL>
-<P>
-
-<LI> <B>OSF/1 3.2 and 4.0 (a.k.a. Digital UNIX 4.0)</B> <P>
-
-The OSF/1 C++ 5.4 through 5.7 compilers have problems with ACE's
-templates. They compile the lib and most of the test programs,
-although they warn about template usage. Most tests run, some dump
-core.<P>
-
-CXX 6.0 and 6.1 are _much_ improved in this regard: they build all of
-ACE cleanly. Please note that
-<code>include/makeinclude/platform_osf1_4.0.GNU</code> has a
-<strong><code>WARNING_FLAGS</code></strong> macro that is disabled by
-default, to support users who don't have 6.0 yet. If you do, enable
-that macro definition by either adding CXX_VER=POST_5X to your gmake
-invocation, or editing your include/makeinclude/platform_macros.GNU
-file. All of the tests in ACE_wrappers/tests run successfully with
-CXX 6.0 and CXX 6.1.<P>
-
-GNU gcc 2.7.2.1 compiles without problems. All tests run (besides
-minor problems). Thanks to Thilo Kielmann &lt<A
-HREF="mailto:kielmann@informatik.uni-siegen.de">
-kielmann@informatik.uni-siegen.de</A>&gt and David Trumble &lt<A
-HREF="mailto:trumble@cvg.enet.dec.com">trumble@cvg.enet.dec.com</A>&gt
-for help with this port.<P>
-
-<LI><B> UnixWare </B> <P>
-
- Steve Huston &lt<A HREF="mailto:shuston@riverace.com">shuston@riverace.com</A>&gt
- has ported ACE to work with UnixWare 2.01 and g++.<P>
-
- Ganesh Pai &lt<A HREF="mailto:gpai@voicetek.com">gpai@voicetek.com</A>&gt
- subsequently did the port for version 2.1.2, also with g++.<P>
-
-<LI><B>Chorus</B> <P>
-
- Wei Chiang &lt<A HREF="mailto:chiang@tele.nokia.fi">chiang@tele.nokia.fi</A>&gt
- has ported ACE to Chorus 3.1 using GNU g++ 2.7.2.<P>
-
-<LI><B>LynxOS</B> <P>
-
- Dave Mayerhoefer &lt<A HREF="mailto:davem@lynx.com">davem@lynx.com</A>&gt
- has ported ACE to LynxOS 2.5 using GNU g++ 2.7.2. However, you may need
- to apply some <A HREF="os-patches/lynxos-patches.html">patches
- to LynxOS</A> to get ACE working.<P>
-
-<LI><STRONG>VxWorks</STRONG><P>
-
- <A HREF="http://www.cs.wustl.edu/~levine/">David Levine</A> &lt<A
-HREF="mailto:levine@cs.wustl.edu">levine@cs.wustl.edu</A>&gt has
-ported ACE to VxWorks 5.2/5.3/5.3.1 with the GreenHills 1.8.8
-and g++ 2.7.2 compilers.<P>
-
-In addition to all of the other benefits of ACE, it helps
-work around some deficiencies with VxWorks 5.3/5.3.1.
-Some of these apply only with g++, at least thru version 2.7.2.
-That is the version that is shipped with Tornado 1.0.1/
-VxWorks 5.3.1. The problems are:<P>
-<OL>
- <LI>The program entry point cannot be called ``main'' with g++. ACE
- renames it to ``ace_main'' (configurable via ACE_MAIN) on VxWorks.
- While this may seem trivial, it is important with legacy code.
- ACE itself ran into this problem.<P>
-
- <LI>argc/argv isn't used with VxWorks entry points. ACE provides
- a wrapper function that transparently converts shell command
- line arguments to argc/argv form. See <A HREF="#spa">below</a>
- for details.<P>
-
- <LI>Unsigned long long support is not available with the g++ that
- is distributed with Tornado 1.0.1/VxWorks 5.3.1, or with
- GreenHills 1.8.8. The documentation says that it is supported
- by g++, but try using it :-) Wind River technical support verified
- that it doesn't work. ACE provides its own 64-bit unsigned integer
- type, ACE_hrtime_t, so you don't even have to worry about this
- problem if you use it.<P>
-
- <LI>There a gory problem with munch that is severely aggravated
- by the presence of a static in the Wind River/g++ iostream.h.
- ACE hides this and provides an easy-to-use workaround in the
- very unlikely situation where it becomes a problem.
- Please see ace/config-vxworks5.2-g++.h for more information.<P>
-</OL>
-In addition, as noted <A HREF="#g++">below</A> following the
-discussion of the g++ -fno-implicit-templates option,
--fno-implicit-templates is broken. And, -O2 is not supported on some
-targets.<P>
-
-Please note that ACE uses one of the spare fields in
-the Wind River task control block, spare4, for thread-
-specific storage. This field is specified in only one
-place, in ace/OS.i, so it can easily be changed to one
-of the other spare fields, if necessary.<P>
-
-Versions of ACE from 4.3.3 and beyond destroy dynamically
-allocated singletons in the ACE library. But, they may not
-properly destroy some static objects. If you have trouble
-running a program multiple times, it may be necessary to
-unload the module, using unld, and reload it between runs.
-Alternatively, you could try calling <code>cplusDtors</code>
-and then <code>cplusCtors</code> between runs.<P>
-
-<LI><B>MVS OpenEdition</B> <P>
-
-All of ACE has been ported to OpenEdition by Chuck Gehr &lt<A
-HREF="mailto:gehr@sweng.stortek.com">gehr@sweng.stortek.com</A>&gt.
-The ACE library, all the tests and most of the examples and apps build
-clean. There are still some problems that need to be ironed out:<P>
-
- MVS does not support the dynamic linking dl...() calls that the Service
- Configurator uses to dynamically link services at run time. As a result, all
- the examples and apps that use a svc.conf file (for dynamically configuring
- service objects) do not work, however, most of these apps can be built/run
- statically. Also, the Svc_Conf_l.cpp and Svc_Conf_y.cpp files are generated
- using flex and yacc on a ascii (not ebcdic) machine and as a result they don't
- work very well with ebcdic svc.conf files. We should be able to regenerate
- these files on MVS but MVS doesn't have flex. This is something that needs
- to be done.<P>
-
- Some of the tests do not execute properly. This is a minority and over time
- the goal is to get to 100%.<P>
-
- The make scheme for some of the apps still doesn't work perfectly on MVS.
- This is mainly due to the way shared libraries are handled on MVS. See
- <A HREF="#mvs">additional build tips for MVS</A> for more on
- this.<P>
+ <LI> <B>Win32 (Windows NT/i386, NT/Alpha and Windows '95) </B><P>
+
+ All of ACE has been ported to the Win32 API (which includes Windows NT
+ and Windows '95). The entire release now compiles using the Microsoft
+ Visual C++ 4.x and 5.0 compilers (the 2.0 compiler may also work, but
+ we haven't tested it recently). ACE can be built as both a static and
+ dynamic library, using the Win32 installation process described
+ below.<P>
+
+ <li> <b>Windows CE</b><p>
+
+ Most of ACE has been ported to Windows CE using Visual C++ 5.0 with CE
+ Toolkit. ACE has been tested on x86 Emulator and an HP 360LX
+ with an SH series CPU. Please be sure to read this file (<a
+ href="CE-status.txt">CE-status.txt</a>) for
+ up-to-date information about ACE on CE. ACE can only be built as
+ DLL library now.<p>
+
+ <LI> <B> Sun OS 5.x/4.x (a.k.a. Solaris 2.x/1.x) using Sun CC 3.0.1, Sun
+ C++ 4.0.x, Centerline C++ 2.x, and GNU gcc 2.7.x. </B> <P>
+
+ All the source code and tests should build and run without
+ any problems on the Solaris and SunOS platforms using the
+ Sun C++ compilers.<P>
+
+ <LI> <B> Sun OS 4.1.x using Centerline C++ 2.x, Sun CC 3.x, and Lucid
+ Energize 3.2. </B> <P>
+
+ Note that shared libraries do not interact very well with
+ Centerline C++ or Sun C++ on SunOS 4.1.x. This is due to
+ odd behavior of the SunOS 4.1.x linker, which (1) does not
+ properly call constructors of global objects within shared
+ libraries and (2) does not call the init() and fini()
+ functions in shared libraries, even though the manual claims
+ that these functions are called! In particular, this means
+ that the tests in the directory
+ $(ACE_ROOT)/tests/Service_Configurator/IPC-tests/server/
+ will not work for statically linked services...<P>
+
+ Some versions of SunOS 4.1.x do not contain the
+ /usr/lib/libnsl.a library. This library seems to be
+ optional since System V Transport Layer Interface (TLI)
+ support is optional on SunOS 4.1.x (in contrast, it's the
+ "preferred" transport interface on Solaris).<P>
+
+ The best work-around for now is probably to either add a
+ dummy libnsl.a in /lib (which may not be feasible) or simply
+ comment out the line:<P>
+
+ LIBS += -lnsl<P>
+
+ in the <CODE>$ACE_ROOT/include/makeinclude/wrapper_macros.GNU</CODE>
+ file. Naturally, any programs, e.g., the TLI_SAP tests,
+ that use the TLI wrappers aren't going to work!<P>
+
+ Note that on SunOS 4.x you may get warnings from the linker
+ that "archive has no table of contents; add one using
+ ranlib(1)" for certain libraries, e.g., libASX.a,
+ libThreads.a, and libSPIPE.a. This occurs since SunOS 4.x
+ does not support these features.<P>
+
+ <LI><B>AIX</B><P>
+
+ The ACE port to AIX assumes that the user has installed the
+ AIX patch containing the dl*() APIs. To use these APIs, IBM
+ has created a separate product (free to AIX licensees)
+ called shared library hookable symbols (or slhs/6000). If
+ you don't have this patch, the sv* commands for compiling
+ and linking will not be present on the system.<P>
+
+ If you are using AIX 4.2.1 or later, there is no patch needed;
+ the dynamic library APIs are included in the base operating
+ system.<P>
+
+ BTW, here's a technique from Rob Jordan &lt<A
+ HREF="mailto:jordan@hursley.ibm.com">jordan@hursley.ibm.com</A>&gt
+ that can reduce the size of the ACE libraries by
+ about one third, and can also be applied to applications. It works
+ by optimising the sharing of template functions, which are created in an
+ ``unusual'' way under AIX. It also speeds up compilation.<P>
+
+ Here's how to optimise the ACE library generation:<P>
+
+ Look at the <A
+ HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ace/Makefile">Makefile</a>
+ in <CODE>$ACE_ROOT/ace</CODE>. Create a file called
+ <CODE>ACE_All_Src.cpp</CODE>, and add a line to #include
+ each of the source files
+ listed under <CODE>FILES=</CODE> in the Makefile. Create a
+ file called <CODE>ACE_All_Tmp.h</CODE>
+ and add a line to #include each of the .h files listed under
+ <CODE>TEMPLATE_FILES=</CODE> in the Makefile. Now update the Makefile so that
+ <CODE>FILES=ACE_All_Src</CODE> and <CODE>TEMPLATE_FILES=ACE_All_Tmp</CODE>.<P>
+
+ <LI><B>Linux</B><P>
+
+ ACE has been ported to <A
+ HREF="http://www.cs.wustl.edu/~cleeland/ace/">Linux</A> on both Intel
+ and Alpha platforms. If you use a RedHat 5.x distribution, it's best
+ to use RedHat 5.1. With RedHat 5.0, you'll need some <A
+ HREF="os-patches/linux-patches.html">updates and possibly som
+ patches</A> to get ACE working with LinuxThreads. Some of the patches
+ are necessary with Alpha CPUs and with some older kernels. egcs 1.0.1
+ can also be used, but it may need patches, described in the patches
+ file, as well.<P>
+
+ <strong>NOTE:</strong> Be careful when installing egcs. If
+ you don't remove your old gcc and libg++ RPMs, it's best to
+ install egcs in a different directory than /usr, such as /usr/local,
+ and set your PATH and LD_LIBRARY_PATH accordingly.<p>
+
+ Some of the ACE tests fail on older, pre-glibc-2 Linux platforms.<p>
+
+ <LI><B>SCO UNIX</B><P>
+
+ ACE has been ported to SCO UNIX using the GNU g++ 2.7.2 compiler.
+ Arturo Montes &lt<A
+ HREF="mailto:mitosys@colomsat.net.co">mitosys@colomsat.net.co</A>&gt
+ maintains this code. In addition, he also maintains a version of <A
+ HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/FSU-threads.ps.gz">FSU
+ pthreads</A>.<P>
+
+ <LI><B>SGI IRIX 5.x and 6.x</B><P>
+
+ ACE used to build fine using the SGI C++ and GNU GCC compilers for
+ IRIX 5.x.
+ It has been ported to IRIX 6.x using the SGI MipsPro 7.1 C++
+ compiler;
+ be aware that in IRIX 6.2 there is a number of patches that
+ have to be installed and exceptions appear to fail with the
+ O32 ABI.
+ Please check the config files for the details.<P>
+
+ <LI> <B> HP-UX 9.x, 10.x, and 11.00 </B> <P>
+
+ HP sells 2 C++ compilers for HP-UX 10.x and 11.00. If you are using 9.x,
+ there's only the first one.
+ <UL>
+ <LI>HP C++ - this is CC, HP's cfront-based compiler. As of ACE 4.4, it
+ can be used, but some people have problems with templates.
+ Caveat emptor. It's been said that you should run version 10.24,
+ if not later.
+
+ <LI>HP aC++ - this is aCC, HP's new, ANSI-to-be compiler. It handles ACE
+ pretty well. You should use version A.01.12 on HP-UX 10.x and
+ version A.03.05 on HP-UX 11.00. Also see further notes on
+ this platform at Riverace's
+ <A HREF="http://www.riverace.com/ACE/hints_hpux.html">HP-UX Hints</A>
+ page.
+
+ </UL>
+ <P>
+
+ <LI> <B>OSF/1 3.2 and 4.0 (a.k.a. Digital UNIX 4.0)</B> <P>
+
+ The OSF/1 C++ 5.4 through 5.7 compilers have problems with ACE's
+ templates. They compile the lib and most of the test programs,
+ although they warn about template usage. Most tests run, some dump
+ core.<P>
+
+ CXX 6.0 and 6.1 are _much_ improved in this regard: they build all of
+ ACE cleanly. Please note that
+ <code>include/makeinclude/platform_osf1_4.0.GNU</code> has a
+ <strong><code>WARNING_FLAGS</code></strong> macro that is disabled by
+ default, to support users who don't have 6.0 yet. If you do, enable
+ that macro definition by either adding CXX_VER=POST_5X to your gmake
+ invocation, or editing your include/makeinclude/platform_macros.GNU
+ file. All of the tests in ACE_wrappers/tests run successfully with
+ CXX 6.0 and CXX 6.1.<P>
+
+ GNU gcc 2.7.2.1 compiles without problems. All tests run (besides
+ minor problems). Thanks to Thilo Kielmann &lt<A
+ HREF="mailto:kielmann@informatik.uni-siegen.de">
+ kielmann@informatik.uni-siegen.de</A>&gt and David Trumble &lt<A
+ HREF="mailto:trumble@cvg.enet.dec.com">trumble@cvg.enet.dec.com</A>&gt
+ for help with this port.<P>
+
+ <li><b> FreeBSD </b><p>
+
+ FreeBSD is a fast evolving platform. However, it has the
+ advantage of having standard releases. At this moment, ACE
+ supports both -stable (2.2.x) and -current (3.0). Threaded version of ACE is
+ only supported on -current. It might just work for -stable but
+ we never tried that. <p>
+
+ Notice that on FreeBSD, <code>ld.so</code> only looks for so
+ libraries with <b>version number</b> appended. ACE makefiles
+ create symlink for most libraries they generate to
+ <code>$ACE_ROOT/ace</code> with appropriate ACE version.
+ However, this does not work for libACE.so itself so you have to
+ create it manually (If you figure out how to do this, please
+ let us know) like this: <p>
+
+ <code>ln -sf $ACE_ROOT/ace/libACE.so $ACE_ROOT/ace/libACE.so.4.5</code><p>
+
+ <li><b>NetBSD</b><p>
+
+ Like FreeBSD, NetBSD's <code>ld.so</code> also requires
+ versioned .so files.
+
+ <LI><B> UnixWare </B> <P>
+
+ Steve Huston &lt<A HREF="mailto:shuston@riverace.com">shuston@riverace.com</A>&gt
+ has ported ACE to work with UnixWare 2.01 and g++.<P>
+
+ Ganesh Pai &lt<A HREF="mailto:gpai@voicetek.com">gpai@voicetek.com</A>&gt
+ subsequently did the port for version 2.1.2, also with g++.<P>
+
+ <LI><B>Chorus</B> <P>
+
+ Wei Chiang &lt<A HREF="mailto:chiang@tele.nokia.fi">chiang@tele.nokia.fi</A>&gt
+ has ported ACE to Chorus 3.1 using GNU g++ 2.7.2.<P>
+
+ <LI><B>LynxOS</B> <P>
+
+ Dave Mayerhoefer &lt<A HREF="mailto:davem@lynx.com">davem@lynx.com</A>&gt
+ has ported ACE to LynxOS 2.5 using GNU g++ 2.7.2. However, you may need
+ to apply some <A HREF="os-patches/lynxos-patches.html">patches
+ to LynxOS</A> to get ACE working.<P>
+
+ <LI><STRONG>VxWorks</STRONG><P>
+
+ <A HREF="http://www.cs.wustl.edu/~levine/">David Levine</A> &lt<A
+ HREF="mailto:levine@cs.wustl.edu">levine@cs.wustl.edu</A>&gt has
+ ported ACE to VxWorks 5.2/5.3/5.3.1 with the GreenHills 1.8.8
+ and g++ 2.7.2 compilers.<P>
+
+ In addition to all of the other benefits of ACE, it helps
+ work around some deficiencies with VxWorks 5.3/5.3.1.
+ Some of these apply only with g++, at least thru version 2.7.2.
+ That is the version that is shipped with Tornado 1.0.1/
+ VxWorks 5.3.1. The problems are:<P>
+ <OL>
+ <LI>The program entry point cannot be called ``main'' with g++. ACE
+ renames it to ``ace_main'' (configurable via ACE_MAIN) on VxWorks.
+ While this may seem trivial, it is important with legacy code.
+ ACE itself ran into this problem.<P>
+
+ <LI>argc/argv isn't used with VxWorks entry points. ACE provides
+ a wrapper function that transparently converts shell command
+ line arguments to argc/argv form. See <A HREF="#spa">below</a>
+ for details.<P>
+
+ <LI>Unsigned long long support is not available with the g++ that
+ is distributed with Tornado 1.0.1/VxWorks 5.3.1, or with
+ GreenHills 1.8.8. The documentation says that it is supported
+ by g++, but try using it :-) Wind River technical support verified
+ that it doesn't work. ACE provides its own 64-bit unsigned integer
+ type, ACE_hrtime_t, so you don't even have to worry about this
+ problem if you use it.<P>
+
+ <LI>There a gory problem with munch that is severely aggravated
+ by the presence of a static in the Wind River/g++ iostream.h.
+ ACE hides this and provides an easy-to-use workaround in the
+ very unlikely situation where it becomes a problem.
+ Please see ace/config-vxworks5.2-g++.h for more information.<P>
+ </OL>
+ In addition, as noted <A HREF="#g++">below</A> following the
+ discussion of the g++ -fno-implicit-templates option,
+ -fno-implicit-templates is broken. And, -O2 is not supported on some
+ targets.<P>
+
+ Please note that ACE uses one of the spare fields in
+ the Wind River task control block, spare4, for thread-
+ specific storage. This field is specified in only one
+ place, in ace/OS.i, so it can easily be changed to one
+ of the other spare fields, if necessary.<P>
+
+ Versions of ACE from 4.3.3 and beyond destroy dynamically
+ allocated singletons in the ACE library. But, they may not
+ properly destroy some static objects. If you have trouble
+ running a program multiple times, it may be necessary to
+ unload the module, using unld, and reload it between runs.
+ Alternatively, you could try calling <code>cplusDtors</code>
+ and then <code>cplusCtors</code> between runs.<P>
+
+ <LI><B>MVS OpenEdition</B> <P>
+
+ All of ACE has been ported to OpenEdition by Chuck Gehr &lt<A
+ HREF="mailto:gehr@sweng.stortek.com">gehr@sweng.stortek.com</A>&gt.
+ The ACE library, all the tests and most of the examples and apps build
+ clean. There are still some problems that need to be ironed out:<P>
+
+ MVS does not support the dynamic linking dl...() calls that the Service
+ Configurator uses to dynamically link services at run time. As a result, all
+ the examples and apps that use a svc.conf file (for dynamically configuring
+ service objects) do not work, however, most of these apps can be built/run
+ statically. Also, the Svc_Conf_l.cpp and Svc_Conf_y.cpp files are generated
+ using flex and yacc on a ascii (not ebcdic) machine and as a result they don't
+ work very well with ebcdic svc.conf files. We should be able to regenerate
+ these files on MVS but MVS doesn't have flex. This is something that needs
+ to be done.<P>
+
+ Some of the tests do not execute properly. This is a minority and over time
+ the goal is to get to 100%.<P>
+
+ The make scheme for some of the apps still doesn't work perfectly on MVS.
+ This is mainly due to the way shared libraries are handled on MVS. See
+ <A HREF="#mvs">additional build tips for MVS</A> for more on
+ this.<P>
</UL>
<HR>
@@ -375,111 +394,111 @@ clean. There are still some problems that need to be ironed out:<P>
If you use the GNU GCC g++ compiler please note the following:
<UL>
- <LI>ACE transparently supports egcs. Please use the appropriate
- g++ config and platform files for the OS on which you will use egcs.
-
- <strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
- The default behavior of the ACE Makefiles is to add
- <code>-fno-exceptions</code> to egcs (and g++ starting with version
- 2.8.0) invocations. This disables exception handling support. On
- Solaris/sparc and Linux/alpha, it results in a 25 percent reduction
- in the size of libACE.so. To enable exception handling, add
- <code>exceptions=1</code> to your <code>make</code> command line
- invocation, or to your
- <code>$ACE_ROOT/include/makeinclude/platform_macros.GNU</code>.<P>
-
- <LI>With g++ 2.8.0, an internal compiler error is raised when
- trying to compile ACE_Map_Manager instantiations. One workaround
- is to disable optimization. The easiest way to do that is:
-
- <pre><code>% make optimize=0</code></pre>
-
- Or, you can edit your include/makeinclude/platform_sunos5_g++.GNU,
- and comment out the <code>OCFLAGS</code> line.<P>
-
- <LI>Earlier (prior to 2.7.2) versions of g++ may not compile
- certain parts of ACE correctly due to compiler bugs. Please
- upgrade to g++ 2.7.2 or greater.<P>
-
- <LI>Make sure to update your gcc <code>config.status</code>
- file. This file is produced when installing gcc; it specifies
- where to install the binary files that gcc uses. For example,
- it specifies whether to use Solaris's
- <code>/usr/ccs/bin</code> binary utils or GNU binary
- utils. The <code>config.status</code> file is an output of
- the gcc <code>configure</code> script; it is preferable to use
- the <code>--prefix</code> option to <code>configure</code> instead
- of hacking its output.<P>
-
- <LI>If you are getting weird link errors when building libACE
- on Solaris you are probably using the GNU linker. Try using
- the Sun linker (/usr/ccs/bin/ld) instead. Note that gcc
- first looks for the GNU linker if it is installed along
- with gcc. The only way to not use the GNU linker is to
- delete it from the installation or to build your own
- compiler with no linker. Be aware that you still need the
- libraries and includes of gcc.<P>
-
- <LI>Don't get too confused about contradictory statements in
- the gcc documentation. It was written by different
- people...<P>
-
- <LI>Make sure that the linker invoked by gcc produces code
- that initializes static objects. Please see gcc's
- documentation for using <CODE>collect2</CODE>.<P>
-
- <LI>By default, gcc (thru version 2.7.2, at least) uses
- implicit template instantiation. Besides wasting space,
- this breaks the use of ACE_Singleton: instead of one
- singleton instance, there could be one instance per object
- (.o) file that "sees" the template. Therefore, we have
- overridden this default in ACE by enabling the
- -fno-implicit-templates option to CCFLAGS in all
- include/makeinclude/platform_*.GNU files that set CXX to g++.<P>
-
- <LI>The disadvantage of this approach is that you must
- add template specializations for all templates that your
- application uses to your own code. (The ACE libraries are
- self-contained: you don't need to add the templates that
- they use internally.) Examples of template specializations
- occur in quite a few ACE .cpp files; see
- apps/Gateway/Gateway/Proxy_Handler.cpp for one example.
- An easy way to figure out what template instantiations are
- need is to try to build your executable and pipe the output
- through c++filt. The linker will report the missing
- instantiations as undefined symbols. Iteration may be
- necessary, if the template instantiations themselves reference
- other templates.<P>
-
- <LI>Alternatively, you could apply the
- <a href="ftp://ftp.cygnus.com/pub/g++/">Cygnus template repository
- patches</a> and use the -frepo option instead of
- -fno-implicit-templates. ACE readily this option for
- application code: to enable it just add <code>repo=1</code>
- to your <code>make</code> invocation, or to your
- <code>include/makeinclude/platform_macros.GNU</code>. ACE
- still uses explicit template instantiation for building its
- libraries to help avoid link conflicts. Please see the g++
- FAQ and gcc manual for more information on the -frepo option.<p>
-
- <li>The implementation of templates for g++ version 2.8
- eliminates the restriction against static data members
- in template classes.<p>
-
- <li>A final alternative is to
- remove the -fno-implicit-templates option from the CCFLAGS
- macro in your include/makeinclude/platform_macros.GNU, and
- thereby use the default g++ implicit template instantiation.<P>
-
- <LI>Thanks to Thilo Kielmann &lt<A
- HREF="mailto:kielmann@informatik.uni-siegen.de">
- kielmann@informatik.uni-siegen.de</A>&gt;
- for reporting the problem with ACE_Singleton on g++, and
- for helping to find and implement these solutions.<P>
-
- <LI>On VxWorks only, g++ (thru version 2.7.2, at least, distributed
- with Tornado 1.0.1/VxWorks 5.3.1), -fno-implicit-templates is
- broken. In addition, -O2 is not supported on some targets.<P>
+ <LI>ACE transparently supports egcs. Please use the appropriate
+ g++ config and platform files for the OS on which you will use egcs.
+
+ <strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
+ The default behavior of the ACE Makefiles is to add
+ <code>-fno-exceptions</code> to egcs (and g++ starting with version
+ 2.8.0) invocations. This disables exception handling support. On
+ Solaris/sparc and Linux/alpha, it results in a 25 percent reduction
+ in the size of libACE.so. To enable exception handling, add
+ <code>exceptions=1</code> to your <code>make</code> command line
+ invocation, or to your
+ <code>$ACE_ROOT/include/makeinclude/platform_macros.GNU</code>.<P>
+
+ <LI>With g++ 2.8.0, an internal compiler error is raised when
+ trying to compile ACE_Map_Manager instantiations. One workaround
+ is to disable optimization. The easiest way to do that is:
+
+ <pre><code>% make optimize=0</code></pre>
+
+ Or, you can edit your include/makeinclude/platform_sunos5_g++.GNU,
+ and comment out the <code>OCFLAGS</code> line.<P>
+
+ <LI>Earlier (prior to 2.7.2) versions of g++ may not compile
+ certain parts of ACE correctly due to compiler bugs. Please
+ upgrade to g++ 2.7.2 or greater.<P>
+
+ <LI>Make sure to update your gcc <code>config.status</code>
+ file. This file is produced when installing gcc; it specifies
+ where to install the binary files that gcc uses. For example,
+ it specifies whether to use Solaris's
+ <code>/usr/ccs/bin</code> binary utils or GNU binary
+ utils. The <code>config.status</code> file is an output of
+ the gcc <code>configure</code> script; it is preferable to use
+ the <code>--prefix</code> option to <code>configure</code> instead
+ of hacking its output.<P>
+
+ <LI>If you are getting weird link errors when building libACE
+ on Solaris you are probably using the GNU linker. Try using
+ the Sun linker (/usr/ccs/bin/ld) instead. Note that gcc
+ first looks for the GNU linker if it is installed along
+ with gcc. The only way to not use the GNU linker is to
+ delete it from the installation or to build your own
+ compiler with no linker. Be aware that you still need the
+ libraries and includes of gcc.<P>
+
+ <LI>Don't get too confused about contradictory statements in
+ the gcc documentation. It was written by different
+ people...<P>
+
+ <LI>Make sure that the linker invoked by gcc produces code
+ that initializes static objects. Please see gcc's
+ documentation for using <CODE>collect2</CODE>.<P>
+
+ <LI>By default, gcc (thru version 2.7.2, at least) uses
+ implicit template instantiation. Besides wasting space,
+ this breaks the use of ACE_Singleton: instead of one
+ singleton instance, there could be one instance per object
+ (.o) file that "sees" the template. Therefore, we have
+ overridden this default in ACE by enabling the
+ -fno-implicit-templates option to CCFLAGS in all
+ include/makeinclude/platform_*.GNU files that set CXX to g++.<P>
+
+ <LI>The disadvantage of this approach is that you must
+ add template specializations for all templates that your
+ application uses to your own code. (The ACE libraries are
+ self-contained: you don't need to add the templates that
+ they use internally.) Examples of template specializations
+ occur in quite a few ACE .cpp files; see
+ apps/Gateway/Gateway/Proxy_Handler.cpp for one example.
+ An easy way to figure out what template instantiations are
+ need is to try to build your executable and pipe the output
+ through c++filt. The linker will report the missing
+ instantiations as undefined symbols. Iteration may be
+ necessary, if the template instantiations themselves reference
+ other templates.<P>
+
+ <LI>Alternatively, you could apply the
+ <a href="ftp://ftp.cygnus.com/pub/g++/">Cygnus template repository
+ patches</a> and use the -frepo option instead of
+ -fno-implicit-templates. ACE readily this option for
+ application code: to enable it just add <code>repo=1</code>
+ to your <code>make</code> invocation, or to your
+ <code>include/makeinclude/platform_macros.GNU</code>. ACE
+ still uses explicit template instantiation for building its
+ libraries to help avoid link conflicts. Please see the g++
+ FAQ and gcc manual for more information on the -frepo option.<p>
+
+ <li>The implementation of templates for g++ version 2.8
+ eliminates the restriction against static data members
+ in template classes.<p>
+
+ <li>A final alternative is to
+ remove the -fno-implicit-templates option from the CCFLAGS
+ macro in your include/makeinclude/platform_macros.GNU, and
+ thereby use the default g++ implicit template instantiation.<P>
+
+ <LI>Thanks to Thilo Kielmann &lt<A
+ HREF="mailto:kielmann@informatik.uni-siegen.de">
+ kielmann@informatik.uni-siegen.de</A>&gt;
+ for reporting the problem with ACE_Singleton on g++, and
+ for helping to find and implement these solutions.<P>
+
+ <LI>On VxWorks only, g++ (thru version 2.7.2, at least, distributed
+ with Tornado 1.0.1/VxWorks 5.3.1), -fno-implicit-templates is
+ broken. In addition, -O2 is not supported on some targets.<P>
</UL>
@@ -497,80 +516,80 @@ HREF="#win32">process</A> for Win32 is different). Here's what you
need to do:<P>
<OL>
-<LI> Install GNU make 3.7 or greater on your system (available via
- anonymous ftp from prep.ai.mit.edu in the pub/gnu directory).
- You <EM>must</EM> use GNU make or ACE won't compile.<P>
-
-<LI> Add an environment variable called ACE_ROOT that contains the
- name of the root of the directory where you keep the ACE wrapper
- source tree. The ACE recursive Makefile scheme needs this information.
- There are several ways to set the ACE_ROOT variable. For
- instance, in my .login file I have the following entry:<P>
-
-<pre><code>
-% setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
-</code></pre><P>
-
-However, if you're building a number of versions of ACE, e.g., for
-different OS platforms or for different releases of ACE, you might use
-the following approach:
-
-<pre><code>
-% setenv ACE_ROOT $cwd
-</code></pre>
-
-<LI> Edit the $ACE_ROOT/ace/OS.h file to update things like default
- hostname and port numbers you'd like the programs in the
- $ACE_ROOT/{apps,tests} directories to use by default. Note,
- however that you can normally skip this step because the defaults
- are typically fine for most systems. <P>
-
-<LI> Set the $ACE_ROOT/ace/config.h file to point to the appropriate
- platform/compiler-specific header configurations (such as
- config-sunos5-sunc++-4.x.h). This file contains the #defines that
- are used throughout ACE to indicate which features your system
- supports (see the $ACE_ROOT/ace/OS.h file for many
- examples of how the ACE build configuration is affected by these
- macro settings).<P>
-
- There are config files for most versions of UNIX. If there isn't a
- version of this file that matches your platform/compiler, you'll
- need to make one. Please send me email if you get it working so I
- can add it to the master ACE release.<P>
-
-<LI> Set the $ACE_ROOT/include/makeinclude/platform_macros.GNU file
- to point to the appropriate platform/compiler-specific Makefile
- configurations, e.g., platform_sunos5_sunc++.GNU. This file
- contains the compiler and Makefile directives that are
- platform/compiler-specific<P>
-
-<LI> Note that since ACE builds shared libraries, you'll need to set
- LD_LIBRARY_PATH to whereever you put the binary version of the
- ACE library. For example, you probably want to do something like
- the following<P>
-
-<pre><code>
-% setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
-</code></pre><P>
-
-<LI> When all this is done, hopefully all you'll need to do is type:<P>
-
-<pre><code>
-% make
-</code></pre><P>
-
-at the root of the ACE source tree. This will build the ACE library,
-tests, the examples, and the sample applications. Building the entire
-ACE release can take a long time, however. Therefore, you might
-consider cd'ing into the $ACE_ROOT/ace/ directory and running
-<CODE>make</CODE> there to build just the ACE library. As a sanity
-check, you might also want to build and run the automated <A
-HREF="ACE_wrappers/tests/README">``one-button'' tests</A> in
-$ACE_ROOT/tests/.<P>
-
-<LI> If you need to regenerate the Svc_Conf_y.cpp file, you'll need to
-get <A HREF="http://www.cs.wustl.edu/~schmidt/byacc.tar.gz">Berkeley
-YACC</A>. However, you should rarely, if ever, need to do this.<P>
+ <LI> Install GNU make 3.7 or greater on your system (available via
+ anonymous ftp from prep.ai.mit.edu in the pub/gnu directory).
+ You <EM>must</EM> use GNU make or ACE won't compile.<P>
+
+ <LI> Add an environment variable called ACE_ROOT that contains the
+ name of the root of the directory where you keep the ACE wrapper
+ source tree. The ACE recursive Makefile scheme needs this information.
+ There are several ways to set the ACE_ROOT variable. For
+ instance, in my .login file I have the following entry:<P>
+
+ <pre><code>
+ % setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
+ </code></pre><P>
+
+ However, if you're building a number of versions of ACE, e.g., for
+ different OS platforms or for different releases of ACE, you might use
+ the following approach:
+
+ <pre><code>
+ % setenv ACE_ROOT $cwd
+ </code></pre>
+
+ <LI> Edit the $ACE_ROOT/ace/OS.h file to update things like default
+ hostname and port numbers you'd like the programs in the
+ $ACE_ROOT/{apps,tests} directories to use by default. Note,
+ however that you can normally skip this step because the defaults
+ are typically fine for most systems. <P>
+
+ <LI> Set the $ACE_ROOT/ace/config.h file to point to the appropriate
+ platform/compiler-specific header configurations (such as
+ config-sunos5-sunc++-4.x.h). This file contains the #defines that
+ are used throughout ACE to indicate which features your system
+ supports (see the $ACE_ROOT/ace/OS.h file for many
+ examples of how the ACE build configuration is affected by these
+ macro settings).<P>
+
+ There are config files for most versions of UNIX. If there isn't a
+ version of this file that matches your platform/compiler, you'll
+ need to make one. Please send me email if you get it working so I
+ can add it to the master ACE release.<P>
+
+ <LI> Set the $ACE_ROOT/include/makeinclude/platform_macros.GNU file
+ to point to the appropriate platform/compiler-specific Makefile
+ configurations, e.g., platform_sunos5_sunc++.GNU. This file
+ contains the compiler and Makefile directives that are
+ platform/compiler-specific<P>
+
+ <LI> Note that since ACE builds shared libraries, you'll need to set
+ LD_LIBRARY_PATH to whereever you put the binary version of the
+ ACE library. For example, you probably want to do something like
+ the following<P>
+
+ <pre><code>
+ % setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
+ </code></pre><P>
+
+ <LI> When all this is done, hopefully all you'll need to do is type:<P>
+
+ <pre><code>
+ % make
+ </code></pre><P>
+
+ at the root of the ACE source tree. This will build the ACE library,
+ tests, the examples, and the sample applications. Building the entire
+ ACE release can take a long time, however. Therefore, you might
+ consider cd'ing into the $ACE_ROOT/ace/ directory and running
+ <CODE>make</CODE> there to build just the ACE library. As a sanity
+ check, you might also want to build and run the automated <A
+ HREF="ACE_wrappers/tests/README">``one-button'' tests</A> in
+ $ACE_ROOT/tests/.<P>
+
+ <LI> If you need to regenerate the Svc_Conf_y.cpp file, you'll need to
+ get <A HREF="http://www.cs.wustl.edu/~schmidt/byacc.tar.gz">Berkeley
+ YACC</A>. However, you should rarely, if ever, need to do this.<P>
</OL>
@@ -611,65 +630,65 @@ Thank you to <A HREF="mailto:ben@jetpen.com">Ben Eng</A> for the pointer to
the STL fixes.
<OL>
-<LI> Create a directory, e.g., C:\ACE, and copy all of the ACE
- distribution into it. This directory will be referred to as
- ACE_ROOT in the rest of this discussion.<BR><BR>
-<LI> Create a file called config.h in the ACE_ROOT\ace directory
- that contains: <BR>
- <BR>
- <CODE>#include "ace/config-win32.h"</CODE><BR>
- <BR>
-<LI> Now load up the project file for ACE (ACE_ROOT\ace\ACE_Library.mdp or
- ACE_ROOT\ace\ace.dsw). If you are using MSVC 4.x, you will
- need to add paths to your global settings. In
- Tools|Options|Directories, add ACE_ROOT to your include path
- and ACE_ROOT\ace to your library path. <BR><BR>
-<LI> Each project will contain 8 different configurations. These
- are a mixture of Debug/Release, Unicode/non-Unicode, and
- Static/Dynamic library versions for both i386 and Alpha machines.
- <STRONG>Note:</STRONG> If you
- use the dynamic libraries, make sure you include ACE_ROOT\ace
- in your PATH whenever you run programs that use ACE.<BR><BR>
-<LI> If you are building for Windows NT and plan to use the STL
- implementation that comes with ACE, then you can start building
- now. If you are building on Windows 95, then you should add
- the line <BR>
- <BR>
- <CODE>#define ACE_HAS_WINNT4 0</CODE><BR>
- <BR>
- before the #include statement in ACE_ROOT\ace\config.h and it
- will turn off Windows NT 4 specific code.<BR>
- <BR>
- If you want to use the standard C++ headers (iostream, cstdio, ...
- as defined by the C++ Standard Draft 2) that comes with MSVC 5,
- then add the line <BR>
- <BR>
- <CODE>#define ACE_HAS_STANDARD_CPP_LIBRARY 1</CODE><BR>
- <BR>
- before the #include statement in ACE_ROOT\ace\config.h.<BR>
- If you are building for Windows CE, you need to add the line <BR>
- <br>
- <code>#define ACE_HAS_WINCE</code>
- <br>
- before including &lt;ace/config-win32.h&gt;. Notice that CE uses a
- different set of dsw/dsp files.<br> <br>
-
- The default project files which build ACE library have various
- configurations to build dynamic/static, with or without Unicode
- support. Although we recommend using the dynamic library, if,
- for some reasons, you would rather work with static library,
- you'll need to add the line <BR>
- <BR>
- <CODE>#define ACE_HAS_DLL 0</CODE><BR>
- <BR>
- before the #include statement in ACE_ROOT\ace\config.h.
- Optionally but highly recommended, you can also add the line <BR>
- <BR>
- <CODE>#define __ACE_INLINE__ 0</CODE><BR>
- <BR>
- before the #include statement in ACE_ROOT\ace\config.h to disable
- inline function and reduce the size of static libraries (and your
- executables.)<BR><BR>
+ <LI> Create a directory, e.g., C:\ACE, and copy all of the ACE
+ distribution into it. This directory will be referred to as
+ ACE_ROOT in the rest of this discussion.<BR><BR>
+ <LI> Create a file called config.h in the ACE_ROOT\ace directory
+ that contains: <BR>
+ <BR>
+ <CODE>#include "ace/config-win32.h"</CODE><BR>
+ <BR>
+ <LI> Now load up the project file for ACE (ACE_ROOT\ace\ACE_Library.mdp or
+ ACE_ROOT\ace\ace.dsw). If you are using MSVC 4.x, you will
+ need to add paths to your global settings. In
+ Tools|Options|Directories, add ACE_ROOT to your include path
+ and ACE_ROOT\ace to your library path. <BR><BR>
+ <LI> Each project will contain 8 different configurations. These
+ are a mixture of Debug/Release, Unicode/non-Unicode, and
+ Static/Dynamic library versions for both i386 and Alpha machines.
+ <STRONG>Note:</STRONG> If you
+ use the dynamic libraries, make sure you include ACE_ROOT\ace
+ in your PATH whenever you run programs that use ACE.<BR><BR>
+ <LI> If you are building for Windows NT and plan to use the STL
+ implementation that comes with ACE, then you can start building
+ now. If you are building on Windows 95, then you should add
+ the line <BR>
+ <BR>
+ <CODE>#define ACE_HAS_WINNT4 0</CODE><BR>
+ <BR>
+ before the #include statement in ACE_ROOT\ace\config.h and it
+ will turn off Windows NT 4 specific code.<BR>
+ <BR>
+ If you want to use the standard C++ headers (iostream, cstdio, ...
+ as defined by the C++ Standard Draft 2) that comes with MSVC 5,
+ then add the line <BR>
+ <BR>
+ <CODE>#define ACE_HAS_STANDARD_CPP_LIBRARY 1</CODE><BR>
+ <BR>
+ before the #include statement in ACE_ROOT\ace\config.h.<BR>
+ If you are building for Windows CE, you need to add the line <BR>
+ <br>
+ <code>#define ACE_HAS_WINCE</code>
+ <br>
+ before including &lt;ace/config-win32.h&gt;. Notice that CE uses a
+ different set of dsw/dsp files.<br> <br>
+
+ The default project files which build ACE library have various
+ configurations to build dynamic/static, with or without Unicode
+ support. Although we recommend using the dynamic library, if,
+ for some reasons, you would rather work with static library,
+ you'll need to add the line <BR>
+ <BR>
+ <CODE>#define ACE_HAS_DLL 0</CODE><BR>
+ <BR>
+ before the #include statement in ACE_ROOT\ace\config.h.
+ Optionally but highly recommended, you can also add the line <BR>
+ <BR>
+ <CODE>#define __ACE_INLINE__ 0</CODE><BR>
+ <BR>
+ before the #include statement in ACE_ROOT\ace\config.h to disable
+ inline function and reduce the size of static libraries (and your
+ executables.)<BR><BR>
</Ol>
<B>ACE TESTS</B><P>
@@ -688,32 +707,32 @@ install TCP/IP and configure it to ignore the absence of a network
card. This is one method:<P>
<OL>
- <LI> Run Control Panel
- <LI> Choose Network from Control Panel
- <LI> Add Adapter: MS Loopback Adapter
- <LI> Configure MS Loopback Adapter with 802.3 (default)
- <LI> Add Software: TCP/IP Protocol
- <LI> Configure TCP/IP Protocol with a valid IP address and subnet mask.
- Leave everything else at the default settings.
- <LI> Add Software: Workstation
- <LI> Exit and Restart System
- <LI> Run Control Panel again
- <LI> Choose Services from Control Panel
- <LI> The following services are not necessary and may
- be set to Disabled Startup: <BR>
- Alerter<BR>
- Computer Browser<BR>
- Net logon<BR>
- Messanger<BR>
- <LI> Choose Network from Control Panel
- <LI> Confirm the following setup. This is all you need to run ACE:<BR>
- Installed Software:<BR>
- Computer Browser<BR>
- MS Loopback Adapter Driver<BR>
- TCP/IP Protocol<BR>
- Workstation<BR>
- Installed Adapter Cards:<BR>
- MS Loopback Adapter<P>
+ <LI> Run Control Panel
+ <LI> Choose Network from Control Panel
+ <LI> Add Adapter: MS Loopback Adapter
+ <LI> Configure MS Loopback Adapter with 802.3 (default)
+ <LI> Add Software: TCP/IP Protocol
+ <LI> Configure TCP/IP Protocol with a valid IP address and subnet mask.
+ Leave everything else at the default settings.
+ <LI> Add Software: Workstation
+ <LI> Exit and Restart System
+ <LI> Run Control Panel again
+ <LI> Choose Services from Control Panel
+ <LI> The following services are not necessary and may
+ be set to Disabled Startup: <BR>
+ Alerter<BR>
+ Computer Browser<BR>
+ Net logon<BR>
+ Messanger<BR>
+ <LI> Choose Network from Control Panel
+ <LI> Confirm the following setup. This is all you need to run ACE:<BR>
+ Installed Software:<BR>
+ Computer Browser<BR>
+ MS Loopback Adapter Driver<BR>
+ TCP/IP Protocol<BR>
+ Workstation<BR>
+ Installed Adapter Cards:<BR>
+ MS Loopback Adapter<P>
</OL>
@@ -735,8 +754,8 @@ for these notes):<p>
<LI>C++ object modules must be post-processed by a VxWorks
utility called ``munch.'' ACE includes a perl script called
<A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/bin/ace_ld">$ACE_ROOT/bin/ace_ld</A>,
-which is called from the Makefiles, replacing
+ HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/bin/ace_ld">$ACE_ROOT/bin/ace_ld</A>,
+ which is called from the Makefiles, replacing
the traditional <code>ld</code> step. You must have Perl installed
to use <code>ace_ld</code>. <P>
@@ -819,8 +838,8 @@ This requires that <code>main</code> be declared with its arguments
even if they're not used, and with <code>int</code> return type:
<pre><code>
- int
- main (int, char *[])
+int
+main (int, char *[])
</code></pre>
Alternatively, this feature can be disabled by commenting out the
@@ -850,7 +869,7 @@ VxWorks <code>sp</code>, or ACE'S <A NAME="spa"><code>spa</code></A>.
to <code>ace_main</code>. Its usage is:
<pre><code>
- spa ace_main, "arg1" [, ...]
+spa ace_main, "arg1" [, ...]
</code></pre>
All arguments must be quoted, even numbers.<p>
@@ -927,107 +946,107 @@ on Windows NT hosts:
<li>Path setting that seems to be working is:<p>
<pre>
-/tornado/host/x86-win32/bin:
-/tornado/host/x86-win32/lib/gcc-lib/i386-wrs-vxworks/cygnus-2.7.2-960126:
-/tornado/host/x86-win32/i386-wrs-vxworks/bin:
-/ace/ace_wrappers/bin:
-/gnuwin32/b18/H-i386-cygwin32/bin:
-/gnuwin32/b18/tcl/bin:
-/WINNT/system32:
-/WINNT:
-/WINNT/system32/nls/ENGLISH:
-/bin
-</pre>
-
- Other environment variables:<p>
-<pre>
-WIND_BASE=/tornado
-SHELL=/bin/sh.exe
-TERM=pcbios
-TAO_ROOT=/ace/ACE_wrappers.vxworks/TAO
-CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.EXE
-GCC_EXEC_PREFIX=/tornado/host/x86-win32/lib/gcc-lib/
-WIND_HOST_TYPE=x86-win32
-ACE_ROOT=/ace/ACE_wrappers.vxworks
-</pre>
+ /tornado/host/x86-win32/bin:
+ /tornado/host/x86-win32/lib/gcc-lib/i386-wrs-vxworks/cygnus-2.7.2-960126:
+ /tornado/host/x86-win32/i386-wrs-vxworks/bin:
+ /ace/ace_wrappers/bin:
+ /gnuwin32/b18/H-i386-cygwin32/bin:
+ /gnuwin32/b18/tcl/bin:
+ /WINNT/system32:
+ /WINNT:
+ /WINNT/system32/nls/ENGLISH:
+ /bin
+ </pre>
+
+ Other environment variables:<p>
+ <pre>
+ WIND_BASE=/tornado
+ SHELL=/bin/sh.exe
+ TERM=pcbios
+ TAO_ROOT=/ace/ACE_wrappers.vxworks/TAO
+ CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.EXE
+ GCC_EXEC_PREFIX=/tornado/host/x86-win32/lib/gcc-lib/
+ WIND_HOST_TYPE=x86-win32
+ ACE_ROOT=/ace/ACE_wrappers.vxworks
+ </pre>
<li><code>/tornado</code> is the root of the Tornado install
- (<code>$WIND_BASE</code>).
+ (<code>$WIND_BASE</code>).
<li><code>/gnuwin32</code> is the root of a Cygnus GNU download and install.
<li><code>/bin</code> content is:<p>
-<pre>
-aced.dll
-cygwin.dll
-perl.exe
-rm.exe
-sh.exe
-true
-</pre>
+ <pre>
+ aced.dll
+ cygwin.dll
+ perl.exe
+ rm.exe
+ sh.exe
+ true
+ </pre>
- <code>aced.dll</code> is produced in an ACE NT source tree according to
- documented procedure for NT VC++5.0 ACE build.
+ <code>aced.dll</code> is produced in an ACE NT source tree according to
+ documented procedure for NT VC++5.0 ACE build.
- <code>cygwin.dll</code> is from the Cygnus GNU software download and install.
+ <code>cygwin.dll</code> is from the Cygnus GNU software download and install.
<li>Basically, follow documented procedure for ACE build/install on UNIX
- platform. Create a <code>$ACE_ROOT/ace/config.h</code> that looks like:<p>
-<pre>
-#define __ACE_INLINE__ 0
-#define ACE_HAS_DLL 0
-#include "config-vxworks5.x.h"
-</pre>
+ platform. Create a <code>$ACE_ROOT/ace/config.h</code> that looks like:<p>
+ <pre>
+ #define __ACE_INLINE__ 0
+ #define ACE_HAS_DLL 0
+ #include "config-vxworks5.x.h"
+ </pre>
- And create a <code>$ACE_ROOT/include/makeinclude/platform_macros.GNU</code>
- that looks like:<p>
-<pre>
-WIND_BASE = /tornado
-WIND_HOST_TYPE = x86-win32
-PATH += :$(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin
-CPU = I80486
-include $(ACE_ROOT)/include/makeinclude/platform_NTvxworks5.x_g++.GNU
-</pre>
+ And create a <code>$ACE_ROOT/include/makeinclude/platform_macros.GNU</code>
+ that looks like:<p>
+ <pre>
+ WIND_BASE = /tornado
+ WIND_HOST_TYPE = x86-win32
+ PATH += :$(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin
+ CPU = I80486
+ include $(ACE_ROOT)/include/makeinclude/platform_NTvxworks5.x_g++.GNU
+ </pre>
- (But, I guess the PATH+= line is superfluous based on the PATH as shown
- previously).
+ (But, I guess the PATH+= line is superfluous based on the PATH as shown
+ previously).
- Finally, create a
- <code>$ACE_ROOT/include/makeinclude/platform_NTvxworks5.x_g++.GNU</code>
- with diff output from 'diff platform_vxworks5.x_g++.GNU
- platform_NTvxworks5.x_g++.GNU' that looks like:
+ Finally, create a
+ <code>$ACE_ROOT/include/makeinclude/platform_NTvxworks5.x_g++.GNU</code>
+ with diff output from 'diff platform_vxworks5.x_g++.GNU
+ platform_NTvxworks5.x_g++.GNU' that looks like:
-<pre>
-58c58
-&lt; HOST_DIR = $(WIND_BASE)/host/sun4-solaris2
----
-&gt; HOST_DIR = $(WIND_BASE)/host/x86-win32
-62,63c62,63
-&lt; CXX = g++$(TOOLENV)
-&lt; CFLAGS += -DVXWORKS -D_REENTRANT -ansi -fno-builtin
--fno-defer-pop -fvolatile -nostdinc -nostdlib -pipe -Wall
----
-&gt; CXX = $(CC)
-&gt; CFLAGS += -DVXWORKS -D_REENTRANT -ansi -fno-builtin -fno-defer-pop \
- -fvolatile -nostdinc -nostdlib -Wall #-pipe
-</pre>
+ <pre>
+ 58c58
+ &lt; HOST_DIR = $(WIND_BASE)/host/sun4-solaris2
+ ---
+ &gt; HOST_DIR = $(WIND_BASE)/host/x86-win32
+ 62,63c62,63
+ &lt; CXX = g++$(TOOLENV)
+ &lt; CFLAGS += -DVXWORKS -D_REENTRANT -ansi -fno-builtin
+ -fno-defer-pop -fvolatile -nostdinc -nostdlib -pipe -Wall
+ ---
+ &gt; CXX = $(CC)
+ &gt; CFLAGS += -DVXWORKS -D_REENTRANT -ansi -fno-builtin -fno-defer-pop \
+ -fvolatile -nostdinc -nostdlib -Wall #-pipe
+ </pre>
<li>Now, follow the existing documentation for a UNIX platform build of ACE
such as:
- <pre>
- cd $ACE_ROOT/ace; make
- </pre>
+ <pre>
+ cd $ACE_ROOT/ace; make
+ </pre>
<li>To build $ACE_ROOT/tests, I had to use the <code>make.exe</code> in the
- <code>/gnuwin32/b18/H-i386-cygwin32/bin</code> directory as I couldn't get
- make shipped with Tornado to run ace_ld and I couldn't figure out any
- other work around.<p>
+ <code>/gnuwin32/b18/H-i386-cygwin32/bin</code> directory as I couldn't get
+ make shipped with Tornado to run ace_ld and I couldn't figure out any
+ other work around.<p>
- <pre>
- cd $ACE_ROOT/tests; /gnuwin32/b18/H-i386-cygwin32/bin/make
- </pre>
+ <pre>
+ cd $ACE_ROOT/tests; /gnuwin32/b18/H-i386-cygwin32/bin/make
+ </pre>
- Also, running the tests works as already documented.
+ Also, running the tests works as already documented.
</ol>
<h5>TAO on NT Tornado host, VxWorks target.</h5>
@@ -1041,18 +1060,18 @@ include $(ACE_ROOT)/include/makeinclude/platform_NTvxworks5.x_g++.GNU
makefiles are using the absolute path to tao_idl.exe.)
<li>Build orbsvcs.
- <pre>
- CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
- cd $TAO_ROOT/orbsvcs/orbsvcs
- /gnuwin32/b18/H-i386-cygwin32/bin/make
- </pre>
+ <pre>
+ CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
+ cd $TAO_ROOT/orbsvcs/orbsvcs
+ /gnuwin32/b18/H-i386-cygwin32/bin/make
+ </pre>
<li>Build $TAO_ROOT/tao
- <pre>
- CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
- cd $TAO_ROOT/tao
- /gnuwin32/b18/H-i386-cygwin32/bin/make
- </pre>
+ <pre>
+ CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
+ cd $TAO_ROOT/tao
+ /gnuwin32/b18/H-i386-cygwin32/bin/make
+ </pre>
<li>Build $TAO_ROOT/tests
</ol>
@@ -1073,40 +1092,40 @@ Here's what you need to do:<P>
<OL>
-<LI> Build and install ACE on UNIX as described <A
-HREF="#unix">earlier</A>. If ACE is built at the root of the ACE
-source tree (and ACE has been ported to your platform, of course) the
-netsvcs static and shared object libraries should be built
-automatically. In addition, the server driver program
-(<CODE>main</CODE>) contained in <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/netsvcs/servers/main.cpp">
-$ACE_ROOT/netsvcs/servers/main.cpp</A> should also be compiled and ready to run.<P>
-
-<LI> Set your LD_LIBRARY_PATH environment variable to where the binary
- version of the ACE netsvcs library. For example, you probably
- want to do something like the following<P>
-
-<pre><code>
-% setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
-</code></pre><P>
-
-<LI>By default, if the shared object library is built, the services
- are linked into the <CODE>main</CODE> driver program dynamically.
- To specify which services should be linked in and executed, edit the
-<A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/netsvcs/servers/svc.conf">
-$ACE_ROOT/netsvcs/servers/svc.conf</A> file. During your editing,
- you should update information (such as the default service port
- numbers) that affects the initialization of services in this
- file. Refer to the <A HREF="ACE-papers.html#config">Service Configurator</A>
- documentation to learn how the configuration file is parsed and
- how the services are dynamically linked and executed. In
- addition, refer to the <A HREF="ACE-netsvcs.html">Network
- Services</A> documentation to learn more about how to configure
- each network service.<P>
-
-<LI>If you only want to link the services statically, simply remove
- or rename the svc.conf file.<P>
+ <LI> Build and install ACE on UNIX as described <A
+ HREF="#unix">earlier</A>. If ACE is built at the root of the ACE
+ source tree (and ACE has been ported to your platform, of course) the
+ netsvcs static and shared object libraries should be built
+ automatically. In addition, the server driver program
+ (<CODE>main</CODE>) contained in <A
+ HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/netsvcs/servers/main.cpp">
+ $ACE_ROOT/netsvcs/servers/main.cpp</A> should also be compiled and ready to run.<P>
+
+ <LI> Set your LD_LIBRARY_PATH environment variable to where the binary
+ version of the ACE netsvcs library. For example, you probably
+ want to do something like the following<P>
+
+ <pre><code>
+ % setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
+ </code></pre><P>
+
+ <LI>By default, if the shared object library is built, the services
+ are linked into the <CODE>main</CODE> driver program dynamically.
+ To specify which services should be linked in and executed, edit the
+ <A
+ HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/netsvcs/servers/svc.conf">
+ $ACE_ROOT/netsvcs/servers/svc.conf</A> file. During your editing,
+ you should update information (such as the default service port
+ numbers) that affects the initialization of services in this
+ file. Refer to the <A HREF="ACE-papers.html#config">Service Configurator</A>
+ documentation to learn how the configuration file is parsed and
+ how the services are dynamically linked and executed. In
+ addition, refer to the <A HREF="ACE-netsvcs.html">Network
+ Services</A> documentation to learn more about how to configure
+ each network service.<P>
+
+ <LI>If you only want to link the services statically, simply remove
+ or rename the svc.conf file.<P>
</OL>
<H4><A NAME="win32svcs">Building and Installing ACE Network Services on Win32</A></H4>
@@ -1123,12 +1142,12 @@ in your PATH.<P>
<H3><A NAME="advanced">Advanced Topics</A></H3>
<UL>
-<LI><A HREF="#cloning">Cloning the Source Tree</A>
-<LI><A HREF="#corba">Building CORBA Versions of ACE</A>
-<LI><A HREF="#mvs">Additional Build Tips for MVS</A>
-<LI><A HREF="#flags">Makfile Flags</A>
-<LI><A HREF="http://www.cs.wustl.edu/~levine/CVS.html">Version Control</A>
-<LI><A HREF="http://www.cs.wustl.edu/~cleeland/ace/makefile-hints.html">ACE Makefile hints</a>
+ <LI><A HREF="#cloning">Cloning the Source Tree</A>
+ <LI><A HREF="#corba">Building CORBA Versions of ACE</A>
+ <LI><A HREF="#mvs">Additional Build Tips for MVS</A>
+ <LI><A HREF="#flags">Makfile Flags</A>
+ <LI><A HREF="http://www.cs.wustl.edu/~levine/CVS.html">Version Control</A>
+ <LI><A HREF="http://www.cs.wustl.edu/~cleeland/ace/makefile-hints.html">ACE Makefile hints</a>
</UL>
<H4><A NAME="cloning">Cloning the Source Tree</A></H4>
@@ -1213,33 +1232,33 @@ UNIX, therefore, the instructions under <A HREF="#aceinstall">Building
and Installing ACE on Unix</A> can be used along with the following
additional tips:<P>
- You can get a copy of GNU make that has been ported to MVS OpenEdition from
- the <A HREF="http://www.s390.ibm.com/products/oe/index.html">IBM OpenEdition web site</A>.
- ACE's make scheme generates compile commands that have options and
- operands interspersed. By default, the c89/cc/c++ compiler expects all options to
- precede all operands. To get around this, you must set a special
- compiler environment variable (_CXX_CCMODE) to 1 which tells the compiler
- to allow options and operands to be interspersed.<P>
-
- Note that the environment variable LD_LIBRARY_PATH is called LIBPATH
- on MVS.<P>
-
- Shared objects are built a little different on MVS than on
- other UNIX implementations. This has been accounted for in the makefiles
- that come with ACE When the linker (via the cxx command) builds the
- libACE.so file it will also create a file called libACE.x. This is a
- side-deck file and it must be included in subsequent link edits with
- application code. For more information on this see the C/C++ MVS
- Programming Guide. If you want to build your application statically,
- i.e., using libACE.a instead of libACE.so, you can set ACELIB to
- ACELIB_STATIC in platform_mvs.GNU.<P>
-
- When the libACE.so file is built (via the MVS pre-linker and binder), you
- will get a rc=4 from the pre-linker. This is ok. This is due to some
- warnings about unresolved references which should get resolved during the
- link step. Note, however, there shouldn't be any unresolved references
- from the binder (linkage editor). You can get pre-link and link maps by
- uncommenting the PMAP and LMAP lines in the platform_mvs.GNU file.<P>
+You can get a copy of GNU make that has been ported to MVS OpenEdition from
+the <A HREF="http://www.s390.ibm.com/products/oe/index.html">IBM OpenEdition web site</A>.
+ACE's make scheme generates compile commands that have options and
+operands interspersed. By default, the c89/cc/c++ compiler expects all options to
+precede all operands. To get around this, you must set a special
+compiler environment variable (_CXX_CCMODE) to 1 which tells the compiler
+to allow options and operands to be interspersed.<P>
+
+Note that the environment variable LD_LIBRARY_PATH is called LIBPATH
+on MVS.<P>
+
+Shared objects are built a little different on MVS than on
+other UNIX implementations. This has been accounted for in the makefiles
+that come with ACE When the linker (via the cxx command) builds the
+libACE.so file it will also create a file called libACE.x. This is a
+side-deck file and it must be included in subsequent link edits with
+application code. For more information on this see the C/C++ MVS
+Programming Guide. If you want to build your application statically,
+i.e., using libACE.a instead of libACE.so, you can set ACELIB to
+ACELIB_STATIC in platform_mvs.GNU.<P>
+
+When the libACE.so file is built (via the MVS pre-linker and binder), you
+will get a rc=4 from the pre-linker. This is ok. This is due to some
+warnings about unresolved references which should get resolved during the
+link step. Note, however, there shouldn't be any unresolved references
+from the binder (linkage editor). You can get pre-link and link maps by
+uncommenting the PMAP and LMAP lines in the platform_mvs.GNU file.<P>
<HR><P>
<H4><A NAME="flags">Makefile Flags</A></H4>
@@ -1262,7 +1281,7 @@ debug Enable debugging; see DCFLAGS and DCCFLAGS.
exceptions Enable exception handling (not supported by all platforms).
fast Enable -fast option, e.g., with Sun C++.
inline Enable ACE inlining. Some platforms enable inlining by
- default, others do not.
+default, others do not.
optimize Enable optimization; see OCFLAGS and OCCFLAGS.
orbix Enable use of Orbix.
probe Enable ACE_Timeprobes.
@@ -1270,11 +1289,11 @@ profile Enable profiling; see PCFLAGS and PCCFLAGS.
purify Purify all executables.
quantify Quantify all executables.
repo Use GNU template repository (g++ with repo patches and
- egcs only).
+egcs only).
shared_libs Build shared libraries. Ignored if static_libs_only is set.
static_libs Build shared libraries. Ignored if shared_libs_only is set.
shared_libs_only Only build shared libraries. Ignored if no SHLIBs are
- specified by the Makefile, as in performance-tests/Misc.
+specified by the Makefile, as in performance-tests/Misc.
static_libs_only Only build static libraries.
xt_reactor Build the XtReactor
@@ -1285,9 +1304,9 @@ targets are listed below.
Target Description
------ -----------
show_statics Lists all static objects in object files built for
- current directory. Only supported for g++.
+current directory. Only supported for g++.
show_uninit Lists all uninitialized in object files built for
- current directory. Only supported for g++.
+current directory. Only supported for g++.
</PRE>
<HR><P>