Sign in Join

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

Mailing lists / lazarus / 2000-04

Unit search, why doesn't it stop?

9 messages · 5 people ·

Reply by email Subscribe to this list Your subscription

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

Vincent Snijders
to Marc Weustink: Oops forgot that. I didn't see it becouse I included mwedit in my ppc386.cfg. Try a make…

Marc,

Thanks for thinking with me.

Earlier message 56 lines
----- Original Message ----- From: Marc Weustink > >It is true that I didn't give a path to customgroupbox.inc, but why does > >ppc386 want to recompile the unit stdctrls? It found a IMHO correct and > >usable stdsctrls.ppw. > > Just a guess: It doen't want to compile, it only checks if a recompile is > necesary. It finds stdctrls.pp and wants to check the .inc > If the ppw was in a different dir and stdctrls.pp wasn't found then It > wouldn't be recompiled. > > Thinking of this, I can adjust the makefiles of LCL so that the units go to > a lcl/units dir, so that a make of lazarus alone doesnt require a rebuild > of the lcl..... Well, I just tried that. I move all the *.ppw and the *.ow files to the freshly created lcl\units directory and removed them from the lcl-directory, just to be sure. Then again with the new lcl/units path: E:\pp\source\lazarus\components\mwedit>ppc386 -Fu../../../rtl/win32 -Fu../.. /../lcl/win32 -Fu../../../packages/gtk -Fu../../lcl/units -vt mwkeycmds.pas Unitsearch: stdctrls.ppw Unitsearch: stdctrls.pp Unitsearch: stdctrls.pas Unitsearch: E:\pp\source\rtl\win32\stdctrls.ppw Unitsearch: E:\pp\source\rtl\win32\stdctrls.pp Unitsearch: E:\pp\source\rtl\win32\stdctrls.pas Unitsearch: E:\pp\source\fcl\win32\stdctrls.ppw Unitsearch: E:\pp\source\fcl\win32\stdctrls.pp Unitsearch: E:\pp\source\fcl\win32\stdctrls.pas Unitsearch: E:\pp\source\packages\gtk\stdctrls.ppw Unitsearch: E:\pp\source\packages\gtk\stdctrls.pp Unitsearch: E:\pp\source\packages\gtk\stdctrls.pas Unitsearch: E:\pp\source\lazarus\lcl\units\stdctrls.ppw PPU Loading E:\pp\source\lazarus\lcl\units\stdctrls.ppw Unitsearch: stdctrls.pp Unitsearch: stdctrls.pas Unitsearch: E:\pp\source\rtl\win32\stdctrls.pp Unitsearch: E:\pp\source\rtl\win32\stdctrls.pas Unitsearch: E:\pp\source\fcl\win32\stdctrls.pp Unitsearch: E:\pp\source\fcl\win32\stdctrls.pas Unitsearch: E:\pp\source\packages\gtk\stdctrls.pp Unitsearch: E:\pp\source\packages\gtk\stdctrls.pas Unitsearch: E:\pp\source\lazarus\lcl\units\stdctrls.pp Unitsearch: E:\pp\source\lazarus\lcl\units\stdctrls.pas Unitsearch: e:\pp\bin\win32\stdctrls.pp Unitsearch: e:\pp\bin\win32\stdctrls.pas stdctrls.pp(13,17) Fatal: Can't find unit STDCTRLS And now it can't find the stdctrls unit, but it load the ppw file. It remains a mistery for me. Vincent Snijders.

Reply by email

