<html><head></head><body style="zoom: 0%;"><div dir="auto">A simple way to get lazarus compiled from source:<br></div>
<div dir="auto">1. Install the right fpc via packages;<br></div>
<div dir="auto">2. Compile lazarus from source via makefile<br><br></div>
<div dir="auto">Salvatore<br><br><br></div>
<div dir="auto"><!-- tmjah_g_1299s -->Ottieni <!-- tmjah_g_1299e --><a href="https://bluemail.me"><!-- tmjah_g_1299s -->BlueMail per Android<!-- tmjah_g_1299e --></a><!-- tmjah_g_1299s --> <!-- tmjah_g_1299e --></div>
<div class="gmail_quote" >Il giorno 7 Dic 2023, alle ore 11:50, Mattias Gaertner via lazarus <<a href="mailto:lazarus@lists.lazarus-ide.org" target="_blank">lazarus@lists.lazarus-ide.org</a>> ha scritto:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="blue"><br><br>On 07.12.23 11:22, Bo Berglund via lazarus wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">[...]<br> Also looked at the /usr/bin dir and it is owned by root so no chance of<br> installing as a user there...<br></blockquote><br>Yes, see<br><a href="https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard">https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard</a><br><br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> I thought that perhaps when running apt without sudo it would change install<br> path to something inside the $HOME location, but apparently not...<br></blockquote><br>You can extract a debian package anywhere, but you can install it only <br>as root to fixed folders.<br><br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"> So how does this work?<br></blockquote><br> Lazarus tests before compiling a package if the output directory is<br> writable and if not redirects to a sub directory of its config directory.<br> This is a feature of the IDE and lazbuild.<br> The makefiles do not support this, so a "make" fails.<br></blockquote> <br> So to rebuild Lazarus from the command line I should use lazbuild, right?<br> What arguments are needed for lazbuild?<br><br> I looked here: <a href="https://wiki.lazarus.freepascal.org/lazbuild">https://wiki.lazarus.freepascal.org/lazbuild</a><br> <br> So will this be sufficient:<br> <br> lazbuild --build-ide="Normal IDE" --pcp="$HOME/.lazarus_2.2.6"<br> --compiler=$HOME/bin/ppcarm<br></blockquote><br>Seeing all your experiments I don't know if it is sufficient for you. It <br>sounds right.<br>Although if you don't want to use the defaults, then I recommend to <br>*not* install Lazarus from apt, but simply download the git, create a <br>lazarus.cfg and "make clean all".<br><br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> ...<br> If I use sudo apt install lazarus, will that also pull fpc as a dependency<br></blockquote><br>Yes.<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> or<br> should I use:<br> <br>   sudo apt install fpc lazarus<br> <br> instead?<br> And what about the lazarus sources, are they pulled in as well with the sudo apt<br> install lazarus command?<br></blockquote><br>Yes.<br><br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">[...]<br> I have been building Fpc/Lazarus from sources since many years, also tested<br> fpcupdeluxe a few times. So getting/using the sources is known.<br> <br> I usually download the tarballs with a release tag from gitlab using wget.<br> After I have built fpc and symlinked into $HOME/bin I build Lazarus like this:<br> <br> cd $HOME/devtools/lazarus/2.2.6/<br> make clean PP=$HOME/bin/ppcarm && make bigide PP=$HOME/bin/ppcarm<br></blockquote><br>Shorter:<br>make clean bigide PP=$HOME/bin/ppcarm<br><br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">[...] > New fpc?<br> Being able to upgrade fpc on the side without disruption of Lazarus is also an<br> issue for me, is there some setting/config within the pcp directory that I can<br> change to point Lazarus to a new fpc compiler and it will then be possible to<br> rebuild Lazarus with that new compiler?<br></blockquote><br>For compiling your project set the compiler in Project Options. Use <br>build modes for multiple platforms.<br>For compiling the IDE with different fpc versions, install the fpc <br>sources in paths that only differ in version number, so you can use the <br>IDE macro $(FPCVer). Then you can easily switch the used fpc in Tools / <br>Options / Env / Files.<br><br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> And what about day-to-day project compiles if I want to use the new compiler?<br> Is it as simple as changing the symlink of $HOME/bin/ppcarm to point to the new<br> compiler? It would affect all user installs utilizing the ppcarm compiler.<br></blockquote><br>Using build modes sounds easier.<br><br>Mattias</pre></blockquote></div></body></html>