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.