Florian Klaempfl
to Marc Weustink: Oops forgot that. I didn't see it becouse I included mwedit in my ppc386.cfg. Try a make…
Vincent Snijders wrote 11 lines
> Did you try -vut instead of -vt >gives some more info I did and found the reason for recompiling: Recompiling STDCTRLS, checksum changed for FORMS. 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 :(

Reply by email

Vincent Snijders

Hi,

I am trying to compile lazarus with the new directory structure. In order to do so, I first need to compile mwedit. The makefiles aren't adjusted yet, tried to do it by hand.
I begin with a make clean and a make in the lcl directory. Then I go to the components\mwedit directory and give the following command:

ppc386 -Fu../../../rtl/win32 -Fu../../../fcl/win32 -Fu../../../packages/gtk -Fu../../lcl mwkeycmds.pas
ppc386 answers with:

    stdctrls.pp(437,2) Fatal: Can't open include file customgroupbox.inc

To see what went wrong, added the opion -vt to see which file ppc386 tries to open.
The last lines in the output are:
<snip>
Unitsearch: stdctrls.ppw
Unitsearch: stdctrls.pp
Unitsearch: stdctrls.pas
Unitsearch: E:\pp\source\rtl\win32\stdctrls.ppw
Unitsearch: E:\pp\source\rtl\win32\stdctrls.pp
Unitsearch: E:\pp\source\rtl\win32\stdctrls.pas
Unitsearch: E:\pp\source\fcl\win32\stdctrls.ppw
Unitsearch: E:\pp\source\fcl\win32\stdctrls.pp
Unitsearch: E:\pp\source\fcl\win32\stdctrls.pas
Unitsearch: E:\pp\source\packages\gtk\stdctrls.ppw Unitsearch: E:\pp\source\packages\gtk\stdctrls.pp
Unitsearch: E:\pp\source\packages\gtk\stdctrls.pas Unitsearch: E:\pp\source\lazarus\lcl\stdctrls.ppw
PPU Loading E:\pp\source\lazarus\lcl\stdctrls.ppw
Unitsearch: stdctrls.pp
Unitsearch: stdctrls.pas
Unitsearch: E:\pp\source\rtl\win32\stdctrls.pp
Unitsearch: E:\pp\source\rtl\win32\stdctrls.pas
Unitsearch: E:\pp\source\fcl\win32\stdctrls.pp
Unitsearch: E:\pp\source\fcl\win32\stdctrls.pas
Unitsearch: E:\pp\source\packages\gtk\stdctrls.pp
Unitsearch: E:\pp\source\packages\gtk\stdctrls.pas Unitsearch: E:\pp\source\lazarus\lcl\stdctrls.pp
stdctrls.pp(437,2) Fatal: Can't open include file customgroupbox.inc

It is true that I didn't give a path to customgroupbox.inc, but why does ppc386 want to recompile the unit stdctrls? It found a IMHO correct and usable stdsctrls.ppw.

Any help apreciated,
Vincent Snijders

Reply by email

Marc Weustink
to Marc Weustink: Oops forgot that. I didn't see it becouse I included mwedit in my ppc386.cfg. Try a make…
Vincent Snijders wrote 7 lines
Well, I just tried that. I move all the *.ppw and the *.ow files to the freshly created lcl\units directory and removed them from the lcl-directory, just to be sure. Then again with the new lcl/units path: E:\pp\source\lazarus\components\mwedit>ppc386 -Fu../../../rtl/win32 -Fu../.. /../lcl/win32 -Fu../../../packages/gtk -Fu../../lcl/units -vt mwkeycmds.pas

hmm... it makes no difference but the ../../../lcl/win32 dir shouldnt exist anymore.

[snip searches]

stdctrls.pp(13,17) Fatal: Can't find unit STDCTRLS And now it can't find the stdctrls unit, but it load the ppw file. It remains a mistery for me.

Did you try -vut instead of -vt

gives some more info

Marc

Reply by email

Vincent Snijders
to Marc Weustink: Oops forgot that. I didn't see it becouse I included mwedit in my ppc386.cfg. Try a make…
>Well, I just tried that. I move all the *.ppw and the *.ow files to the >freshly created lcl\units directory and removed them from the

lcl-directory,

Show quoted text 5 lines
>just to be sure. >Then again with the new lcl/units path: > E:\pp\source\lazarus\components\mwedit>ppc386 -Fu../../../rtl/win32 -Fu../.

.

>/../lcl/win32 -Fu../../../packages/gtk -Fu../../lcl/units -vt

mwkeycmds.pas

hmm... it makes no difference but the ../../../lcl/win32 dir shouldnt

exist

anymore.

Where the type came from, I don't know but originally this was a reference to fcl/win32 ...

Did you try -vut instead of -vt gives some more info

I did and found the reason for recompiling:
Recompiling STDCTRLS, checksum changed for FORMS.

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, during the make of lmessages, spin, registry and message.pp. No wonder that the stdctrls unit got out of date, if your dependent units change so rapidly ;-).

At the moment I don't know how to go on and solve this problem, I hope you hav som good ideas.

Regards,
Vincent Snijders.

Reply by email

Marc Weustink
to Florian Klaempfl: So it seems that there is still something wrong with cyclic unit interdependencies :(

+ From: Florian Klaempfl
+
+ 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.

Example:
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.

Marc

Reply by email

Michael Van Canneyt
to Michael A. Hess: This would be a very good idea. In the future we will hopefully be making releases of…
Michael A. Hess wrote 11 lines
Marc Weustink wrote: > > Thinking of this, I can adjust the makefiles of LCL so that the units > go to a lcl/units dir, so that a make of lazarus alone doesnt require > a rebuild of the lcl..... > > Hmmm...... This would be a very good idea. In the future we will hopefully be making releases of Lazarus. We will want them to be in a units directory just as FPC is.

All you need to do is set the
-FU$(LCLDIR)/units
option, or set
unittargetdir=$(LCLDIR)/units
in Makefile.fpc

This assumes that LCLDIR is a variable containing the top-level directory of LCL.

Michael.

Reply by email

Marc Weustink
to Vincent Snijders: I am trying to compile lazarus with the new directory structure. In order to do so, I…
Vincent Snijders wrote 7 lines
Hi, I am trying to compile lazarus with the new directory structure. In order to do so, I first need to compile mwedit. The makefiles aren't adjusted yet, tried to do it by hand. I begin with a make clean and a make in the lcl directory. Then I go to the components\mwedit directory and give the following command:

Oops forgot that. I didn't see it becouse I included mwedit in my ppc386.cfg.

Try a make OPT=-Fu./components/mwedit

It is true that I didn't give a path to customgroupbox.inc, but why does ppc386 want to recompile the unit stdctrls? It found a IMHO correct and usable stdsctrls.ppw.

Just a guess: It doen't want to compile, it only checks if a recompile is necesary. It finds stdctrls.pp and wants to check the .inc If the ppw was in a different dir and stdctrls.pp wasn't found then It wouldn't be recompiled.

Thinking of this, I can adjust the makefiles of LCL so that the units go to a lcl/units dir, so that a make of lazarus alone doesnt require a rebuild of the lcl.....

Hmmm......

Marc

Reply by email

Michael A. Hess
to Marc Weustink
Marc Weustink wrote 6 lines
Thinking of this, I can adjust the makefiles of LCL so that the units go to a lcl/units dir, so that a make of lazarus alone doesnt require a rebuild of the lcl..... Hmmm......

This would be a very good idea. In the future we will hopefully be making releases of Lazarus. We will want them to be in a units directory just as FPC is.

==== Programming my first best destiny! ==== Michael A. Hess Miracle Concepts, Inc. http://www.miraclec.com

Reply by email