Op 24-03-19 om 23:21 schreef Bart:
Extract from fpc.cfg from 3.0.4 (created by offcial installer)
# searchpath for units and other system dependent things
-FuC:\devel\fpc\3.0.4/units/$fpctarget
-FuC:\devel\fpc\3.0.4/units/$fpctarget/*
-FuC:\devel\fpc\3.0.4/units/$fpctarget/rtl
Extract from fpc.cfg from fpc trunk: created with fpcmkcfg.exe (from trunk)
# searchpath for units and other system dependent things
-Fu/units/$fpctarget
-Fu/units/$fpctarget/*
-Fu/units/$fpctarget/rtl
You have to give fpcmkcfg some parameters. The installer does that (or,
on unices, samplecfg does this for you.)
fpcmkcfg is just a simple template-processor, with a few templates build
in. For example, you can see the template for fpc.cfg when you run
fpcmkcfg as follows: 'fpcmkcfg -0 -b'
It contains the following part:
# searchpath for units and other system dependent things
-Fu%basepath%/units/$fpctarget
-Fu%basepath%/units/$fpctarget/*
-Fu%basepath%/units/$fpctarget/rtl
To create a working fpc.cfg, you have to provide the %basepath% on the
command-line. (There are a few build-in macro's, you can see them using
'fpcmkcfg -m')
So in your case the command to generate fpc.cfg would be:
fpcmkcfg -0 -d basepath=C:\devel\fpc\3.3.1
Or, what I would do, to be able to support multiple versions with the
same fpc.cfg:
fpcmkcfg -0 -d basepath=C:\devel\fpc\$fpcversion
Notice all paths are relative (to what?)
How does fpc know that, in relation to fpc.exe this must be translated to:
..\..\units\$fpctarget ?
No, that won't work. (At least, it is not how it is designed, might
work, though. Never tested)
Q1: How come? Why does it find C:\pp\units\i386-win32\fcl-db\db.ppu now?
Q2: why did the installer from 3.0.4 use fully qualified paths and
fpcmkcfg does not?
I think that these questions are answered now?
Second problem:
Is this supposed to happen?
C:\pp\bin\i386-win32>dir fpc.cfg
...
24-03-2019 00:31 7.572 fpc.cfg
C:\pp\bin\i386-win32>fpcmkcfg -o fpc.cfg
Saved old "fpc.cfg" to "fpc.bak"
Error: Directory of file "fpc.cfg" does not exists. User -p to force creation.
C:\pp\bin\i386-win32>dir fpc.cfg
...
Directory of C:\pp\bin\i386-win32
File Not Found
It just killed my fpc.cfg!
(Yes there is a backup)
This works however:
fpcmkcfg -o .\fpc.cfg
I would say that fpc.cfg as commandline parameter should point to the
same file as .\fpc.cfg (as it would do in almost any other program).
Q3: is this a bug or "by design"?
ERhm... I can not think of any design that makes this logical. I'm not
the one who builds and maintains the windows installers, though. So it's
a bug, I would say.
Regards,
Joost.
--
http://lazarussupport.com - Your donation helps to push Free Pascal and
Lazarus forwards.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel