Sign in Join

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

Mailing lists / lazarus / 2012-04

Changes of make, part I

16 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

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

Mattias Gaertner

I updated and cleaned up the Makefiles of the Lazarus sources.

"make help"
prints all available targets. There are some more - internal ones - which are not meant for direct use.

"make clean"
now cleans up all bigide components too. It cleans the current widgetset (i.e. LCL_PLATFORM) *and* the nogui widgetset. It does not clean up all ppu files, because that would break installations where someone added his ppu files (e.g. the fpc installation). Therefore it is still recommended to do "make clean" before updating svn.
It keeps the executables, e.g. lazarus.exe,
lazbuild.exe, startlazarus.exe.

"make all"
It does the same as before, but with less overhead. It is still the default target and still builds lazbuild, startlazarus, common tools and the default IDE. It still builds the needed packages as well. For example the LCL for the current widgetset and the nogui widgetset.

"make bigide"
Same as "make all", but it builds an IDE with many extra packages. At the moment about one fourth of all packages. This is the set of packages the Lazarus developers recommend for the binary distributions of Lazarus.

"make lazbuild"
This now builds all that is needed to build lazbuild. You don't need anymore to build "tools" or the LCL before calling it. It is used by "make all" and "make bigide".

The following are now sub targets, that do not work on their own, but are used to build one part. Many require that another sub target was called before:

registration
lazutils
codetools
lcl
tools
ideintf
basecomponents
bigidecomponents
starter
examples

See "make help" for details.

Mattias

Reply by email

Mark Morgan Lloyd
to Mattias Gaertner
Mattias Gaertner wrote 5 lines
I updated and cleaned up the Makefiles of the Lazarus sources. "make help" prints all available targets. There are some more - internal ones - which are not meant for direct use.

Thanks Mattias, good work and an exemplary summary.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Graeme Geldenhuys
to Mattias Gaertner: I updated and cleaned up the Makefiles of the Lazarus sources. "make help" prints all…
Mattias Gaertner wrote
I updated and cleaned up the Makefiles of the Lazarus sources.

Good work. This should help many people. I hope you created a Lazarus Makefile wiki page with this same information.

Regards, ? - Graeme - _______________________________________________ fpGUI - a cross-platform Free Pascal GUI toolkit http://fpgui.sourceforge.net

Reply by email

Richard Mace
to Graeme Geldenhuys

I think I am being a little dumb here....
What command would I need to issue, to stay up-to-date with trunk, building a new IDE (I guess?) and making sure all of my components are up-to-date. Would it be: make clean all lazarus-ide?

Sorry if the question has already been answered, and that I have missed it!

Richard

Graeme Geldenhuys wrote 24 lines
On 10 April 2012 22:25, Mattias Gaertner wrote: > > I updated and cleaned up the Makefiles of the Lazarus sources. Good work. This should help many people. I hope you created a Lazarus Makefile wiki page with this same information. -- Regards, - Graeme - _______________________________________________ fpGUI - a cross-platform Free Pascal GUI toolkit http://fpgui.sourceforge.net -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20120411/c79bd238/attachment.html>

Reply by email

Mattias Gaertner
to Graeme Geldenhuys: Good work. This should help many people. I hope you created a Lazarus Makefile wiki page…
Show quoted text 7 lines
On 10 April 2012 22:25, Mattias Gaertner wrote: > > I updated and cleaned up the Makefiles of the Lazarus sources. Good work. This should help many people. I hope you created a Lazarus Makefile wiki page with this same information.

They were already explained as a chapter of building Lazarus using the command line.
I only updated the text:

http://wiki.lazarus.freepascal.org/Getting_Lazarus#Make_targets

I don't think a separate page is needed.

Mattias

Reply by email

Mattias Gaertner
to Richard Mace: I think I am being a little dumb here.... What command would I need to issue, to stay…
Show quoted text 6 lines
I think I am being a little dumb here.... What command would I need to issue, to stay up-to-date with trunk, building a new IDE (I guess?) and making sure all of my components are up-to-date. Would it be: make clean all lazarus-ide? Sorry if the question has already been answered, and that I have missed it!

A safe way is

make clean
svn up
make clean lazbuild useride

The IDE and lazbuild update your components automatically when needed.

Mattias

Reply by email

Richard Mace
to Mattias Gaertner

On Wed, 11 Apr 2012 11:39:08 +0100

Show quoted text 22 lines
Richard Mace wrote: > I think I am being a little dumb here.... > What command would I need to issue, to stay up-to-date with trunk, building > a new IDE (I guess?) and making sure all of my components are up-to-date. > Would it be: make clean all lazarus-ide? > > Sorry if the question has already been answered, and that I have missed it! A safe way is make clean svn up make clean lazbuild useride The IDE and lazbuild update your components automatically when needed. Mattias

