Re: [Lazarus] Makefile issues

2022-12-01 Thread Mattias Gaertner via lazarus
On Wed, 30 Nov 2022 14:35:24 +0100 (CET)
Michael Van Canneyt via lazarus  wrote:

> Hello,
> 
> The lazarus makefile has some dependency issues.
> 
> make ide:

That's an internal target.
See "make help".

 
>[...]
> Based on the output of "make help", in an attempt to create
> svn2revisioninc I did:
> 
> > make tools  
> make -C tools
> make[1]: Entering directory '/home/michael/projects/lazarus-tst/tools'
> Makefile:2956: warning: overriding recipe for target '.'
> Makefile:2954: warning: ignoring old recipe for target '.'
> make --assume-new=lazres.pp lazres
> make[2]: Entering directory '/home/michael/projects/lazarus-tst/tools'
> Makefile:2956: warning: overriding recipe for target '.'
> Makefile:2954: warning: ignoring old recipe for target '.'
> /usr/local/bin/ppcx64 -gl -Fu.
> -Fu../components/lazutils/lib/x86_64-linux
> -Fu../lcl/units/x86_64-linux -Fu../lcl/units/x86_64-linux/nogui
> -Fu/usr/local/lib/fpc/3.3.1/units/x86_64-linux/rtl -FE. -FU. -Cg
> -Fl/usr/lib/gcc/x86_64-linux-gnu/9 -Flinclude
> -Fl/etc/ld.so.conf.d/*.conf -dx86_64 lazres.pp lazres.pp(43,22)
> Fatal: Can't find unit LazLogger used by LazRes

Sub target "tools" require a compiled nogui lcl.
Just use the main targets.

The makefiles are not supposed to be called in any order. They are
merely a bootstrap to get to lazbuild and/or lazarus.


>[...]
> > make basecomponents  

Same here.

>[...]
> After some more failed attempts trying to compile "sub-targets", I
> gave up.

Good.

 
> Am I correct in my understanding that in fact only the "main" targets
> all, bigide, useride are supposed to work out of the box when you
> start from a fresh checkout ?

Yes.

Mattias
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Makefile issues

2022-12-01 Thread Michael Van Canneyt via lazarus




On Thu, 1 Dec 2022, Mattias Gaertner via lazarus wrote:


On Wed, 30 Nov 2022 14:35:24 +0100 (CET)
Michael Van Canneyt via lazarus  wrote:


Hello,

The lazarus makefile has some dependency issues.

make ide:


That's an internal target.
See "make help".


Am I correct in my understanding that in fact only the "main" targets
all, bigide, useride are supposed to work out of the box when you
start from a fresh checkout ?


Yes.


Well, it turns out that "make useride" also does not work on a fresh
checkout. At least, I could no longer get it to work.

see my comment in
https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/40024

But the point of the 'main targets' is taken, so I filed a feature 
request in the issue tracker to be able to build the LCL using just 
the Makefile.


basically, I would like something as

make lcl

to produce the LCL units.

(it can be another 'main' target name if that is needed, obviously)

Michael.
--
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Makefile issues

2022-12-01 Thread Mattias Gaertner via lazarus
On Thu, 1 Dec 2022 23:22:38 +0100 (CET)
Michael Van Canneyt via lazarus  wrote:

>[...]
> Well, it turns out that "make useride" also does not work on a fresh
> checkout.

It didn't work when Cleaning is enabled. Fixed.


>[...]
> But the point of the 'main targets' is taken, so I filed a feature 
> request in the issue tracker to be able to build the LCL using just 
> the Makefile.
> 
> basically, I would like something as
> 
> make lcl
> 
> to produce the LCL units.

make registration lazutils lcl

The problem is that make is pretty dumb, so it creates only a
rudimentary Makefile.compiled file.
If you use lazbuild or lazarus to compile a project they might decide
to recompile the lcl.
It would be safer to compile lazbuild, and then use that to
compile the lcl.


Mattias
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Makefile issues

2022-12-01 Thread Michael Van Canneyt via lazarus




On Fri, 2 Dec 2022, Mattias Gaertner via lazarus wrote:


On Thu, 1 Dec 2022 23:22:38 +0100 (CET)
Michael Van Canneyt via lazarus  wrote:


[...]
Well, it turns out that "make useride" also does not work on a fresh
checkout.


It didn't work when Cleaning is enabled. Fixed.



[...]
But the point of the 'main targets' is taken, so I filed a feature
request in the issue tracker to be able to build the LCL using just
the Makefile.

basically, I would like something as

make lcl

to produce the LCL units.


make registration lazutils lcl


Slightly better is:

make -J N registration
make -J N lazutils
make -J N lcl

because the order as specified on the command-line is not guaranteed when you 
do parallel compilation.

Still, it feels strange to me that

make lcl

is not enough, but OK.


The problem is that make is pretty dumb, so it creates only a
rudimentary Makefile.compiled file.


Makefile.compiled does not even come into play, see below.


If you use lazbuild or lazarus to compile a project they might decide
to recompile the lcl.


That may not happen, because the sources will not be installed on the build 
machine.


It would be safer to compile lazbuild, and then use that to
compile the lcl.


The projects will be compiled with fpc only in a docker environment.
The devops people don't want another build tool. Only make.
(which is why I wanted to have make install working - but I had to resort to
using find and cp manually)

The goal is to have just fpc, its units and the LCL units in compiled form in 
the docker.

Michael.
--
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus