"ext Rodrigo Vivi" <[EMAIL PROTECTED]> writes:
> Another thing that is necessary to say is that OpenEmbedded and
> scratchbox can coexist. OE is a great buildsystem to build the
> distribution itself (avoiding monkey work) and scratchbox is a great
> cross-compile environment that is very useful to make faster the
> compilation in a SDK like maemo.
Let me show my ignorance by digging into this a bit deeper.
My understanding is that OpenEmbedded is a concrete set of software
components that come with detailed instructions for BitBake to
cross-compile them for a number of host architectures[1].
Thus, the BitBake recipes for OpenEmbedded components make sure that
these components can be cleanly cross-compiled.
Scratchbox, on the other hand, 'fakes' a complete emulated environment
for the host architecture and the usual autotooled software components
can be compiled natively in that environment.
Thus, Scratchbox saves you the need to make your software cleanly
cross-compilable.[2]
These two approches don't conflict, of course. But what is the point
of using Scratchbox if all your components are also contained in
OpenEmbedded? In other words, if your software is cross-compilable,
why use Scratchbox?
[ There might be components that are not cross-compilable, such as 3rd
party applications that are not part of OpenEmbedded. We shouldn't
tolerate these kinds of components, I'd say, since their existence
will just increase the chaos.
]
And, if your software is cross-compilable, why use BitBake? Isn't
dpkg-buildpackage good enough for us? The Emdebian project is going
that direction, I think, and it's a good direction.[3]
I would expect BitBake to support more host configurations in an
easier way than dpkg-buildpackage (for example, changing a compiler
flag and recompiling the whole thing), but we don't want to go there,
I'd say. There should be one architecture (in the Debian sense) that
runs on as much hardware platforms as possible.
I don't want to compile separately for the 770 and the N800, or for
McCaslin and Menlow, the same way I don't compile separately for Intel
and AMD. In that sense, OpenEmbedded is too close to Gentoo for my
taste. :)
[1] I think cross-compiling terminology goes like this, at least in
the GNU project:
`--build=BUILD-TYPE'
the type of system on which the package is being configured and
compiled. It defaults to the result of running `config.guess'.
`--host=HOST-TYPE'
the type of system on which the package will run. By default it
is the same as the build machine. Specifying it enables the
cross-compilation mode.
`--target=TARGET-TYPE'
the type of system for which any compiler tools in the package will
produce code (rarely needed). By default, it is the same as host.
[2] I think it's close to a miracle that this actually works well
enough in practice.
[3] If anything, they are too careful by forking all the packaging
(emdebian/ versus debian/). Debian prides itself for supporting
dozens of architectures, surely making cross-compile-cleanliness
an important target will not be rejected?
_______________________________________________
maemo-developers mailing list
[email protected]
https://lists.maemo.org/mailman/listinfo/maemo-developers