[Lazarus] suggestion for lazbuild
Mehmet Erol Sanliturk
m.e.sanliturk at gmail.com
Tue Mar 17 22:54:12 CET 2015
On Tue, Mar 17, 2015 at 2:12 PM, Mattias Gaertner <nc-gaertnma at netcologne.de
> On Tue, 17 Mar 2015 10:29:11 -0700
> Mehmet Erol Sanliturk <m.e.sanliturk at gmail.com> wrote:
> > There is an important problem in Lazarus compilations :
> > Assume some units only include source files in their interface parts
> > record types ( i.e. , there is no any declaration statement within unit
> > source and no any entries in their implementation parts ) .
> > Other units include source files containing procedures and use type
> > declaration units .
> > If a modification is performed in one of the procedure sources , Lazarus
> > detecting it and compiling that unit .
> > BUT
> > If a new record element is added to one of the records , it is NOT
> > detecting that change and it is using the old compiled .ppu and .o for
> > this type definition source file included unit with
> > a subsequent error message that the newly added element is NOT defined in
> > the respective record .
> That sounds more like a FPC bug than Lazarus. Lazarus only checks file
> dates. If a change is in interface or implementation doesn't matter.
> Or maybe I misunderstand?
> > I am using a batch or shell script file to erase all of the .ppu and .o
> > files before starting the compilation .
> > Selecting "Build" from Lazarus "Run" menu is starting to build Lazarus
> > itself which is NOT possible because Lazarus is owned by the "root" .
> I'm not sure what you mean 'build Lazarus itself' and 'Lazarus is owned
> by the "root"'.
> Can you give more details?
Units supplied by the Lazarus , i.e. , when Lazarus is installed by the
"root" , such as
which its owner is "root" .
When "Build" is selected from the "Run" menu of Lazarus , it should NOT
include building of units installed by the Lazarus , but units of the user
There is a menu item in "Tools" about building the Lazarus itself .
> > Using -B option seems that it is NOT effective when there are existing
> > and .o files .
> Do you mean lazbuild -B or fpc -B?
In one of the fields of the Lazarus menus , ( I could not find it now ) I
have set -B option to force the compilation in "Build" mode instead of
"Make" mode to make it to recognize record element changes :
When Lazarus is starting to compile in GUI mode , it is displaying "options
changed , ... -B ..."
but it is not taken into consideration the record type changes mentioned
I am not using -B option in lazbuild command line statement because I am
assuming that .lpi file contains such an option .
I am not using fpc directly to compile the programs : Either by Lazarus GUI
or lazbuild through scripts without -B option in the command line with the
assumption that it is specified in .lpi file .
Actually , in "Make" mode such changes should be detected .
Deleting .ppu and .o files is causing a compile time more than 17 minutes
for me instead of a shorter compilation time .
> > Then the only way is to "clean" existing .ppu or .o files in a selected
> > .
> > I do not know why
> > make -s clean
> -s Silent operation; do not print the commands as they are executed.
> > is used , but implication is that deletion of existing .ppu and .o files
> > are required before starting to compilation .
> 'make clean' in Lazarus source directory deletes .ppu and .o files of
> IDE, lazbuild and bigide components. This is useful, when a source file
> was removed from a package.
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Lazarus