Sign in Join

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

Mailing lists / fpc-devel / 2003-09

FCL/Packages/Lazarus compilation

2 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

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

Thomas Schatzl

Hi,

the other day I tried to compile the Lazarus IDE by myselves starting from scratch, eg. just with the things supplied with the baselinux snapshot. So I grabbed the lazarus, fcl, packages and rtl sources from cvs and started compilation.

The rtl, fcl and packages sources are from today (2003-09-28), the lazarus sources are a bit older (but that does not matter imo).

Target is Linux, the 1.0.10 snapshot compiler is from 2003/09/26.

Since I knew that Lazarus requires the FCL, I started by changing to the FCL directory and entered a 'make install' followed by pressing return. Well, quite soon it errored out with

...
Compiling inc/zstream.pp
zstream.pp(38,3) Fatal: Can't find unit PASZLIB
make: *** [zstream.ppu] Error 1

So I thought it would be appropriate to compile the packages first... I changed to the packages directory and typed 'make install', and here we go:

Something is wrong with dependencies:

ckware-linux/3.2.2 -Fl/usr/local/lib -Fl/usr/X11R6/lib -Fl/usr/i386-slackwa nux/lib -Fl/opt/kde/lib -di386 glx.pp
Free Pascal Compiler version 1.0.10 [2003/09/26] for i386 Copyright (c) 1993-2003 by Florian Klaempfl
Target OS: Linux for i386
Compiling glx.pp
glx.pp(41,12) Fatal: Can't find unit XLIB
make[2]: *** [glx.ppu] Error 1
make[2]: Leaving directory `/root/fpc/src/rtl/packages/extra/opengl' make[1]: *** [opengl_install] Error 2
make[1]: Leaving directory `/root/fpc/src/rtl/packages/extra' make: *** [extra_install] Error 2

E.g. the opengl units require the x11 units but since they are not compiled yet so 'make' errors out.

----------------------------------
Next problem:

nux/lib -Fl/opt/kde/lib -di386 png.pp
Free Pascal Compiler version 1.0.10 [2003/09/26] for i386 Copyright (c) 1993-2003 by Florian Klaempfl
Target OS: Linux for i386
Compiling png.pp
png.pp(13,6) Fatal: Can't find unit ZLIB
make[2]: *** [png.ppu] Error 1
make[2]: Leaving directory `/root/fpc/src/rtl/packages/extra/libpng' make[1]: *** [libpng_install] Error 2
make[1]: Leaving directory `/root/fpc/src/rtl/packages/extra' make: *** [extra_install] Error 2

The same story here: libpng requires zlib, but isn't compiled yet.

-------------------------------------

Retrying 'make install' after manual installation of the extra/zlib package still does not lead to further compilation because ginstall doesn't copy the .o file for the zlib package when doing a "make install" in the packages/extra/zlib directory (only the ppu-file). Manually copying zlib.o into units/linux/zlib solves this problem though.

-----------------------------------------------

nux/lib -Fl/opt/kde/lib -di386 fpglib.pp
Free Pascal Compiler version 1.0.10 [2003/09/26] for i386 Copyright (c) 1993-2003 by Florian Klaempfl
Target OS: Linux for i386
Compiling fpglib.pp
fpglib.pp(6,13) Fatal: Can't find unit CLASSES
make[2]: *** [fpglib.ppu] Error 1
make[2]: Leaving directory `/root/fpc/src/rtl/packages/extra/fpgtk' make[1]: *** [fpgtk_install] Error 2
make[1]: Leaving directory `/root/fpc/src/rtl/packages/extra' make: *** [extra_install] Error 2

Circular reference: fpgtk requires the FCL while the FCL requires some packages to compile (different ones though, if you already installed the packages up to this point the FCL does compile).
Anyway, this is imo not nice. ^^

--------------------------------------
Now I'm going back to 'make install' the FCL because otherwise I can't continue
compiling the packages. After that the packages compile fine too. ----------------------------------------------------

Some other observations:

packages/extra/unixutil - ginstall only copies the .ppu file (no .rst and .o)
packages/extra/fpgtk - ginstall only copies the .ppu files

----------------------------------------------------

A subsequent compile of the lazarus project showed that tons of FCL-units are not installed correctly during the 'make install'. (E.g. 152 *.o, *.ppu, *.rst files in the fcl/linux directory vs. 122 in the units/fcl directory).
In particular custapp (.o and .rst file missing), process (.o file missing), pipes (.o missing) which are required for the Lazarus build.

Regards,
Thomas

Reply by email

Peter Vreman
to Thomas Schatzl
Show quoted text 5 lines
Hi, Circular reference: fpgtk requires the FCL while the FCL requires some packages to compile (different ones though, if you already installed the packages up to this point the FCL does compile). Anyway, this is imo not nice. ^^

There are 2 sub directories under packages: base and extra The packages in base are needed by the FCL and don't depent on the FCL. The packages in extra can depedent on the FCL.

The order to build everything can also be seen in the top level Makefile.fpc:

rtl
packages/base
fcl
packages/extra

Reply by email