[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
> wrote:

> 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
> having
> > 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
> is
> > 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

/usr/lib64/lazarus/

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
program .


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
> .ppu
> > 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
above .

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
> way
> > .
> >
> > 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.
>
> Mattias
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20150317/ab78e636/attachment-0003.html>


More information about the Lazarus mailing list