[lazarus] Unit search, why doesn't it stop?

Marc Weustink Marc.Weustink at cuperus.nl
Fri Apr 7 04:59:54 EDT 2000

+ From: Florian Klaempfl [mailto:Florian.Klaempfl at gmx.de]
+ Vincent Snijders wrote:
+ >

+ > I tried to find a reason for this, and took a closer look
+ > to the make process of the lcl. When I do a make in the
+ > lcl directory ppc386 compiles (makes) the units vclglobals,
+ > lmessages, spin, registry clipbrd and messages. During
+ > this proces the forms unit is compiled four (4) times,
+ So it seems that there is still something wrong with cyclic
+ unit interdependencies :(

Nope. It is IMO the somewhat braindead way we use (fpc)make to create our
units. We are telling the compiler which units to compile, while IMO the
compiler knows the best in which order we should do it.

In our Makefile.fpc we have units=A B C
A.pp uses B.pp and B.pp uses C.pp

What happens:
Make tells the compiler to build A  --> B and C are compiled as well.
Make tells the compiler to build B  --> C is compiled as well.
Make tells the compiler to build C

Now we have an invalid unit A and an invalid unit B.

After a lot of puzzeling I know why I didn't use the makefiles anymore....
They don't work. Normally building lazarus includig LCL (ppc386 lazarus)
takes about 15 seconds. Using make to make only LCL took enough time to make
coffee and drink my first mug.

Seen this, I decided to review our makefiles and create a complete new set.
Didn't finish it yesterday so I'll complete them tonight.


More information about the Lazarus mailing list