ACE-INSTALL
上传用户:yanwudan
上传日期:2007-01-16
资源大小:11414k
文件大小:120k
源码类别:

行业应用

开发平台:

C/C++

  1.      _________________________________________________________________
  2.   Building and Installing ACE and Its Auxiliary Libraries and Services
  3.     Synopsis
  4.    The  file  explains  how  to  build  and  install  ACE and its Network
  5.    Services  on  the  various OS platforms and compilers that it has been
  6.    ported  to.  Please  consult  the [1]ChangeLog file to see whether any
  7.    recent  changes to the release will affect your code. In addition, you
  8.    should check out our [2]development process. As you start working with
  9.    ACE,  we suggest you get copies of the [3]C++NPv1 and [4]C++NPv2 books
  10.    to  help  guide  you  after you've built and installed ACE. You should
  11.    also  consult  the  [5]ACE  Frequently  Made  Mistakes  page.  If  you
  12.    encounter  any  problems or would like to request an enhancement, then
  13.    use  our  [6]bug tracking system to submit a report in accordance with
  14.    our [7]bug report process.
  15.     Document Index
  16.      * [8]Supported Platforms and C++ Compilers
  17.      * [9]Installation Notes
  18.      * [10]Compiling ACE with GNU g++
  19.      * [11]Compiling ACE with egcs
  20.      * [12]Building and Installing ACE
  21.      * [13]Building and Installing ACE Network Services
  22.      * [14]Building and Installing The ACE_SSL Library
  23.      * [15]What Do I Need to Build for TAO?
  24.      * [16]System Resource Requirements
  25.      * [17]Advanced Topics
  26.      _________________________________________________________________
  27.   Platforms, C++ Compilers, and Support
  28.    ACE  has  been  ported  to a large number of [18]platforms, using many
  29.    different  compilers  over the years. The [19]DOC group, [20]Riverace,
  30.    [21]OCI,  and  members  of the ACE user community have all contributed
  31.    ports to make ACE the successful and far-reaching toolkit it is today.
  32.    Any UNIX/POSIX/Win32 variation is a potential target platform for ACE.
  33.    If  you have [22]porting questions or have a problem compiling the ACE
  34.    source  distribution,  please  contact  one  of the commercial support
  35.    companies,  or  send  a  copy of the PROBLEM-REPORT-FORM to either the
  36.    [23]ACE  Newsgroup or the [24]ACE mailing list and someone will try to
  37.    help you fix the problems.
  38.    The  responsibility  for  maintaining  ACE  across  this wide range of
  39.    platforms  is  divided  among  a  few different groups: the DOC group,
  40.    Riverace,  OCI,  and  the  ACE  user community itself. The table below
  41.    summarizes  each  group's  role  and  where  you can get more detailed
  42.    information.  For  information on TAO's platform coverage and support,
  43.    please also see [25]TAO's install document.
  44.    CAPTION: Groups Involved in ACE Development and Support
  45.    
  46.    Group Platforms For more information
  47.    DOC  Group  [26]Tested  and  used daily by the DOC group: Solaris 2.5,
  48.    2.6, 7 and 8 (many compilers excluding SunC++ 4.x)
  49.    Windows NT 4.0 and Windows 2000 (MSVC++ 5.x, 6.x, and 7.x, and Borland
  50.    C++ Builder 5.0)
  51.    Linux/Intel  (many  compilers), Linux/IA64 (GCC). DOC sites at [27]UCI
  52.    and [28]Washington University
  53.    Riverace  Offers  support  services for many platforms including those
  54.    above, HP-UX, and AIX. Riverace's [29]web site
  55.    OCI Maintains ACE on certain platforms required for their TAO software
  56.    and  service  offerings.  OCI's  [30]web  site and the TAO [31]install
  57.    document
  58.    ACE  user  community Responsible for continued maintenance and testing
  59.    of platforms to which ACE has been ported, but aren't supported by the
  60.    above groups. These include Windows 95/98/CE using Borland C++ Builder
  61.    4.0  and  later, IBM VisualAge C++, and GNU g++ on MinGW; Digital UNIX
  62.    (Compaq  Tru64)  4.0  and 5.0; IRIX 6.x; UnixWare 7.1.0; SunOS 4.x and
  63.    Solaris with SunC++ 4.x; Linux on Alpha and PPC; OpenMVS; Tandem; SCO;
  64.    FreeBSD; NetBSD; OpenBSD; Chorus; OS/9; PharLap TNT Embedded ToolSuite
  65.    9.1; QNX RTP and Neutrino 2.0; VxWorks; LynxOS; RTEMS
  66.    Although  the  DOC group has provided outstanding, world-class support
  67.    for ACE over the years, ACE's success has greatly increased the amount
  68.    of  effort  required  to  keep  up with its maintenance, answer users'
  69.    questions,  and  give  design  guidance.  Riverace  offers world-class
  70.    commercial  services  to  support  ACE  users  and  OCI offers similar
  71.    services for TAO, allowing the DOC group's primary focus to shift back
  72.    to  their  main goal: research. The DOC group is fundamentally focused
  73.    on  (and  [32]funded by) advanced R&D projects. The group continues to
  74.    be  intimately  involved  in  ACE+TAO development and maintenance, but
  75.    with  revised  priorities for maintenance. The [33]bug fixing policies
  76.    followed  by  the  DOC  group are designed to strike a balance between
  77.    their  many  [34]research projects and their commitment to the ACE+TAO
  78.    [35]user  community. Naturally, we will be happy to accept well-tested
  79.    patches  from the ACE+TAO user community for any platforms that aren't
  80.    supported by the DOC group, Riverace, or OCI.
  81.      _________________________________________________________________
  82.   Installation Notes
  83.      * Win32 (Windows NT, Windows 2000 and Windows '9x/ME) 
  84.        All  of  ACE  has  been  ported  to  the Win32 API (which includes
  85.        Windows  NT,  Windows  2000,  and  Windows  '95/98/ME). The entire
  86.        release  now  compiles using the Microsoft Visual C++ 5.0, and 6.0
  87.        compilers.  ACE  can  be  built as both a static (LIB) and dynamic
  88.        (DLL)  library,  using  the  Win32  installation process described
  89.        below.
  90.        Please see the [36]Non-static ACE_Object_Manager discussion below.
  91.        We've  also added some support for [37]GNU g++ with Mingw, Borland
  92.        C++ Builder 4.0 and later, and IBM's VisualAge C++ compiler. Since
  93.        we  don't  have  these  compilers  we  rely  on  the ACE+TAO users
  94.        community to maintain these ports. Therefore, please send email to
  95.        the ACE mailing list if you run into problems.
  96.      * Windows CE
  97.        Take  a  look  at  ([38]CE-status.txt)  for up-to-date information
  98.        about ACE on CE.
  99.      * SunOS  4.x,  Solaris  2.x,  7 and 8 using Sun Sun C++ 4.2 and 5.x,
  100.        Forte  6,  Centerline  C++  2.x,  GNU  gcc 2.7.x and later (except
  101.        2.8.x), and KAI C++ 3.3/3.4.
  102.        All  the  source  code  and tests should build and run without any
  103.        problems  on  Solaris 2.5.1, 2.6, 7, and 8 platforms using the Sun
  104.        C++  compilers.  For  Sun  C++  4.2,  we recomend using this patch
  105.        version at a minimum:
  106.       CC: WorkShop Compilers 4.2 21 Apr 1997 C++ 4.2 patch 104631-02
  107.        There  are  likely  to  be  build  problems with older versions or
  108.        different  patchlevels  of  Sun C++. Likewise, on Solaris with g++
  109.        you may need to use GNU as instead of /usr/ccs/bin/as, if you want
  110.        -gstabs+   and   -pipe   support.   Thanks   to  Susan  Liebeskind
  111.        <shl@janis.gtri.gatech.edu>  for  providing  the  following useful
  112.        information:
  113.        The home page for Sun technical patches is
  114.        [39]http://access1.sun.com. Searching for 104631 will bring you to
  115.        a  page  allowing  you to access the latest version of the C++ 4.2
  116.        patches.
  117.        By  default, ACE uses both the Solaris and POSIX thread interface.
  118.        To   disable   use   of   the   Solaris   thread   interface,  add
  119.        -D_POSIX_PTHREAD_SEMANTICS     to     the     CFLAGS    in    your
  120.        ACE_wrappers/include/makeinclude/platform_macros.GNU.    See   the
  121.        Solaris Intro (3) man page for more information.
  122.        To disable ACE thread support completely, build with the threads=0
  123.        make  flag.  See  the  [40]Makefile  Flags  section below for more
  124.        information on make flags.
  125.        If  you use g++ or egcs on Solaris 7, you might need to rebuild it
  126.        on  a  SunOS  5.7  (Solaris 7) host. Some versions of g++ and egcs
  127.        provide  replacements for system header files. The replacements on
  128.        older  SunOS  systems are not compatible with the SunOS 5.7 system
  129.        headers. See [41]David Levine's Hints page for instructions on how
  130.        to  build  egcs  on a SunOS 5.7 host, using a g++ or egcs that was
  131.        built on an older SunOS host.
  132.        The  Sun/C++ 5.0 compilers has several problems with templates, we
  133.        have worked around most of them but this is not a compiler that we
  134.        test very often. Hopefully as new patches for the compiler show up
  135.        we will be able to make that our compiler of choice on Solaris.
  136.      * Sun  OS  4.1.x  using  Centerline  C++  2.x, Sun CC 3.x, and Lucid
  137.        Energize 3.2.
  138.        Note  that  shared  libraries  do  not  interact  very  well  with
  139.        Centerline  C++  or  Sun  C++  on  SunOS 4.1.x. This is due to odd
  140.        behavior  of  the  SunOS 4.1.x linker, which (1) does not properly
  141.        call  constructors  of  global objects within shared libraries and
  142.        (2)  does  not  call  the  init()  and  fini() functions in shared
  143.        libraries,  even though the manual claims that these functions are
  144.        called!  In particular, this means that the tests in the directory
  145.        $ACE_ROOT/tests/Service_Configurator/IPC-tests/server/   will  not
  146.        work for statically linked services.
  147.        Some  versions of SunOS 4.1.x do not contain the /usr/lib/libnsl.a
  148.        library.  This  library  seems  to  be  optional  since  System  V
  149.        Transport Layer Interface (TLI) support is optional on SunOS 4.1.x
  150.        (in   contrast,   it's  the  "preferred"  transport  interface  on
  151.        Solaris).
  152.        The  best  work-around  for  now is probably to either add a dummy
  153.        libnsl.a in /lib (which may not be feasible) or simply comment out
  154.        the line:
  155.        LIBS += -lnsl
  156.        in   the   $ACE_ROOT/include/makeinclude/wrapper_macros.GNU  file.
  157.        Naturally, any programs, e.g., the TLI_SAP tests, that use the TLI
  158.        wrappers aren't going to work!
  159.        Note  that  on SunOS 4.x you may get warnings from the linker that
  160.        "archive  has  no  table of contents; add one using ranlib(1)" for
  161.        certain  libraries,  e.g., libASX.a, libThreads.a, and libSPIPE.a.
  162.        This occurs since SunOS 4.x does not support these features.
  163.      * AIX
  164.        The  ACE  port  to AIX assumes that the user has installed the AIX
  165.        patch  containing  the  dl*()  APIs.  To  use  these APIs, IBM has
  166.        created  a  separate product (free to AIX licensees) called shared
  167.        library  hookable  symbols  (or slhs/6000). If you don't have this
  168.        patch,  the  sv*  commands  for  compiling and linking will not be
  169.        present on the system.
  170.        If  you are using AIX 4.2.1 or later, this patch isn't needed; the
  171.        dynamic library APIs are included in the base operating system.
  172.        However,  another  patch may be needed. Thanks to Susan Liebeskind
  173.        <shl@janis.gtri.gatech.edu>  for  submitting  the following useful
  174.        information:
  175.        When  building on AIX 4.2.1, using the xlC V3.1 compilers, you may
  176.        get the following error when building the ACE shared library.
  177. makeC++SharedLib_r -p 0 -o libACE.so  -bI:/lib/pse.exp  -L/usr/local/src/ACE_wr
  178. a
  179. ppers/ace -L./ -ltli_r -ldl libACE.a
  180. ld: 0711-317 ERROR: Undefined symbol: .__CurrentException
  181. ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
  182. make: *** [libACE.so] Error 8
  183.        To  fix this error, you need a patch to the supporting xlC related
  184.        libraries.  To  obtain  this patch, go to the [42]IBM public patch
  185.        website, and retrieve the patch PTF U453697, or its successor, for
  186.        xlC.
  187.        You  may  wish  to retrieve this patch with the fixdist tool, also
  188.        available  at the website. Installation of this patch will install
  189.        patched versions of the C++ libraries, which correctly define this
  190.        symbol.
  191.        To  build  ACE  on  AIX  with Visual Age C++ 5 in incremental mode
  192.        (i.e.  with  the IDE), use the $ACE_ROOT/ace/ace.icc configuration
  193.        along  with  the  appropriate  version-specific  config file (e.g.
  194.        config-aix-4.3.x.h).  All of the version-specific config files set
  195.        the version number macros and include the general config-aix-4.x.h
  196.        file  which  has  support for all of the OS versions and compilers
  197.        supported on AIX. Using the general config file is the recommended
  198.        practice  for egcs, C Set++, IBM C/C++, and Visual Age C++ 5 batch
  199.        mode compilers.
  200.        Visual  Age  C++  4  has also been supported on ACE 5.1, but is no
  201.        longer supported. If you are still using this compiler, please use
  202.        the  $ACE_ROOT/ace/ace-dll.icc  configuration file, along with the
  203.        config-aix-4.3.x.h  ACE  config  file.  Beware,  however,  that it
  204.        hasn't  been  tested.  BTW,  here's  a  technique  from Rob Jordan
  205.        <[43]jordan@hursley.ibm.com>  that  can reduce the size of the ACE
  206.        libraries  by  about  one  third,  and  can  also  be  applied  to
  207.        applications.  It  works  by  optimising  the  sharing of template
  208.        functions,  which  are  created  in an "unusual" way under AIX. It
  209.        also speeds up compilation.
  210.        Here's how to optimise the ACE library generation:
  211.        Look  at  the  [44]Makefile in $ACE_ROOT/ace. Create a file called
  212.        ACE_All_Src.cpp,  and  add  a  line to #include each of the source
  213.        files  listed  under  FILES= in the Makefile. Create a file called
  214.        ACE_All_Tmp.h  and  add  a  line  to #include each of the .h files
  215.        listed  under  TEMPLATE_FILES=  in  the  Makefile.  Now update the
  216.        Makefile so that FILES=ACE_All_Src and TEMPLATE_FILES=ACE_All_Tmp.
  217.      * Linux
  218.        ACE  has  been  ported  to  [45]Linux on Intel, Alpha, and PowerPC
  219.        platforms.  If you use a RedHat 5.x distribution, it's best to use
  220.        RedHat 5.1 or later. ACE works without any modifications on RedHat
  221.        5.1  and  later,  and  on Debian 2.1 on both Intel and Alpha. Make
  222.        [46]symbolic  links  to the include/makeinclude/platform_linux.GNU
  223.        and  ace/config-linux.h  as  your platform_macros.GNU and config.h
  224.        files,  respectively.  The same files can be used on PowerPC, with
  225.        LinuxPPC 1999 (R5), with glibc 2.1.1.
  226.        If  you  run  out  of  memory,  it's easy to add virtual memory on
  227.        Linux. Please see the mkswap man page. You'll need at least 256 to
  228.        300  Mb  of virtual memory (RAM + swap) to compile all of ACE+TAO.
  229.        The  [47]System Resource Requirements section has some suggestions
  230.        on how to reduce the memory requirement.
  231.        The glibc 2.0 dynamic loader isn't thread safe. If you want to use
  232.        the  Invocation  API  you'll  have to set LD_BIND_NOW=true. If you
  233.        want to use dlopen, you should use RTLD_NOW. The dynamic loader in
  234.        glibc 2.1 is thread safe.
  235.        The  ACE  Tokens_Test  hangs  with  egcs  1.1b  on  Linux. It runs
  236.        properly when built with egcs 1.0.2 and later. All other ACE tests
  237.        run properly with these egcs 1.0.2 and later.
  238.        NOTE:  The TAO NameService uses IP multicasting by default, though
  239.        it is not required. IP multicast on Linux requires the following:
  240.           + Enable IP multicast in the Linux kernel. It is enabled in the
  241.             default  RedHat  5.1  kernel. In older distributions, you can
  242.             enable  it by rebuilding your kernel with CONFIG_IP_MULTICAST
  243.             enabled.
  244.           + Enable  IP  multicast  in  ACE.  It  is enabled by default in
  245.             ace/config-linux-common.h. If you don't use IP multicast, add
  246.             #define  ACE_HAS_IP_MULTICAST  0  to your ace/config.h before
  247.             building ACE.
  248.           + There  must  be  a  network interface that is up and supports
  249.             multicast. If you have linuxconf, it's easiest to use that to
  250.             add  a network route for multicast (224.0.0.0) on one of your
  251.             network  interfaces,  such  as eth0. If you don't have or use
  252.             linuxconf,  try  adding a multicast routing table entry using
  253.             something like this:
  254.              # route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
  255.        With  RedHat  5.0,  you'll need some [48]updates and possibly some
  256.        patches  to get ACE working with LinuxThreads. Some of the patches
  257.        are  necessary  with  Alpha CPUs and with some older kernels. egcs
  258.        1.0.1  can also be used, but it may need patches, described there,
  259.        as well.
  260.        NOTE:  Be  careful  when installing egcs on RedHat systems. If you
  261.        don't  remove  your  old gcc and libg++ RPMs, it's best to install
  262.        egcs  in  a different directory than /usr, such as /usr/local, and
  263.        set your PATH and LD_LIBRARY_PATH accordingly.
  264.        Some  of  the ACE tests fail on older, pre-glibc2 Linux platforms,
  265.        such   as   RedHat   4.2.   The  problems  are  with  threads  and
  266.        thread-specific storage.
  267.      * SCO UNIX
  268.        ACE  has been ported to SCO UNIX using the GNU g++ 2.7.2 compiler.
  269.        Arturo  Montes  <[49]mitosys@colomsat.net.co> maintains this code.
  270.        In addition, he also maintains a version of [50]FSU pthreads.
  271.      * SGI IRIX 5.x and 6.x
  272.        ACE used to build fine using the SGI C++ and GNU GCC compilers for
  273.        IRIX 5.x. It has been ported to IRIX 6.x using the SGI MipsPro 7.1
  274.        C++  compiler;  be  aware  that  in  IRIX 6.2 there is a number of
  275.        patches  that  have  to be installed and exceptions appear to fail
  276.        with the O32 ABI. Please check the config files for the details.
  277.      * HP-UX 9.x, 10.x, and 11.00 
  278.        HP  sells  2  C++  compilers  for HP-UX 10.x and 11.00. If you are
  279.        using 9.x, there's only the first one.
  280.           + HP  C++  -  this is CC, HP's cfront-based compiler. As of ACE
  281.             4.4,  it  can  be  used,  but  some people have problems with
  282.             templates.  Caveat emptor. It's been said that you should run
  283.             version 10.24, if not later.
  284.           + HP  aC++  -  this is aCC, HP's new, ANSI compiler. It handles
  285.             ACE  very well. You should use version A.01.27 (or higher) on
  286.             HP-UX 10.x and version A.03.27 (or higher) on HP-UX 11.00.
  287.        On  HP-UX  10.20,  a  patch  is required to compile ACE. The exact
  288.        patch  number  depends  on  the  platform  - check with HP's patch
  289.        database  to locate the exact patch or its successor. For 9000 700
  290.        series  machines  it  is  PHKL_8693 (s700 10.20 sys/time.h fix for
  291.        select(2)/C++ defects).
  292.        Also   see   further   notes   on   this  platform  at  Riverace's
  293.        [51]Frequently Asked Questions page.
  294.      * OSF/1 3.2 and 4.0 (a.k.a. Digital UNIX 4.0)
  295.        The  Digital UNIX C++ 5.4 through 5.7 compilers have problems with
  296.        ACE's  templates.  They  compile  the  lib  and  most  of the test
  297.        programs, although they warn about template usage. Most tests run,
  298.        some  dump  core.  If you use a 5.x version of cxx, be sure to set
  299.        the CXX_VER variable to CXX_5, either on your make command line or
  300.        in  an  environment  variable. The ACE Makefiles assume by default
  301.        that the cxx version is 6.x or later.
  302.        CXX  6.0  and  6.1 are much improved over 5.x: V6.0-020, V6.1-025,
  303.        and  later  build  all  of  ACE  cleanly.  All  of  the  tests  in
  304.        ACE_wrappers/tests  run  successfully  with  CXX  6.0 and CXX 6.1.
  305.        Please note that problems have been reported with some versions of
  306.        CXX  6.1,  notably  versions  -021  and  earlier. It's best to use
  307.        V6.1-022 or later.
  308.        NOTE:  if  you  use  Digital  UNIX  4.0f  or  later,  you must use
  309.        ace/config-tru64.h      instead      of     ace/config-osf1-4.0.h.
  310.        ace/config-tru64.h  can be used for all supported compilers on any
  311.        version  of Digital UNIX after and include 4.0. And, with 4.0f and
  312.        later     when     using     Digital    CXX,    you    must    use
  313.        include/makeinclude/platform_tru64_cxx.GNU        instead       of
  314.        include/makeinclude/platform_osf1_4.0.GNU.    GNU    gcc   2.7.2.1
  315.        compiles without problems. All tests run (besides minor problems).
  316.        Thanks  to  Thilo Kielmann <[52]kielmann@informatik.uni-siegen.de>
  317.        and  David  Trumble  <[53]trumble@cvg.enet.dec.com>  for help with
  318.        this port.
  319.      * FreeBSD 
  320.        FreeBSD is a fast evolving platform. However, it has the advantage
  321.        of   having  standard  releases.  At  this  moment,  ACE  is  only
  322.        perodically  tested  against  -stable  (3.1R) and we rely a lot on
  323.        FreeBSD users' feedbacks.
  324.        Notice  that  on  older FreeBSD, ld.so only looks for so libraries
  325.        with  version  number  appended. ACE makefiles create symlinks for
  326.        most   shared  libraries  if  versioned_so  is  defined  to  1  in
  327.        $ACE_ROOT/ace with appropriate ACE version. However, this does not
  328.        work  for  libACE.so  itself so you have to create it manually (If
  329.        you figure out how to do this, please let us know) like this:
  330.        ln -sf $ACE_ROOT/ace/libACE.so $ACE_ROOT/ace/libACE.so.4.5
  331.        On newer FreeBSD (3.0 or later,) this is no longer necessary.
  332.      * NetBSD
  333.        Like  older  FreeBSD,  NetBSD's  ld.so also requires versioned .so
  334.        files.
  335.      * OpenBSD
  336.        ACE has been ported to OpenBSD 3.1 and GNU g++ 2.95.3.
  337.        As  with FreeBSD and NetBSD, OpenBSD requires versioned .so files.
  338.        This  is  currently  handled  by the build files and no additional
  339.        work is needed.
  340.        ACE  has been ported to OpenBSD with and without pthreads enabled.
  341.        When using pthreads, though, C++ exceptions must be disabled. This
  342.        is  a  known  problem  with  the  current  release of OpenBSD (see
  343.        www.openbsd.org, bug #1750). ACE emulated exceptions work fine.
  344.        Compiling  TAO may require the user data segment size restrictions
  345.        and  possibly  other  options  to  be  increased.  This is done by
  346.        modifying the default user class in /etc/login.conf or by adding a
  347.        new class and modifying the master passwer file accordingly.
  348.      * UnixWare 
  349.        Steve  Huston  <[54]shuston@riverace.com>  has  ported ACE to work
  350.        with UnixWare 2.01 and g++.
  351.        Ganesh  Pai  <[55]gpai@voicetek.com> subsequently did the port for
  352.        version 2.1.2, also with g++.
  353.        Phil  Mesnier  <[56]  mesnier_p@ociweb.com>  updated  the  port to
  354.        support  UnixWare  7.1.0, with help from Michael Meissnitzer <[57]
  355.        michael.meissnitzer@siemens.at>,       Christian      Klepp      <
  356.        [58]christian.klepp@siemens.at   >  and  Engelbert  Staller  <[59]
  357.        engelbert.staller@siemens.at>  Building  ACE (and TAO) on Unixware
  358.        7.1.0   requires   a  very  specific  g++  build  environment.  In
  359.        particular,  you  must  build  and  install g++ 2.95.2, along with
  360.        binutils  2.9.1.  The order (and the declaration of configuration)
  361.        is  extremely  important.  Using  the gcc compiler provided on the
  362.        Skunkware  CD  on  a  pentium system, here is the recipe I used to
  363.        build a working environment (as root):
  364.   mkdir /usr/local/newgnu
  365. < ftp and untar binutils-2.9.1 >
  366. < ftp and untar gcc-2.95.2 >
  367.   mkdir -p build/binutils build/gcc
  368.   cd build/binutils
  369.   ../../binutils-2.9.1/configure i386-sco-sysv4
  370.   gmake  # takes a long time
  371.   gmake install # this creates /usr/local/i386-sco-sysv4/...
  372.   mkdir /usr/local/i486-pc-sysv5/bin
  373.   cd /usr/local/i486-pc-sysv5/bin
  374.   for a in /usr/local/i386-sco-sysv4/bin/*; do ln -s $a .; done
  375.   #links all the newly installed utilities
  376.   cd /usr/local/newgnu/build/gcc
  377.   ../../gcc-2.95.2/configure --with-gnu-as --with-gnu-ld
  378.   gmake bootstrap # takes a long time
  379.   gmake install
  380.   mkdir /usr/local/i586-UnixWare7.1.0-sysv5/bin
  381.   for a in /usr/local/i386-sco-sysv4/bin/*; do ln -s $a .; done
  382.        Once done, ACE and TAO will successfully build and link.
  383.      * Chorus
  384.        Wei Chiang <[60]chiang@tele.nokia.fi> has ported ACE to Chorus 3.1
  385.        using GNU g++ 2.7.2.
  386.      * LynxOS
  387.        ACE builds and runs properly on LynxOS 3.0.0 for Intel and PowerPC
  388.        targets.    ACE's   Naming_Test   fails;   it   is   disabled   in
  389.        [61]ACE_wrappers/tests/run_tests.sh.
  390.        If you run out of memory on LynxOS, these might help:
  391.           + Increase  the  limits in /etc/starttab, then logout and login
  392.             again. We use these limits:
  393. # Data, stack, and core file limits (in Kbytes)
  394. 240000
  395. 80000
  396. 102400
  397.           + Enable or expand virtual memory, with something like:
  398. # mkcontig /swap 320
  399. # prio 17 vmstart /swap
  400.             See the mkcontig and vmstart man pages, and /bin/rc.
  401.        Please  see  the  comments in the [62]ACE platform_lynxos.GNU file
  402.        for  information  on,  and  an  example  of,  tailoring  for  your
  403.        particular platform.
  404.        We  actively maintain ACE on LynxOS 3.0.0. It should build and run
  405.        on LynxOS 2.5, but we no longer test on that OS version.
  406.        NOTE:  if  you  want to use IP multicast on LynxOS, be sure to add
  407.        this line to your /net/rc.network, and reboot:
  408.         /bin/route add "224.0.0.0" "$my_name"
  409.        Dave Mayerhoefer <[63]davem@lynx.com> has ported ACE to LynxOS 2.5
  410.        using  GNU  g++  2.7.2.  However,  you  may  need  to  apply  some
  411.        [64]patches to LynxOS to get ACE working.
  412.      * VxWorks
  413.        [65]David  Levine  <[66]levine@cs.wustl.edu>  has  ported  ACE  to
  414.        VxWorks  5.2/5.3/5.3.1/5.4 with the GreenHills 1.8.8/1.8.9 and g++
  415.        compilers  that are distributed with VxWorks/Tornado. An anonymous
  416.        contributor has also provided [67]notes for using ACE with VxWorks
  417.        5.1.
  418.        Tornado  II/VxWorks  5.4 support IP multicast. That is not enabled
  419.        by  default  in  ACE  for  VxWorks, because it probably depends on
  420.        kernel     configuration.    To    enable    it,    add    #define
  421.        ACE_HAS_IP_MULTICAST to your ace/config.h.
  422.        In  addition  to  all  of the other benefits of ACE, it helps work
  423.        around  some  deficiencies  with  VxWorks 5.3/5.3.1. Some of these
  424.        apply  only  with  g++,  at  least thru version 2.7.2. That is the
  425.        version  that  is  shipped  with Tornado 1.0.1/ VxWorks 5.3.1. The
  426.        problems are:
  427.          1. The program entry point cannot be called "main" with g++. ACE
  428.             renames  it  to  "ace_main"  (configurable  via  ACE_MAIN) on
  429.             VxWorks.  While  this  may seem trivial, it is important with
  430.             legacy code. ACE itself ran into this problem.
  431.          2. argc/argv  isn't used with VxWorks entry points. ACE provides
  432.             a  wrapper function that transparently converts shell command
  433.             line arguments to argc/argv form. See [68]below for details.
  434.          3. Unsigned long long support is not available with the g++ that
  435.             is  distributed  with  Tornado  1.0.1/VxWorks  5.3.1, or with
  436.             GreenHills 1.8.8. The documentation says that it is supported
  437.             by  g++,  but  try  using it :-) Wind River technical support
  438.             verified  that  it  doesn't work. ACE provides its own 64-bit
  439.             unsigned  integer  type, ACE_hrtime_t, so you don't even have
  440.             to worry about this problem if you use it.
  441.          4. There  a  gory problem with munch that is severely aggravated
  442.             by the presence of a static in the Wind River/g++ iostream.h.
  443.             ACE  hides this and provides an easy-to-use workaround in the
  444.             very  unlikely  situation  where it becomes a problem. Please
  445.             see ace/config-vxworks5.2-g++.h for more information.
  446.        In  addition,  as  noted [69]below following the discussion of the
  447.        g++  -fno-implicit-templates  option,  -fno-implicit-templates  is
  448.        broken for x86 targets. And, -O2 is not supported on some targets.
  449.        Please  note  that  ACE  uses  one of the spare fields in the Wind
  450.        River  task  control  block, spare4, for thread- specific storage.
  451.        This  field is specified in only one place, in ace/OS.i, so it can
  452.        easily be changed to one of the other spare fields, if necessary.
  453.        Versions   of  ACE  from  4.3.3  and  beyond  destroy  dynamically
  454.        allocated  singletons  in  the  ACE  library.  But,  they  may not
  455.        properly  destroy some static objects. If you have trouble running
  456.        a  program  multiple  times,  it  may  be  necessary to unload the
  457.        module, using unld, and reload it between runs. Alternatively, you
  458.        could try calling cplusDtors and then cplusCtors between runs.
  459.      * MVS OpenEdition
  460.        All   of  ACE  has  been  ported  to  OpenEdition  by  Chuck  Gehr
  461.        <[70]gehr@sweng.stortek.com>.  The  ACE library, all the tests and
  462.        most  of  the  examples and apps build clean. There are still some
  463.        problems that need to be ironed out:
  464.        MVS  does  not  support the dynamic linking dl...() calls that the
  465.        Service  Configurator  uses  to  dynamically  link services at run
  466.        time.  As  a result, all the examples and apps that use a svc.conf
  467.        file  (for  dynamically  configuring service objects) do not work,
  468.        however, most of these apps can be built/run statically. Also, the
  469.        Svc_Conf_l.cpp  and  Svc_Conf_y.cpp files are generated using flex
  470.        and  yacc  on  a  ascii  (not ebcdic) machine and as a result they
  471.        don't work very well with ebcdic svc.conf files. We should be able
  472.        to  regenerate  these files on MVS but MVS doesn't have flex. This
  473.        is something that needs to be done.
  474.        Some  of the tests do not execute properly. This is a minority and
  475.        over time the goal is to get to 100%.
  476.        The  make scheme for some of the apps still doesn't work perfectly
  477.        on MVS. This is mainly due to the way shared libraries are handled
  478.        on MVS. See [71]additional build tips for MVS for more on this.
  479.      * QNX Neutrino
  480.        ACE  has been ported to [72]QNX Neutrino 2.0. We cross-compile for
  481.        Neutrino   on   a   QNX4   host   using   g++   2.8.1,  using  the
  482.        [73]ace/config-qnx-neutrino.h and
  483.        [74]include/makeinclude/platform_qnx_neutrino.GNU    configuration
  484.        files.  Many  of  the  ACE tests succeed, though some fail. As the
  485.        porting effort progresses, we hope to eliminate these failures. If
  486.        you know of fixes, please send them to us.
  487.      * QNX RTP
  488.        ACE  has been ported to [75]QNX RTP . We compile for QNX RTP using
  489.        the   GCC  compiler  shipped  with  the  distribution,  using  the
  490.        [76]ace/config-qnx-neutrino.h and
  491.        [77]include/makeinclude/platform_qnx_neutrino.GNU    configuration
  492.        files.  Many  of  the  ACE tests succeed, though some fail. As the
  493.        porting effort progresses, we hope to eliminate these failures. If
  494.        you know of fixes, please send them to us.
  495.        WARNING:  Under  the  current  version  of  QNX  RTP  ACE fails if
  496.        compiled with debug=1 (i.e. "-g" option in GCC).
  497.      * PharLap TNT Embedded ToolSuite (ETS)
  498.        ACE  has been ported to [78]PharLap's TNT Embedded ToolSuite (ETS)
  499.        version 9.1. The port is being tested with Microsoft Visual C++ 6.
  500.        To  build  for PharLap, use the ace/config-pharlap.h configuration
  501.        file, and the instructions for building on Win32. Building the ACE
  502.        library  is  the  same  as for regular Win32 platforms, except you
  503.        choose  one  of  the  PharLap  ETS  configurations to build within
  504.        Visual  C++.  Only static library configurations are available for
  505.        PharLap at this time. For an example of how to build binaries, see
  506.        the  tests directory. The tests_pharlap_msvc.lnk file is a LinkLoc
  507.        commands file that the ACE tests are built with. It is likely that
  508.        local  sites  may  need  to  adjust  this  file  for  their target
  509.        environment.
  510.        If  you  have  any  fixes  or suggestions for improving this port,
  511.        please contact [79]Steve Huston.
  512.      * Mac OS X (10.0.x, not public beta)
  513.        The  Mac OS X port of ACE is very much a work in progress. Some of
  514.        the  examples build and run, some of them don't yet. Reactors seem
  515.        to  work,  while Proactors don't (Mac OS X doesn't use aio_* calls
  516.        for  async  i/o, it uses the OS X Event Queue instead, and the ACE
  517.        port  doesn't take this into account yet). Also, on OS X, you must
  518.        set  the  DYLD_LIBRARY_PATH  environment variable to $ACE_ROOT/ace
  519.        i.e.  setenv  DYLD_LIBRARY_PATH $ACE_ROOT/ace, or else none of the
  520.        examples   will   be   able   to  find  libACE.dylib.  John  Zorko
  521.        <[80]j.zorko@att.net>  began  this  port  for  a work project, and
  522.        basically  only  ported  enough  of  ACE  to be able to do what we
  523.        needed  to  with it on Mac OS X. If you would like to continue the
  524.        port,  please  contact  John  since he as interested in seeing ACE
  525.        run, lean, mean and fully supported, on Mac OS X.
  526.      _________________________________________________________________
  527.     Compiling ACE with GNU g++
  528.    If you use the GNU GCC g++ compiler please note the following:
  529.      * If  you  have  problems building shared libraries with egcs 1.1 or
  530.        1.1.1 on SunOS 2.5 or 2.5.1 that look like this:
  531.         /usr/ccs/lib/libgen.a(reg_compile.o): In function `_get_vars_storage':
  532.         reg_compile.o(.text+0x30): relocation truncated to fit: R_SPARC_GOT13 f
  533. ree
  534.        the  suggested  workaround  is  to  comment  out the ACE_HAS_REGEX
  535.        #define   in   ace/config-sunos5.5.h.   Or   better,   create   an
  536.        ace/config.h that looks like:
  537.       #ifndef ACE_CONFIG_H
  538.       // ACE_CONFIG_H is defined by the following #included header.
  539.       #include "ace/config-sunos5.5.h"
  540.       #undef ACE_HAS_REGEX
  541.       #endif /* ACE_CONFIG_H */
  542.        We  don't know what causes the link problem, though the workaround
  543.        solves it.
  544.      * With  g++  2.8.0, an internal compiler error is raised when trying
  545.        to  compile  ACE_Map_Manager  instantiations. One workaround is to
  546.        disable optimization. The easiest way to do that is:
  547. % make optimize=0
  548.        Or, you can edit your include/makeinclude/platform_sunos5_g++.GNU,
  549.        and comment out the OCFLAGS line.
  550.      * ACE/TAO  don't seem to build well with g++ 2.8.1. We routinely use
  551.        g++ 2.95.x and g++ 3.x, and recommend those versions or better.
  552.      * Earlier  (prior to 2.95.2) versions of g++ may not compile certain
  553.        parts of ACE correctly due to compiler bugs. Please upgrade to g++
  554.        2.95.2 or greater.
  555.      * Make  sure  to  update  your  gcc config.status file. This file is
  556.        produced  when  installing  gcc; it specifies where to install the
  557.        binary  files  that gcc uses. For example, it specifies whether to
  558.        use  Solaris's  /usr/ccs/bin binary utils or GNU binary utils. The
  559.        config.status file is an output of the gcc configure script; it is
  560.        preferable  to  use  the  --prefix  option to configure instead of
  561.        hacking its output.
  562.      * If  you  are  getting  weird  link  errors when building libACE on
  563.        Solaris  you  are probably using the GNU linker. Try using the Sun
  564.        linker  (/usr/ccs/bin/ld)  instead.  Note that gcc first looks for
  565.        the  GNU linker if it is installed along with gcc. The only way to
  566.        not use the GNU linker is to delete it from the installation or to
  567.        build  your  own  compiler with no linker. Be aware that you still
  568.        need the libraries and includes of gcc.
  569.        NOTE:  if  you do use the GNU linker, you might need to change the
  570.        -G   flag   to   -shared   in   the  SOFLAGS  definition  in  your
  571.        include/makeinclude/platform_macros.GNU.
  572.      * Don't  get  too confused about contradictory statements in the gcc
  573.        documentation. It was written by different people...
  574.      * Make  sure  that  the  linker  invoked  by  gcc produces code that
  575.        initializes  static  objects.  Please  see gcc's documentation for
  576.        using collect2.
  577.      * By  default,  gcc  (thru  version  2.7.2,  at least) uses implicit
  578.        template instantiation. Besides wasting space, this breaks the use
  579.        of  ACE_Singleton:  instead of one singleton instance, there could
  580.        be  one  instance  per  object (.o) file that "sees" the template.
  581.        Therefore,  we have overridden this default in ACE by enabling the
  582.        -fno-implicit-templates     option     to     CCFLAGS    in    all
  583.        include/makeinclude/platform_*.GNU files that set CXX to g++.
  584.      * The  disadvantage  of  this approach is that you must add template
  585.        specializations  for  all  templates that your application uses to
  586.        your  own  code.  (The ACE libraries are self-contained: you don't
  587.        need  to  add the templates that they use internally.) Examples of
  588.        template  specializations occur in quite a few ACE .cpp files; see
  589.        the end of [81]apps/Gateway/Gateway/Connection_Handler.cpp for one
  590.        example.  An  easy  way to figure out what template instantiations
  591.        are  need  is  to try to build your executable and pipe the output
  592.        through c++filt. The linker will report the missing instantiations
  593.        as  undefined symbols. Iteration may be necessary, if the template
  594.        instantiations themselves reference other templates.
  595.      * Alternatively,  you  could  use  the  -frepo option available with
  596.        recent  egcs  versions  (2.90  and  later,  I  think)  instead  of
  597.        -fno-implicit-templates.  (Patches  for earlier g++ versions might
  598.        be  available  from  [82]Cygnus.) ACE readily supports this option
  599.        for  application  code:  to enable it just add repo=1 to your make
  600.        invocation, or to your include/makeinclude/platform_macros.GNU.
  601.        The  size  of  the  ACE  library  is typically reduced by about 25
  602.        percent    with    repo=1,    compared   to   the   default   with
  603.        -fno-implicit-templates.    This    savings   results   from   not
  604.        instantiating  unused  classes,  and from not instantiating unused
  605.        member functions of those template classes which are instantiated.
  606.        However,   repo=1   requires  care  if  your  application  creates
  607.        libraries, in order to avoid multiple instantiations. We avoid the
  608.        problem  in ACE (and TAO) by including all of the ACE object files
  609.        into other ACE (and TAO) libraries. Please see the g++ FAQ and gcc
  610.        manual for more information on the -frepo option.
  611.        Furthermore,  it  appears that g++ may have problems instantiating
  612.        all  templates  properly  with -frepo. We have worked around these
  613.        problems    (by    using   explicit   instantiations   even   with
  614.        ACE_HAS_GNU_REPO)  with  egcs  1.1.2.  A  quick  try with g++ 2.95
  615.        showed  more  problems,  so  we don't support repo=1 with that g++
  616.        version, yet.
  617.      * The implementation of templates for g++ version 2.8 eliminates the
  618.        restriction against static data members in template classes.
  619.      * A  final  alternative  is  to  remove  the -fno-implicit-templates
  620.        option from the CCFLAGS macro in your
  621.        include/makeinclude/platform_macros.GNU,   and   thereby  use  the
  622.        default g++ implicit template instantiation.
  623.      * Thanks  to  Thilo Kielmann <[83]kielmann@informatik.uni-siegen.de>
  624.        for  reporting  the  problem  with  ACE_Singleton  on g++, and for
  625.        helping to find and implement these solutions.
  626.      * On VxWorks only, g++ (thru version 2.7.2, distributed with Tornado
  627.        1.0.1/VxWorks  5.3.1), for x86 targets, -fno-implicit-templates is
  628.        broken. In addition, -O2 is not supported on some targets.
  629.      _________________________________________________________________
  630.     Compiling ACE with egcs
  631.      * ACE  transparently  supports  egcs,  for the most part. Please see
  632.        [84]Compiling  ACE  with g++ in this document. And, please use the
  633.        appropriate  g++ config and platform files for the OS on which you
  634.        will use egcs.
  635.      * WARNING:  The  default  behavior of the ACE Makefiles is to enable
  636.        native  exception  support.  To  disable  exception  handling, add
  637.        exceptions=0  to  your  make  command  line invocation, or to your
  638.        $ACE_ROOT/include/makeinclude/platform_macros.GNU file.
  639.      * egcs  may  have  trouble linking some executables, such as the ACE
  640.        IOStream_Test,  if  its  static libraries are used. Though [85]Tim
  641.        Rose  reports  that  egcs 1.1.1 static libraries work just fine on
  642.        Solaris   2.6   with  patches:  105181-12,  105568-13,  105210-19,
  643.        105591-05, 105395-04, and 105490-07.
  644.        If  you  need or want to use egcs' shared libraries, build it with
  645.        the --enable-shared egcs config option. The --enable-shared option
  646.        is not an egcs run-time option. Build egcs in a way similar to the
  647.        following example:
  648.          $ ./configure --enable-shared
  649.          $ make bootstrap
  650.        Be  sure  to  set  your  LD_LIBRARY_PATH  environment variable, if
  651.        necessary, to pick up those shared libraries.
  652.      * On  DEC  Alpha,  egcs through version 1.03a, at least, may fail to
  653.        build  ACE  if  debugging  (-g) is enabled. The fix is to edit the
  654.        egcs  gcc/mips-file.c  file,  at line 976, and change PAGE_SIZE to
  655.        8192.  Then  rebuild  ACE.  Thanks  to  [86]Ganesh  Pai  for  this
  656.        information.
  657.      * Sun  OS  5.6 using egcs1.1.2/egcs 2.95 with ld:Software Generation
  658.        Utilities  -  Solaris/ELF  (3.0) as: WorkShop Compilers 4.X dev 18
  659.        Sep 1996
  660.        You  could  come  across  weird  external  symbol  linker  errors.
  661.        Example:
  662.       -I/opt/ace/SunOS-1.0 -DACE_HAS_EXCEPTIONS  -o Cached_Accept_Conn_Test
  663.       .obj/Cached_Accept_Conn_Test.o  -L/opt/ace/SunOS-1.0/ace -L./  -lACE
  664.       -lsocket -ldl -lgen -lnsl -lposix4 -lthread
  665.       ld: warning: relocation error: R_SPARC_32: file
  666.      .obj/Cached_Accept_Conn_Test.o: symbol
  667.        __t21ACE_Cache_Map_Manager7Zt30ACE_Refcounted_Hash_Recyclable1Z13
  668.        ACE_INET_AddrZP18Client_Svc_HandlerZt23ACE_Hash_Map_Manager_Ex5Zt
  669.       30ACE_Refcounted_Hash_Recyclable1Z13ACE_INET_AddrZt8ACE_Pair2ZP18
  670.       Client_Svc_HandlerZUiZt8ACE_Hash1Zt30...
  671.        external   symbolic  relocation  against  non-allocatable  section
  672.        .stab; cannot be processed at runtime: relocation ignored
  673.        Solution:
  674.        Install   the   "binutils"   package   from   GNU   (www.gnu.org);
  675.        specifically, "as" and "ld".
  676.        Conclusion:
  677.        Perfect build stats:
  678.        OS: Kernel version: SunOS 5.6 Generic 105181-03 December 1999.
  679.        compiler: gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
  680.        loader:   GNU   ld   version  2.9.1  (with  BFD  2.9.1)  Supported
  681.        emulations: elf32_sparc
  682.        assembler:  GNU  assembler  version  2.9.1 (sparc-sun-solaris2.6),
  683.        using BFD version 2.9.1
  684.        Thanks to [87]John Gathright for providing this information.
  685.      * Compiling using the -fsquangle option helps to shorten long symbol
  686.        names and is a boon to linkers and assemblers which cant grok long
  687.        names. Thanks to [88]Skye Sweeney for trying it out and [89]Ossama
  688.        Othman for discovering the option with egcs.
  689.        Heres  a  note  on  how  to  go  about  this  (contributed by Skye
  690.        Sweeney):
  691.        1) -fsquangle the name is a combination of squash and mangle!
  692.        2) -fsquangle compresses the mangled names.
  693.        3)  All  libraries  must  be  compiles with the option. You cannot
  694.        simply  compile  modules  that  have  large  names  with  it. This
  695.        includes system libraries and vendor libraries like RogueWave.
  696.        4)  The  "simple"  solution  is  not  to  add  the  option to each
  697.        makefile,  but rather recompile the compiler to have the option on
  698.        by  default.  This  is  done by editing the file `gcc/cp/decl2.c',
  699.        setting `flag_do_squangling = 1', then rebuilding the compiler and
  700.        libraries.
  701.        5)  After many false starts and linking snafus, I can recompile my
  702.        ACE/TAO/RogueWave/Lex/Yacc 100 Meg application.
  703.      _________________________________________________________________
  704.   Building and Installing ACE
  705.    The following explains how to build ACE on [90]UNIX and [91]Win32.
  706.     General Rules
  707.      * Many  features  in  ACE can be modified by defining some macros in
  708.        $ACE_ROOT/ace/config.h.  These  macros should always appear before
  709.        including your platform specific config file.
  710.      * However,  if  you  want to undefine/redefine macros defined in the
  711.        platform  specific config file, these #undef should come after the
  712.        config file.
  713.      * If  you're  planning  to  build ACE on multiple platforms, you may
  714.        want to consider [92]cloning the source tree before you start.
  715.    ___________________________________
  716.     Building and Installing ACE on UNIX
  717.    Building  and  installing  ACE  on  UNIX  is  relatively  simple  (the
  718.    [93]process for Win32 is different). Here's what you need to do:
  719.     1. Install  [94]GNU  make 3.79.1 or greater on your system (available
  720.        via  anonymous  ftp  from  prep.ai.mit.edu  in  the  pub/gnu/make/
  721.        directory). You must use GNU make or ACE won't compile.
  722.     2. Add an environment variable called ACE_ROOT that contains the name
  723.        of the root of the directory where you keep the ACE wrapper source
  724.        tree.  The  ACE  recursive Makefile scheme needs this information.
  725.        There are several ways to set the ACE_ROOT variable. For instance,
  726.        in my .login file I have the following entry:
  727.       % setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
  728.        However, if you're building a number of versions of ACE, e.g., for
  729.        different OS platforms or for different releases of ACE, you might
  730.        use the following approach:
  731.       % setenv ACE_ROOT $cwd
  732.     3. Edit  the  $ACE_ROOT/ace/OS.h  file  to update things like default
  733.        hostname   and  port  numbers  you'd  like  the  programs  in  the
  734.        $ACE_ROOT/{apps,tests}   directories  to  use  by  default.  Note,
  735.        however  that you can normally skip this step because the defaults
  736.        are typically fine for most systems.
  737.     4. Create  (via  ln  -s  or  cp)  a  $ACE_ROOT/ace/config.h file that
  738.        contains   the   appropriate   platform/compiler-specific   header
  739.        configurations, e.g.,
  740. % ln -s config-sunos5-sunc++-4.x.h config.h
  741.        This  file  contains  the #defines that are used throughout ACE to
  742.        indicate   which   features   your   system   supports   (see  the
  743.        $ACE_ROOT/ace/OS.h  file  for  many  examples of how the ACE build
  744.        configuration  is affected by these macro settings). Make sure you
  745.        settings  are placed before the inclusion of the platform-specific
  746.        header file.
  747.        There are config files for most versions of UNIX. If there isn't a
  748.        version  of  this file that matches your platform/compiler, you'll
  749.        need  to make one. Please send me email if you get it working so I
  750.        can add it to the master ACE release.
  751.     5. Create (via ln -s or cp) a
  752.        $ACE_ROOT/include/makeinclude/platform_macros.GNU     file    that
  753.        contains   the   appropriate  platform/compiler-specific  Makefile
  754.        configurations, e.g.,
  755. % ln -s platform_sunos5_sunc++.GNU platform_macros.GNU
  756.        This  file  contains the compiler and Makefile directives that are
  757.        platform/compiler-specific
  758.     6. Note  that because ACE builds shared libraries, you'll need to set
  759.        LD_LIBRARY_PATH to whereever you put the binary version of the ACE
  760.        library.  For  example, you probably want to do something like the
  761.        following
  762.       % setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
  763.     7. When all this is done, hopefully all you'll need to do is type:
  764.       % make
  765.        at  the  root  of  the  ACE  source  tree. This will build the ACE
  766.        library,   tests,  the  examples,  and  the  sample  applications.
  767.        Building  the  entire ACE release can take a long time and consume
  768.        lots  of disk space, however. Therefore, you might consider cd'ing
  769.        into  the  [95]$ACE_ROOT/ace/  directory and running make there to
  770.        build just the ACE library. As a sanity check, you might also want
  771.        to   build   and  run  the  automated  [96]"one-button"  tests  in
  772.        [97]$ACE_ROOT/tests/. Finally, if you're also planning on building
  773.        [98]TAO,  you  should  build  the  [99]gperf perfect hash function
  774.        generator application in [100]$ACE_ROOT/apps/gperf/.
  775.     8. If  you need to regenerate the Svc_Conf_y.cpp file, you'll need to
  776.        get  [101]Berkeley YACC. However, you should rarely, if ever, need
  777.        to do this.
  778.    ___________________________________
  779.     Building and Installing ACE on Win32
  780.    Below  are instructions for building ACE with [102]Borland C++Builder,
  781.    [103]Microsoft Visual C++ and [104]Mingw.
  782.    First, if you are upgrading from an older release, clean up everything
  783.    and  rebuild  from  scratch  to  ensure  that  everything  is  rebuilt
  784.    correctly.  You  might have to manually go through the ACE directories
  785.    and delete all *.obj, *.dll, *.lib, *.ilk, *.pdb, *.idb, *.ncb, *.opt,
  786.    and *.exp files in order to start over from scratch (the Clean command
  787.    in MSVC may not do this).
  788.    ACE  contains  project  files  for  Microsoft  Visual C++ 5.0 or later
  789.    (*.dsw)  and  IBM's  VisualAge  C++  compiler  (*.icc). There are also
  790.    Makefile.bor  files  to compile ACE, the ACE one-button tests, and TAO
  791.    with Borland C++ Builder.
  792.    ___________________________________
  793.     Building and Installing ACE on Win32 with Borland C++Builder
  794.    If you are building for a machine without a network card, you may want
  795.    to check [105]here first.
  796.     1. Uncompress  the  ACE  distribution into a directory, where it will
  797.        create  an  ACE_wrappers  directory  containing  the  source.  The
  798.        ACE_wrappers  directory  will  be  referred  to as ACE_ROOT in the
  799.        following steps -- so ACE_ROOTace would be C:ACE_wrappersace if
  800.        you uncompressed into the root directory.
  801.     2. Create  a  file called config.h in the ACE_ROOTace directory that
  802.        contains:
  803.        #include "ace/config-win32.h"
  804.        If  you  are  building  for  Windows NT or Windows 2K then you can
  805.        start  without  any  more  changes. If you are building on Windows
  806.        9x/Me, then you should add the line
  807.        #define ACE_HAS_WINNT4 0
  808.        before the #include statement in ACE_ROOTaceconfig.h and it will
  809.        turn off some WinNT/Win2K-specific code in ACE.
  810.     3. Open a Command Prompt (DOS Box).
  811.     4. Set the ACE_ROOT environment variable to point to the ACE_wrappers
  812.        directory. For example:
  813.        set ACE_ROOT=C:ACE_wrappers
  814.     5. Set  the  BCBVER  environment vairable to the main version of your
  815.        BCB compiler. Currently 4, 5, and 6 are supported. For example:
  816.        set BCBVER=5
  817.     6. Change to the ACE_ROOTace directory.
  818.     7. Build release DLLs for ACE by going:
  819.        make -f Makefile.bor
  820.     8. You  can  build  several  different  versions  of  ACE  by setting
  821.        environment variables before you run make:
  822.        Set the environment variable below to build a debug version of ACE
  823.        set DEBUG=1
  824.        Set  the  environment  variable below to build a static version of
  825.        ACE
  826.        set STATIC=1
  827.        Set  the  environment variable below to build a unicode version of
  828.        ACE
  829.        set UNICODE=1
  830.        Set  the environment variable below to build a version of ACE with
  831.        Codeguard support. Should only be used when DEBUG is also set
  832.        set CODEGUARD=1
  833.        Set  the environment variable below to build a version of ACE that
  834.        is  build  against  the  VCL-compatible run-time library. This can
  835.        only be used with BCB version 4
  836.        set PASCAL=1
  837.        You can then start the build with the command
  838.        make -f Makefile.bor
  839.        You  may  also  enable the options by passing them as command line
  840.        options to make, for example:
  841.        make -f Makefile.bor -DDEBUG -DPASCAL
  842.     9. Optionally install the ACE header files, libraries and executables
  843.        for  use  in  your  applications. Here we are installing them into
  844.        C:ACETAO:
  845.        make -f Makefile.bor -DINSTALL_DIR=C:ACETAO install
  846.    These  instructions  do  not  cover all possible build configurations.
  847.    Please  see  [106]http://www.tenermerx.com/tao_bcb/index.html for more
  848.    detailed  information  on  building and using ACE+TAO with Borland C++
  849.    Builder.
  850.    If  you  are  using  C++Builder  4, then the libraries built using the
  851.    above  instructions  are  intended  for  use  with  generic console or
  852.    windows  applications  and  they  link  against  the corresponding C++
  853.    runtime library. VCL applications created using BCB4's RAD environment
  854.    must  link  against  the VCL-compatible (ie pascal-compatible) runtime
  855.    library.   To   tell   the  difference  between  these  libraries  the
  856.    VCL-compatible  ones  have a 'p' in the suffix (i.e., 'p' for pascal).
  857.    To build VCL compatible libraries try
  858. set PASCAL=1
  859. make -f Makefile.bor
  860.    The Borland C++ Builder 4.0/5.0 port has been done by [107]Jody Hagins
  861.    and [108]Christopher Kohlhoff.
  862.    ACE TESTS
  863.    The tests are located in ACE_ROOTtests. You build the tests using the
  864.    Makefile.bor file, that is:
  865.      make -f Makefile.bor
  866.    Once you build all the tests, you can run a perl script:
  867.      run_test.pl -ExeSubDir DynamicRelease
  868.    or the the batch file:
  869.      run_tests.bat bor
  870.    in the tests directory to try all the tests. You need to make sure the
  871.    ACE  bin  directory  (in this case ACE_ROOTbinDynamicRelease) is on
  872.    the path before you try to run the tests.
  873.    ___________________________________
  874.     Building and Installing ACE on Win32 with Microsoft Visual C++
  875.    Note  concerning MSVC 5.0 and Service Pack 3: There has been confusion
  876.    regarding  MSVC  5 and its Service Pack 3. Some ACE users have, in the
  877.    past,  had  problems  with SP3 that were not present in SP2. Thanks to
  878.    the  diligent  efforts  of [109]Bill Fulton, the mystery appears to be
  879.    solved.  The  key?  (Oh,  this  is a good one...) It would appear that
  880.    there  are actually multiple versions of SP3 in existence. The earlier
  881.    ones  have  the  bug, while later ones have it fixed. The service pack
  882.    downloadable from Microsoft's web site as of June 16, 1998 works fine.
  883.    The  CD  containing  SP3,  if it has part number X03-50158 on the disc
  884.    (the  part  number  on  the  jacket is probably different), also works
  885.    fine.  Note, however, that regardless of the version of SP3, there are
  886.    some  STL  bugs  in  SP3  which  you  should get corrected. Please see
  887.    [110]http://www.dinkumware.com/vc_fixes.html for details. Thank you to
  888.    [111]Ben Eng for the pointer to the STL fixes.
  889.    Right  now there is a SP4 (and hopefully only one of them) which fixes
  890.    a deadlock problem in the STL.
  891.    We no longer actively support MSVC 4.x or earlier. ACE might work with
  892.    these compilers but probably not without a bit of effort.
  893.     1. Uncompress  the  ACE  distribution into a directory, where it will
  894.        create  a  ACE_wrappers directory containing the distribution. The
  895.        ACE_wrappers  directory  will  be  referred  to as ACE_ROOT in the
  896.        following steps -- so ACE_ROOTace would be C:ACE_wrappersace if
  897.        you uncompressed into the root directory.
  898.     2. Create  a  file called config.h in the ACE_ROOTace directory that
  899.        contains:
  900.        #include "ace/config-win32.h"
  901.     3. Now load up the project file for ACE (ACE_ROOTaceace.dsw).
  902.     4. Each  project will contain several different configurations. These
  903.        are  a  mixture  of Debug/Release, MFC/Non-MFC, and Static/Dynamic
  904.        library  versions.  Make  sure you are building the one you'll use
  905.        (for  example,  the debug tests need the debug version of ACE, and
  906.        so  on).  All these different configurations are provided for your
  907.        convenience.  You  can  either  adopt  the  scheme  to  build your
  908.        applications with different configurations, or use ace/config.h to
  909.        tweak with the default settings on NT.
  910.        Note:  If  you  use  the  dynamic libraries, make sure you include
  911.        ACE_ROOTbin in your PATH whenever you run programs that uses ACE.
  912.        Otherwise you may experience problems finding ace.dll or aced.dll.
  913.     5. If  you  are  building  for  Windows NT or Windows 2K then you can
  914.        start  building  without  anymore  changes. If you are building on
  915.        Windows 9x/Me, then you should add the line
  916.        #define ACE_HAS_WINNT4 0
  917.        before the #include statement in ACE_ROOTaceconfig.h and it will
  918.        turn off some WinNT/Win2K-specific code in ACE.
  919.     6. If you want to use the standard C++ headers (iostream, cstdio, ...
  920.        as defined by the C++ Standard Draft 2) that comes with MSVC, then
  921.        add the line:
  922.        #define ACE_HAS_STANDARD_CPP_LIBRARY 1
  923.        before the #include statement in ACE_ROOTaceconfig.h.
  924.     7. To  use  ACE  with  MFC  libraries, also add the following to your
  925.        config.h  file. Notice that if you want to spawn a new thread with
  926.        CWinThread,  make  sure you spawn the thread with THR_USE_AFX flag
  927.        set.
  928.        #define ACE_HAS_MFC 1
  929.        By  default,  all  of the ACE projects use the DLL versions of the
  930.        MSVC run-time libraries. You can still choose use the static (LIB)
  931.        versions  of  ACE  libraries regardless of run-time libraries. The
  932.        reason  we chose to link only the dynamic run-time library is that
  933.        almost  every  NT box has these library installed and to save disk
  934.        space. If you prefer to link MFC as a static library into ACE, you
  935.        can do this by defining ACE_USES_STATIC_MFC in your config.h file.
  936.        However,  if you would like to link everything (including the MSVC
  937.        run-time  libraries) statically, you'll need to modify the project
  938.        files in ACE yourself.
  939.     8. Static version of ACE libraries are build with ACE_AS_STATIC_LIBS
  940.        defined.  This  macro  should also be used in application projects
  941.        that link to static ACE libraries
  942.        Optionally you can also add the line
  943.        #define ACE_NO_INLINE
  944.        before  the #include statement in ACE_ROOTaceconfig.h to disable
  945.        inline  function and reduce the size of static libraries (and your
  946.        executables.)
  947.     9. ACE DLL and LIB naming scheme:
  948.        We  use  the  following rules to name the DLL and LIB files in ACE
  949.        when using MSVC.
  950.        "Library/DLL  name"  +  (Is  static  library  ?  "s"  :  "") + (Is
  951.        Debugging enable ? "d" : "") + {".dll"|".lib"}
  952.    More  information  for  ACE/TAO  on  MSVC  can be found [112]here. The
  953.    doxygen  version of this document is available under Related Topics in
  954.    the ACE Library.
  955.    ACE TESTS
  956.    The  tests are located in ACE_ROOTtests. There is also a workspace in
  957.    that directory to build all the tests (tests.dsw)
  958.    Once  you  build  all the tests (Batch Build works well for this), you
  959.    can   run   perl   script   run_test.pl   or   the   the   batch  file
  960.    [113]run_tests.bat in the tests directory to try all the tests.
  961.    BUILDING ACE ON A WIN32 MACHINE THAT LACKS A NETWORK CARD 
  962.    You may want to run ACE on a non-networked machine. To do so, you must
  963.    install  TCP/IP  and  configure  it to ignore the absence of a network
  964.    card. This is one method:
  965.     1. Run Control Panel
  966.     2. Choose Network from Control Panel
  967.     3. Add Adapter: MS Loopback Adapter
  968.     4. Configure MS Loopback Adapter with 802.3 (default)
  969.     5. Add Protocol: TCP/IP Protocol
  970.     6. Configure TCP/IP Protocol with a valid IP address and subnet mask.
  971.        Leave everything else at the default settings.
  972.     7. Add Service: Workstation
  973.     8. Exit and Restart System
  974.     9. Run Control Panel again
  975.    10. Choose Services from Control Panel
  976.    11. The  following  services  are  not  necessary  and  may  be set to
  977.        Disabled Startup:
  978.        Alerter
  979.        Computer Browser
  980.        Net logon
  981.        Messanger
  982.    12. Choose Network from Control Panel
  983.    13. Confirm the following setup. This is all you need to run ACE:
  984.        Installed Software:
  985.        Computer Browser
  986.        MS Loopback Adapter Driver
  987.        TCP/IP Protocol
  988.        Workstation
  989.        Installed Adapter Cards:
  990.        MS Loopback Adapter
  991.    WIN32 ALPHA CONFIGURATIONS
  992.    The  project files for Visual C++ no longer contain any configurations
  993.    targetted  to  Windows NT on the DEC Alpha. Below are the steps needed
  994.    to recreate the Alpha configurations:
  995.     1. Load the project on the Alpha machine.
  996.     2. Go to the Build menu and then select Configurations.
  997.     3. Select the project that you want to convert.
  998.     4. Click on Add.
  999.     5. Select the x86 configuration to "Copy settings from" (either Debug
  1000.        or Release versions).
  1001.     6. Prepend   "Alpha   "   to   the   beginning   of  the  name  under
  1002.        "Configuration".
  1003.     7. Click OK.
  1004.     8. Close the "Configurations" window.
  1005.     9. Now go to the Project settings.
  1006.    10. For  the  General  Settings,  change  the  output  directories  to
  1007.        standard  ACE  output  directories.  Intermediate  Directories are
  1008.        "Debug"  and  "Release"  in most cases. The Output Directories are
  1009.        blank,  except for Release versions of executables, in which it is
  1010.        also "Release".
  1011.    11. For  the  C/C++  Settings,  make  sure  that the Code Generation's
  1012.        runtime   library   is   set  to  "Multithreaded  DLL"  or  "Debug
  1013.        Multithreaded DLL".
  1014.    Note:  MSVC 6 has a bug where if a .dsp is converted from version 5 to
  1015.    6  on  x86,  the  Alpha configuration can get corrupted. This seems to
  1016.    happen  when  additional  include or library directories are specified
  1017.    using  backslashes  instead  of  forward  slashes. If this occurs, the
  1018.    easiest way to fix it is to recreate it.
  1019.    ___________________________________
  1020.     Building and Installing ACE on Win32 with Mingw
  1021.    If you are building for a machine without a network card, you may want
  1022.    to check [114]here first.
  1023.    Building  and  installing  ACE on [115]Mingw uses a mix of a [116]UNIX
  1024.    building  process  and  [117]Win32 configuration files. Also, as Mingw
  1025.    uses  GNU  g++,  you may want to take a look at the [118]Compiling ACE
  1026.    with GNU g++ section.
  1027.    You  will  need  the  Mingw build tools and libraries, downloable from
  1028.    [119]http://www.mingw.org.  For  our  build  we required the following
  1029.    packages:
  1030.      gcc, binutils, ld, libbfd, mingw-runtime, w32api.
  1031.    You  will  also need GNU make for Win32 and the set of UNIX tools that
  1032.    the ACE UNIX build system uses (this include but is not limited to sh,
  1033.    rm,  cp).  For  this purpose you can grab the [120]cygwin distribution
  1034.    from [121]http://cygwin.com.
  1035.    Be  careful,  because cygwin includes it's own version of the compiler
  1036.    and  build  tools,  you will need to have the Mingw build tools before
  1037.    the  cygwin set on you PATH environment variable (more on this later).
  1038.    The steps we followed in the build are:
  1039.     1. Install   cygwin   (this  can  be  easy  downloading  and  running
  1040.        [122]setup.exe from the cygwin site).
  1041.     2. Install  the  Mingw  tools.  Download all the needed packages (see
  1042.        [123]above)  and  unpack  them  on  the  same  base directory, say
  1043.        c:/mingw32.  If  some  of  the packages are distributed on .tar.gz
  1044.        format, you may need to use the cygwin version of the tar utility.
  1045.     3. Open  a  cygwin  shell. Set your PATH environment variable so your
  1046.        Mingw's bin directory is first:
  1047.        % export PATH=//c/mingw32/bin:$PATH
  1048.        Note  cygwin  uses  ``/'' as directory separator, and ``//X'' as a
  1049.        notation  for  Win32  drive  X.  Note  also  that  you  can't  use
  1050.        ``c:/mingw32/bin''  because,  for  cygwin, ``:'' is path separator
  1051.        character, as in UNIX.
  1052.     4. Add  an ACE_ROOT environment variable pointing to the root of your
  1053.        ACE wrappers source tree:
  1054.        % export ACE_ROOT=c:/work/mingw/ACE_wrappers
  1055.        Note  here  you  can't  use the ``//X'' cygwin notation as this is
  1056.        seen  by  Mingw's  compiler  and  it doesn't support that (it does
  1057.        support ``/'' as directory separator however).
  1058.        From now on, we will refer to the root directory of the ACE source
  1059.        tree as $ACE_ROOT.
  1060.     5. Add a MINGW_BASE environment variable pointing to the root of your
  1061.        Mingw instalation. Following the above example, set:
  1062.        % export MINGW_BASE=c:/mingw32
  1063.        Again,  use  Mingw  syntax and not cygwin syntax for the directory
  1064.        specification.
  1065.     6. Create  a file called config.h in the $ACE_ROOT/ace directory that
  1066.        contains:
  1067.        #include "ace/config-win32.h"
  1068.        If  you  are  building for Windows 9X/Me (ie, not WinNT or Win2K),
  1069.        you will need to add:
  1070.        #define ACE_HAS_WINNT4 0
  1071.        before the #include line. Also, if you don't have Winsock 2 (check
  1072.        the   SYSTEM   and/or   SYSTEM32  subdirectories  of  the  windows
  1073.        instalation directory for ws2_32.dll), you will need
  1074.        #define ACE_HAS_WINSOCK2 0
  1075.        before  the #include line. On NT 4, Windows 98 and later versions,
  1076.        you  surely have Winsock 2. In Windows 95, including OSR2, you may
  1077.        don't  have  it if it wasn't specially installed. You may download
  1078.        it  from  the [124]microsoft site. This is recommended as much ACE
  1079.        functionality  depends  on  Winsock  2,  and ACE without Winsock 2
  1080.        support is tested very infrequently.
  1081.     7. Create     a    file    called    platform_macros.GNU    in    the
  1082.        $ACE_ROOT/include/makeinclude directory containing:
  1083.        include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
  1084.        In  the  above  text,  don't  replace  $(ACE_ROOT) with the actual
  1085.        directory,  GNU  make  will  take  the  value from the environment
  1086.        variable  you  defined  previously. If you lack Winsock 2, add the
  1087.        line
  1088.        winsock2 = 0
  1089.        before the previous one.
  1090.     8. On the cygwin shell, change to the $ACE_ROOT/ace directory and run
  1091.        make:
  1092.        % cd $ACE_ROOT/ace
  1093.        % make
  1094.        This  should  create  libACE.dll  (the  Win32  shared library) and
  1095.        libACE.dll.a (the Win32 import library for the DLL). Note the name
  1096.        for  the  ACE  DLL  on  Mingw  follows  the Mingw convention, that
  1097.        resembles UNIX.
  1098.        If you want static libs also, you may run:
  1099.        % make static_libs=1
  1100.     9. The  same  rules  for Win32 search of DLLs apply for Mingw. If you
  1101.        want  to run some ACE programs from the cygwin shell, you may need
  1102.        to add the directory for libACE.dll to your PATH:
  1103.        # export PATH=//c/work/mingw/ACE_wrappers/ace:$PATH
  1104.    ACE TESTS
  1105.    The  tests are located in $ACE_ROOT/tests. After building the library,
  1106.    you can change to that directory and run make:
  1107.        % cd $ACE_ROOT/tests
  1108.        % make
  1109.    Once  you  build  all the tests, you can run run_tests.sh in the tests
  1110.    directory to try all the tests:
  1111.        % run_tests.sh
  1112.    If  you  are  using  ACE  as  a DLL, you will need to modify your PATH
  1113.    variable as explained [125]above.
  1114.    You  may  want  to  check $ACE_ROOT/tests/README for the status of the
  1115.    various tests on Mingw and the different Windows flavors.
  1116.    ___________________________________
  1117.     Building and Installing ACE on VxWorks
  1118.    For the most part, you should be able to follow the instructions above
  1119.    to  build  ACE  and applications that use it. Start with the [126]Unix
  1120.    instructions  above  to  build  ACE  and the applications that use it.
  1121.    Please see below for more information on [127]building ACE on NT hosts
  1122.    for VxWorks targets.
  1123.    A  few  notes  on  VxWorks  builds (thanks to [128]Paul von Behren for
  1124.    these notes):
  1125.      * VxWorks  builds are done with a cross compiler, i.e., the compiles
  1126.        are  done  on  a  workstation  creating  object  modules which are
  1127.        downloaded and loaded into the VxWorks target system.
  1128.      * C++  object  modules  must  be post-processed by a VxWorks utility
  1129.        called    "munch."    ACE    includes   a   perl   script   called
  1130.        [129]$ACE_ROOT/bin/ace_ld,  which  is  called  from the Makefiles,
  1131.        replacing the traditional ld step. You must have perl installed to
  1132.        use  ace_ld.  If  perl  is  not  on  your path, you'll have to set
  1133.        PERL_PATH  to  the  full path (including perl.exe), either in your
  1134.        $(ACE_ROOT)/include/makeinclude/platform_macros.GNU   or  in  your
  1135.        environment.
  1136.      * Wind  River  provides  GCC/G++  cross-compilers  for the supported
  1137.        target   platforms.  The  executables  are  named  cc<target>  and
  1138.        g++<target>; for example, ccppc and g++cpp for PowerPC targets.
  1139.    You'll have to let ACE know the target type at compile time. There are
  1140.    several ways to do this; please see the
  1141.    $ACE_ROOT/include/makeinclude/platform_vxworks5.x_g++.GNU     platform
  1142.    file for detailed information.
  1143.    The  VxWorks  platform_vxworks*.GNU  files  are  set up so that shared
  1144.    libraries are not built on VxWorks, by default. Only static libraries,
  1145.    with .a extension, are built. Therefore, it's not necessary to set the
  1146.    LD_LIBRARY_PATH environment variable on your host system when building
  1147.    for  VxWorks  targets. Please note, however, if you use TAO on VxWorks
  1148.    that  you  will  need  to set your LD_LIBRARY_PATH to find the TAO IDL
  1149.    compiler libraries (installed in the ace directory) on the host.
  1150.    With  g++,  $ACE_ROOT/bin/ace_ld  is  used  to  munch object files and
  1151.    libraries  to  set  up  calls  to static constructors and destructors.
  1152.    bin/ace_ld requires perl on the host platform.
  1153.    These  non-default  VxWorks kernel configuration #defines are required
  1154.    with ACE:
  1155. #define INCLUDE_CPLUS           /* include C++ support */
  1156. #define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */
  1157. #define INCLUDE_POSIX_ALL       /* include all available POSIX functions */
  1158.    For  completeness,  here are the non-default #defines that we used for
  1159.    VxWorks 5.3.1/g++ 2.7.2:
  1160. #define INCLUDE_CPLUS           /* include C++ support */
  1161. #define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */
  1162. #define INCLUDE_CONFIGURATION_5_2 /* pre-tornado tools */
  1163. #define INCLUDE_DEBUG           /* pre-tornado debugging */
  1164. #define INCLUDE_LOADER          /* object module loading */
  1165. #define INCLUDE_NET_SYM_TBL     /* load symbol table from network */
  1166. #define INCLUDE_SYM_TBL_SYNC    /* synchronize host and target symbol tables */
  1167. #define INCLUDE_NFS             /* nfs package */
  1168. #define INCLUDE_PING            /* ping() utility */
  1169. #define INCLUDE_POSIX_ALL       /* include all available POSIX functions */
  1170. #define INCLUDE_RDB             /* remote debugging package */
  1171. #define INCLUDE_RLOGIN          /* remote login */
  1172. #define INCLUDE_RPC             /* rpc package */
  1173. #define INCLUDE_SECURITY        /* shell security for network access */
  1174. #define INCLUDE_SHELL           /* interactive c-expression interpreter */
  1175. #define INCLUDE_SHOW_ROUTINES   /* show routines for system facilities*/
  1176. #define INCLUDE_SPY             /* spyLib for task monitoring */
  1177. #define INCLUDE_STARTUP_SCRIPT  /* execute start-up script */
  1178. #define INCLUDE_STAT_SYM_TBL    /* create user-readable error status */
  1179. #define INCLUDE_SYM_TBL         /* symbol table package */
  1180. #define INCLUDE_UNLOADER        /* object module unloading */
  1181. #define INCLUDE_WINDVIEW        /* WindView command server */
  1182.    Also,  automatic  construction/destruction of static objects should be
  1183.    enabled.
  1184.    If  you  use  TAO,  it's  also  a  good idea to increase the NUM_FILES
  1185.    parameter from its default of 50 to, say, 1000.
  1186.    Please note that those VxWorks kernel configuration parameters are set
  1187.    in  the VxWorks configAll.h file. You must rebuild your VxWorks kernel
  1188.    after modifying that file.
  1189.    If  you're  first getting started with ACE and/or VxWorks, I recommend
  1190.    just  building  the  ACE  library  and  tests  first. (Some of the ACE
  1191.    examples,  in  System_V_IPC,  don't  build  on  VxWorks yet.) Then try
  1192.    running  the  tests.  Please see $ACE_ROOT/tests/README for the latest
  1193.    status of the ACE tests on VxWorks.
  1194.    Please  note  that  the  main  entry  point  is  renamed  to  ace_main
  1195.    (configurable  via  ACE_MAIN)  on VxWorks with g++, to comply with its
  1196.    restriction against using main. In addition,
  1197.    ACE_HAS_NONSTATIC_OBJECT_MANAGER  is  enabled  by  default  to cleanly
  1198.    support construction and destruction of static objects. Please see the
  1199.    [130]Non-static   ACE_Object_Manager   discussion  for  the  important
  1200.    implication of this feature.
  1201.    ACE  threads (VxWorks tasks) can be named, for example, by supplying a
  1202.    non-null argument to the Thread_Manager spawn routines. However, names
  1203.    beginning  with  "==ace_t==" are forbidden because that prefix is used
  1204.    internally by ACE.
  1205.    You  can spawn a new task to run ace_main, using either VxWorks sp, or
  1206.    ACE'S spa. spa can be used from the VxWorks shell to pass arguments to
  1207.    ace_main. Its usage is:
  1208. spa ace_main, "arg1" [, ...]
  1209.    All arguments must be quoted, even numbers.
  1210.    The ACE [131]tests write their output files in a directory named log/,
  1211.    below the current (tests) directory. If you don't have NFS included in
  1212.    your   VxWorks   kernel,   you   can  use  these  steps,  provided  by
  1213.    [132]Clarence M. Weaver, to run the tests and capture their output:
  1214.     1. What  I  did  was create a log directory on the boot NT host of my
  1215.        vxworks target.
  1216.     2. I  copied  all  the  test  applications  and the run_tests.vxworks
  1217.        script to the parent of the log directory.
  1218.     3. Using the target shell not the host shell, I "cd" to the directory
  1219.        containing the script and test programs.
  1220.     4. Invoked the script < run_tests.vxworks from this target shell.
  1221.    [133]Kirk  Davies  provided this approach for running the ACE tests on
  1222.    Tornado II:
  1223.      * Under  Tornado  II, I set up the Target Server File System (TSFS),
  1224.        and the test logs get written to the log subdirectory under that.
  1225.      * You have to set an environment variable before running the tests:
  1226. putenv("ACE_TEST_DIR=/tgtsvr")
  1227.       Building Shared Libraries for VxWorks.
  1228.    ACE  supports  shared  libraries  for  VxWorks,  but only with the g++
  1229.    compiler.  To  build  shared  libraries  instead of the default static
  1230.    libraries, added shared_libs=1 (not shared_libs_only=1) to either your
  1231.    ACE_wrappers/include/makeinclude/platform_macros.GNU   or   your  make
  1232.    invocation.  Then,  be  sure  to  load  the ACE (and any other) shared
  1233.    library before loading your executable(s).
  1234.    A  shared  library  for  VxWorks  uses  the  same code as for a static
  1235.    (non-shared)   library.   However,   calls   to  static  constructors/
  1236.    destructors  are  added.  The  code  in  the  shared  library  must be
  1237.    reentrant  if  you shared it between programs (tasks). The ACE library
  1238.    meets this requirement.
  1239.    Shared  libraries reduce build time, executable size, and load time of
  1240.    the  executable. But, you must manually load the shared library before
  1241.    loading your executable(s) with a command such as:
  1242. -> ld < libACE.so
  1243.    Shared  libraries  can be unloaded the same way an executable (module)
  1244.    is unloaded.
  1245.    NOTE:  Shared libraries on VxWorks aren't the same as shared libraries
  1246.    on  other  operating  systems.  In particular, there is no support for
  1247.    creating  copies  of  writeable  global  (static)  data  in the shared
  1248.    library.  This  includes  the  singleton  ACE_Object_Manager  instance
  1249.    pointer.  If you share global data between separate programs, they may
  1250.    not work properly. See the discussion of shared code and reentrancy in
  1251.    the VxWorks' Programmers Guide.
  1252.    Instead  of  trying to run separate programs onto a VxWorks target, we
  1253.    recommend  creating  just  one program, and spawning a thread for each
  1254.    task. The TAO IDL_Cubit test [134]collocation test is a good example.
  1255.       Linking ACE and/or TAO Libraries into the VxWorks Kernel.
  1256.    It's  easy  to  link  your  ACE  and/or TAO libraries into the VxWorks
  1257.    kernel.  Just  build [135]shared versions, but disable the munch step.
  1258.    The  easiest way to do that is to set the LD make variable to the name
  1259.    of your linker. For example, to build a libACE.so for PowerPC that can
  1260.    be linked into the kernel:
  1261. % cd $ACE_ROOT/ace
  1262. % make LD=ldppc shared_libs=1
  1263.    After  building the shared lib, link it into the kernel by setting the
  1264.    MACH_EXTRA  make  variable in the kernel configuration Makefile. Then,
  1265.    build the kernel using make exe.
  1266.       Building ACE on Tornado/NT hosts for VxWorks targets.
  1267.    The  following,  very useful information was contributed by [136]Chris
  1268.    Ryan  and  [137]Paul von Behren. Please submit corrections, additions,
  1269.    or clarifications to the the [138]ACE mailing list.
  1270.    NOTE:The  make  (version 3.74) that is provided with Tornado II cannot
  1271.    be used to build ACE. Use Cygnus' make (version 3.75) instead.)
  1272.    NOTE:Optimization is enabled be default in
  1273.    [139]platform_vxworks5.x_g++.GNU.   However,   the  compiler  that  is
  1274.    shipped  with Tornado II has trouble compiling some files with -O2. To
  1275.    disable  optimization  for  an individual file, just add optimize=0 to
  1276.    your make invocation when compiling that file.
  1277.    Using the Cygnus tools, this approach works:
  1278.      * You'll  build  both  your  NT  and VxWorks executables in the same
  1279.        workspace   (directory  hierarchy).  This  works  because  the  NT
  1280.        compiler  and  ACE's  Makefiles  put  their  output  in  different
  1281.        directories.
  1282.      * Set  up  your ACE_wrappers/include/makeinclude/platform_macros.GNU
  1283.        as  usual  for VxWorks. See [140]the g++/VxWorks platform file for
  1284.        more information.
  1285.      * Create an ACE_wrappers/ace/config.h file that looks something like
  1286.        the  following.  tao_idl  should  be  built  to not support native
  1287.        exception handling, because that's not available on VxWorks.
  1288. #if defined (_MSC_VER)  ||  defined (__BORLANDC__)
  1289. # include "ace/config-win32.h"
  1290. # undef ACE_HAS_EXCEPTIONS
  1291. #else
  1292. # include "ace/config-vxworks.h"
  1293. #endif
  1294.      * Set  your  ACE_ROOT,  CPP_LOCATION,  WIND_BASE, and WIND_HOST_TYPE
  1295.        environment variables.
  1296.      * Build for NT, then build for VxWorks.
  1297.    A few additional Windows Notes, from Paul von Behren:
  1298.      * Cygnus  has  created  a  Win32  API  which  is  compatible  with a
  1299.        "generic" Unix environment. Using this library, they have ported a
  1300.        large  collection  of  GNU tools to WinNT/95 - including a port of
  1301.        gcc/g++.  See [141]http://www.cygnus.com/misc/gnu-win32/ A related
  1302.        link is [142]ftp://ftp.cygnus.com/pub/gnu-win32/latest/
  1303.      * To    set   up   the   command-prompt   build   environemnt,   run
  1304.        Tornadohostx86-win32binTorVars.bat.  This  is  done implicitly
  1305.        within the Tornado IDE.
  1306.      * To   run   ace_ld,   you   still   need   perl   installed  -  see
  1307.        [143]http://www.activestate.com/software/default.htm  for  Windows
  1308.        perl.
  1309.      * The  Tornado  IDE will use a standard Makefile for project builds,
  1310.        but  does  not  have a GUI interface for managing the Makefile. By
  1311.        default,  it will use rules from Makefile in the current directory
  1312.        and  you  can  configure it to add certain Makefile targets to the
  1313.        project. If you have ACE_ROOT defined before starting Tornado, you
  1314.        can  specify  an ACE Makefile as a Tornado target and Tornado will
  1315.        then call make from the menu.
  1316.    And  Chris  Ryan's  instructions  for  building for VxWorks targets on
  1317.    Windows NT hosts:
  1318.     1. Path setting that seems to be working is:
  1319.       /tornado/host/x86-win32/bin:
  1320.       /tornado/host/x86-win32/lib/gcc-lib/i386-wrs-vxworks/cygnus-2.7.2-960126:
  1321.       /tornado/host/x86-win32/i386-wrs-vxworks/bin:
  1322.       /ace/ace_wrappers/bin:
  1323.       /gnuwin32/b18/H-i386-cygwin32/bin:
  1324.       /gnuwin32/b18/tcl/bin:
  1325.       /WINNT/system32:
  1326.       /WINNT:
  1327.       /WINNT/system32/nls/ENGLISH:
  1328.       /bin
  1329.        Other environment variables:
  1330.       WIND_BASE=/tornado
  1331.       SHELL=/bin/sh.exe
  1332.       TERM=pcbios
  1333.       TAO_ROOT=/ace/ACE_wrappers.vxworks/TAO
  1334.       CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.EXE
  1335.       GCC_EXEC_PREFIX=/tornado/host/x86-win32/lib/gcc-lib/
  1336.       WIND_HOST_TYPE=x86-win32
  1337.       ACE_ROOT=/ace/ACE_wrappers.vxworks
  1338.     2. /tornado is the root of the Tornado install ($WIND_BASE).
  1339.     3. /gnuwin32 is the root of a Cygnus GNU download and install.
  1340.     4. /bin content is:
  1341.       aced.dll
  1342.       cygwin.dll
  1343.       perl.exe
  1344.       rm.exe
  1345.       sh.exe
  1346.       true
  1347.        aced.dll  is  produced  in  an  ACE  NT  source  tree according to
  1348.        documented  procedure for NT VC++5.0 ACE build. cygwin.dll is from
  1349.        the Cygnus GNU software download and install.
  1350.     5. Basically,  follow  documented  procedure for ACE build/install on
  1351.        UNIX platform. Create a $ACE_ROOT/ace/config.h that looks like:
  1352.       #include "config-vxworks5.x.h"
  1353.        And   create  a  $ACE_ROOT/include/makeinclude/platform_macros.GNU
  1354.        that looks like:
  1355.       WIND_BASE = /tornado
  1356.       WIND_HOST_TYPE = x86-win32
  1357.       CPU = I80486
  1358.       include $(ACE_ROOT)/include/makeinclude/platform_vxworks5.x_g++.GNU
  1359.     6. When using cygnus windows GNUTools on WinNT you have to start make
  1360.        with  "--unix"  option, otherwise WinNT shell cmd.exe is responded
  1361.        and not sh.exe, i.e.,
  1362.  make --unix static_libs=1
  1363.       TAO on NT Tornado host, VxWorks target.
  1364.     1. Build  ACE  and  TAO_IDL  in the NT tree as already documented. As
  1365.        mentioned  above,  I  put aced.dll in /bin. Be sure to build ACE's
  1366.        gperf on NT, in ACE_wrappers/apps/gperf/src.
  1367.     2. Build $TAO_ROOT/tao
  1368.       CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
  1369.       cd $TAO_ROOT/tao
  1370.       /gnuwin32/b18/H-i386-cygwin32/bin/make
  1371.     3. Build orbsvcs.
  1372.       CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
  1373.       cd $TAO_ROOT/orbsvcs/orbsvcs
  1374.       /gnuwin32/b18/H-i386-cygwin32/bin/make
  1375.     4. Build $TAO_ROOT/tests
  1376.       [144]Jaffar Shaikh's Notes for Building ACE and TAO for VxWorks on NT
  1377.     host
  1378.    Scenario:
  1379.    I  was building the ACE and TAO for VxWorks = on NT. The target system
  1380.    was a PPC860 based chassis and another a NT = host based card. 
  1381.    Host System:
  1382.    NT 4.0 workstation with 128 M RAM, 266MHz Pentium.
  1383.    
  1384.    Software Needed For Building TAO
  1385.    1)  PERL:  Active  State's  ActivePerl 5.6.0.618 for NT available as =
  1386.    freeware from =
  1387.    http://www.ActiveState.com/download/contrib/Microsoft/NT/InstMsi.exe =
  1388.    2) Tornado II .Release V 9904 from Windriver.
  1389.    3)  Cygwin  GNU  to  build TAO. It is available for NT as a freeware =
  1390.    from
  1391.    http://sources.redhat.com/cygwin/
  1392.    The  Cygwin  Make  (version  3.75)  can  only  build the TAO not the =
  1393.    Tornado II make (version 3.74)
  1394.    
  1395.    Environment Variables:
  1396.    On  NT  the  environment Variables are set as follows, (from = Control
  1397.    Panel-> System -> Environment)
  1398.    I added following Environment variable entries to PATH
  1399.    C:Perlbin;
  1400.    C:tornadohostx86-win32bin;
  1401.    C:tornadohostx86-win32powerpc-wrs-vxworksbin;
  1402.    C:tornadohostx86-win32libgcc-libpowerpc-wrs-vxworkscygnus-2.7.=
  1403.    2-960126;
  1404.    C:CorbaAce_wrappersbin;
  1405.    C:Cygwinbin;
  1406.    C:Cygwinusrbin;
  1407.    C:bin
  1408.    Additional Environmental variables and the values,
  1409.    CPU=PPC860
  1410.    LD_LIBRARY_PATH=
  1411.    SHELL=/bin/sh.exe
  1412.    ACE_ROOT=/Corba/ACE_wrappers
  1413.    WIND_BASE=/tornado
  1414.    SHELL=/bin/sh.exe
  1415.    TERM=pcbios
  1416.    TAO_ROOT=/Corba/ACE_wrapper/Tao
  1417.    CPP_LOCATION=/Program Files/Microsoft Visual = Studio/VC98/Bin/CL.exe
  1418.    GCC_EXEC_PREFIX=/tornado/host/x86-win32/lib/gcc-lib/
  1419.    WIND_HOST_TYPE=x86-win32
  1420.    PERL_PATH=/perl/bin/perl.exe
  1421.    
  1422.    Directories of importance
  1423.    C:Corba <-- Ace_wrappers (uzipped)
  1424.    C:tornado <-- Tornado installed
  1425.    C:Perl <-- Perl installed
  1426.    C:Cygwin <-- Cygwin installed
  1427.    C:bin <-- Copy these files,
  1428.    Ace.dll, <-- After you build Ace
  1429.    gperf.exe <-- After you build gperf
  1430.    Cygwin1.dll, <-- After you install Cygwin
  1431.    perl.exe, <-- After you install Perl
  1432.    rm.exe <-- After you install Cygwin
  1433.    sh.exe <-- After you install Cygwin
  1434.    true <-- After you install Cygwin
  1435.    
  1436.    Create Files
  1437.    1) C:CorbaACE_Wrappersaceconfig.h
  1438.    with entry
  1439.    #if defined (_MSC_VER) || (__BORLANDC__)
  1440.    #include "ace/config-win32.h"
  1441.    #undef ACE_HAS_EXCEPTIONS
  1442.    #else
  1443.    #include "ace/config-vxworks5.x.h"
  1444.    #define ACE_HAS_IP_MULTICAST
  1445.    #endif
  1446.    2) C:CorbaACE_wrappersincludemakeincludeplatform_macros.GNU
  1447.    WIND_BASE = /tornado
  1448.    WIND_HOST_TYPE = x86-win32
  1449.    include = $(ACE_ROOT)/include/makeinclude/platform_vxworks5.x_g++.GNU
  1450.    ACE_COMPONENTS=FOR_TAO  (you  may  choose  this  option to build ACE =
  1451.    library that supports TAO)
  1452.    Steps to Build
  1453.    1) Build Ace.dll under NT
  1454.    In  MS  Visual  C++ open C:CorbaACE_wrappersace.dsw And build Ace =
  1455.    DLL
  1456.    Copy Ace.dll in C:bin
  1457.    2) Build gperf utility under NT
  1458.    In MS Visual C++ open =
  1459.    C:CorbaACE_wrappersappsgperfsrcgperf.dsw. Build gperf.exe
  1460.    Copy gperf.exe to C:bin
  1461.    3) Mount Directries in Cygwin
  1462.    Click on Cygnus Solutions -> Cygwin Bash Shell
  1463.    Mount following directories by using mount command.
  1464.    create respective directories first then use mount command
  1465.    e.g. Create /Corba directory then use $mount -s "C:Corba" = /Corba
  1466.    C:Corba mount to /Corba
  1467.    C:tornado mount to /tornado
  1468.    C:Perl mount to /perl
  1469.    C:Cygwin mount to /cygwin
  1470.    C:bin mount to /bin
  1471.    C:Program Files mount to /Program Files
  1472.    4) Build ACE in Cygwin
  1473.    $cd /Corba/ACE_wrappers/ace
  1474.    $make static_libs=1
  1475.    This  will  build  your ace library libACE.a for VxWorks. If you use =
  1476.    option  shared_libs=1  then  the  build will be libACE.so. The other =
  1477.    options are same as follows.
  1478.    5) Build TAO in Cygwin
  1479.    $cd $TAO_ROOT/tao
  1480.    $make debug=0 optimize=1 static_libs_only=1 minimum_orb=1 =
  1481.    for shared libs use shared_libs=1
  1482.    The minimum Tao does not have following components,
  1483.    Dynamic Skeleton Interface
  1484.    Dynamic Invocation Interface
  1485.    Dynamic Any
  1486.    Interceptors
  1487.    Interface Repository
  1488.    Advanced POA features
  1489.    CORBA/COM interworking
  1490.    You  may  play  around with above options to find suitable build for =
  1491.    your  needs.  For example when you give option debug=1 all the debug =
  1492.    symbols  will  be created and the build will huge in size. The debug =
  1493.    symbols are necessary when you want to debug your code.
  1494.      _________________________________________________________________
  1495.   Building and Installing ACE Network Services
  1496.    The  following  explains how to build the ACE [145]network services on
  1497.    [146]UNIX and [147]Win32.
  1498.    ___________________________________
  1499.     Building and Installing ACE Network Services on UNIX
  1500.    Building  and  installing  ACE  Network Services on UNIX is relatively
  1501.    simple (the [148]process for Win32 is different). Here's what you need
  1502.    to do:
  1503.     1. Build and install ACE on UNIX as described [149]earlier. If ACE is
  1504.        built  at the root of the ACE source tree (and ACE has been ported
  1505.        to  your platform, of course) the netsvcs static and shared object
  1506.        libraries  should  be built automatically. In addition, the server
  1507.        driver program (main) contained in
  1508.        [150]$ACE_ROOT/netsvcs/servers/main.cpp  should  also  be compiled
  1509.        and ready to run.
  1510.     2. Set  your LD_LIBRARY_PATH environment variable to where the binary
  1511.        version of the ACE netsvcs library. For example, you probably want
  1512.        to do something like the following
  1513.       % setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
  1514.     3. By  default,  if  the shared object library is built, the services
  1515.        are  linked  into  the main driver program dynamically. To specify
  1516.        which  services  should  be  linked  in  and  executed,  edit  the
  1517.        [151]$ACE_ROOT/netsvcs/servers/svc.conf file. During your editing,
  1518.        you  should  update  information (such as the default service port
  1519.        numbers) that affects the initialization of services in this file.
  1520.        Refer  to the [152]Service Configurator documentation to learn how
  1521.        the  configuration  file  is  parsed  and  how  the  services  are
  1522.        dynamically  linked  and  executed.  In  addition,  refer  to  the
  1523.        [153]Network  Services  documentation  to  learn more about how to
  1524.        configure each network service.
  1525.     4. If you only want to link the services statically, simply remove or
  1526.        rename the svc.conf file.
  1527.    ___________________________________
  1528.     Building and Installing ACE on RTEMS
  1529. export RTEMS_MAKEFILE_PATH=/opt/rtems/CPU-rtems/BSP
  1530. # setup the build structure
  1531. cd ACE_wrappers
  1532. # create the host (e.g. Linux in this case) build tree
  1533. ./bin/create_ace_build Linux_g++
  1534. cd build/Linux_g++/ace
  1535. ln -s ../../../ace/config-linux.h config.h
  1536. cd ../include/makeinclude
  1537. ln -s ../../../../include/makeinclude/platform_linux.GNU platform_macros.GNU
  1538. cd ../../../..
  1539. # create the target build tree
  1540. ./bin/create_ace_build rtems
  1541. cd build/rtems/TAO
  1542. /bin/rm -r TAO_IDL
  1543. ln -s ../../Linux_g++/TAO/TAO_IDL .
  1544. cd ../ace
  1545. ln -s ../../../ace/config-rtems.h config.h
  1546. cd ../include/makeinclude
  1547. ln -s ../../../../include/makeinclude/platform_rtems.x_g++.GNU platform_macros.
  1548. GNU
  1549. cd ../../../..
  1550. # build the host side of things
  1551. cd build/Linux_g++
  1552. export ACE_ROOT=`pwd`; export LD_LIBRARY_PATH=`pwd`/ace:$LD_LIBRARY_PATH
  1553. cd ace
  1554. make
  1555. # optionally build the ACE tests
  1556. cd ../tests
  1557. make
  1558. cd ../TAO
  1559. make
  1560. # build the target side of things
  1561. cd ../rtems
  1562. export ACE_ROOT=`pwd`
  1563. cd ace
  1564. make
  1565. cd ../tests
  1566. # build rtems_init.o by hand
  1567. make -f  ../include/makeinclude/Makefile.rtems rtems_init.o
  1568. make
  1569. cd ../TAO
  1570. make
  1571.    ___________________________________
  1572.     Building and Installing ACE Network Services on Win32
  1573.    Once  again,  there are supplied project for MSVC 5.0 or later for the
  1574.    Network Services.
  1575.      _________________________________________________________________
  1576.   Building and Installing The ACE_SSL Library
  1577.    The  first  step  for  all  platforms  is  to  build  and  install the
  1578.    [154]OpenSSL  distribution.  Then  the  ACE_SSL  library must be built
  1579.    according to the instructions below.
  1580.   Unix
  1581.     1. Make  sure the OpenSSL header file directory is in your compiler's
  1582.        include  path,  and  that  OpenSSL  libraries  are in your library
  1583.        link/load  path  (e.g.  LD_LIBRARY_PATH). If you installed OpenSSL
  1584.        into  a  set  of directories unknown by the compiler, then set the
  1585.        following variables in your platform_macros.GNU file:
  1586.    PLATFORM_SSL_CPPFLAGS  Platform preprocessor options for OpenSSL (e.g.
  1587.    -I...)
  1588.    PLATFORM_SSL_LDFLAGS Platform linker options for OpenSSL (e.g. -L...)
  1589.    PLATFORM_SSL_LIBS Platform libraries required with OpenSSL (e.g. -lssl
  1590.    -lcrypto)
  1591.     2. Build  ACE  as  described above. When building ACE, add "ssl=1" to
  1592.        your   make   command   line   invocation,   or  add  it  to  your
  1593.        platform_macros.GNU file.
  1594.     3. Build  the ACE_SSL library in the $ACE_ROOT/ace/SSL directory. The
  1595.        ACE_ROOT environment variable should be set prior to this point.
  1596.   Microsoft Visual Studio
  1597.     1. Set   the   OpenSSL   include/header   directory  path  under  the
  1598.        Directories  tab  -  Include  Files  setting in the Tools->Options
  1599.        dialog.    A    typical    value    would   be   something   like:
  1600.        openssl-0.9.6inc32
  1601.     2. Set the OpenSSL library directory path under the Directories tab -
  1602.        Library  Files  setting  in  the  Tools->Options dialog. A typical
  1603.        value would be something like: openssl-0.9.6out32dll
  1604.     3. Open  the  ACE.dsw  workspace,  and  refer  to  the  ACE build and
  1605.        installation instructions above for details on creating a config.h
  1606.        configuration header for this platform. Once the config.h file has
  1607.        been created, build the ACE_SSL project.
  1608.   Borland C++
  1609.    Support  for building TAO's SSLIOP pluggable protocol with Borland C++
  1610.    does   exist.   E-mail  the  [155]ace-users  mailing  list  to  obtain
  1611.    instructions  that  detail  how  to  build it using Borland C++. These
  1612.    instructions will soon be integrated into this web page.
  1613.      _________________________________________________________________
  1614.   What Do I Need to Build for TAO?
  1615.    Toshio  Hori  <toshi@etl.go.jp> provided these suggestions on building
  1616.    just what's needed for (a subset of) TAO:
  1617.    I usually make:
  1618.     $ACE_ROOT/ace,
  1619.     $ACE_ROOT/apps/gperf,
  1620.     $TAO_ROOT/tao,
  1621.     $TAO_ROOT/TAO_IDL, and
  1622.     $TAO_ROOT/orbsvcs/orbsvcs
  1623.    and  the whole make takes less than an hour on my Solaris 7 for intel,
  1624.    Pentium-III/550MHz,  256MB  memory, 512MB swap machine. (Top secret: I
  1625.    renice  the 'make' process to the highest priority, -20... ;-) To save
  1626.    time and space, I set
  1627.     TAO_ORBSVCS = Naming Time Trader ImplRepo
  1628.    in    $ACE_ROOT/include/makeinclude/platform_macros.GNU    also.   See
  1629.    [156]TAO's   orbsvcs   library  customization  instructions  for  more
  1630.    information.
  1631.      _________________________________________________________________
  1632.   System Resource Requirements
  1633.    The  amount  of  system resources required to build ACE and TAO varies
  1634.    greatly.  The  required  system  resources  are  influenced  by OS and
  1635.    compiler  platform,  build options, and component configurations. As a
  1636.    rough  guide, the typical peak memory requirement can be well over 256
  1637.    MB  (notably,  for  TAO's  orbsvcs). Depending on your OS and compiler
  1638.    configuration,  an  entire build of ACE and TAO can use well over 2 MB
  1639.    of disk space. It's usually not necessary to build all of ACE and TAO,
  1640.    though.
  1641.    Much  less disk space is required for just the libraries. For example,
  1642.    see the [157]ACE library subset sizes.
  1643.    If you run out of memory when building, you might consider trying some
  1644.    or all of these suggestions:
  1645.      * Enable  or  increase  virtual memory. If you're on a [158]Linux or
  1646.        [159]LynxOS platform, please see the appropriate sections above.
  1647.      * Disable/enable    optimization    and/or    debugging.   See   the
  1648.        [160]Makefile  Flags  discussion for information on how to do that
  1649.        via ACE's Makefiles.
  1650.      * If  you're  using  g++,  try  removing  -pipe  from CFLAGS in your
  1651.        include/makeinclude/platform_macros.GNU file.
  1652.      * Restrict  the  components that you build. For ACE and TAO, see the
  1653.        discussion  of  ACE_COMPONENTS  in  the [161]ACE subsets page. For
  1654.        TAO's  orbsvcs,  see the discussion of TAO_ORBSVCS in [162]orbsvcs
  1655.        Library configuration information.
  1656.        If  disk  space  is  a problem, disabling debugging should greatly
  1657.        reduce   object   code,  and  therefore,  library  size.  This  is
  1658.        especially true with g++.
  1659.        Toshio  Hori  <toshi@etl.go.jp>  provided  these tips for reducing
  1660.        disk space usage:
  1661.        To  save  space  on  a  Unix  machine, I usually run 'find . -name
  1662.        *.dsw -o -name *.dsp -o -name *.bor | xargs rm -f' in $ACE_ROOT
  1663.        at  first  after I untar the distribution. They are meaningless in
  1664.        my  environment  (Files  named  '*.dsw'  and  '*.dsp' are used for
  1665.        MSVC++ and files named '*.bor' are for Borland C++ Builder.)
  1666.        Finally, to save space, may want to run 'make clean' after 'make'.
  1667.        It removes generated object files and leaves libraries/executables
  1668.        intact. If you want to remove any of the libraries/executables, as
  1669.        well, try 'make realclean'.
  1670.      _________________________________________________________________
  1671.   Advanced Topics
  1672.      * [163]Porting ACE and TAO to a New OS Platform
  1673.      * [164]Using GNU's Autoconf with ACE
  1674.           + This  support  is  currently a work-in-progress, and is hence
  1675.             disabled.  It  will  be  completed  and re-enabled as soon as
  1676.             someone funds the work to do so.
  1677.      * [165]Non-static ACE_Object_Manager
  1678.      * [166]Cloning the Source Tree
  1679.      * [167]Building CORBA Versions of ACE
  1680.      * [168]Additional Build Tips for MVS
  1681.      * [169]Makefile Flags
  1682.      * [170]Version Control
  1683.      * [171]ACE Makefile hints
  1684.      * [172]ACE SSL effort
  1685.    ___________________________________
  1686.     Non-static ACE_Object_Manager
  1687.    The  ACE_Object_Manager can be instantiated as a static object, can be
  1688.    instantiated  on  the  stack  of  the  main  program thread, or can be
  1689.    explicitly   instantiated   and  destroyed  by  the  application  with
  1690.    ACE::init  ()  and ACE::fini (). The comments in the [173]header file,
  1691.    ace/Object_Manager.h provide more detail.
  1692.    NOTE:   Special  requirements  are  imposed  on  applications  if  the
  1693.    ACE_Object_Manager  is  instantiated, by ACE, on the stack of the main
  1694.    thread.      This     behavior     is     selected     by     defining
  1695.    ACE_HAS_NONSTATIC_OBJECT_MANAGER  in  ace/config.h. Again, see the ACE
  1696.    Object_Manager   [174]header   file,   ace/Object_Manager.h  for  more
  1697.    information.  One  of these requirements is discussed here, because it
  1698.    is  so important. Please note that ACE_HAS_NONSTATIC_OBJECT_MANAGER is
  1699.    defined in the distributed ACE config.h headers for VxWorks and Win32.
  1700.    The  important  requirement  is that the program must declare its main
  1701.    function  with  two  arguments, even if they're not used, and with int
  1702.    return type:
  1703. int
  1704. main (int, char *[])
  1705.    If  you  don't  declare  main exactly that way, then you'll see a link
  1706.    error about ace_main_i being undefined.
  1707.    Alternatively,  this  feature  can  be  disabled by commenting out the
  1708.    #define  ACE_HAS_NONSTATIC_OBJECT_MANAGER  in  the  ace/config.h. But,
  1709.    that  will make repeated testing more difficult on VxWorks. And, you'd
  1710.    either  have  to  call static constructors and destructors manually or
  1711.    unload/load  the program between runs. On Win32, disabling the feature
  1712.    can possibly lead to shutdown difficulties.
  1713.    WARNING:   ACE_HAS_NONSTATIC_OBJECT_MANAGER  assumes  that  your  main
  1714.    function  is  named  main. Any violation of this assumption is at your
  1715.    peril.  If  you  really  need to call your entry point something other
  1716.    than    main,    you'll    need   to   construct   and   destroy   the
  1717.    ACE_Object_Manager.  The  best  way to do that is to call ACE::init ()
  1718.    and  ACE::fini  ().  Or,  see  the  #define of main (int, char *[]) in
  1719.    [175]ace/OS.h to see how ACE does that for entry points named main.
  1720.    ___________________________________
  1721.     Cloning the Source Tree
  1722.    On  UNIX  platforms,  we  typically  like to support multiple platform
  1723.    builds  using the same ACE source tree. This idiom is supported by ACE
  1724.    using      the      $ACE_ROOT/bin/create_ace_build      script      or
  1725.    $ACE_ROOT/bin/clone.cpp  program.  To  use  build  and  use  the clone
  1726.    program,  first  make  sure  there's a file called platform_macros.GNU
  1727.    that contains the correct platform-specific Makefile configurations in
  1728.    the  $ACE_ROOT/include/makeinclude/  directory, as well as making sure
  1729.    there's  a  $ACE_ROOT/ace/config.h  file  that  includes  the  desired
  1730.    platform/compiler  specific  configuration  header.  Then  perform the
  1731.    following steps:
  1732. % cd $ACE_ROOT/bin
  1733. % make
  1734. % mv clone ~/bin
  1735. % rehash
  1736.    Then  create  a ./build subdirectory someplace, e.g., under $ACE_ROOT.
  1737.    Once this is done, then invoke the top-level Makefile with the "clone"
  1738.    target, e.g.:
  1739. % cd $ACE_ROOT
  1740. % mkdir build-SunOS5
  1741. % cd build-SunOS5
  1742. % make -f ../Makefile clone
  1743. % setenv ACE_ROOT $cwd
  1744. % make
  1745.    This  will  establish a complete tree of links. In addition, make sure
  1746.    you set your LD_LIBRARY_PATH to $ACE_ROOT/ace:$LD_LIBRARY_PATH on SVR4
  1747.    UNIX platforms.
  1748.    When  you  do  a make in the $ACE_ROOT directory you will be producing
  1749.    object  code  that  is  not  stored  in the same place as the original
  1750.    source  tree.  This  way,  you  can easily build another platform in a
  1751.    parallel tree structure.
  1752.    VERY IMPORTANT! 
  1753.    If  you  use  the  "clone  trick"  discussed above, make sure that the
  1754.    symbolic  links  are  correctly in place before starting the build. In
  1755.    particular,  if  you plan to clone the tree, it is preferable to do so
  1756.    before  you  start  a  build  procedure  on the original tree. This is
  1757.    because  the  build  procedure  create  object  directories  (.obj and
  1758.    .shobj)  and  the cloning procedure will clone these directories also.
  1759.    You  would  end  up  with  links  pointing  to object files of another
  1760.    platform.  If  you  clone  the  tree  after you've done a build on the
  1761.    original tree, make sure to remove all ".obj", ".shobj" and (any other
  1762.    files  or directories) in all subdirectories before starting the build
  1763.    on your cloned tree.
  1764.    Alternatively,  the  perl script ACE_wrappers/bin/create_ace_build can
  1765.    be   used   to   create   build   trees.   It   creates   them   below
  1766.    ACE_wrappers/build. It filters out all but the necessary files, so the
  1767.    warning  above  does  not  apply.  See  the comments at the top of the
  1768.    script itself for usage information.
  1769.    ___________________________________
  1770.     Additional Build Tips for MVS
  1771.    For all intents and purpose, MVS OpenEdition (OE) is another flavor of
  1772.    UNIX,  therefore,  the instructions under [176]Building and Installing
  1773.    ACE on Unix can be used along with the following additional tips:
  1774.    You can get a copy of GNU make that has been ported to MVS OpenEdition
  1775.    from  the  [177]IBM  OpenEdition web site. ACE's make scheme generates
  1776.    compile  commands  that  have  options  and  operands interspersed. By
  1777.    default,  the  c89/cc/c++  compiler expects all options to precede all
  1778.    operands.  To  get  around  this,  you  must  set  a  special compiler
  1779.    environment  variable  (_CXX_CCMODE)  to 1 which tells the compiler to
  1780.    allow options and operands to be interspersed.
  1781.    Note  that  the environment variable LD_LIBRARY_PATH is called LIBPATH
  1782.    on MVS.
  1783.    Shared  objects are built a little different on MVS than on other UNIX
  1784.    implementations.  This  has  been  accounted for in the makefiles that
  1785.    come  with  ACE  When  the  linker  (via  the  cxx command) builds the
  1786.    libACE.so  file  it will also create a file called libACE.x. This is a
  1787.    side-deck  file  and it must be included in subsequent link edits with
  1788.    application  code.  For  more  information  on  this see the C/C++ MVS
  1789.    Programming  Guide.  If you want to build your application statically,
  1790.    i.e.,  using  libACE.a  instead  of  libACE.so,  you can set ACELIB to
  1791.    ACELIB_STATIC in platform_mvs.GNU.
  1792.    When  the libACE.so file is built (via the MVS pre-linker and binder),
  1793.    you  will  get  a rc=4 from the pre-linker. This is ok. This is due to
  1794.    some  warnings  about  unresolved references which should get resolved
  1795.    during the link step. Note, however, there shouldn't be any unresolved
  1796.    references  from the binder (linkage editor). You can get pre-link and
  1797.    link   maps   by   uncommenting   the  PMAP  and  LMAP  lines  in  the
  1798.    platform_mvs.GNU file.
  1799.    ___________________________________
  1800.     Makefile Flags
  1801.    GNU  make  provides  many  options to customize its operation. See its
  1802.    documentation  for more information. One example is that for multi-cpu
  1803.    UNIX machines you will be able to build faster if you use:
  1804. % make -j n
  1805.    which  allows  parallel  compilation. The number n should typically be
  1806.    the  number  of  CPUs. It is likely that builds will be faster even on
  1807.    single-CPU UNIX machines with make -j 2.
  1808.    ACE  further  supports the following flags. They can be enabled either
  1809.    on  the  command  line,  e.g.,  "make  purify=1",  or  added  to  your
  1810.    platform_macros.GNU.  To  disable  the  option,  set the flag to null,
  1811.    e.g.,  "make  debug=".  Some flags support setting to 0 disable, e.g.,
  1812.    "make  debug=0".  debug=1  is  enabled  in the platform files that are
  1813.    released with ACE.
  1814.    Please note that the effects of a flag may be platform specific. Also,
  1815.    combinations  of  certain  flags may or may not be allowed on specific
  1816.    platforms,  e.g.,  debug=1 opt=1 is supported by g++ but not all other
  1817.    C++ compilers.
  1818.    If  you  use  Purify  or  Quantify: purify or quantify must be on your
  1819.    PATH.  By  default, ACE puts the Purify/Quantify caches below /tmp. To
  1820.    override  that,  set  the PURE_CACHE_BASE_DIR variable, either in your
  1821.    environment  or  on  the  make  make  command line, to the destination
  1822.    directory for your instrumented libraries.
  1823. Flag             Description
  1824. ----             -----------
  1825. debug            Enable debugging; see DCFLAGS and DCCFLAGS.
  1826. exceptions       Enable exception handling (not supported by all platforms).
  1827. include_env      Support old-style ACE_TRY_ENV declarations in methods.
  1828.                  This switch is necessary for compiling TAO applications
  1829.                  in the native exception configuration that were written
  1830.                  for TAO versions before 1.2.2.
  1831.                  In TAO 1.2.2, new macros were introduced that supercede
  1832.                  the direct ACE_TRY_ENV declarations. These are the
  1833.                  ACE_ENV_ARG macros that are defined in ace/CORBA_macros.h
  1834.                  and are documented in docs/exceptions.html.
  1835.                  This switch only affects the exceptions=1 configuration.
  1836.                  It is for backward compatibility only.
  1837.                  There will be warnings about unused _ACE_environment_variable
  1838.                  parameters when using include_env=1.
  1839.                  If possible, do not use it, but instead change your TAO
  1840.                  applications to use the ACE_ENV_ARG macros.
  1841. fast             Enable -fast option, e.g., with Sun C++.
  1842. inline           Enable ACE inlining.  Some platforms enable inlining by
  1843.                    default, others do not.
  1844. optimize         Enable optimization; see OCFLAGS and OCCFLAGS.
  1845. pace             Enable PACE as the underpinnings of ACE_OS.
  1846. probe            Enable ACE_Timeprobes.
  1847. profile          Enable profiling; see PCFLAGS and PCCFLAGS.
  1848. purify           Purify all executables.
  1849. quantify         Quantify all executables.
  1850. repo             Use GNU template repository (g++ with repo patches and
  1851.                    egcs only).
  1852. rtti             Enable run-time type identification.  On some platforms,
  1853.                    it is enabled by default, so this is ignored.
  1854. shared_libs      Build shared libraries. Ignored if static_libs_only is set.
  1855. static_libs      Build shared libraries. Ignored if shared_libs_only is set.
  1856. shared_libs_only Only build shared libraries.  Ignored if no SHLIBs are
  1857.                    specified by the Makefile, as in performance-tests/Misc.
  1858. static_libs_only Only build static libraries.
  1859. threads          Build with thread support.
  1860. xt_reactor       Build the XtReactor.
  1861. fl_reactor       Build the FlReactor.
  1862. tk_reactor       Build the TkReactor.
  1863. qt_reactor       Build the QtReactor.
  1864. gtk_reactor      Build the GtkReactor.
  1865. ssl              Build with OpenSSL support.
  1866. rapi             Build with RAPI
  1867. split            Build the library by first splitting up the ACE source
  1868.                    to several files, with one object code entity for each
  1869.                    source file. This allows an application that is linked
  1870.                    with ACE to extract _exactly_ what it needs from the
  1871.                    library, resulting in a smaller executable.  Setting this
  1872.                    to 1 overrides debug to 0.
  1873. Usually, users do not need to be concerned with make targets.
  1874. Just enter "make" on the command line to build.  A few notable
  1875. targets are listed below.
  1876. Target             Description
  1877. ------             -----------
  1878. show_statics       Lists all static objects in object files built for
  1879.                      current directory.  Only supported for g++.
  1880. show_uninit        Lists all uninitialized in object files built for
  1881.                      current directory.  Only supported for g++.
  1882.      _________________________________________________________________
  1883.    Back to the [178]ACE home page.
  1884. References
  1885.    1. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ChangeLog
  1886.    2. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-development-process.html
  1887.    3. http://www.cs.wustl.edu/~schmidt/ACE/book1/
  1888.    4. http://www.cs.wustl.edu/~schmidt/ACE/book2/
  1889.    5. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-FMM.html
  1890.    6. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/usage-bugzilla.html
  1891.    7. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-bug-process.html
  1892.    8. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#platforms
  1893.    9. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#installnotes
  1894.   10. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#g++
  1895.   11. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#egcs
  1896.   12. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#aceinstall
  1897.   13. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#svcsinstall
  1898.   14. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#sslinstall
  1899.   15. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#minimum_build
  1900.   16. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#resource_requirements
  1901.   17. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#advanced
  1902.   18. http://www.cs.wustl.edu/~schmidt/ACE-versions-i.html
  1903.   19. http://www.cs.wustl.edu/~doc/
  1904.   20. http://www.riverace.com/
  1905.   21. http://www.theaceorb.com/
  1906.   22. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-porting.html
  1907.   23. news:comp.soft-sys.ace
  1908.   24. mailto:ace-users@cs.wustl.edu
  1909.   25. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/TAO/TAO-INSTALL.html
  1910.   26. http://ringil.ece.uci.edu/scoreboard/
  1911.   27. http://doc.ece.uci.edu/
  1912.   28. http://tao.doc.wustl.edu/
  1913.   29. http://www.riverace.com/
  1914.   30. http://www.theaceorb.com/
  1915.   31. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/TAO/TAO-INSTALL.html
  1916.   32. http://www.cs.wustl.edu/~schmidt/resume-grants.html
  1917.   33. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-bug-process.html
  1918.   34. http://www.cs.wustl.edu/~schmidt/research.html
  1919.   35. http://www.cs.wustl.edu/~schmidt/ACE-users.html
  1920.   36. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#Non-static Object Manager
  1921.   37. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#mingw
  1922.   38. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/CE-status.txt
  1923.   39. http://access1.sun.com/
  1924.   40. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#flags
  1925.   41. http://www.cs.wustl.edu/~levine/Hints.html
  1926.   42. http://service.software.ibm.com/support/rs6000
  1927.   43. mailto:jordan@hursley.ibm.com
  1928.   44. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ace/Makefile
  1929.   45. http://www.cs.wustl.edu/~cleeland/ace/
  1930.   46. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#unix
  1931.   47. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#resource_requirements
  1932.   48. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/os-patches/linux-patches.html
  1933.   49. mailto:mitosys@colomsat.net.co
  1934.   50. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/FSU-threads.tar.gz
  1935.   51. http://www.riverace.com/FAQ/faq.html
  1936.   52. mailto:kielmann@informatik.uni-siegen.de
  1937.   53. mailto:trumble@cvg.enet.dec.com
  1938.   54. mailto:shuston@riverace.com
  1939.   55. mailto:gpai@voicetek.com
  1940.   56. mailto:mesnier_p@ociweb.com
  1941.   57. mailto:michael.meissnitzer@siemens.at
  1942.   58. mailto:christian.klepp@siemens.at
  1943.   59. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/engelbert.staller@siemens.at
  1944.   60. mailto:chiang@tele.nokia.fi
  1945.   61. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/tests/run_tests.sh
  1946.   62. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/include/makeinclude/platform_lynxos.GNU
  1947.   63. mailto:davem@lynx.com
  1948.   64. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/os-patches/lynxos-patches.html
  1949.   65. http://www.cs.wustl.edu/~levine/
  1950.   66. mailto:levine@cs.wustl.edu
  1951.   67. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/os-patches/vxworks-5.1.txt
  1952.   68. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#spa
  1953.   69. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#g++
  1954.   70. mailto:gehr@sweng.stortek.com
  1955.   71. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#mvs
  1956.   72. http://www.qnx.com/products/os/neutrino.html
  1957.   73. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ace/config-qnx-neutrino.h
  1958.   74. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/include/makeinclude/platform_qnx_neutrino.GNU
  1959.   75. http://get.qnx.com/
  1960.   76. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ace/config-qnx-rtp.h
  1961.   77. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/include/makeinclude/platform_qnx_neutrino.GNU
  1962.   78. http://www.pharlap.com/
  1963.   79. mailto:shuston@riverace.com
  1964.   80. mailto:j.zorko@att.net
  1965.   81. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/apps/Gateway/Gateway/Connection_Handler.cpp
  1966.   82. ftp://ftp.cygnus.com/pub/g++/
  1967.   83. mailto:kielmann@informatik.uni-siegen.de
  1968.   84. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#g++
  1969.   85. mailto:trose@bridgewatersys.com
  1970.   86. mailto:gpai@voicetek.com
  1971.   87. mailto:johng@keck.hawii.edu
  1972.   88. mailto:ssweeney@sanders.com
  1973.   89. mailto:ossama@uci.edu
  1974.   90. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#unix
  1975.   91. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#win32
  1976.   92. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#cloning
  1977.   93. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#win32
  1978.   94. ftp://prep.ai.mit.edu/pub/gnu/make/
  1979.   95. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ace
  1980.   96. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/tests/README
  1981.   97. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/tests/
  1982.   98. http://www.cs.wustl.edu/~schmidt/TAO.html
  1983.   99. http://www.cs.wustl.edu/~schmidt/PDF/gperf.pdf
  1984.  100. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/apps/gperf
  1985.  101. http://www.cs.wustl.edu/~schmidt/byacc.tar.gz
  1986.  102. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#borland
  1987.  103. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#msvc
  1988.  104. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#mingw
  1989.  105. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#win32nonic
  1990.  106. http://www.tenermerx.com/tao_bcb/index.html
  1991.  107. mailto:jody@atdesk.com
  1992.  108. mailto:chris@kohlhoff.com
  1993.  109. mailto:fultonb@pcnet1.ascs.aro.allied.com
  1994.  110. http://www.dinkumware.com/vc_fixes.html
  1995.  111. mailto:ben@jetpen.com
  1996.  112. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/msvc_notes.txt
  1997.  113. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/tests/run_tests.bat
  1998.  114. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#win32nonic
  1999.  115. http://www.mingw.org/
  2000.  116. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#unix
  2001.  117. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#win32
  2002.  118. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#g++
  2003.  119. http://www.mingw.org/
  2004.  120. http://cygwin.com/setup.exe
  2005.  121. http://cygwin.com/
  2006.  122. http://cygwin.com/setup.exe
  2007.  123. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#mingwpacks
  2008.  124. http://www.microsoft.com/
  2009.  125. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#mingwrunpath
  2010.  126. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#unix
  2011.  127. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#VxWorks/NT
  2012.  128. mailto:Paul_von_Behren@stortek.com
  2013.  129. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/bin/ace_ld
  2014.  130. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#Non-static Object Manager
  2015.  131. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/tests/
  2016.  132. mailto:clarence_m_weaver@md.northgrum.com
  2017.  133. mailto:Kirk.Davies@pobox.com
  2018.  134. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/TAO/performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp
  2019.  135. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#VxWorks/SharedLibs
  2020.  136. http://people.qualcomm.com/cryan
  2021.  137. mailto:Paul_von_Behren@stortek.com
  2022.  138. mailto:ace-users@cs.wustl.edu
  2023.  139. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/include/makeinclude/platform_vxworks5.x_g++.GNU
  2024.  140. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/include/makeinclude/platform_vxworks5.x_g++.GNU
  2025.  141. http://www.cygnus.com/misc/gnu-win32/
  2026.  142. ftp://ftp.cygnus.com/pub/gnu-win32/latest/
  2027.  143. http://www.activestate.com/software/default.htm
  2028.  144. mailto:Jaffar_Shaikh@Mitel.COM
  2029.  145. http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html
  2030.  146. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#unixsvcs
  2031.  147. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#win32svcs
  2032.  148. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#win32svcs
  2033.  149. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#unix
  2034.  150. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/netsvcs/servers/main.cpp
  2035.  151. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/netsvcs/servers/svc.conf
  2036.  152. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-papers.html#config
  2037.  153. http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html
  2038.  154. http://www.openssl.org/
  2039.  155. mailto:ace-users@cs.wustl.edu
  2040.  156. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/TAO/docs/configurations.html#orbsvcs
  2041.  157. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-subsets.html#ACE Library Size Breakdown
  2042.  158. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#Linux
  2043.  159. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#LynxOS
  2044.  160. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#flags
  2045.  161. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-subsets.html
  2046.  162. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/TAO/docs/configurations.html#orbsvcs
  2047.  163. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-porting.html
  2048.  164. http://www.cs.wustl.edu/~othman/aceconf
  2049.  165. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#Non-static Object Manager
  2050.  166. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#cloning
  2051.  167. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#corba
  2052.  168. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#mvs
  2053.  169. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#flags
  2054.  170. http://www.cs.wustl.edu/~levine/CVS.html
  2055.  171. http://www.cs.wustl.edu/~cleeland/ace/makefile-hints.html
  2056.  172. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/docs/ACE-SSL.html
  2057.  173. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ace/Object_Manager.h
  2058.  174. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ace/Object_Manager.h
  2059.  175. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ace/OS.h
  2060.  176. file://localhost/tmp/ACE_wrappers_stage-5397/ACE_wrappers/ACE-INSTALL.html#aceinstall
  2061.  177. http://www.s390.ibm.com/products/oe/index.html
  2062.  178. http://www.cs.wustl.edu/~schmidt/ACE.html