Mattias, thank you. I think I am finally getting my head around it now.

After running make clean lazbuild useride I get the following error:

./lazbuild.exe --build-ide=
primary config path: C:\Users\Richard\AppData\Local\lazarus

$0052EFBD TLAZLOGGER__DEBUGLNSTACK, line 676 of lazloggerbase.pas $0043D08C DUMPSTACK, line 1406 of lclproc.pas
$0040220E TLAZBUILDAPPLICATION__ONIDEQUESTIONDIALOG, line 299 of lazbuild.lp
r
$0051471A TLAZPACKAGEGRAPH__OPENINSTALLEDDEPENDENCY, line 4716 of c:/lazarus
-trunk/packager/packagesystem.pas
$004FF390 LOADLAZARUSBASEPACKAGE, line 1669 of
c:/lazarus-trunk/packager/pac
kagesystem.pas
$004FF255 TLAZPACKAGEGRAPH__LOADSTATICBASEPACKAGES, line 1673 of c:/lazarus-
trunk/packager/packagesystem.pas
$00404AEB TLAZBUILDAPPLICATION__INIT, line 878 of lazbuild.lpr $0040296B TLAZBUILDAPPLICATION__BUILDLAZARUSIDE, line 416 of lazbuild.lpr
$00406E89 TLAZBUILDAPPLICATION__RUN, line 1170 of lazbuild.lpr ERROR: Package file not found
The package "FCL" is installed, but no valid package file (.lpk) was found. A broken dummy package was created.
lazbuild is non interactive, aborting now.
make: *** [useride] Error 2

Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20120411/ae95af13/attachment.html>

Reply by email

Mattias Gaertner
to Richard Mace
Show quoted text 37 lines
On Wed, 11 Apr 2012 11:39:08 +0100 > Richard Mace wrote: > > > I think I am being a little dumb here.... > > What command would I need to issue, to stay up-to-date with trunk, > building > > a new IDE (I guess?) and making sure all of my components are up-to-date. > > Would it be: make clean all lazarus-ide? > > > > Sorry if the question has already been answered, and that I have missed > it! > > A safe way is > > make clean > svn up > make clean lazbuild useride > > > The IDE and lazbuild update your components automatically when needed. > > Mattias > Mattias, thank you. I think I am finally getting my head around it now. After running make clean lazbuild useride I get the following error: ./lazbuild.exe --build-ide= primary config path: C:\Users\Richard\AppData\Local\lazarus [...] ERROR: Package file not found The package "FCL" is installed, but no valid package file (.lpk) was found. A broken dummy package was created. lazbuild is non interactive, aborting now. make: *** [useride] Error 2

It can not find fcl.lpk, which means lazbuild uses the wrong Lazarus directory.
I will improve the error message.

Are you sure you are updating?
Have you ever started the IDE on this machine?

Mattias

Reply by email

Richard Mace
to Mattias Gaertner
Mattias Gaertner wrote 22 lines
> > ./lazbuild.exe --build-ide= > primary config path: C:\Users\Richard\AppData\Local\lazarus > After running make clean lazbuild useride I get the following error: >[...] > ERROR: Package file not found > The package "FCL" is installed, but no valid package file (.lpk) was found. > A broken dummy package was created. > lazbuild is non interactive, aborting now. > make: *** [useride] Error 2 It can not find fcl.lpk, which means lazbuild uses the wrong Lazarus directory. I will improve the error message. Are you sure you are updating? Have you ever started the IDE on this machine? Mattias

Mattias,
I installed 9.30.RC3 in a c:\lazarus directory
Then, did a svn checkout in a new c:\lazarus-trunk directory Then, copied the fpc bin directory from c:\lazarus to c:\lazarus-trunk and put it in the windows path
Then, changed to the c:\lazarus-trunk director and typed the following: make clean
svn up
make lazbuild useride

Does that sound ok?

Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20120411/8fe4c017/attachment.html>

Reply by email

Mattias Gaertner
to Richard Mace
Show quoted text 36 lines
On 11 April 2012 14:55, Mattias Gaertner wrote: > > > > ./lazbuild.exe --build-ide= > > primary config path: C:\Users\Richard\AppData\Local\lazarus > > After running make clean lazbuild useride I get the following error: > >[...] > > ERROR: Package file not found > > The package "FCL" is installed, but no valid package file (.lpk) was > found. > > A broken dummy package was created. > > lazbuild is non interactive, aborting now. > > make: *** [useride] Error 2 > > It can not find fcl.lpk, which means lazbuild uses the > wrong Lazarus directory. > I will improve the error message. > > Are you sure you are updating? > Have you ever started the IDE on this machine? > > > Mattias > Mattias, I installed 9.30.RC3 in a c:\lazarus directory Then, did a svn checkout in a new c:\lazarus-trunk directory Then, copied the fpc bin directory from c:\lazarus to c:\lazarus-trunk and put it in the windows path Then, changed to the c:\lazarus-trunk director and typed the following: make clean svn up make lazbuild useride Does that sound ok?

