Recent

Author Topic: First steps with fpclazup  (Read 1840 times)

piola

  • Full Member
  • ***
  • Posts: 147
  • Lazarus 2.2, 64bit on Windows 8.1 x64
First steps with fpclazup
« on: December 29, 2023, 12:38:29 pm »
Dear all,

as Lazarus is evolving much more rapidly than FPC itself, I am trying to create an automated updater for the combination "Lazarus stable + FPC trunk". I'm using fpclazup for this purpose and have some questions about the tool:

1. Am I correct that using fpclazup-x86_64-win64.exe results in a native 64-bit Lazarus and a native 64-bit FPC compiler whereas fpclazup-i386-win32.exe results in native 32-bit builds?

2. In the past, the recommendation was to use 32-bit Lazarus+FPC on Windows and cross-compile to 64-bit if necessary. Is this still true? I'm asking because I have seen that FPC-trunk now has support for 80-bit float emulation and I'd prefer having a native 64-bit installation and cross-compiling to 32-bit if necessary.

3. I want to have native 64-bit Lazarus+FPC (win64) with cross-compiler to 32-bit (win32) and msdos. Does this require 3 calls to fpclazup (with 3 different ini-sections) or can it be configured into a single call?

4. Is there any documentation about the toolchain the Lazarus team uses to create their official releases? I'd like to keep as close as possible to the official releases and only replace the FPC 3.2.2 with FPC trunk.

Thanks for helping me.

CharlyTango

  • Jr. Member
  • **
  • Posts: 90
Re: First steps with fpclazup
« Reply #1 on: January 02, 2024, 12:07:17 pm »
As far as i know, fplazup is kind of outdated.

DonAlfredo, the current maintainer writes the following on his page

Preliminary remark !
====================
Consider using fpcupdeluxe. Its a GUI installer/updater fully based on fpc(laz)up.
Easy to use. With the most important options available.
See : https://github.com/newpascal/fpcupdeluxe
Wiki : http://wiki.freepascal.org/fpcupdeluxe


using fpcupdeluxe will cover all your wishes including official and old releases, trunk releases, crosscompiling and different operating systems as well as lot of other features

« Last Edit: January 02, 2024, 12:26:21 pm by CharlyTango »
Lazarus stable, Win32/64

TRon

  • Hero Member
  • *****
  • Posts: 3623
Re: First steps with fpclazup
« Reply #2 on: January 02, 2024, 03:20:18 pm »
As far as i know, fplazup is kind of outdated.
Luckily for us you are mistaken  ;)

If you look closely to fpcupdeluxe repository you should be able to locate fpcup.lpr.

It is that Don combined the two projects into one source-repository as many of the code is shared anyway. The "older" fpcup repo exist to (still) distribute (only) fpcup

Code: [Select]
./fpclazup-x86_64-linux
Fpclazup, a FPC/Lazarus downloader/updater/installer
Original by BigChimp: https://bitbucket.org/reiniero/fpcup
This version: https://github.com/LongDirtyAnimAlf/Reiniero-fpcup

Fpclazup will download the FPC and Lazarus sources
from the source SVN repositories, and compile, and install.
Result: you get a fresh, up-to-date Lazarus/FPC installation.

Version: based on commit fpcup489 (20231225)
Build date: 2023/12/27 08:46:09
Compiled for CPU: x86_64 on linux
Note the build date and commit number and date.
This tagline is powered by AI (AI advertisement: Free Pascal the only programming language that matters)

TRon

  • Hero Member
  • *****
  • Posts: 3623
Re: First steps with fpclazup
« Reply #3 on: January 02, 2024, 04:05:44 pm »
1. Am I correct that using fpclazup-x86_64-win64.exe results in a native 64-bit Lazarus and a native 64-bit FPC compiler whereas fpclazup-i386-win32.exe results in native 32-bit builds?
Yes.

Quote
2. In the past, the recommendation was to use 32-bit Lazarus+FPC on Windows and cross-compile to 64-bit if necessary. Is this still true? I'm asking because I have seen that FPC-trunk now has support for 80-bit float emulation and I'd prefer having a native 64-bit installation and cross-compiling to 32-bit if necessary.
Don't  know and was unable to verify for you on short notice.

Quote
3. I want to have native 64-bit Lazarus+FPC (win64) with cross-compiler to 32-bit (win32) and msdos. Does this require 3 calls to fpclazup (with 3 different ini-sections) or can it be configured into a single call?
afaik that would require 3 calls. You can skip the init sections if you use the commandline options, unless you have such a specific setup that it requires to use a inifile.

Quote
4. Is there any documentation about the toolchain the Lazarus team uses to create their official releases? I'd like to keep as close as possible to the official releases and only replace the FPC 3.2.2 with FPC trunk.
The only toolchain that Lazarus uses is make and FPC. Ergo it depends on the toolchain (binutils) used by FPC. Unless you have a specific reason (other than mentioned) you should not have to worry about that at all. fpcup will use it's own toolchain (based on what FPC requires) in case it is missing from your installation.

Your setup is pretty common (except for the msdos target) and is used by others so you should not have to worry too much about the details (again, unless you really need/want to).

If you are concerned about the nitty gritty details then consider building everything manually from source though fpcup(deluxe) does that in an automated way for you as that is the reason for its existence.

PS: a word of warning because it seems that fpcup does not contain a gitlab trunk entry (neither 3.3.1) for FPC and switching over using the zipfile instead failed for me (Makefile not found though it is actually present).
« Last Edit: January 02, 2024, 04:19:45 pm by TRon »
This tagline is powered by AI (AI advertisement: Free Pascal the only programming language that matters)

PascalDragon

  • Hero Member
  • *****
  • Posts: 5755
  • Compiler Developer
Re: First steps with fpclazup
« Reply #4 on: January 02, 2024, 11:21:21 pm »
2. In the past, the recommendation was to use 32-bit Lazarus+FPC on Windows and cross-compile to 64-bit if necessary. Is this still true? I'm asking because I have seen that FPC-trunk now has support for 80-bit float emulation and I'd prefer having a native 64-bit installation and cross-compiling to 32-bit if necessary.

Cross compilation from x86_64-win64 to any x86 based target is not supported yet. So you need a native i386 compiler, though you can simply put it into the same bin directory where ppcx64 resides, but just name it ppc386. fpc -Px86_64 and fpc -Pi386 (or the Lazarus project options) then allow for correct selection of the target.

 

TinyPortal © 2005-2018