gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Once more cross compilation


From: Nicola Pero
Subject: Re: Once more cross compilation
Date: Fri, 23 Jul 2004 11:50:21 +0100 (BST)

> > > What if I compile gnustep-make with HOST=x86, TARGET=arm and try to
> > > crosscompile another package with it. Then I should compile the other
> > > package with HOST=arm. Does this conflict with the usage of this variable
> > > in gnustep-make?
> >
> > (this question is about compiling a crosscompiler using a crosscompiling
> > gnustep-make)
> 
> No it isn't. There was no TARGET involved in the compilation of the other
> package. The question is the same if you crosscompile any package (say
> GNUMail which has no TARGET) with a crosscompiling gnustep-make.

Then I didn't understand the question - apologies.

If you compile gnustep-make with HOST=local-system and TARGET=xxx, and you
want to use the resulting gnustep-make to compile a package which you want
to run on xxx, you just have to type

make target=xxx

when you compile.



> Exactly, (and you see, TARGET is not involved). Now the question is:
> should each package really use different BUILD/HOST/TARGET varibles or can
> gnustep-make be made smart enough to support this in a way to allow
> crosscompiling all packages (including gnustep-make) in the same way (e.g.
> by saving the HOST/TARGET variables when compiling gnustep make and using
> them under different, non-conflicting names internally later)?

I'm not sure I get your question -- HOST/TARGET variables are only used by
gnustep-make -- so let me just explain the thing from scratch and
hopefully that will answer your questions.

--

If you have GNUSTEP_MULTI_PLATFORM set to yes, when you source GNUstep.sh,
the current platform will be detected, and GNUSTEP_HOST_* will be set to
the current platform.

If you do not have GNUSTEP_MULTIE_PLATFORM, when you source GNUstep.sh,
the GNUSTEP_HOST_* which was configured into gnustep-make when it was
configured will be used (this is the default btw).

If you are cross-compiling your package for another platform you have to
have configured and installed gnustep-make with that target (so that
configuration for that target platform is saved into eg
$GNUSTEP_MAKEFILES/ix86/linux/config.make).  You can configure and install
gnustep-make for multiple targets, and install it multiple times to get
support for multiple targets.

Then, to compile for a certain target of the available ones, you just type
'make target=xxx'.  If you don't put a target=xxx, gnustep-make by default
will compile for the local system (that is, for HOST).

If you want to compile a lot of packages for a certain target, just use
'make target=xxx' multiple times.  Or put target=xxx in your shell
environment if you want.

I never seriously tried this stuff, so if someone is interested in it and
can find bugs, please let's fix them :-)

Thanks





reply via email to

[Prev in Thread] Current Thread [Next in Thread]