It should work now.
I changed "make useride" to override the lazarusdir.

Mattias

Reply by email

Richard Mace
to Mattias Gaertner
Mattias Gaertner wrote 18 lines
> Mattias, > I installed 9.30.RC3 in a c:\lazarus directory > Then, did a svn checkout in a new c:\lazarus-trunk directory > Then, copied the fpc bin directory from c:\lazarus to c:\lazarus-trunk and > put it in the windows path > Then, changed to the c:\lazarus-trunk director and typed the following: > make clean > svn up > make lazbuild useride > > Does that sound ok? It should work now. I changed "make useride" to override the lazarusdir. Mattias

Mattias,
It got a "lot" further this time (after I copied the additional components across from the old c:\lazarus\components directory).. Now, I get the following?

Compiling useunitdlg.pas
Compiling findoverloadsdlg.pas
Compiling editorfilemanager.pas
Compiling cleandirdlg.pas
Compiling showdeletingfilesdlg.pas
Compiling compatibilityrestrictions.pas
Compiling restrictionbrowser.pas
Compiling projectwizarddlg.pas
lazarus.pp(73,2) Fatal: Can't open include file "revision.inc" TExternalToolList.Run Exception: C:\lazarus-trunk\ide\lazarus.pp(73,2) Fatal: Ca
n't open include file "revision.inc"
ERROR: tool reported error
make: *** [useride] Error 2

Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20120411/b42e539d/attachment.html>

Reply by email

Mattias Gaertner
to Richard Mace: It got a "lot" further this time (after I copied the additional components across from…
Show quoted text 40 lines
On 11 April 2012 15:45, Mattias Gaertner wrote: > > Mattias, > > I installed 9.30.RC3 in a c:\lazarus directory > > Then, did a svn checkout in a new c:\lazarus-trunk directory > > Then, copied the fpc bin directory from c:\lazarus to c:\lazarus-trunk > and > > put it in the windows path > > Then, changed to the c:\lazarus-trunk director and typed the following: > > make clean > > svn up > > make lazbuild useride > > > > Does that sound ok? > > It should work now. > I changed "make useride" to override the lazarusdir. > > Mattias > Mattias, It got a "lot" further this time (after I copied the additional components across from the old c:\lazarus\components directory).. Now, I get the following? Compiling useunitdlg.pas Compiling findoverloadsdlg.pas Compiling editorfilemanager.pas Compiling cleandirdlg.pas Compiling showdeletingfilesdlg.pas Compiling compatibilityrestrictions.pas Compiling restrictionbrowser.pas Compiling projectwizarddlg.pas lazarus.pp(73,2) Fatal: Can't open include file "revision.inc" TExternalToolList.Run Exception: C:\lazarus-trunk\ide\lazarus.pp(73,2) Fatal: Ca n't open include file "revision.inc" ERROR: tool reported error make: *** [useride] Error 2

The file ide\revision.inc is automatically created by default. Somehow you deactivated the creation.
I changed lazbuild to auto create the revision.inc even if the update is disabled.

Mattias

Reply by email

Richard Mace
to Mattias Gaertner
Mattias Gaertner wrote 12 lines
> Fatal: Ca > n't open include file "revision.inc" > ERROR: tool reported error > make: *** [useride] Error 2 The file ide\revision.inc is automatically created by default. Somehow you deactivated the creation. I changed lazbuild to auto create the revision.inc even if the update is disabled. Mattias

Thanks Mattias,
That's fixed it.

Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20120412/c86ba6ff/attachment.html>

Reply by email

waldo kitty
to Mattias Gaertner
Mattias Gaertner wrote 14 lines
On Wed, 11 Apr 2012 11:50:35 -0400 waldo kitty wrote: > On 4/11/2012 07:00, Mattias Gaertner wrote: >> A safe way is >> >> make clean >> svn up >> make clean lazbuild useride > > is the second "clean" necessary? Yes, to fix human mistakes. Normally not.

OK... i'm sorry to be pedantic about it as we have talked about it before so i was just trying to ensure what i thought was correct was... human mistakes where something got svn'd when it shouldn't have was the only option i could come up with...

thanks!

Reply by email