[fpc-pascal] Suggested fix for problem make install trunk FPC: trailing backslash in directory specification

Reinier Olislagers reinierolislagers at gmail.com
Tue Aug 9 11:12:13 CEST 2011


Just tried updating FPC sources and compiling (32 bit) on Windows Vista
x64 and got an error and a solution.

=======================================================================
Summary: I get an error when I do something like:
make.exe install INSTALL_PREFIX=C:\Development\Fpc\
"PP=C:\Development\Fpc\bin\i386-win32\fpc.exe"
but when I leave out the trailing backslash in the INSTALL_PREFIX:
make.exe install INSTALL_PREFIX=C:\Development\Fpc
"PP=C:\Development\Fpc\bin\i386-win32\fpc.exe"
it works.
=======================================================================
Would it be possible to adapt fpmake to accept a directory with a
trailing directory separator? Or is the issue in make or somewhere else?
It seems more natural to me to specify a directory with such as
separator at the end.

I had a look at the FreePascal Programmer's manual, Appendix E Using
FPCMake (same as fpmake?); it describes the directories, and gives
examples without trailing separators, but does not say anything about
them being forbidden...

Thanks,
Reinier
=======================================================================
Details:
On recent SVN trunk 18151 (using LazUpdater/git though; git commit
71614930203ea050198f).
Got an error on make install:
"C:\lazarus\fpc\2.5.1\bin\i386-win32\make.exe" install
INSTALL_PREFIX=C:\Development\Fpc\
"PP=C:\Development\Fpc\bin\i386-win32\fpc.exe"
..... a lot of activity....
C:/lazarus/fpc/2.5.1/bin/i386-win32/make.exe -C fcl-base distinstall
make.exe[4]: Entering directory
`C:/Development/Fpc/Source/packages/fcl-base'
C:/Development/Fpc/Source/compiler/ppc386.exe fpmake.pp -n
-FuC:/Development/Fpc/Source/rtl/units/i386-win32
-FuC:/Development/Fpc/Source/packages/hash/units/i386-win32
-FuC:/Development/Fpc/Source/packages/paszlib/units/i386-win32
-FuC:/Development/Fpc/Source/packages/fcl-process/units/i386-win32
-FuC:/Development/Fpc/Source/packages/fpmkunit/units/i386-win32
.\fpmake.exe install --localunitdir=../.. --globalunitdir=.. --os=win32
--cpu=i386 -o -Ur -o -Xs -o -O2 -o -n -o
-FuC:/Development/Fpc/Source/rtl/units/i386-win32 -o
-FuC:/Development/Fpc/Source/packages/hash/units/i386-win32 -o
-FuC:/Development/Fpc/Source/packages/paszlib/units/i386-win32 -o
-FuC:/Development/Fpc/Source/packages/fcl-process/units/i386-win32 -o
-FuC:/Development/Fpc/Source/packages/fpmkunit/units/i386-win32 -o -FE.
-o -FUunits/i386-win32 -o -di386 -o -dRELEASE
--compiler=C:/Development/Fpc/Source/compiler/ppc386.exe
--prefix=C:\Development\Fpc\
--unitinstalldir=C:\Development\Fpc\/units/i386-win32/fcl-base -ie
The installer encountered the following error:
Failed to create directory "C:\Development\Fpc \bin\"
make.exe[4]: *** [distinstall] Error 1
make.exe[4]: Leaving directory `C:/Development/Fpc/Source/packages/fcl-base'

So it seems there's an error with fpmake trying to create
c:\development\fpc \bin\ which should probably be c:\development\fpc\bin

Tried to do it again:
cd /d c:\development\fpc
make clean
del /s *.ppu
del /s *.o
=> fpmake.o is deleted
"C:\lazarus\fpc\2.5.1\bin\i386-win32\make.exe" install
INSTALL_PREFIX=C:\Development\Fpc\
"PP=C:\Development\Fpc\bin\i386-win32\fpc.exe"
I still get the same error, but when I remove the trailing \ from the
INSTALL_PREFIX directory and specify
"C:\lazarus\fpc\2.5.1\bin\i386-win32\make.exe" install
INSTALL_PREFIX=C:\Development\Fpc
"PP=C:\Development\Fpc\bin\i386-win32\fpc.exe"
... it works.



More information about the fpc-pascal mailing list