I build FPC cross-compilers for Windows, Macintosh and (32 bit) Linux on a Debian Wheezy 64 bit host.
There appears to be a bug in the build process that produces dodgy *crosszipinstall tarballs* for Windows. This applies to FPC 2.6.0, 2.6.2 RC1 and 2.7.1 (today's SVN head). It's completely broken in 2.7.1 so I'll ignore that. Below is the *build script* and the (filtered) *directory layout* of each tarball produced when building 2.6.2 RC 1. *fpc-2.6.2rc1.x86_64-linux.tar.gz* is the native compiler. All the others are all cross-compilers. Both windows compilers have directory structures that are different and seem to be wrong. They do not appear to map where *fpc* expects to find *ppcross386* and * ppcrossx64* compilers (i.e. *lib/fpc/2.6.2*) and instead they are located in *bin/<arch>/*. Further, the tarball cannot simply be unpacked at the installation root (e.g. /usr/local) to have everything put in the correct place. I can manually work around this problem but am I missing something? Is this installation difference intentional? Is there some additional option required when building cross compilers for Windows? Many thanks, Cheers, Bruce.** *Build Script...* # Build Mac OSX 10.6 64 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=x86_64 OS_TARGET=darwin \CROSSBINDIR=/usr/local/opt/cctools/bin \BINUTILSPREFIX=i686-darwin- \OPT="-gl -gw -godwarfsets -XX -CX -Xd -Fl${OSX_SDK_LIB}" # Build Mac OSX 10.6 32 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=i386 OS_TARGET=darwin \CROSSBINDIR=/usr/local/opt/cctools/bin \BINUTILSPREFIX=i686-darwin- \OPT="-gl -gw -godwarfsets -XX -CX -Xd -Fl${OSX_SDK_LIB}" # Build Windows 8 64 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=x86_64 OS_TARGET=win64 \CROSSBINDIR=/usr/local/opt/binutils/bin \BINUTILSPREFIX=i386-mingw- \OPT="-XX -CX" # Build Windows 8 32 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=i386 OS_TARGET=win32 \CROSSBINDIR=/usr/local/opt/binutils/bin \BINUTILSPREFIX=i386-mingw- \OPT="-XX -CX" # Build Linux 32 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=i386 OS_TARGET=linux \CROSSBINDIR=/usr/local/opt/binutils/bin \BINUTILSPREFIX=i386-linux- \OPT="-XX -CX" # Build (native) Linux 64 Bit...make distclean >/dev/nulltime make all zipinstall *Directory Layout...* bruce@beria:~/hg/pascal$ tar tvfz fpc-2.6.2rc1.i386-win32.tar.gz # cross compiler (wrong layout?) drwxr-xr-x bruce/bruce 0 2013-01-07 16:03 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:03 bin/x86_64-linux/ -rwxr-xr-x bruce/bruce 2760664 2013-01-07 16:03 bin/x86_64-linux/ppcross386 drwxr-xr-x bruce/bruce 0 2013-01-07 16:03 units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:03 units/i386-win32/bruce@beria:~/hg/pascal$ tar tvfz fpc-2.6.2rc1.i386-darwin.tar.gz # cross compiler (correct layout) drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/fpc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/fpc/2.6.2/ -rwxr-xr-x bruce/bruce 8376619 2013-01-07 16:00 lib/fpc/2.6.2/ppcross386 drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/fpc/2.6.2/units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/fpc/2.6.2/units/i386-darwin/bruce@beria:~/hg/pascal$ tar tvfz fpc-2.6.2rc1.i386-linux.tar.gz # cross compiler (correct layout) drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/fpc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/fpc/2.6.2/ -rwxr-xr-x bruce/bruce 2760664 2013-01-07 16:04 lib/fpc/2.6.2/ppcross386 drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/fpc/2.6.2/units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/fpc/2.6.2/units/i386-linux/bruce@beria:~/hg/pascal$ tar tvfz fpc-2.6.2rc1.x86_64-win64.tar.gz # cross compiler (wrong layout?) drwxr-xr-x bruce/bruce 0 2013-01-07 16:01 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:01 bin/x86_64-linux/ -rwxr-xr-x bruce/bruce 2471768 2013-01-07 16:01 bin/x86_64-linux/ppcrossx64 drwxr-xr-x bruce/bruce 0 2013-01-07 16:01 units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:01 units/x86_64-win64/bruce@beria:~/hg/pascal$ tar tvfz fpc-2.6.2rc1.x86_64-darwin.tar.gz # cross compiler (correct layout) drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/fpc/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/fpc/2.6.2/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/fpc/2.6.2/units/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/fpc/2.6.2/units/x86_64-darwin/ -rwxr-xr-x bruce/bruce 7773587 2013-01-07 15:58 lib/fpc/2.6.2/ppcrossx64bruce@beria:~/hg/pascal$ tar tvfz fpc-2.6.2rc1.x86_64-linux.tar.gz # native installation (correct layout) drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 bin/ -rwxr-xr-x bruce/bruce 371304 2013-01-07 16:06 bin/fpc drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/units/x86_64-linux/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/ide/ -rwxr-xr-x bruce/bruce 2868120 2013-01-07 16:06 lib/fpc/2.6.2/ppcx64 drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/msg/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/lexyacc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 share/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 share/doc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 share/doc/fpc-2.6.2/bruce@beria:~/hg/pascal$
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal