[fpc-devel]FCL/Packages/Lazarus compilation

Thomas Schatzl tom_at_work at gmx.at
Sun Sep 28 17:24:03 CEST 2003


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





More information about the fpc-devel mailing list