Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2008-03

OS/2- make: Entering an unknown directory

5 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Dave Parsons

Hi,

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.

Cheers,
Dave

make[4]: Leaving directory `F:/fpc/fpcbuild/fpcsrc/packages/fpgtk' make -C rexx clean make[4]: Entering directory `F:/fpc/fpcbuild/fpcsrc/packages/rexx' F:/EMX/BIN/rm.exe -f units/os2/rexxsaa.ppu F:/EMX/BIN/rm.exe -f fpcmade.os2 Package.fpc ppas.cmd script.res link.res F:/EMX/BIN/rm.exe -f *.s *_ppas.cmd make -C test clean make: Entering an unknown directory make: *** test: No such file or directory. Stop. make: Leaving an unknown directory make[4]: *** [test_clean] Error 2 make[4]: Leaving directory `F:/fpc/fpcbuild/fpcsrc/packages/rexx' make[3]: *** [rexx_clean] Error 2 make[3]: Leaving directory `F:/fpc/fpcbuild/fpcsrc/packages' make[2]: *** [packages_clean] Error 2 make[2]: Leaving directory `F:/fpc/fpcbuild/fpcsrc' make[1]: *** [build-stamp.i386-os2] Error 2 make[1]: Leaving directory `F:/fpc/fpcbuild/fpcsrc' make: *** [fpcsrc/build-stamp.i386-os2] Error 2

Reply by email

Tomas Hajny
to Dave Parsons

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

Hi Dave,

Show quoted text 10 lines
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

Reply by email

Jonas Maebe
to Tomas Hajny
Tomas Hajny wrote
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

You can specify separate dependencies for a particular targets in Makefile.fpc, search e.g. for fcl-db_all in packages/Makefile.fpc

Jonas

Reply by email

Tomas Hajny
to Jonas Maebe
Jonas Maebe wrote 8 lines
On 29 Mar 2008, at 15:47, Tomas Hajny wrote: > 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 You can specify separate dependencies for a particular targets in Makefile.fpc, search e.g. for fcl-db_all in packages/Makefile.fpc

If I understand you correctly, you refer to dependencies listed in the rules part of packages/Makefile.fpc (where the dependency of gtk1 on opengl is listed too, but it's conditional there). However, if you look at packages/gtk1/Makefile.fpc, you can see the reference to opengl in section [require]. This one is the the real issue for me and I'm not sure if your recommendation can solve that.

Tomas

Reply by email

Jonas Maebe
to Tomas Hajny
Tomas Hajny wrote 19 lines
On Sat, March 29, 2008 16:05, Jonas Maebe wrote: > > On 29 Mar 2008, at 15:47, Tomas Hajny wrote: >> 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 > > You can specify separate dependencies for a particular targets in > Makefile.fpc, search e.g. for fcl-db_all in packages/Makefile.fpc If I understand you correctly, you refer to dependencies listed in the rules part of packages/Makefile.fpc (where the dependency of gtk1 on opengl is listed too, but it's conditional there). However, if you look at packages/gtk1/Makefile.fpc, you can see the reference to opengl in section [require]. This one is the the real issue for me and I'm not sure if your recommendation can solve that.

The only effect of [require] sections is that -Fu/path/to/required/ dependency/units/$fpctarget is added when compiling. So those sections don't really matter (as long as you disable the compilation of gtkglarea for OS/2).

Jonas

Reply by email