<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 17, 2015 at 2:12 PM, Mattias Gaertner <span dir="ltr"><<a href="mailto:nc-gaertnma@netcologne.de" target="_blank">nc-gaertnma@netcologne.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, 17 Mar 2015 10:29:11 -0700<br>
Mehmet Erol Sanliturk <<a href="mailto:m.e.sanliturk@gmail.com">m.e.sanliturk@gmail.com</a>> wrote:<br>
<br>
>[...]<br>
> There is an important problem in Lazarus compilations :<br>
><br>
> Assume some units only include source files in their interface parts having<br>
> record types ( i.e. , there is no any declaration statement within unit<br>
> source and no any entries in their implementation parts ) .<br>
><br>
> Other units include source files containing procedures and use type<br>
> declaration units .<br>
><br>
><br>
> If a modification is performed in one of the procedure sources , Lazarus is<br>
> detecting it and compiling that unit .<br>
><br>
> BUT<br>
><br>
> If a new record element is added to one of the records , it is NOT<br>
> detecting that change and it is using the old compiled .ppu and .o for<br>
> this type definition source file included unit with<br>
> a subsequent error message that the newly added element is NOT defined in<br>
> the respective record .<br>
<br>
That sounds more like a FPC bug than Lazarus. Lazarus only checks file<br>
dates. If a change is in interface or implementation doesn't matter.<br>
Or maybe I misunderstand?<br>
<br>
<br>
> I am using a batch or shell script file to erase all of the .ppu and .o<br>
> files before starting the compilation .<br>
><br>
> Selecting "Build" from Lazarus "Run" menu is starting to build Lazarus<br>
> itself which is NOT possible because Lazarus is owned by the "root" .<br>
<br>
I'm not sure what you mean 'build Lazarus itself' and 'Lazarus is owned<br>
by the "root"'.<br>
Can you give more details?<br>
<br>
<br></blockquote><div><br></div><div>Units supplied by the Lazarus , i.e. , when Lazarus is installed by the "root" , such as <br><br></div><div>/usr/lib64/lazarus/<br></div><div><br></div><div>which its owner is "root" .<br><br></div><div>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 .<br><br><br></div><div>There is a menu item in "Tools" about building the Lazarus itself .<br></div><div><br><br><br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> Using -B option seems that it is NOT effective when there are existing .ppu<br>
> and .o files .<br>
<br>
Do you mean lazbuild -B or fpc -B?<br>
<br>
<br></blockquote><div><br></div><div>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 :<br></div><div>When Lazarus is starting to compile in GUI mode , it is displaying "options changed , ... -B ..."<br></div><div>but it is not taken into consideration the record type changes mentioned above .<br></div><div><br></div><div>I am not using -B option in lazbuild command line statement because I am assuming that .lpi file contains such an option .<br><br></div><div>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 .<br><br></div><div>Actually , in "Make" mode such changes should be detected .<br><br><br></div><div>Deleting .ppu and .o files is causing a compile time more than 17 minutes for me instead of a shorter compilation time .<br></div><div> <br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> Then the only way is to "clean" existing .ppu or .o files in a selected way<br>
> .<br>
><br>
> I do not know why<br>
><br>
> make -s clean<br>
<br>
-s Silent operation; do not print the commands as they are executed.<br>
<br>
<br>
> is used , but implication is that deletion of existing .ppu and .o files<br>
> are required before starting to compilation .<br>
<br>
'make clean' in Lazarus source directory deletes .ppu and .o files of<br>
IDE, lazbuild and bigide components. This is useful, when a source file<br>
was removed from a package.<br>
<br>
Mattias<br>
<br>
--<br>
_______________________________________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lists.lazarus.freepascal.org">Lazarus@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus</a><br>
</blockquote></div><br></div></div>