@@ -59,149 +59,156 @@ <h3 class="Head2">Pre-requisites</h3>
59
59
VM heap size is insufficient for building projects the size of
60
60
ACE/TAO/CIAO. A minimum of 768Mb or more is suggested. This can be
61
61
done on the command line launch of eclipse, or in the
62
- < code > eclipse.ini</ code > file.</ li >
62
+ < em class =" Code " > eclipse.ini</ em > file.</ li >
63
63
64
64
</ ul >
65
65
</ div >
66
66
67
67
< div >
68
68
< h3 class ="Head2 "> Usage</ h3 >
69
- For every < code > project < var > myprojname</ var > { }</ code > in mpc files, the CDT6 project type
69
+ < p class ="Body ">
70
+ For every < em class ="Code "> project < var > myprojname</ var > { }</ em > in mpc files, the CDT6 project type
70
71
generates a corresponding "eclipse project" directory of the form
71
- < samp > cdt_< var > myprojname</ var > </ samp > . The CDT6 Project Type
72
+ < em class =" Code " > cdt_< var > myprojname</ var > </ em > . The CDT6 Project Type
72
73
uses Eclipse's < em > linked resource</ em > feature to work around
73
74
Eclipse's usual requirement that source files reside inside the Eclipse project
74
75
directory. However, the linked resource feature also comes with
75
76
restrictions; see < a href ="#fullpath "> the note</ a > for details.
76
-
77
- < h4 > Generic workflow</ h4 >
77
+ </ p >
78
+ < h4 class ="Head5 "> Generic workflow</ h4 >
79
+ < p class ="Body ">
78
80
Presuming .mpc files already exist:
81
+ </ p >
79
82
< ol >
80
- < li > Generate projects using < samp > -type cdt6</ samp > . </ li >
81
- < li > Import projects into an Eclipse workspace.</ li >
83
+ < li > < p class =" Body " > Generate projects using < em class =" Code " > -type cdt6</ em > . </ p > </ li >
84
+ < li > < p class =" Body " > Import projects into an Eclipse workspace.</ p > </ li >
82
85
</ ol >
83
86
84
- < h4 > Workflow for building ACE/TAO</ h4 >
87
+ < h4 class =" Head5 " > Workflow for building ACE/TAO</ h4 >
85
88
< ol >
86
- < li > Check out a copy of ACE/TAO.</ li >
89
+ < li > < p class =" Body " > Check out a copy of ACE/TAO.</ p > </ li >
87
90
88
- < li > Configure ACE/TAO for your target(s) by setting up
89
- < samp > config.h</ samp > .
91
+ < li > < p class =" Body " > Configure ACE/TAO for your target(s) by setting up
92
+ < em class =" Code " > config.h</ em > . </ p >
90
93
</ li >
91
94
92
- < li > Set up environment variables (< var > ACE_ROOT</ var > ,
95
+ < li > < p class =" Body " > Set up environment variables (< var > ACE_ROOT</ var > ,
93
96
< var > TAO_ROOT</ var > , etc.), < var > PATH</ var > ,
94
- < var > LD_LIBRARY_PATH</ var > (or similar), etc.
97
+ < var > LD_LIBRARY_PATH</ var > (or similar), etc.</ p >
95
98
</ li >
96
99
97
- < li > Verify settings in < samp > global.features</ samp > and, if changes
100
+ < li > < p class =" Body " > Verify settings in < em class =" Code " > global.features</ em > and, if changes
98
101
are necessary, make appropriate changes in
99
- < samp > default.features</ samp > .
102
+ < em class =" Code " > default.features</ em > . </ p >
100
103
</ li >
101
104
102
- < li > Generate projects using < samp > -type cdt6</ samp > insuring the
103
- use of < samp > mwc.pl</ samp > from within ACE, e.g.,
104
- < blockquote > < pre >
105
- $ cd $TAO_ROOT
106
- $ mwc.pl -type cdt6 TAO_ACE.mwc
107
- </ pre > </ blockquote >
108
- < samp > mwc.pl</ samp > will churn for awhile.
105
+ < li > < p class =" Body " > Generate projects using < em class =" Code " > -type cdt6</ em > insuring the
106
+ use of < em class =" Code " > mwc.pl</ em > from within ACE, e.g.,</ p >
107
+ < blockquote >
108
+ < p class =" Code " > $ cd $TAO_ROOT</ p >
109
+ < p class =" Code " > $ mwc.pl -type cdt6 TAO_ACE.mwc</ p >
110
+ </ blockquote >
111
+ < p class =" Body " > < em class =" Code " > mwc.pl</ em > will churn for awhile.</ p >
109
112
</ li >
110
113
111
- < li > < em > Suggestion:</ em > Verify that < strong > Project-> Build
114
+ < li > < p class =" Body " > < em > Suggestion:</ em > Verify that < strong > Project-> Build
112
115
Automatically</ strong > is unchecked (has no checkmark to its
113
116
immediate left). If this is left on, then the build will start as
114
- soon as the import in the next step begins, and it will build everything.</ li >
117
+ soon as the import in the next step begins, and it will build everything.</ p > </ li >
115
118
116
- < li > From within Eclipse (preferably an otherwise-empty workspace) select
117
- < strong > File-> Import...</ strong > and perform the following actions:
119
+ < li > < p class =" Body " > From within Eclipse (preferably an otherwise-empty workspace) select
120
+ < strong > File-> Import...</ strong > and perform the following actions:</ p >
118
121
< ol type ="a ">
119
- < li > Choose < strong > General-> Existing Projects Into
120
- Workspace</ strong > and click < strong > Next</ strong > </ li >
121
- < li > In "Select Root Directory:" text field, enter the full path
122
+ < li > < p class =" Body " > Choose < strong > General-> Existing Projects Into
123
+ Workspace</ strong > and click < strong > Next</ strong > </ p > </ li >
124
+ < li > < p class =" Body " > In "Select Root Directory:" text field, enter the full path
122
125
to the directory < em > above</ em > ACE, TAO, etc. (you can also use
123
126
the "Browse" feature to select the directory from the GUI). For
124
127
example, if you checked everything out into
125
- < samp > /home/joedeveloper/acetao</ samp > and ACE and TAO are in a
128
+ < em class =" Code " > /home/joedeveloper/acetao</ em > and ACE and TAO are in a
126
129
peer layout under that directory, you would enter
127
- < samp > /home/joedeveloper/acetao</ samp > in the text field.
128
- </ li >
129
- < li > Eclipse will scan all the subdirectories looking for existing
130
+ < em class =" Code " > /home/joedeveloper/acetao</ em > in the text field.
131
+ </ p > </ li >
132
+ < li > < p class =" Body " > Eclipse will scan all the subdirectories looking for existing
130
133
projects; this can take a few minutes for something as large as
131
134
TAO or CIAO. < strong > NOTE:</ strong > If you have previously run
132
135
MPC to generate CDT projects with one workspace
133
- (< samp > .mwc</ samp > file) and then ran it later with a different
136
+ (< em class =" Code " > .mwc</ em > file) and then ran it later with a different
134
137
workspace without removing the projects from the first
135
138
generation, Eclipse will still find those projects for import.
136
139
See < a href ="#remove_projects "> the note on removing generated
137
- projects</ a > for information on how to do that.</ li >
140
+ projects</ a > for information on how to do that.</ p > </ li >
138
141
139
- < li > < strong > Be sure that the checkbox next to < em > Copy projects
142
+ < li > < p class =" Body " > < strong > Be sure that the checkbox next to < em > Copy projects
140
143
into workspace</ em > is < em > UN</ em > checked.</ strong > Copying projects into
141
144
the workspace unnecessarily duplicates files, plus we have found
142
145
that Eclipse can get confused with file paths sometimes (though
143
- sometimes it will work).</ li >
146
+ sometimes it will work).</ p > </ li >
144
147
145
- < li > Feel free to use < em > Working Sets</ em > or not. You may also
148
+ < li > < p class =" Body " > Feel free to use < em > Working Sets</ em > or not. You may also
146
149
choose to import a subset of the discovered projects by
147
150
manipulating them in the list, however, experience suggests that
148
151
the list is ignorant of dependency interactions between projects,
149
152
so you must manage that manually (< em > i.e.</ em > , you could import
150
153
a project, but not projects upon which the first depends, and
151
- that first project would then fail to build).</ li >
154
+ that first project would then fail to build).</ p > </ li >
152
155
153
- < li > Click < strong > Finish</ strong > to proceed with the import.</ li >
156
+ < li > < p class =" Body " > Click < strong > Finish</ strong > to proceed with the import.</ p > </ li >
154
157
</ ol >
158
+ < p class ="Body ">
155
159
Eclipse will now start populating the < em > Projects</ em > pane with
156
160
projects. If you didn't uncheck < strong > Build
157
161
Automatically</ strong > , then builds will start. Regardless, the
158
- C++ indexer will run in the background across the source of all projects.</ li >
162
+ C++ indexer will run in the background across the source of all projects.</ p > </ li >
159
163
</ ol >
160
164
161
- < h4 > Building A Project</ h4 >
165
+ < h4 class ="Head5 "> Building A Project</ h4 >
166
+ < p class ="Body ">
162
167
To build a project or set of projects, select the project (or
163
168
projects) in the < em > Project</ em > pane, then select
164
169
< strong > Project-> Build Project</ strong > . Eclipse will evaluate
165
170
< em > ALL</ em > dependencies automatically, though not necessarily
166
171
quickly.
167
- < p >
172
+ </ p >
173
+ < p class ="Body ">
168
174
< em > Hint:</ em > a good choice to get all of ACE/TAO built is to
169
175
choose the < em > Naming Service</ em > project.
170
-
176
+ </ p >
171
177
</ div >
172
178
173
179
< div >
174
180
< h3 class ="Head2 "> Multiple Platforms</ h3 >
181
+ < p class ="Body ">
175
182
Just as a project created within CDT can be set up to support
176
183
multiple platforms, so too can projects generated via MPC. To the
177
184
extent possible, the platforms are represented in generated projects
178
185
in the same way as they are in "native" projects (though there will
179
186
be some differences).
180
-
181
- < h4 > Generating Projects with Multiple Platform Support</ h4 >
182
- < p >
183
- Platforms are named in a list called < samp > platforms</ samp > in the
187
+ </ p >
188
+ < h4 class =" Head5 " > Generating Projects with Multiple Platform Support</ h4 >
189
+ < p class =" Body " >
190
+ Platforms are named in a list called < em class =" Code " > platforms</ em > in the
184
191
CDT6 template (much like other MPC templates). The list defaults to
185
- the platform on which < samp > mwc.pl</ samp > is run. To generate for
192
+ the platform on which < em class =" Code " > mwc.pl</ em > is run. To generate for
186
193
another platforms, or for additional platforms, you must provide
187
- < samp > platforms</ samp > with the list of platforms to generate.
194
+ < em class =" Code " > platforms</ em > with the list of platforms to generate.
188
195
</ p >
189
- < p >
196
+ < p class =" Body " >
190
197
Generate projects using a similar incantation to the default (from
191
- above) using < samp > -type cdt6</ samp > and < samp > -value_template
192
- platform="<platform_list>"</ samp > , insuring the
193
- use of < samp > mwc.pl</ samp > from within ACE, e.g.,
194
- < blockquote > < pre >
195
- $ cd $TAO_ROOT
196
- $ mwc.pl -type cdt6 -value_template platforms="linux cellppu" TAO_ACE.mwc
197
- </ pre > </ blockquote >
198
+ above) using < em class =" Code " > -type cdt6</ em > and < em class =" Code " > -value_template
199
+ platform="<platform_list>"</ em > , insuring the
200
+ use of < em class =" Code " > mwc.pl</ em > from within ACE, e.g.,
201
+ < blockquote >
202
+ < p class =" Code " > $ cd $TAO_ROOT</ p >
203
+ < p class =" Code " > $ mwc.pl -type cdt6 -value_template platforms="linux cellppu" TAO_ACE.mwc</ p >
204
+ </ blockquote >
198
205
</ p >
199
- < p >
206
+ < p class =" Body " >
200
207
Platforms are defined as scopes in < tt > templates/cdt6platforms.mpt</ tt > .
201
208
</ p >
202
209
203
- < h4 > Cross-Compilation</ h4 >
204
- < p >
210
+ < h4 class =" Head5 " > Cross-Compilation</ h4 >
211
+ < p class =" Body " >
205
212
Cross-compilation is handled the same as a platform; the target is
206
213
the platform. If you want to generate for cross-compilation, the
207
214
cross-compiler information must be defined in a scope (typically
@@ -210,77 +217,74 @@ <h4>Cross-Compilation</h4>
210
217
the target, follow < a href ="#addplatform "> the instructions for adding
211
218
a new platform.</ a >
212
219
</ p >
213
- < p >
214
- In the example given above, < samp > cellppu</ samp > is the name of the
220
+ < p class =" Body " >
221
+ In the example given above, < em class =" Code " > cellppu</ em > is the name of the
215
222
platform for cross-compilation.
216
223
</ p >
217
224
218
- < h4 > Adding a New Platform< a name ="addplatform "> </ a > </ h4 >
225
+ < h4 class ="Head5 "> Adding a New Platform< a name ="addplatform "> </ a > </ h4 >
226
+ < p class ="Body ">
219
227
To add a new platform, particularly one for cross-compilation, it's
220
228
probably easiest to start from an existing scope, e.g.,
221
- < samp > cellppu</ samp > . For cross-compilation where the cross-compiler
229
+ < em class =" Code " > cellppu</ em > . For cross-compilation where the cross-compiler
222
230
toolchain is GNU Compiler-based, you will need to provide the names
223
231
of the various executables in the toolchain in the values
224
- < samp > as</ samp > , < samp > ar</ samp > , < samp > cc</ samp > , and
225
- < samp > cxx</ samp > . And, optionally, < samp > ccld</ samp > and/or
226
- < samp > cxxld</ samp > if the linker used for linking C and C++
232
+ < em class =" Code " > as</ em > , < em class =" Code " > ar</ em > , < em class =" Code " > cc</ em > , and
233
+ < em class =" Code " > cxx</ em > . And, optionally, < em class =" Code " > ccld</ em > and/or
234
+ < em class =" Code " > cxxld</ em > if the linker used for linking C and C++
227
235
executables, respectively, is different from the respective
228
236
compiler. CDT expects these to be in the path.
229
-
237
+ </ p >
230
238
</ div >
231
239
< div >
232
240
< h3 class ="Head2 "> Notes</ h3 >
233
241
< ol >
234
- < li >
242
+ < li > < p class =" Body " >
235
243
There is no generated workspace. Eclipse's concept of workspace is
236
244
very different from MPC's, and there is no way to generate a
237
245
workspace. Eclipse's workspace concept doesn't permit sharing
238
246
among machines or developers or even checking a workspace into
239
247
version control.
240
- </ li >
248
+ </ p > </ li >
241
249
242
- < li > The Eclipse "workspace" and MPC project + source must not be in the
250
+ < li > < p class =" Body " > The Eclipse "workspace" and MPC project + source must not be in the
243
251
same directory hierarchy. For example, if you chose to have
244
252
Eclipse store its workspace in
245
- < samp > /home/joedeveloper/workspace</ samp > , you may not put your
253
+ < em class =" Code " > /home/joedeveloper/workspace</ em > , you may not put your
246
254
MPC project+source under that directory. However, putting the
247
- MPC project+source under < samp > /home/joedeveloper/acetao</ samp >
255
+ MPC project+source under < em class =" Code " > /home/joedeveloper/acetao</ em >
248
256
or similar, < em > i.e.</ em > , as a < em > peer</ em > to the workspace
249
257
directory, is fine.
250
- </ li >
258
+ </ p > </ li >
251
259
252
- < li > < a name ="fullpath "> </ a > CDT6 uses Eclipse's < em > linked
260
+ < li > < p class =" Body " > < a name ="fullpath "> </ a > CDT6 uses Eclipse's < em > linked
253
261
resource</ em > feature to work around the usual requirement that
254
262
all source code reside in Eclipse project directories. These
255
263
act similar to Unix symbolic links. While convenient so that a
256
264
developer is not required to conform to Eclipse's directory
257
265
layout, it comes at a price: the target of the link must be
258
266
specified as a full path. The consequence of this restriction is
259
267
that, once the CDT6 projects get generated, the source should
260
- not move in the filesystem.</ li >
268
+ not move in the filesystem.</ p > </ li >
261
269
262
- < li > < a name ="remove_projects "> </ a > MPC's CDT Project Generator
263
- creates directories named < samp > cdt_*</ samp > for projects, similar
270
+ < li > < p class =" Body " > < a name ="remove_projects "> </ a > MPC's CDT Project Generator
271
+ creates directories named < em class =" Code " > cdt_*</ em > for projects, similar
264
272
to how the GNUACE generator generates makefiles of the form
265
- < samp > GNUmakefile.*</ samp > . To remove all CDT projects from a
266
- directory hierarchy, on Linux you can use a command such as:
267
- < pre >
268
- $ find . -name 'cdt_*' -print | xargs rm -rf
269
- </ pre >
273
+ < em class =" Code " > GNUmakefile.*</ em > . To remove all CDT projects from a
274
+ directory hierarchy, on Linux you can use a command such as:</ p >
275
+ < blockquote >
276
+ < p class =" Code " > $ find . -name 'cdt_*' -print | xargs rm -rf</ p >
277
+ </ blockquote >
270
278
</ li >
271
279
272
- < li > Perfect hash generation using the IDL compiler is not
280
+ < li > < p class =" Body " > Perfect hash generation using the IDL compiler is not
273
281
currently working because the IDL compiler cannot find the
274
- < samp > gperf</ samp > executable. This may be a < code > PATH</ code >
282
+ < em class =" Code " > gperf</ em > executable. This may be a < em class =" Code " > PATH</ em >
275
283
issue, "installation" issue, or an mpc file dependency issue. The
276
- IDL compiler works but does not generate perfect hash lookups.</ li >
284
+ IDL compiler works but does not generate perfect hash lookups.</ p > </ li >
277
285
</ ol >
278
286
</ div >
279
287
280
288
</ div >
281
289
282
-
283
- < hr >
284
- < address > </ address >
285
- <!-- hhmts start --> Last modified: Thu Jul 22 11:14:15 CDT 2010 <!-- hhmts end -->
286
290
</ body > </ html >
0 commit comments