From Free Pascal wiki
Revision as of 17:12, 12 January 2019 by Jma sp (talk | contribs) ()
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search


fpupdeluxe on Windows

Installation of FPC and Lazarus

The main purpose of fpcdeluxe is to provide a means for installing and updating multiple versions of FPC and Lazarus in a self-contained manner. Self-contained meaning that an install by fpcupdeluxe will have no influence on (interference with) your system: Hence you can install multiple versions of FPC and Lazarus.

In order to have the installation working you MUST use the generated link to start the install !

That launcher link contains a line like:

Exec=/P/s/lazarus/lazarus --pcp="/P/s/config_lazarus"

directing Lazarus to use the pcp , i.e. primary configuration setting path of "/P/s/config_lazarus" or a similar subdir under /home/ depending on you choice made from the GUI. No fpc or anything is required in the searchpath.

Configuraciones avanzadas

Fpcupdeluxe advanced settings screen.

The above screenshot (click Setup+ on mainscreen) shows the advanced settings of fpcupdeluxe.

Some examples of advanced settings:

--> for debugging FPC itself, add "-g -gl -O-" into the "FPC options" field.


Fpcupdeluxe makes cross-compiling easy: just select a CPU and an OS, and press install crosscompiler. If libraries and/or binary tools are needed, fpcupdeluxe will try to get them online. Use the link to see what is available at the moment !

Linux 64bit binary toolchains

Linux 32bit binary toolchains

Windows binary toolchains

System libraries

Crosscompiling from Windows and Linux towards Darwin: the hard way

With the help of fpcupdeluxe, NewPascal or FPC trunk, and a toolset called osxcross/cctools-port, you can crosscompile towards Darwin. This help will concentrate on manually setting up crossing from Windows/Linux towards Darwin (fpcupdeluxe can also do all the auto-magic for you for crossing towards Darwin; see above)

First, you will need to get osxcross/cctools-port, and compile it yourself.

osxcross original
osxcross for FPC

cctools-port original
cctools-port for FPC

For Mac OSX, you will need the osxcross for FPC that has been adapted for use by FPC.

For iOS/iPhone, you will need the cctools-port for FPC that has been adapted for use by FPC.

Get yourself a SDK, either from your own Mac, or from online sources: Various Mac SDK's

SDKs for iPhone can also be obtained from online sources: Various iPhone SDK's

Build osxcross/cctools-port according to the instructions. E.g. on Windows with Cygwin.

Please note: to be able to cross from Windows towards Darwin, you need to have NewPascal or FPC trunk installed !

Use fpcupdeluxe to install NewPascal or FPC trunk.

Before building the cross-compiler, you need to inform fpcupdeluxe where to find the Darwin libs (SDK) and the binary tools (build by osxcross/cctools-port). The two screenshot below show how to proceed:

Choose a CPU-type and an OS (Darwin). Select custom. You should now be able to use the buttons and point fpcupdeluxe to the right locations.

Point fpcupdeluxe towards the library location
Point fpcupdeluxe towards the binary tools location

Now, on the mainscreen, you can select your CPU and OS (Darwin) and build the cross-compiler !

Again, fpcupdeluxe also has pre-build tools for crossing towards Darwin: using the fpcupdeluxe-auto-magic will be the easiest !!!

Caveats, Observations, Troubleshooting

  • It was observed, that f. often times works on first run on an empty install dir, but subsequents runs, i.e. in order to add controls to the pallette, add the .chm help system asf., often times fail. In case of failure to recompile / make the IDE, the Lazarus binary may be gone, so unless you made a file backup earlier, you cannot start Lazarus anymore.
  • copy and save the logfile for reference / troubleshoot.
  • adding the help system is easy: just tag it under "advanced settings", saving some manual labour.
  • it takes about 10 minutes to make a full new install of fpc + Laz.
  • try out new --pcp settings to get a feeling for it, you can always delete the config and start anew (save the pristine fresh content of the --pcp dir right after install).

Launching an installed Lazarus and fpc instance

For launching the Lazarus GUI, a script is created (in the users home directory) and a launcher (on the desktop) which opens Lazarus with the correct config path & environment. Example, on Linux if installing to a folder named "/home/user/trunk", fpcupdeluxe creates:

 /home/user/Desktop/Lazarus_trunk.desktop (launcher)
 /home/user/Lazarus_trunk  (shell script)

For Linux FPC/lazbuild command line funciona el siguiente shell script, por lo que se puede usar (se asmume bash shell):

 # fpcupdeluxe: FPC home startlink script
 export PATH="/home/user/trunk/fpc/bin/x86_64-linux:/home/user/trunk/lazarus:${PATH}"
 export PPC_CONFIG_PATH="/home/user/trunk/fpc/bin/x86_64-linux"
 exec /bin/bash
 (using example install dir of  "/home/user/trunk")

Windows equivalent batch file for setting up environment for working from command line:

 REM fpcupdeluxe: FPC home startlink script
 SET PATH=F:\trunk\fpc\bin\x86_64-win64;F:\trunk\lazarus;%PATH%
 SET PPC_CONFIG_PATH=F:\trunk\fpc\bin\x86_64-win64
 (using example install dir of "f:\trunk")

Nota: Estableciendo los trayectos de esta manera no es global y solamente afecta la configuración del shell activo actual en el terminal y sus shell hijos.

External links

see in depth guide for BUILD / MAKE: Build FAQ

Fpcup by Reinier

Fpcupdeluxe source

Latest release