summaryrefslogtreecommitdiff
path: root/ACE-INSTALL.html
diff options
context:
space:
mode:
Diffstat (limited to 'ACE-INSTALL.html')
-rw-r--r--ACE-INSTALL.html230
1 files changed, 199 insertions, 31 deletions
diff --git a/ACE-INSTALL.html b/ACE-INSTALL.html
index d7ed01e12cc..caa72aabed4 100644
--- a/ACE-INSTALL.html
+++ b/ACE-INSTALL.html
@@ -2,7 +2,7 @@
<!-- $Id$ -->
<HEAD>
-<TITLE>Installing ACE</TITLE>
+<TITLE>Building and Installing ACE and Its Network Services</TITLE>
<BODY text = "#000000"
link="#000fff"
@@ -10,22 +10,23 @@ vlink="#ff0f0f"
bgcolor="#ffffff">
<HR>
-<H3>Installation Notes for the ADAPTIVE Communication Environment (ACE)</H3>
+<H3>Building and Installing ACE and Its Network Services</H3>
<H4>Synopsis</H4>
-The file explains how to build ACE on the various UNIX and Win32
-platforms that it has been ported to. Please make sure you read the
-ACE <A HREF="ACE.FAQ.html">FAQ</A> before installing ACE. In
-addition, please consult the <A HREF="ChangeLog">ChangeLog</A> file to
-see whether any recent changes to the release will affect your code.
+The file explains how to build and install ACE and its Network
+Services on the various OS platforms and compilers that it has been
+ported to. Please consult the <A HREF="ChangeLog">ChangeLog</A> file
+to see whether any recent changes to the release will affect your
+code. In addition, you might want to read the ACE <A
+HREF="ACE.FAQ.html">FAQ</A> before building and installing ACE.
<H4>Document Index</H4>
<UL>
<LI><A HREF="#platforms">Supported Platforms and Compilers</A>
-<LI><A HREF="#unix">Installation Process for UNIX</A>
-<LI><A HREF="#win32">Installation Process for Win32</A>
+<LI><A HREF="#aceinstall">Building and Installing ACE</A>
+<LI><A HREF="#svcsinstall">Building and Installing ACE Network Services</A>
<LI><A HREF="#advanced">Advanced Topics</A>
</UL>
@@ -34,9 +35,13 @@ see whether any recent changes to the release will affect your code.
<H3>Supported Platforms and Compilers</H3>
The ADAPTIVE Communication Environment has been ported and tested
-extensively on a wide range of C++ compilers and OS platforms. If you
+extensively on a wide range of C++ compilers and uni-processor and
+multi-process OS platforms including Win32 (i.e., WinNT and Win95),
+most versions of UNIX (e.g., SunOS 4.x and 5.x, SGI IRIX, HP-UX,
+OSF/1, AIX, Linux, and SCO), VxWorks, and MVS OpenEdition. If you
have a problem compiling the ACE wrappers on the platforms shown below
-please let me know and I'll try to fix it for you.
+please send email to the <A HREF="mailto:ace-users@cs.wustl.edu">ACE
+mailing list</A> and we'll try to fix it for you.
<DL>
<DT> <B>Win32 (Windows NT and Windows '95) </B><P>
@@ -176,12 +181,19 @@ If you use the GNU GCC C++ compiler please note the following: <P>
</UL>
<P><HR><P>
+
+<A NAME="aceinstall">
+<H3>Building and Installing ACE</H3>
+
+The following explains how to build the ACE on <A
+HREF="#unixsvcs">UNIX</A> and <A HREF="#win32svcs">Win32</A>.
+
<A NAME="unix">
-<H3>Installation Process for UNIX</H3>
+<H4>Building and Installing ACE on UNIX</H3>
-The installation process for installing ACE on UNIX is relatively
-simple (the Windows NT installation process is different). Here's
-what you need to do: <P>
+Building and installing ACE on UNIX is relatively simple (the <A
+HREF="#win32">process</A> for Win32 is different). Here's what you
+need to do: <P>
<OL>
<LI> Install GNU make 3.7 or greater on your system (available via
@@ -223,8 +235,8 @@ what you need to do: <P>
<LI> Note that since ACE builds shared libraries, you'll need to set
LD_LIBRARY_PATH to whereever you put the binary version of the
- libraries. For example, you probably want to do somethink like the
- following <P>
+ ACE library. For example, you probably want to do something like
+ the following <P>
<pre><code>
% setenv LD_LIBRARY_PATH $WRAPPER_ROOT/ace:$LD_LIBRARY_PATH <P>
@@ -243,10 +255,10 @@ what you need to do: <P>
<P><HR><P>
<A NAME="win32">
-<H3>Installation Process for Windows NT and Windows '95 Static and Dynamic Libraries</H3>
+<H4>Building and Installing ACE on Win32</H3>
-The installation process for NT is a bit different than UNIX. First,
-I assume you're using MSVC++ 4.0(things are a little different for the
+The installation process for NT is a bit different than UNIX. We
+assume you're using MSVC++ 4.x (things are a little different for the
2.0 version...). <P>
<UL>
@@ -324,10 +336,10 @@ I assume you're using MSVC++ 4.0(things are a little different for the
applications link setup. Do this by including wsock32.lib in the
project through Insert/Files_into_project. <P>
- When building a DLL: In order to allow standard C library functions
+ When building a DLL we must ensure that both dll and exe are using
+ the same libraries In order to allow standard C library functions
to share common variables (particular <TT>errno</TT>) across dll
- and exe boundaries, we must ensure that both dll and exe are using
- the same libraries. Go to
+ and exe boundaries. Go to
Build/Settings/C++/Category:Code_Generation. Set Use run-time
library to "Multithreaded DLL" or "Debug Multithreaded DLL"
depending on whether you're building a release or a debug version
@@ -342,16 +354,12 @@ I assume you're using MSVC++ 4.0(things are a little different for the
Go to the Build menu and select "Build ace.{lib,dll}". The first
time this happens it will rebuild all the dependencies. This may
take a while (i.e., 3 to 15 minutes, depending on whether you use
- Samba, PC-NFS, native NTFS, etc.). The whole process will seem to
- generate lots of errors and warning about not finding many UNIX
- header files, etc. Just ignore these errors/warnings. They are
- due to the lame MSVC++ compiler that doesn't pay attention to the
- #ifdefs when computing the dependencies. Eventually, this process
+ Samba, PC-NFS, native NTFS, etc.). Eventually, this process
will stop and from you won't have to rebuild the dependencies then
on (thank God...).<P>
- At this point, the compiler should be happily chugging away on your
- files. <P>
+ At this point, the compiler should be happily chugging away on the
+ ACE files. <P>
<LI> USING ace.lib. <P>
@@ -383,7 +391,7 @@ When it's done, you should have a static or dynamic library
same code, we need to remove the /GX flag. Go to
Build/Settings/C++/Category:C++ Language. By default, the flag
"Enable Exception Handling" should be checked. Click on it to mark
- it unchecked. The flag /GX will disappear from Project_Options.
+ it unchecked. The flag /GX will disappear from Project_Options. <P>
<LI> SET UP THE LINKER. <P>
@@ -449,6 +457,166 @@ card. This is one method: <P>
</UL>
+<HR>
+<A NAME="svcsinstall">
+<H3>Building and Installing ACE Network Services</H3>
+
+The following explains how to build the ACE <A
+HREF="ACE-netsvcs.html">network services</A> on <A
+HREF="#unixsvcs">UNIX</A> and <A HREF="#win32svcs">Win32</A>.
+
+<A NAME="unixsvcs">
+<H4>Building and Installing ACE Network Services on UNIX</H3>
+
+Building and installing ACE Network Services on UNIX is relatively
+simple (the <A HREF="#win32svcs">process</A> for Win32 is different).
+Here's what you need to do: <P>
+
+<OL>
+
+<LI> Build and install ACE on UNIX as described <A
+HREF="#unix">earlier</A>. If ACE is built at the root of the ACE
+source tree (and ACE has been ported to your platform, of course) the
+netsvcs static and shared object libraries should be built
+automatically. In addition, the server driver program
+(<CODE>main</CODE>) contained in <A
+HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/netsvcs/servers/main.cpp">
+$WRAPPER_ROOT/netsvcs/servers/main.cpp</A> should also be compiled and ready to run.<P>
+
+<LI> Set your LD_LIBRARY_PATH environment variable to where the binary
+ version of the ACE netsvcs library. For example, you probably
+ want to do something like the following <P>
+
+<pre><code>
+% setenv LD_LIBRARY_PATH $WRAPPER_ROOT/ace:$LD_LIBRARY_PATH <P>
+</pre></code>
+
+<LI> By default, if the shared object library is built, the services
+ are linked into the <CODE>main</CODE> driver program dynamically.
+ To specify which services should be linked in and executed, edit the
+<A
+HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/netsvcs/servers/svc.conf">
+$WRAPPER_ROOT/netsvcs/servers/svc.conf</A> file. During your editing,
+ you should update information (such as the default service port
+ numbers) that affects the initialization of services in this
+ file. Refer to the <A HREF="ACE-papers.html#config">Service Configurator</A>
+ documentation to learn how the configuration file is parsed and
+ how the services are dynamically linked and executed. In
+ addition, refer to the <A HREF="ACE-netsvcs.html">Network
+ Services</A> documentation to learn more about how to configure
+ each network service. <P>
+
+<LI> If you only want to link the services statically, simply remove
+ or rename the svc.conf file. <P>
+
+</OL>
+
+<A NAME="win32svcs">
+<H4>Building and Installing ACE Network Services on Win32</H3>
+
+The installation process for ACE network services on Win32 is a bit
+different than UNIX. We assume you're using MSVC++ 4.x (things are a
+little different for the 2.0 version...). <P>
+
+<UL>
+<LI> Build and install ACE on Win32 as described <A
+HREF="#win32">earlier</A>. <P>
+
+<LI> Just like installing the ace directory under ACE_wrappers,
+ install the new netsvcs directory under ACE_wrappers by copying
+ all the appropriate files, include netsvcs.mdp and netsvcs.mak. <P>
+
+<LI> The easiest thing to do is to use the default netsvcs.mdp and
+ netsvcs.mak files distributed with the release. Open the
+ netsvcs.mdp workspace to build netsvcs as a DLL. This project
+ assumes that you have set the ``global'' include path to include
+ $WRAPPER_ROOT/netsvcs/lib. This can be done via the following
+ MSDEV menu item:
+
+ Tools/Options/Directories/Show_Directories_For:Include_Files. <P>
+
+<LI> If you choose not to use the given project, the following bullets
+ explain how to build the ACE netsvcs DLL with MSDEV.<P>
+
+<OL>
+<LI> CREATE A PROJECT WORKSPACE. <P>
+
+ Start by making a new project. It should be rooted at
+ $WRAPPER_ROOT/netsvcs/lib. We normally browse to
+ $WRAPPER_ROOT/netsvcs, and select "netsvcs" as the project name.
+ This will cause MSDEV to use the $WRAPPER_ROOT/netsvcs/lib
+ directory to store the project files. The actual directory and
+ project name are unimportant, but we'll assume you
+ named the project "netsvcs." Select the dynamic link library option
+ and say "ok." By default, the config-win32*.h files are set up to
+ build DLLs. If you choose to build ACE as a static library you'll
+ need to unset ACE_HAS_DLL in the config-win32*.h file and select
+ the static link library option when creating a project workspace.<P>
+
+<LI> INSERT FILES INTO PROJECT. <P>
+
+ Go into the Insert menu and select "Files into project". If you're
+ building a static library, select all the *.cpp files in
+ $WRAPPER_ROOT/netsvcs/lib into the project.<P>
+
+ Once you've selected the files and pressed "ok" it should take a
+ few seconds or so to for MSDEV to create the project. (Note that
+ in MSVC2.0 there isn't an Insert menu, so go into the Project Menu
+ and then "Files" and from there insert all the *.cpp files.) When
+ including the files on windows 95, it may ask you to select fewer
+ files than *.cpp. Just do A-M and N-Z or something similar. <P>
+
+<LI> SET THE INCLUDE PATH. <P>
+
+ Go into Options section of the Tools menu. Add the $WRAPPER_ROOT/netsvcs/lib
+ directory to the default directory search path.
+ Then add $WRAPPER_ROOT\netsvcs to the default library search path.
+ This means that you can now use relative paths for linking apps
+ with netsvcs.lib. You may skip this step if you have set
+ Tools/Options/Directories/Include_Files to include
+ $WRAPPER_ROOT. <P>
+
+ If you are going to compile ACE with UNICODE on, please add UNICODE
+ to the pre-processor definitions through: <P>
+
+ Build -> Settings -> C/C++ -> Preprocessor -> Preprocessor
+ definitions <P>
+
+<LI> SET UP THE LINKER. <P>
+
+ When building a DLL we must ensure that both dll and exe are using
+ the same libraries in order to allow standard C library functions
+ to share common variables (particular <TT>errno</TT>) across dll
+ and exe boundaries. Go to
+ Build/Settings/C++/Category:Code_Generation. Set Use run-time
+ library to "Multithreaded DLL" or "Debug Multithreaded DLL"
+ depending on whether you're building a release or a debug version
+ respectively.<P>
+
+ When building a static lib: Go to
+ Build/Settings/C++/Category:Code_Generation and set run-time
+ library to "Debug Multithreaded" (or just "Multithreaded"). <P>
+
+<LI> BUILD. <P>
+
+ Go to the Build menu and select "Build netsvcs.{lib,dll}". The first
+ time this happens it will rebuild all the dependencies. This may
+ take a while (i.e., 3 to 15 minutes, depending on whether you use
+ Samba, PC-NFS, native NTFS, etc.). Eventually, this process
+ will stop and from you won't have to rebuild the dependencies then
+ on (thank God...).<P>
+
+ At this point, the compiler should be happily chugging away on
+ the netsvcs files. <P>
+
+<LI> USING netsvcs.lib. <P>
+
+When it's done, you should have a static or dynamic library
+ called netsvcs.lib. You can use this to link with test applications,
+ including the server driver program. <P>
+</OL>
+</UL>
+
<P><HR><P>
<A NAME="advanced">
<H3>Advanced Topics</H3>