[Mono-dev] Cross compiling options explained

Ben Timby btimby at gmail.com
Fri Dec 15 12:24:42 EST 2006

I have not used these specific options of mono, but this is standard 
cross-compile stuff. I have answered your queries inline below.

Barry Bennett wrote:
> Can anyone provide more details on what the cross compiling options 
> for building really mean?
> The --help option for configure provides the following terse 
> responses relating to cross compiler options:
>    --build=BUILD     configure for building on BUILD [guessed]
>    --host=HOST       cross-compile to build programs to run on HOST [BUILD]
>    --target=TARGET   configure for building compilers for TARGET [HOST]
> What are the allowable settings for BUILD, HOST, and TARGET?

BUILD,HOST,TARGET = target, this is an identifier that describes the 
system. Below is a link that came up on google that might help with the 


BUILD is the system type performing the compilation.
HOST is the system which will run the resulting binary.
TARGET is the system for which the compilation tools produce code for. 
Generally same as host.

> What do the bracketed words at the ends of each line mean?

I assume the brackets indicate the defaults for each option.

--build is guessed by default.
--host uses the value of build.
--target uses the value of host.

Thus if you specify nothing, all three are guessed. The target will be 
your local system, and not what is considered a cross-compiled binary 
for a different system than the host.

> Are there any examples of using these options that might help to 
> clarify their meaning?

For example, if I am on an x86 Linux system, and I want to produce a 
binary which will run on a MIPS Linux system, I would do something like 
the following:

--build=i386-linux-gnu --host=mips-elf

Run the config.guess shell script on your system and it will dump your 
current target.

> I have searched for documentation on these options without 
> success.  If they are documented somewhere then can someone please 
> point me to the link.

A bunch of stuff came up in google, when I searched on the following 
keyword sets...

cross compile target
target build host
gnu configure cross

More information about the Mono-devel-list mailing list