Sign in Join
Wiki copytemporary

fpcupdeluxe

Deutsch · English · Español · Русский

FPCUPdeluxe is a GUI installer for FPC and Lazarus. It's based on fpcup.

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:

pascal
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.

Prerequisites

Debian, Raspbian, Mint gtk2

actual working with Debian Buster and Raspbian Buster

pascal
#!/bin/bash
    sudo apt-get update
    sudo apt-get upgrade
    
    # Missing Packages
    sudo apt-get install libx11-dev
    sudo apt-get install libgdk-pixbuf2.0-dev
    sudo apt-get install libpango1.0-dev 
    sudo apt-get install libgtk2.0-dev 
    
    # if gdb is not installed (eg. Lubuntu)
    sudo apt-get install gdb
    
    # GIT is the new SVN
    sudo apt-get install git

Debian qt5

pascal
#!/bin/bash
    sudo apt-get update
    sudo apt-get upgrade
    
    # Missing Packages
    sudo apt install libqt5pas-dev 
    
    # GIT is the new SVN
    sudo apt-get install git

See Qt5_Interface#Linux

ALT Linux Sisyphus

Actual working with Alt Linux p11.

pascal
#!/bin/bash
    sudo apt-get update
    sudo apt-get dist-upgrade
    
    # Missing Packages
    sudo apt-get install libX11-devel
    sudo apt-get install libgdk-pixbuf-devel
    sudo apt-get install libpango-devel 
    sudo apt-get install libgtk+2-devel
    
    # gdb 
    sudo apt-get install gdb
    
    # GIT
    sudo apt-get install git

In one line

pascal
#!/bin/bash
    sudo apt-get update && apt-get dist-upgrade
    
    # Missing Packages
    sudo apt-get install libX11-devel libgdk-pixbuf-devel libpango-devel libgtk+2-devel gdb git

For p10, there is no default binutils required for the assembler. So you need to install this package:

pascal
sudo apt-get install binutils

Raspbian on RPi2

You need to extend the swap see Lazarus on Raspberry Pi

Advanced settings

/File:fpcupdeluxe_advanced.png

FPCUPdeluxe advanced settings screen

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

Some examples of advanced settings:

Cross-compiling

FPCUPdeluxe makes cross-compiling easy: activate "cross" UI tab, select a CPU and an OS, and press "Install compiler". 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:

Cross-compiling 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 for FPC

cctools-port for FPC

For macOS, 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. For example, on Windows with Cygwin.

https://upload.wikimedia.org/wikipedia/commons/d/d8/Nuvola_apps_ktip.png Note: 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:

/File:fpcupdeluxe_darwinlibs.JPG

Point fpcupdeluxe towards the library location

/File:fpcupdeluxe_darwinbins.JPG

Point fpcupdeluxe towards the binary tools location

Caveats, observations, troubleshooting

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:

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

For Linux FPC/lazbuild command line work the following shell script can be used (assumes a bash shell and using example install dir of "/home/user/trunk"):

pascal
#!/bin/sh
      # 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

Windows equivalent batch file for setting up environment for working from command line (using example install dir of "f:\trunk"):

pascal
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
      cmd.exe

https://upload.wikimedia.org/wikipedia/commons/d/d8/Nuvola_apps_ktip.png Note: Setting the paths this way is not global and only effects the current terminal shell and child shells.

clang compilation error

On compiling for macOS target on Linux, you can see this error:

pascal
clang: error: invalid version number in '-target arm64-apple-macosx11.0.0'

Usually it happens on old systems, e.g. Ubuntu 20.04. This is fixable.

pascal
user@PC:~$ ls -l /usr/bin/clang*
    lrwxrwxrwx 1 root root        24 ??????  7 22:00 /usr/bin/clang -> ../lib/llvm-12/bin/clang
    lrwxrwxrwx 1 root root        26 ?????? 20  2020 /usr/bin/clang++ -> ../lib/llvm-10/bin/clang++
    lrwxrwxrwx 1 root root        26 ?????? 20  2020 /usr/bin/clang++-10 -> ../lib/llvm-10/bin/clang++
    lrwxrwxrwx 1 root root        24 ?????? 20  2020 /usr/bin/clang-10 -> ../lib/llvm-10/bin/clang
    lrwxrwxrwx 1 root root        26 ??????  8  2022 /usr/bin/clang++-12 -> ../lib/llvm-12/bin/clang++
    lrwxrwxrwx 1 root root        24 ??????  8  2022 /usr/bin/clang-12 -> ../lib/llvm-12/bin/clang
    lrwxrwxrwx 1 root root        28 ?????? 20  2020 /usr/bin/clang-cpp-10 -> ../lib/llvm-10/bin/clang-cpp
    lrwxrwxrwx 1 root root        28 ??????  8  2022 /usr/bin/clang-cpp-12 -> ../lib/llvm-12/bin/clang-cpp

External links


From the Free Pascal wiki, page "fpcupdeluxe", as the Internet Archive kept it on 2025-04-28, last changed on 2024-12-28. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 4, last changed by WikiArchive .

Edited on wiki.freepascal.org by 8 people, 2016–2023

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
DonAlfredoCreated page
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
DonAlfredo
Mai (minor)
Mai
Mai
Mai
Mai
Mai
Mai (minor)
Mai
Mai
Mai (minor)
Mai (minor)
Mathias
DonAlfredo
WayneSherman
TrevFixed template loop; syntax highlighting; replaced HTML markup with wiki markup (minor)
ZoranCaveats, Observations, Troubleshooting
ZoranCaveats, Observations, Troubleshooting
TrevFixed heading levels (minor)
TrevAdded page template; moved categories to page template (minor)
Alextpp
AlextppOverview
Alextppnew screenshot
AlextppAdvanced settings
AlextppOverview
AlextppCrosscompiling
AlextppCrosscompiling
AlextppAdvanced settings
AlextppCaveats, Observations, Troubleshooting
Af0815Installation of FPC and Lazarus: prerequisites Debian, Raspbian
Af0815= Debian, Raspbian, Mint gtk2
Af0815Prerequsites
Af0815Prerequsites: qt5 inserted
Af0815Prerequsites (minor)
Af0815Debian, Raspbian, Mint gtk2: on some platforms gdb is not installed by default
WayneShermanAdd link to Lazarus Forum discussion
AlextppExternal links
Alextppclang compilation error
Alextppclang compilation error
Alextppclang compilation error

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.