[Coco] can't build nitros9

Tormod Volden lists.tormod at gmail.com
Fri Aug 8 18:42:14 EDT 2014


On Fri, Aug 8, 2014 at 4:32 AM, Robert Gault wrote:
> Bob Devries wrote:
>>
>> Hi all,
>>
>> I'm trying to build NitrOS9 from the repository. I downloaded (using hg)
>> the
>> lwtools, toolshed and NitrOS9 repositories, and built each one in turn.
>> Lwtools
>> builds fine, and Toolshed does too, but with a number of warnings. NitrOS9
>> doesn't build at all.
>
>><snip>
>
> Bob,
>
> I've only built NitrOS-9 under Windows and can't be sure if what I've found
> will apply to Linux. Still I expect you are having a similar problem.
>
> I had to change most of the makefile(s) because I prefer to compile selected
> directories rather than the complete NitrOS-9 package. If you look at the
> makefile(s), you will find that few of them use the syntax:
> include ../../rules.mak
>
> Almost all of them use the syntax:
> include $(NITROS9DIR)/rules.mak

In 3.3.0 it is 50%, and I intend to get close to 0%. I believe
relative paths are better, no magic variables to set by the user, and
no confusion if you have several nitros9 trees.

>
> Now that will work if you start in the root directory where rules.mak exists
> and that includes:
> ifndef  NITROS9DIR
> NITROS9DIR      = $(HOME)/directory_name
> endif

This is not true any longer. The top level makefile will set
NITROS9DIR to the current directory if it hasn't been set. There are
no references to the home directory or any other absolute paths.

>
> In general, the directory_name will not be convenient for your system and
> won't be of any use unless you start in the root directory. For convenience,
> I've added to all makefile(s) that don't use the first syntax example above:
> ifndef NITROS9DIR
> NITROS9DIR = $(HOME)/directory_name
> endif
> Currently my directory_name is nitros9_330 to distinguish it from previous
> versions.

This shouldn't be necessary or useful in 3.3.0. If you set NITROS9DIR
in your environment you don't have to fiddle with the makefiles.

>
> You may want to try compiling the nitros9/lib directory before compiling any
> other branch. If you don't start in the root directory, make sure to define
> NITROS9DIR in the makefile(s). Make certain the NITROS9DIR matches your
> directory structure.

True.

All in all, the easiest is to not use NITROS9DIR, but to run make from
the top directory. If you only want to build a certain port
(architecture) you can specify it with the PORTS variable, for
example:
 make PORTS=coco3
or
 make PORTS=coco3_6309
or
 make PORTS="coco3 coco3_6309"
(to build both)

Tormod


More information about the Coco mailing list