[fpc-devel] OS/2- make: Entering an unknown directory

Tomas Hajny XHajT03 at mbox.vol.cz
Sat Mar 29 15:47:51 CET 2008


On Sat, March 29, 2008 09:39, Dave Parsons wrote:


Hi Dave,

> I've just updated from SVN and rebuilt the compiler again.
> The problem I reported last time appears to be fixed now,
> thanks.
> 'Free Pascal Compiler version 2.3.1 [2008/03/29] for i386'
>
> However, the problem I mentioned last time, but forgot to
> detail (sorry), is still there.
>
> It seems to be a configuration problem but I'm not sure
> where so I'll just post the last few lines from the log.

It's a problem in makefiles. Unfortunately, several makefiles got broken
for OS/2 platform during recent restructuring of the packages. There are
two problems there:

1) Packages were transformed to a uniform structure, i.e. all packages
directories have the same subdirectories now (which is obviously good).
However, insufficient attention was paid to changing references to
previously existing directories which were renamed to something else now.
This is specifically the case with packages only compiled on targets not
used by many FPC core developers (like OS/2 only used by me out of the
core team). This is the issue you encountered here - original subdirectory
called "test" (under "rexx") was renamed to "examples", but Makefile.fpc
and Makefile weren't adapted. This is quite easy to fix, it's just
happening at several places.

2) While changing the structure, some of the dependencies were changed in
order to simplify them. Unfortunately, some assumptions made during this
simplification are not valid under OS/2. Fixing this is more complicated
for two reasons. First, one only finds it one after another (i.e. after
you encounter it, you try make again, it fails on another spot, etc.), so
it takes more time. Second, sometimes it isn't that easy to find working
rules in Makefile without reverting everything to the previous structure.
An example of this is package "gtk1" which now assumes dependency on
opengl whereas opengl package is not available for OS/2 at the moment (I
guess that it would be possible to adapt it to OS/2 too, possibly using
the IBM OpenGL implementation, but nobody has done that so far). In any
case, this dependency on opengl is only valid for unit gtkglarea residing
in standalone subdirectory gtkgl. Previously, this subdirectory had its
own Makefile, so it was simply built only for targets fulfilling all
prerequisites. As of now, the dependencies are the same for the whole
directory gtk1 and I'm afraid that there's no way for making the
dependency only valid for some targets and not others (it isn't a problem
to skip building gtkglarea on certain targets, but that is not enough
here). I'm afraid that I'll have to disable building gtk1 units under OS/2
altogether (alternatively, I could make a new standalone package from
gtkglarea, but I'm not sure if this solution is appreciated by others).

Tomas





More information about the fpc-devel mailing list