[fpc-pascal] Search path order for fpc.cfg
Michael Van Canneyt
michael at freepascal.org
Sat Apr 11 16:48:15 CEST 2020
On Sat, 11 Apr 2020, fredvs via fpc-pascal wrote:
>> It will create one in your home directory if it detects you do not have
> root access.
>
> Could you explain that?
> Of course if you can show me a trick for configuring a script that will
> install fpc in the home directory (.fpc.cfg), with for example the
> hard-coded directory /home/user/instantfpc, I will use it.
>
> But the condition will be that the user has nothing write, only run a
> script.
The default install.sh used by FPC calls samplecfg to create the config file
for the compiler.
samplecfg is located in compiler/utils.
Line 40 and following contain:
# Detect if we have write permission in sysdir.
if [ -w "$sysdir" ] ; then
echo Write permission in $sysdir.
fpccfgfile="$sysdir"/fpc.cfg
fppkgfile="$sysdir"/fppkg.cfg
defaultfile="$sysdir"/fppkg/default
compilerconfigdir="-d CompilerConfigDir=$sysdir/fppkg"
fppkgconfdir=$sysdir/fppkg/conf.d
else
echo No write premission in $sysdir.
fpccfgfile="$HOME"/.fpc.cfg
fppkgfile="$HOME"/.config/fppkg.cfg
defaultfile="$HOME"/.fppkg/config/default
fppkgconfdir="$HOME"/.fppkg/config/conf.d
fi
So as you can see, when the user does not have write permissions in /etc or
/local/etc, it will write a config file in the user home directory, exactly
where the compiler will pick it up.
So you see, we've covered the situation you are trying to solve.
It has been so for ages, all you need to do is use what is there correctly.
There is no need to change anything.
Michael.
More information about the fpc-pascal
mailing list