And you are doing a pure Win64 build?
Yes.
(from FPC FPCBUILD repository, or a release I assume?)
From the FPC build binaries. But to be clear a normal FPC 3.2.2 and Lazarus 3.4 git checkout.
I don't get this. Force an exe extension on what? The generated lazarus for a windows build? That sounds normal to me.
As I wrote the original (otherwise working) FPC setup uses a script named fpc.bat that can be found by providing a path to to that file. I can launch FPC using fpc because of the existing .bat mime definition (another way is to use cmd extension or add a custom mime type).
- If I do not provide FPC=xxx then the lazarus makefile does not find the bat file (to be expected, nothing unexpected there).
- If I provide FPC=C:\scripts\fpc to lazarus make then it searches for fpc.exe
- If I provide FPC=C:\scripts\fpc.bat to lazarus make then it searches for fpc.bat.exe
To illustrate further, if I use the direct location of the fpc or ppc compiler than there is no (working) fpc.cfg file (environment variables setup in the script). Thus building lazarus fails because it can't find the fpc units. Trying to circumvent that by providing the unit directories causes an issue because lazarus searches for the menus unit and find that in the freevision package and tries to recompile that because providing unit directory at the lazarus make file as fpc opt override (put in front) the Lazarus unit directories.
I worked around that by creating a temporary custom fpc.cfg file that fed that to the lazarus makefile as OPT=
It could be an artifact of the makefile generator always generating it. Anyway, my knowledge runs out as said in the previous message. I never installed lazarus on Windows or linux, and am not 100% sure what it is meant to do.
In basics it copies the files of the build to another location but with that allows to setup a fair amount of custom directories for certain files. That way one is able to make a consistent setup at another location. Very convenient in case you cross build for different platforms or wish to create different versions in a single session.
It is also used by (cross)zipinstall ibn order to create an archived version of the build.
But I never did Lazarus release packaging, don't know what steps are needed for that.
Well release packaging is something completely different, at least for windows. The release uses a special installer (inno) that puts everything into a single executable. To make it clear, that is not what I am attempting to accomplish. And for a release build I (sh/w)ould have used FPCBuild instead.
My humble goal is to have the compiled parts out of the build directory, something that works as intended on Linux and is fairly common for makefiles to do when issuing a make install.
As said, I do not mind if that is not the intention of the makefile (for a particular target or otherwise) but it would have been far more practical to either not list the install option or issue a simple echo that it ain't supported instead of some half baked attempt at doing something that it isn't able to do (as it simply waste everyone's time)