[Lazarus] Adding packages at build time

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Mon Mar 5 12:08:35 CET 2012

Mattias Gaertner wrote:
> On Mon, 05 Mar 2012 10:26:13 +0000
> Mark Morgan Lloyd <markMLl.lazarus at telemetry.co.uk> wrote:
>> Mattias Gaertner wrote:
>>> On Sun, 4 Mar 2012 15:46:18 +0100
>>> Bernd <prof7bit at googlemail.com> wrote:
>>>> 2012/3/2 Mattias Gaertner <nc-gaertnma at netcologne.de>:
>>>>> Why do you build two times?
>>>>> Why not simply svn up und rebuild the IDE via the IDE?
>>>> I think I know what the problem is, I also wondered what would be the
>>>> best solution for this and found nothing. The problem is the "build
>>>> lazarus" from within Lazarus is using a somehow different way to buil
>>>> it. From the console output it looks like "build lazarus" is *somehow*
>>>> making use of the same makefiles too but it is producing a different
>>>> result when running the same make target from the console.
>>>> I think with "build two times" when doing a fresh install (or after
>>>> fixing a broken unrunnable lazarus) he refers to:
>>>> svn checkout ....  (or svn up -r <known_working> or otherwise fix
>>>> broken things)
>>>> make clean all       <--- this is the first time
>>>> and then from the menu
>>>> ./lazarus
>>>> Tools  -> build lazarus  <-- this is the second time.
>> Sorry, I missed the earlier messages.
>> I've just compiled, and I no longer see a problem. However 
>> until comparatively recently if you got Lazarus using  svn co  (etc.) 
>> and then did a  make bigide  with default settings, the first project 
>> you built also recompiled a whole lot of underlying libraries.
> It recompiles if you added custom options in the Configure build
> Lazarus dialog.

Until recently an IDE built with  make bigide  recompiled at least some 
packages when told to build the first project. This was irrespective of 
whether I was patching in e.g. lazsvnpkg.

> If you have the default settings the 0.9.31 IDE should only recompile
> the IDE and the packages that are not in bigide, aka your additional
> installed packages. If you found a different behavior please report the
> bug.

It's apparently been fixed, but I'll keep an eye on it.

>> Many thanks to whoever fixed this. However once aware of the issue I 
>> didn't consider it to be a particularly big deal, more serious is any 
>> requirement to rebuild the IDE "from inside" since on tight systems this 
>> obviously depletes the resources available for the compiler and- in 
>> particular- linker.
>>>> There should be a make target that does exactly the same as the menu
>>>> item "build lazarus", somehow the highly obscure make-voodoo that is
>>>> performed in the "build lazarus" menu command should also be
>>>> accessible from the console without having any working Lazarus binary.
>>>> I once tried to reverse-engineer what exactly is going on and how and
>>>> why calling the *same* make target would produce different outcomes
>>>> when called from within the IDE and the command line but eventually I
>>>> gave up.
>>> If you want to build the IDE with packages use
>>> lazbuild --build-ide=
>> What do you mean- like
>> lazbuild --build-ide=lazsvnpkg
>> as an alternative to  make all  ? In that case what's the basic package 
>> list corresponding to bigide?
> No.
> There is currently no command line tool to change the list of install
> packages. lazbuild takes the list from the same place as the IDE -
> your config directory.
> The parameter --build-ide takes additional compiler options. Like
> debugger settings, verbosity, checks or defines. To compile an IDE with
> your current list of installed packages use
> lazbuild --build-ide=

OK. So going back to my original query: if I want to add something like 
lazsvnpkg for the initial build I've got to patch it in myself.

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the Lazarus mailing list