Sign in Join

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

Mailing lists / lazarus / 2008-12

Rebuild LCL from within IDE on Linux

5 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

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

Bart

Hi,

If I rebuild the LCL (and only the LCL) from within the IDE on Linux (Tools -> Configure Build -> LCL -> Build), then Lazaris says it compiled the LCL fine, but it seems that changes take nof effect. Obviously I'm doing something wrong here, probably its a RTFM question ;-) but I just cannot find the answer.

I'm running Lazarus 0.9.26, installed from rpm on Suse 10.0 (I do not have Lazarus from svn on my Linux).

Any help appreciated.

Bart

Reply by email

Joost van der Sluis
to Bart

Op maandag 29-12-2008 om 23:35 uur [tijdzone +0100], schreef Bart:

Show quoted text 5 lines
Hi, If I rebuild the LCL (and only the LCL) from within the IDE on Linux (Tools -> Configure Build -> LCL -> Build), then Lazaris says it compiled the LCL fine, but it seems that changes take nof effect.

What effect did you expect?

Joost.

Reply by email

Bart
to Joost van der Sluis
What effect did you expect? Joost.

I expected it to work the same as on Win32 (WinME in my case). You patch something in the LCL, rebuild the LCL from within the IDE and voila, the patches you wrote are now working (for better or worse).

I ended up doing a make clean all (as root), which then did what I expected. (I was a bit afraid that that might somehow screw things up ( I'm fairly new to Linux), so I first tried something I experienced to be safe on Win32).

So now I've applied a patch to my LCL on linux and this works. However doing make clean all built a slightly different IDE (some component tabs missing that I normally do not use anyway). What make command should I apply to build the IDE with packages like they come in the binaries (rpm's or win32 executables)?

Bart

Reply by email

Joost van der Sluis
to Bart

Op zondag 04-01-2009 om 23:59 uur [tijdzone +0100], schreef Bart:

Show quoted text 7 lines
> What effect did you expect? > > Joost. I expected it to work the same as on Win32 (WinME in my case). You patch something in the LCL, rebuild the LCL from within the IDE and voila, the patches you wrote are now working (for better or worse).

After all these years I can still be amazed how even it-professionals describe problems. 'I expected it to work the same as on Win32', 'the patches you wrote are now working', 'I expect it to work', 'I did something and now it doesn't work -> fix it'.

'I want to do something, explain me how to'
'Can you explain to me what you want to do exactly?' 'Well, what I always do. I click here and normally it works, now it doesn't. so help me'
'On what do you click?'
'Well, that's what you suppose to tell me! I don't know what to click, you are the expert! All I know is that I click here it doesn't work'

This way this can become a long thread....

So I'll do what is expected from me in this case. Write down a few possibilities. Guess somewhat what you are trying to do. Write an answer on that hypothetical case. Then hope that that fixes your problem, or that you can come up with a somewhat more adequate description of your problem.

Well, if you expect the IDE to behave differently after your patch you have to recompile the IDE and restart. Take care that you start the right (new) executable, although this mostly only goes wrong on windows.

What did you change? Are you sure it is part of the lcl and thus recompiled? Did you check the recompile was succesfull? Maybe you did change something for another widgetset then you are really using? (Maybe it's usefull to tell us what you did change, and what you expect from that change. More then... well, the story above..)

A way to check if your change is really recompiled is to make a syntax error in the code, and recompile. If the compiler doesn't complain, you didn't recompiled the code. ;)

I ended up doing a make clean all (as root), which then did what I expected. (I was a bit afraid that that might somehow screw things up ( I'm fairly new to Linux), so I first tried something I experienced to be safe on Win32).

If you run the ide as root and then do your recompile of the LCL, does that work? If you plan to change the LCL often, you'd better install lazarus in your home-directory and work from there.

But now I know you installed as root: did you check where the recompilation of the LCL placed it's files? And does your project uses this path to search for the LCL?

Show quoted text 5 lines
So now I've applied a patch to my LCL on linux and this works. However doing make clean all built a slightly different IDE (some component tabs missing that I normally do not use anyway). What make command should I apply to build the IDE with packages like they come in the binaries (rpm's or win32 executables)?

You could try 'make bigide' but there's also a command to build the ide with the selected packages. But maybe you'd better run the ide as root and build from there.

Joost.

Reply by email

Bart
to Joost van der Sluis
Joost van der Sluis wrote
After all these years I can still be amazed how even it-professionals describe problems. 'I expected it to work the same as on Win32', 'the patches you wrote are now working', 'I expect it to work', 'I did something and now it doesn't work -> fix it'.

[snip]

This way this can become a long thread....

OK, then I will try to be more clear. (I'm in no way an IT-specialist b.t.w.. I just do basic programming for fun..., and I'm not a native English speaker)

Well, if you expect the IDE to behave differently after your patch you have to recompile the IDE and restart.

On WinMe I did:
Menu -> Tools -> Configure "Build Lazarus" -> click on the "Build LCL" radiobutton -> click on the "Build" button.
Now the LCL is re-built.

From the Messages window: "LCL" completed

If I re-build my program, it now uses the new (hopefully improved) version of LCL, without need to restart the IDE.

Show quoted text 5 lines
What did you change? Are you sure it is part of the lcl and thus recompiled? Did you check the recompile was succesfull? Maybe you did change something for another widgetset then you are really using? (Maybe it's usefull to tell us what you did change, and what you expect from that change. More then... well, the story above..)

I rewrote major parts of maskedit.pp (in lcl directory).

A way to check if your change is really recompiled is to make a syntax error in the code, and recompile. If the compiler doesn't complain, you didn't recompiled the code. ;)

Good one !

If you run the ide as root and then do your recompile of the LCL, does that work? If you plan to change the LCL often, you'd better install lazarus in your home-directory and work from there.

I run the Lazarus IDE on Linux as a normal user.

But now I know you installed as root: did you check where the recompilation of the LCL placed it's files? And does your project uses this path to search for the LCL?

I did not see any other copies of maskedit.pp or maskedit.ppu, but I'll check again.

> What make command should I apply to build the IDE with packages like > they come in the binaries (rpm's or win32 executables)? You could try 'make bigide' but there's also a command to build the ide with the selected packages.

That would be the "Build with packages" option then in the Configure Build Lazarus dialog?

But maybe you'd better run the ide as root and build from there.

This will give me a "Cannot find unit X used Y" errormessage (I'm currently on win, so I cannot reproduce).

Joost.

Thanks for your patience.

Bart

Reply by email