Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: Target Discussion (was [cdt-dev] Next CDT Conference Call)

Thanks, Thomas.  The target model and the managed make build model need to 
be separate but the build model makes use of the target model.  To be 
complete, I will take a stab at formalizing your requirements and publish 
a combined proposal.

The demand for this thing seems to be getting pretty hot.  I will have it 
out by the end of day Wednesday.

Happy Canada Day! (which is Tuesday for our non-Canadian friends)
Doug




Thomas Fletcher <ThomasF@xxxxxxx> 
Sent by: cdt-dev-admin@xxxxxxxxxxx
06/30/2003 04:46 PM
Please respond to
cdt-dev@xxxxxxxxxxx


To
"'cdt-dev@xxxxxxxxxxx'" <cdt-dev@xxxxxxxxxxx>
cc

Subject
Target Discussion (was  [cdt-dev] Next CDT Conference Call)







> -----Original Message-----
> From: Phil Muldoon [mailto:pmuldoon@xxxxxxxxxx]
> Sent: June 30, 2003 3:28 PM
> To: cdt-dev@xxxxxxxxxxx
> Subject: RE: [cdt-dev] Next CDT Conference Call
> 
> 
> In reference to Chris Songer, Anthony Green and Doug's comments on the
> target system (objdump/add2line) can we have a quick round up there -
> and non native toolchain's target support? Doug mentioned something
> along the lines of sketching out a target model there, and not
> overloading the build model. Though this might already be 
> addressed in 
> "Discussion of other framework/features" agenda item

Just as a refresher ... and now that I see that Doug is back =;-)
I'll repost my initial blurb of thoughts on targets.  Not being
fully into the build planning, but fully working with cross hosted
development tools and embedded system targets , I might come at it 
with a different slant.

Thomas

---
Why do we need targets (CDT oriented)

-Build environment integration
 - To avoid confusion, a build target in this context should not be 
confused
with
a make target.
 - Certain tools will have limited/differing capabilities which are only
available for 
certain platforms.  This information is however not necessarily tied to a
specific 
runtime target instance.  That is that there is a one to many mapping of
possible 
build targets to runtime targets.  Build targets will generally contain
information
which is static such as operating system, processor or processor family or
perhaps
even a specific hardware configuration (ie a specific evaluation board or 
an

extensible CPU). 
 - A build target would contribute to the build configuration information.
The
build configuration contains information such as defines, include paths, 
pre
and
post pre-process,compile and link activities.


-Launch integration 
 - The launch configuration is one of the consumers of the build process
results. 
It may require information about the environment so that it can provide 
the
appropriate default configurations based on the selections provided by the
user.
Launch configurations today make use of target specific information to
assist
with binary selection, dependant library selection, runtime environment
variable 
configurations, remote file transmission and remote agent selection.
 - Runtime targets are not always accessible.  That is that the target
configuarion
should be able to provide both live information when it is available and
"off-line"
content when it is not.  Not all target information may be available
however.

What does a target need to do?

- It must be straightforward to configure by users.
- It must be easy to extend with additional environment specific 
attributes.
- It must be persistable and have the ability to be stored under version
control 
- ...
 
Up for discussion:

-Build targets vs Runtime targets?
 Should there be a seperate build target definition which is relatively
static
 and a runtime target configuration which is more dynamic and represents a
specific
 instance of a runtime target (which may or may not be accessible)? Would 
a
single
 target configuration/definition which encompasses all attributes be 
easier
for
 users and developers to understand?

 In the seperated model I would see something along the lines of a
configuration
 system which would be:
 Build Target: <Generally Vendor Supplied/Autoconfigured, extension point>
  - Name: Neutrino MIPS Build    <-- For UI purposes
  - OS: Neutrino      <-- Vendor advertised 
  - Processor: MIPS   <-- Map this to some pseudo standard convention
  - Endian: little
 
 Runtime Target: <Generally user defined/configured>
  - Name: Malta1
  - Build: Neutrino MIPS Build
  - Connection: <Some yet to be defined interface for accessing target>
                <This should be an extension point>

  - Name: Malta2
  - Build: Neutrino MIPS Build
  - Connection: <...>

-What should the model look like, how should it be accessed?
 I feel that adapting the data model which is used by the launch
configuration would
 make the most sense.  In this model there is a "configuration" which 
simply
has a
 number of named attributes associated with it and is capable of being
exported to
 the workspace, but in general is not a visible entity except through the
launch
 configuration dialogs.
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-dev




Back to the top