Building LibVNCServer-0.6 for m68k-rtems

Ralf Corsepius ralf_corsepius at rtems.org
Wed Aug 18 06:01:45 UTC 2004


On Tue, 2004-08-17 at 19:10, Mark Mussetter wrote:
> I have some questions about building LibVNCServer-0.6 for RTEMS.  I'm not 
> very experienced with makefiles or configure so these questions might be 
> pretty basic.
> 
> Our system:
> target = Motorola Coldfire 5272
> host = Cygwin (running on a Windows XP machine)
> 
> My questions are in regards to the --host, --target, and --build options to 
> configure.
> 
> I would assume that to get LibVNCServer to build a library that I could 
> link in to my RTEMS application, I would need to specify 
> --target=m68k-rtems.

--host=m68k-rtems

>   However, when I do this, configure finds and invokes 
> the standard gcc compiler from my usr/bin directory in the Cygwin tree.
Make sure to have the path to your compiler in $PATH (e.g. PATH=/opt/rtems/bin:$PATH)
and try

configure --host=m68k-rtems

> I have tried all of the combinations of --build, --host, and --target 
> options and it seems that the only way I can get configure to find and use 
> the m68k-rtems compiler to build LibVNCServer is if I specify 
> "--host=m68k-rtems" on the command line to ./configure.
Right.

> It doesn't seem right to me to specify the --host variable.
No, this is correct.

--build ... system you are building on (Normally, automatically guessed,
rarely needed to be specified manually.); e.g. i686-pc-linux-gnu or
i686-pc-cygwin.
--host ... system you are building binaries for (the system they are
supposed to run on), here: m68k-rtems
--target ... system the binaries to build are supposed to generate code
for (Normally only required by cross-tools).

I.e. configure --build=i686-pc-linux-gnu \
--host=i686-pc-cygwin --target=m68-rtems
is supposed to configure a package for building on i686-pc-linux-gnu,
generate binaries to run on i686-pc-cygwin, which produce output for
m68-rtems

[Cross building a cygwin->m68-rtems tool-package on linux]


What might confuse you is binutils, gdb, GCC and RTEMS using a sightly
different convention for their top level configure scripts and the
general recommendation to use "--target=..." for cross-compilation.

Somewhat oversimplifying, this is mostly a historical relic only being
used in toplevel configure scripts of complex packages and a side-effect
of complex defaulting rules being applied to --build, --host, --target.

> Can anyone tell me how I need to set the --host, --build, and --target options?
In general, you need to examine how a package processes them.

In case of simple packages, using one autoconf-2.5x generated configure
script (such as LibVNCserver), it is always --host.

In case of complex packages (Several subpackages, several configure
scripts) things can be different. 
However, internally, autoconf-2.5x-based configure scripts of
subpackages apply the autoconf-2.5x canonicalization rules.
E.g. RTEMS consists of several subpackages, all of them apply
autoconf-2.5x and all of them internally apply "--host=..."

Ralf





More information about the users mailing list