On Tue, Mar 17, 2015 at 2:12 PM, Mattias Gaertner <nc-gaert...@netcologne.de > wrote:
> On Tue, 17 Mar 2015 10:29:11 -0700 > Mehmet Erol Sanliturk <m.e.sanlit...@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@lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus >
-- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus