diff options
Diffstat (limited to 'ACE-INSTALL.html')
-rw-r--r-- | ACE-INSTALL.html | 230 |
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> |