summaryrefslogtreecommitdiff
path: root/etc/ACE-porting.html
blob: 6c4ba40ccaadd419bfcc128506aec0b198aa06be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   <META NAME="Generator" CONTENT="Microsoft Word 97">
   <META NAME="Template" CONTENT="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html
.dot">
   <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (Win95; I) [Netscape]">
   <TITLE>ACE-Porting</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#FF0000">

<HR>
<H3>
Porting ACE to a new Platform</H3>
Following is a suggestion of a logical step-by-step process that can be
used when porting the ADAPTIVE Communication Environment to a new platform.
<UL>
<LI>
<B>Make a config header file for the target platform</B></LI>
</UL>

<DIR>
<DIR>There exists a different config header file in ACE_Wrappers/ace for
each platform to which ACE has been ported (like config-sunos5.5.h, config-sco-
4.2-nothread.h,
config-win32-borland.h and so on). It is in that file that the portability
macros for each particular configuration of ACE is set. A complete description
of the existent macros can be found in the ACE_Wrappers/ace/Readme file.
It would possibly be a good idea to look at the config-files for platforms
with similar characteristics as examples.</DIR>
</DIR>

<UL>
<LI>
<B>Porting the ACE_OS class</B></LI>
</UL>

<DIR>
<DIR>The ACE_OS encapsulates most of the differences between all different
implementations for Unix and Win32. It is the base class of the ACE OS
abstraction layer. Most of the work implied in porting of ACE to a new
environment resides in this class.</DIR>
</DIR>

<UL>
<LI>
<B>Porting the different components of the OS abstraction layer</B></LI>
</UL>

<DIR>
<DIR>The next logical step after porting the ACE_OS class, would be to
port all of the lower level components of the ACE OS abstraction layer
(System V IPC, Unix FIFO, Sockets classes and so on). A full list of the
categories and classes can be found in the ACE_Wrappers/ace/ACE_Categories
file. It is recommended to concentrate the work on one category at the
time, instead of going for the big-bang-port-all-at-once approach. The
ACE distribution comes with several test programs, which resides in the
ACE_Wrappers/ace/tests folder. They can be used to test the different component
s
as they are ported.</DIR>
</DIR>

<UL>
<LI>
<B>Porting the higher level components of ACE</B></LI>
</UL>

<DIR>
<DIR>Having ported (and tested) all the components of the ACE OS abstraction
layer, one can proceed to port the higher components of ACE (Reactor, Service
Configurator, Acceptor and so on). In fact, having reached this far in
the porting, it should be relatively easy to port the rest of ACE, as most
of the platform code tweaking should be localized in the OS abstraction
layer.</DIR>
</DIR>

</BODY>
</HTML>