Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2011-08

Compiling only LCL to 64-bit, on Windows

28 messages · 10 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Marcos Douglas

Hi,
How I can compile only only the LCL to 64-bit?
I do not want to compile the IDE (lazarus binary). Just the LCL could be compiled to create directories \x86_64-win64 on Windows.

Marcos Douglas

Reply by email

Marcos Douglas
to Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho wrote
Set your project architecture to x86-64 and compile your project. If it uses the LCL, then the LCL will automatically be recompiled.

Well, this is not so easy.
My Lazarus was compiled to 32-bit. The packages, 32-bit. The PATHs, 32-bit. I tought make all LCL 64-bit and write a BAT script to compile the program. To change all paths in Lazaurs is very boring and I might forget something.

I did not want to use cross-compilation to does not add complexity, but I don't know...

I only want to have:
1. FPC and Lazarus works in 32-bit default;
2. Possibility to compile to 64-bit using an OS 64-bit, with script or
something more simple;
3. Only one source to update;
4. A script to compile FPC to 32-bit and 64-bit (that I did and works);
5. A script to compile LCL to  64-bit after I that updated the sources.

Marcos Douglas

Reply by email

Vincent Snijders
to Marcos Douglas

2011/8/24 Marcos Douglas :

Show quoted text 6 lines
On Wed, Aug 24, 2011 at 3:59 AM, Felipe Monteiro de Carvalho wrote: > Set your project architecture to x86-64 and compile your project. If > it uses the LCL, then the LCL will automatically be recompiled. Well, this is not so easy.

Why not?

My Lazarus was compiled to 32-bit. The packages, 32-bit. The PATHs, 32-bit. I tought make all LCL 64-bit and write a BAT script to compile the program. To change all paths in Lazaurs is very boring and I might forget something.
I did not want to use cross-compilation to does not add complexity,

What you want, one source, one installation, two targets is complex.

but I don't know...

You are not cross compiling if your ppcx64 is not a cross compiler but a native 64 bits application.

Show quoted text 8 lines
I only want to have: 1. FPC and Lazarus works in 32-bit default; 2. Possibility to compile to 64-bit using an OS 64-bit, with script or something more simple; 3. Only one source to update; 4. A script to compile FPC to 32-bit and 64-bit (that I did and works); 5. A script to compile LCL to ?64-bit after I that updated the sources.

What happens if you leave out step 5,
* if you create a console application without using the LCL?
* if you create a GUI application with the LCL?

Vincent

Reply by email

Marcos Douglas
to Vincent Snijders
Vincent Snijders wrote 20 lines
2011/8/24 Marcos Douglas : > On Wed, Aug 24, 2011 at 3:59 AM, Felipe Monteiro de Carvalho > wrote: >> Set your project architecture to x86-64 and compile your project. If >> it uses the LCL, then the LCL will automatically be recompiled. > > Well, this is not so easy. Why not? > My Lazarus was compiled to 32-bit. The packages, 32-bit. The PATHs, 32-bit. > I tought make all LCL 64-bit and write a BAT script to compile the > program. To change all paths in Lazaurs is very boring and I might > forget something. > > I did not want to use cross-compilation to does not add complexity, What you want, one source, one installation, two targets is complex.

So, what is the best way to use Win 32 and 64-bit, in my case?

> but I don't know... You are not cross compiling if your ppcx64 is not a cross compiler but a native 64 bits application.

I compiled my FPC in 64-bit native. Is this not correct?

Show quoted text 11 lines
> I only want to have: > 1. FPC and Lazarus works in 32-bit default; > 2. Possibility to compile to 64-bit using an OS 64-bit, with script or > something more simple; > 3. Only one source to update; > 4. A script to compile FPC to 32-bit and 64-bit (that I did and works); > 5. A script to compile LCL to ?64-bit after I that updated the sources. What happens if you leave out step 5, * if you create a console application without using the LCL? * if you create a GUI application with the LCL?
I can compile a console app  without using the LCL and;
The default GUI app, in my env, is win32.

I think didn't understand what did you mean, sorry.

Marcos Douglas

Reply by email

Andreas Schneider
to Marcos Douglas
Marcos Douglas wrote
So, what is the best way to use Win 32 and 64-bit, in my case?

I would suggest: don't go the most complicated route ever ;-) It's really dead simple to get cross compilation with Windows as target to run. In your case I would suggest the lowest common denominator: the 32bit compiler. So build from/for 32bit and add the 64bit cross compiler there:

I assume the official FPC 2.4.4 release for 32bit to be installed under C:\FPC\2.4.4.

set PATH=C:\FPC\2.4.4\bin\i386-win32;%PATH%
cd C:\FPC\2.5.1
svn co http://svn.freepascal.org/svn/fpc/trunk src cd src
make install INSTALL_PREFIX=C:\FPC\2.5.1
make crossinstall INSTALL_PREFIX=C:\FPC\2.5.1 OS_TARGET=win64 CPU_TARGET=x86_64 make clean

Done. Now you set the compiler (in Lazarus) to C:\FPC\2.5.1\bin\i386-win32\fpc.exe and switch the target architecture/OS in the project options depending on your needs - the 32bit fpc.exe will then either invoke the 32bit ppcx86.exe to compile for 32bit, or the 32bit ppccrossx86_86.exe to compile for 64bit.

Best Regards, Andreas

Reply by email

Sven Barth
to Andreas Schneider
Andreas Schneider wrote 21 lines
At Wednesday, 24.08.2011 on 15:06 Marcos Douglas wrote: > > So, what is the best way to use Win 32 and 64-bit, in my case? > I would suggest: don't go the most complicated route ever ;-) It's really dead simple to get cross compilation with Windows as target to run. In your case I would suggest the lowest common denominator: the 32bit compiler. So build from/for 32bit and add the 64bit cross compiler there: I assume the official FPC 2.4.4 release for 32bit to be installed under C:\FPC\2.4.4. set PATH=C:\FPC\2.4.4\bin\i386-win32;%PATH% cd C:\FPC\2.5.1 svn co http://svn.freepascal.org/svn/fpc/trunk src cd src make install INSTALL_PREFIX=C:\FPC\2.5.1 make crossinstall INSTALL_PREFIX=C:\FPC\2.5.1 OS_TARGET=win64 CPU_TARGET=x86_64 make clean Done. Now you set the compiler (in Lazarus) to C:\FPC\2.5.1\bin\i386-win32\fpc.exe and switch the target architecture/OS in the project options depending on your needs - the 32bit fpc.exe will then either invoke the 32bit ppcx86.exe to compile for 32bit, or the 32bit ppccrossx86_86.exe to compile for 64bit.

One small addition to your solution:
copy C:\FPC\2.4.4\bin\i386-win32\fpc.cfg C:\FPC\2.5.1\bin\i386-win32\ <Edit the copied fpc.cfg and replace all "2.4.4" with "2.5.1">

Regards,
Sven

Reply by email

Marcos Douglas
to Andreas Schneider: I would suggest: don't go the most complicated route ever ;-) It's really dead simple to…
Andreas Schneider wrote 21 lines
At Wednesday, 24.08.2011 on 15:06 Marcos Douglas wrote: > > So, what is the best way to use Win 32 and 64-bit, in my case? > I would suggest: don't go the most complicated route ever ;-) It's really dead simple to get cross compilation with Windows as target to run. In your case I would suggest the lowest common denominator: the 32bit compiler. So build from/for 32bit and add the 64bit cross compiler there: I assume the official FPC 2.4.4 release for 32bit to be installed under C:\FPC\2.4.4. set PATH=C:\FPC\2.4.4\bin\i386-win32;%PATH% cd C:\FPC\2.5.1 svn co http://svn.freepascal.org/svn/fpc/trunk src cd src make install INSTALL_PREFIX=C:\FPC\2.5.1 make crossinstall INSTALL_PREFIX=C:\FPC\2.5.1 OS_TARGET=win64 CPU_TARGET=x86_64 make clean Done. Now you set the compiler (in Lazarus) to C:\FPC\2.5.1\bin\i386-win32\fpc.exe and switch the target architecture/OS in the project options depending on your needs - the 32bit fpc.exe will then either invoke the 32bit ppcx86.exe to compile for 32bit, or the 32bit ppccrossx86_86.exe to compile for 64bit.

Well, I thought that cross-compile would add complexity, but I will try.

But and Lazarus?
It still continue 32-bit, right? What about the LCL, I do not have compile Lazarus for create the ppu for 64-bit and to create the x86_64-win64 directories?

Marcos Douglas

Reply by email

Marcos Douglas
to Sven Barth: One small addition to your solution: copy C:\FPC\2.4.4\bin\i386-win32\fpc.cfg…
Sven Barth wrote 35 lines
Am 25.08.2011 09:08, schrieb Andreas Schneider: > > At Wednesday, 24.08.2011 on 15:06 Marcos Douglas wrote: >> >> So, what is the best way to use Win 32 and 64-bit, in my case? >> > > I would suggest: don't go the most complicated route ever ;-) > It's really dead simple to get cross compilation with Windows as target to > run. In your case I would suggest the lowest common denominator: the 32bit > compiler. So build from/for 32bit and add the 64bit cross compiler there: > > I assume the official FPC 2.4.4 release for 32bit to be installed under > C:\FPC\2.4.4. > > set PATH=C:\FPC\2.4.4\bin\i386-win32;%PATH% > cd C:\FPC\2.5.1 > svn co http://svn.freepascal.org/svn/fpc/trunk src > cd src > make install INSTALL_PREFIX=C:\FPC\2.5.1 > make crossinstall INSTALL_PREFIX=C:\FPC\2.5.1 OS_TARGET=win64 > CPU_TARGET=x86_64 > make clean > > > Done. Now you set the compiler (in Lazarus) to > C:\FPC\2.5.1\bin\i386-win32\fpc.exe and switch the target architecture/OS in > the project options depending on your needs - the 32bit fpc.exe will then > either invoke the 32bit ppcx86.exe to compile for 32bit, or the 32bit > ppccrossx86_86.exe to compile for 64bit. > One small addition to your solution: copy C:\FPC\2.4.4\bin\i386-win32\fpc.cfg C:\FPC\2.5.1\bin\i386-win32\ <Edit the copied fpc.cfg and replace all "2.4.4" with "2.5.1">

I use $fpcversion but thanks anyway. ;-)

Marcos Douglas

Reply by email

Sven Barth
to Marcos Douglas
Marcos Douglas wrote 38 lines
On Thu, Aug 25, 2011 at 4:40 AM, Sven Barth wrote: > Am 25.08.2011 09:08, schrieb Andreas Schneider: >> >> At Wednesday, 24.08.2011 on 15:06 Marcos Douglas wrote: >>> >>> So, what is the best way to use Win 32 and 64-bit, in my case? >>> >> >> I would suggest: don't go the most complicated route ever ;-) >> It's really dead simple to get cross compilation with Windows as target to >> run. In your case I would suggest the lowest common denominator: the 32bit >> compiler. So build from/for 32bit and add the 64bit cross compiler there: >> >> I assume the official FPC 2.4.4 release for 32bit to be installed under >> C:\FPC\2.4.4. >> >> set PATH=C:\FPC\2.4.4\bin\i386-win32;%PATH% >> cd C:\FPC\2.5.1 >> svn co http://svn.freepascal.org/svn/fpc/trunk src >> cd src >> make install INSTALL_PREFIX=C:\FPC\2.5.1 >> make crossinstall INSTALL_PREFIX=C:\FPC\2.5.1 OS_TARGET=win64 >> CPU_TARGET=x86_64 >> make clean >> >> >> Done. Now you set the compiler (in Lazarus) to >> C:\FPC\2.5.1\bin\i386-win32\fpc.exe and switch the target architecture/OS in >> the project options depending on your needs - the 32bit fpc.exe will then >> either invoke the 32bit ppcx86.exe to compile for 32bit, or the 32bit >> ppccrossx86_86.exe to compile for 64bit. >> > > One small addition to your solution: > copy C:\FPC\2.4.4\bin\i386-win32\fpc.cfg C:\FPC\2.5.1\bin\i386-win32\ > <Edit the copied fpc.cfg and replace all "2.4.4" with "2.5.1"> I use $fpcversion but thanks anyway. ;-)

Right... I always forget that this is available... Then ignore the second part, but the first one is necessary :D

Regards,
Sven

Reply by email

Marcos Douglas
to Sven Barth
Sven Barth wrote 8 lines
>> One small addition to your solution: >> copy C:\FPC\2.4.4\bin\i386-win32\fpc.cfg C:\FPC\2.5.1\bin\i386-win32\ >> <Edit the copied fpc.cfg and replace all "2.4.4" with "2.5.1"> > > I use $fpcversion but thanks anyway. ;-) Right... I always forget that this is available... Then ignore the second part, but the first one is necessary :D

OK.
I'm wait the Andreas Schneider's answer about my questions, meanwhile I'm downloading clean FPC sources to test again.

Marcos Douglas

Reply by email

Andreas Schneider
to Marcos Douglas: Well, I thought that cross-compile would add complexity, but I will try. But and Lazarus?…
Marcos Douglas wrote 8 lines
Well, I thought that cross-compile would add complexity, but I will try. But and Lazarus? It still continue 32-bit, right? What about the LCL, I do not have compile Lazarus for create the ppu for 64-bit and to create the x86_64-win64 directories? Marcos Douglas

The very first answer (by Felipe) answered that already ;-)

Felipe Monteiro de Carvalho wrote
Set your project architecture to x86-64 and compile your project. If it uses the LCL, then the LCL will automatically be recompiled.
Best Regards, Andreas Schneider

Reply by email

Andreas Schneider
to Flávio Etrusco
Fl?vio Etrusco wrote 9 lines
> (...) meanwhile > I'm downloading clean FPC sources to test again. > > Marcos Douglas > "downloading clean"? I hope you mean TortoiseSVN's "Revert..." command... -Fl?vio

Although slightly off-topic, but SVN's revert is not really clean. It reverts files it knows, but it doesn't remove unknown files. I'm not aware of an SVN equivalent of Mercurial's purge (for example). So yes, a clean checkout CAN make sense sometimes.

Best Regards, Andreas Schneider

Reply by email

Graeme Geldenhuys
to Andreas Schneider
Andreas Schneider wrote 5 lines
Although slightly off-topic, but SVN's revert is not really clean. It reverts files it knows, but it doesn't remove unknown files. I'm not aware of an SVN equivalent of Mercurial's purge (for example). So yes, a clean checkout CAN make sense sometimes.

svn revert .
svn export <target_dir>

Then use the <target_dir> as a "clean" directory. But yes, SVN still sucks big time compared to Mercurial or Git.

Regards,
- Graeme -

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/

Reply by email

Florian Klaempfl
to Andreas Schneider: Although slightly off-topic, but SVN's revert is not really clean. It reverts files it…
Andreas Schneider wrote 14 lines
On 25.08.2011 16:49, Fl?vio Etrusco wrote: >> (...) meanwhile >> I'm downloading clean FPC sources to test again. >> >> Marcos Douglas >> > > "downloading clean"? I hope you mean TortoiseSVN's "Revert..." command... > > -Fl?vio Although slightly off-topic, but SVN's revert is not really clean. It reverts files it knows, but it doesn't remove unknown files. I'm not aware of an SVN equivalent of Mercurial's purge (for example).

TortoiseSVN's cleanup dialog has an option to delete unversioned files and directories.

Reply by email

Marcos Douglas
to Andreas Schneider: The very first answer (by Felipe) answered that already ;-) Andreas Schneider
Andreas Schneider wrote 10 lines
On 25.08.2011 14:57, Marcos Douglas wrote: > > Well, I thought that cross-compile would add complexity, but I will try. > > But and Lazarus? > It still continue 32-bit, right? What about the LCL, I do not have > compile Lazarus for create the ppu for 64-bit and to create the > x86_64-win64 directories? The very first answer (by Felipe) answered that already ;-)

Very true. I forgot that Felipe said because I did not want do use cross-compile but if works... well, we will see.

On 24.08.2011 08:59, Felipe Monteiro de Carvalho wrote: > Set your project architecture to x86-64 and compile your project. If > it uses the LCL, then the LCL will automatically be recompiled.

Sorry Felipe.

Marcos Douglas

Reply by email

Marcos Douglas
to Andreas Schneider: Although slightly off-topic, but SVN's revert is not really clean. It reverts files it…

2011/8/25 Fl?vio Etrusco :

Show quoted text 7 lines
> (...) meanwhile > I'm downloading clean FPC sources to test again. > > Marcos Douglas > "downloading clean"? I hope you mean TortoiseSVN's "Revert..." command...

No, and Andreas explained below.

Andreas Schneider wrote
Although slightly off-topic, but SVN's revert is not really clean. It reverts files it knows, but it doesn't remove unknown files. I'm not aware of an SVN equivalent of Mercurial's purge (for example). So yes, a clean checkout CAN make sense sometimes.

Exactly.

Marcos Douglas

Reply by email

Andreas Schneider
to Graeme Geldenhuys: svn revert . svn export <target_dir> Then use the <target_dir> as a "clean" directory.…
Graeme Geldenhuys wrote 9 lines
On 08/25/2011 05:06 PM, Andreas Schneider wrote: > > Although slightly off-topic, but SVN's revert is not really clean. It > reverts files it knows, but it doesn't remove unknown files. I'm not > aware of an SVN equivalent of Mercurial's purge (for example). > So yes, a clean checkout CAN make sense sometimes. svn revert . svn export<target_dir>

Still not the same. Export would also remove .svn metadata, which is not what I (would) want. What I want is to remove all files that aren't tracked by SVN - i.e. get the working copy to be EXACTLY what a fresh checkout would be; no more, no less.

Then use the<target_dir> as a "clean" directory. But yes, SVN still sucks big time compared to Mercurial or Git.

Oh yes. /signed ;-)

Best Regards, Andreas Schneider

Reply by email

Florian Klaempfl
to Andreas Schneider
Andreas Schneider wrote 15 lines
On 25.08.2011 17:09, Graeme Geldenhuys wrote: > On 08/25/2011 05:06 PM, Andreas Schneider wrote: >> >> Although slightly off-topic, but SVN's revert is not really clean. It >> reverts files it knows, but it doesn't remove unknown files. I'm not >> aware of an SVN equivalent of Mercurial's purge (for example). >> So yes, a clean checkout CAN make sense sometimes. > > svn revert . > svn export<target_dir> Still not the same. Export would also remove .svn metadata, which is not what I (would) want. What I want is to remove all files that aren't tracked by SVN - i.e. get the working copy to be EXACTLY what a fresh checkout would be; no more, no less.

If you don't use TortoiseSVN I guess it's shouldn't be to hard to feed sed with svn st output to remove untracked files. Why should svn do this if a sed one liner can do this ;)?

Show quoted text 6 lines
> Then use the<target_dir> as a "clean" directory. But yes, SVN still > sucks big time compared to Mercurial or Git. Oh yes. /signed ;-)

So they got finally proper cherry pick tracking and blocking ;)?

Reply by email

Henry Vermaak
to Florian Klaempfl
Florian Klaempfl wrote 20 lines
Am 25.08.2011 17:19, schrieb Andreas Schneider: > On 25.08.2011 17:09, Graeme Geldenhuys wrote: >> On 08/25/2011 05:06 PM, Andreas Schneider wrote: >>> >>> Although slightly off-topic, but SVN's revert is not really clean. It >>> reverts files it knows, but it doesn't remove unknown files. I'm not >>> aware of an SVN equivalent of Mercurial's purge (for example). >>> So yes, a clean checkout CAN make sense sometimes. >> >> svn revert . >> svn export<target_dir> > > Still not the same. Export would also remove .svn metadata, which is not > what I (would) want. What I want is to remove all files that aren't > tracked by SVN - i.e. get the working copy to be EXACTLY what a fresh > checkout would be; no more, no less. If you don't use TortoiseSVN I guess it's shouldn't be to hard to feed sed with svn st output to remove untracked files. Why should svn do this if a sed one liner can do this ;)?

Indeed. Just remember to use svn st --no-ignore and catch both "I" and "?". Or use --xml and parse that. I'm sure I've got a script somewhere that does this.

Henry

Reply by email

Florian Klaempfl
to Henry Vermaak
Henry Vermaak wrote 6 lines
> If you don't use TortoiseSVN I guess it's shouldn't be to hard to feed > sed with svn st output to remove untracked files. Why should svn do this > if a sed one liner can do this ;)? Indeed. Just remember to use svn st --no-ignore and catch both "I" and "?".

Well, ignored is not untracked for me ;), but for a really clean working copy, you're right.

Reply by email

Flávio Etrusco
to Henry Vermaak: Indeed. Just remember to use svn st --no-ignore and catch both "I" and "?". Or use…
Henry Vermaak wrote 30 lines
On 25/08/11 16:23, Florian Klaempfl wrote: > > Am 25.08.2011 17:19, schrieb Andreas Schneider: >> >> On 25.08.2011 17:09, Graeme Geldenhuys wrote: >>> >>> On 08/25/2011 05:06 PM, Andreas Schneider wrote: >>>> >>>> Although slightly off-topic, but SVN's revert is not really clean. It >>>> reverts files it knows, but it doesn't remove unknown files. I'm not >>>> aware of an SVN equivalent of Mercurial's purge (for example). >>>> So yes, a clean checkout CAN make sense sometimes. >>> >>> svn revert . >>> svn export<target_dir> >> >> Still not the same. Export would also remove .svn metadata, which is not >> what I (would) want. What I want is to remove all files that aren't >> tracked by SVN - i.e. get the working copy to be EXACTLY what a fresh >> checkout would be; no more, no less. > > If you don't use TortoiseSVN I guess it's shouldn't be to hard to feed > sed with svn st output to remove untracked files. Why should svn do this > if a sed one liner can do this ;)? Indeed. ?Just remember to use svn st --no-ignore and catch both "I" and "?". ?Or use --xml and parse that. ?I'm sure I've got a script somewhere that does this. Henry

I usually file bugs if 'make distclean' leaves files behind ;-) Otherwise: http://carlo-notes.blogspot.com/2011/01/throw-out-trash-clean-up-subversion.html

-Fl?vio

Reply by email

waldo kitty
to Sven Barth: One small addition to your solution: copy C:\FPC\2.4.4\bin\i386-win32\fpc.cfg…
Sven Barth wrote 11 lines
Am 25.08.2011 09:08, schrieb Andreas Schneider: > Done. Now you set the compiler (in Lazarus) to > C:\FPC\2.5.1\bin\i386-win32\fpc.exe and switch the target architecture/OS in > the project options depending on your needs - the 32bit fpc.exe will then > either invoke the 32bit ppcx86.exe to compile for 32bit, or the 32bit > ppccrossx86_86.exe to compile for 64bit. > One small addition to your solution: copy C:\FPC\2.4.4\bin\i386-win32\fpc.cfg C:\FPC\2.5.1\bin\i386-win32\ <Edit the copied fpc.cfg and replace all "2.4.4" with "2.5.1">

why not just have one fpc.cfg and use $fpcversion instead of 2.4.4 or 2.5.1 and such??

Reply by email

Marcos Douglas
to Andreas Schneider: I would suggest: don't go the most complicated route ever ;-) It's really dead simple to…
Andreas Schneider wrote 21 lines
At Wednesday, 24.08.2011 on 15:06 Marcos Douglas wrote: > > So, what is the best way to use Win 32 and 64-bit, in my case? > I would suggest: don't go the most complicated route ever ;-) It's really dead simple to get cross compilation with Windows as target to run. In your case I would suggest the lowest common denominator: the 32bit compiler. So build from/for 32bit and add the 64bit cross compiler there: I assume the official FPC 2.4.4 release for 32bit to be installed under C:\FPC\2.4.4. set PATH=C:\FPC\2.4.4\bin\i386-win32;%PATH% cd C:\FPC\2.5.1 svn co http://svn.freepascal.org/svn/fpc/trunk src cd src make install INSTALL_PREFIX=C:\FPC\2.5.1 make crossinstall INSTALL_PREFIX=C:\FPC\2.5.1 OS_TARGET=win64 CPU_TARGET=x86_64 make clean Done. Now you set the compiler (in Lazarus) to C:\FPC\2.5.1\bin\i386-win32\fpc.exe and switch the target architecture/OS in the project options depending on your needs - the 32bit fpc.exe will then either invoke the 32bit ppcx86.exe to compile for 32bit, or the 32bit ppccrossx86_86.exe to compile for 64bit.

My command:
make clean all crossinstall UPXPROG=echo COPYTREE=echo OPT="-gl" INSTALL_PREFIX=%myFPC% PP=%myBINUTILS%\ppc386.exe

ERROR:
make[5]: Entering directory `W:/md/dev/freepascal/compiler/2.5.1/compiler/utils'

make[5]: Leaving directory `W:/md/dev/freepascal/compiler/2.5.1/compiler/utils' echo ppcrossx64.exe
ppcrossx64.exe
W:/md/dev/freepascal/binutils/2.5.1/x86_64-win64/ginstall.exe -m 755 -d W:\md\de v\freepascal\compiler\2.5.1/bin/i386-win32
W:/md/dev/freepascal/binutils/2.5.1/x86_64-win64/cp.exe -fp ppcrossx64.exe W:\md \dev\freepascal\compiler\2.5.1/bin/i386-win32/ppcrossx64.exe make[4]: Leaving directory `W:/md/dev/freepascal/compiler/2.5.1/compiler' make[3]: Leaving directory `W:/md/dev/freepascal/compiler/2.5.1' make rtl_install FPC=W:/md/dev/freepascal/compiler/2.5.1/compiler/ppcrossx64.exe ZIPDESTDIR=W:/md/dev/freepascal/compiler/2.5.1 FPCMAKE=fpcmake make[3]: Entering directory `W:/md/dev/freepascal/compiler/2.5.1' make -C rtl install
make[4]: Entering directory `W:/md/dev/freepascal/compiler/2.5.1/rtl' make -C win64 all
make[5]: Entering directory `W:/md/dev/freepascal/compiler/2.5.1/rtl/win64' make[5]: Leaving directory `W:/md/dev/freepascal/compiler/2.5.1/rtl/win64' fpcmake -p -Tx86_64-win64 Makefile.fpc
process_begin: CreateProcess((null), fpcmake -p -Tx86_64-win64 Makefile.fpc, ... ) failed.
make (e=2): O sistema n?o pode encontrar o arquivo especificado. make[4]: *** [fpc_install] Error 2
make[4]: Leaving directory `W:/md/dev/freepascal/compiler/2.5.1/rtl' make[3]: *** [rtl_install] Error 2
make[3]: Leaving directory `W:/md/dev/freepascal/compiler/2.5.1' make[2]: *** [installbase] Error 2
make[2]: Leaving directory `W:/md/dev/freepascal/compiler/2.5.1' make[1]: *** [install] Error 2
make[1]: Leaving directory `W:/md/dev/freepascal/compiler/2.5.1' make: *** [crossinstall] Error 2
W:\md\dev\freepascal\compiler\2.5.1>

Marcos Douglas

Reply by email

Marcos Douglas
to Marcos Douglas
Marcos Douglas wrote 26 lines
On Thu, Aug 25, 2011 at 4:08 AM, Andreas Schneider wrote: > At Wednesday, 24.08.2011 on 15:06 Marcos Douglas wrote: >> >> So, what is the best way to use Win 32 and 64-bit, in my case? >> > > I would suggest: don't go the most complicated route ever ;-) > It's really dead simple to get cross compilation with Windows as target to run. In your case I would suggest the lowest common denominator: the 32bit compiler. So build from/for 32bit and add the 64bit cross compiler there: > > I assume the official FPC 2.4.4 release for 32bit to be installed under C:\FPC\2.4.4. > > set PATH=C:\FPC\2.4.4\bin\i386-win32;%PATH% > cd C:\FPC\2.5.1 > svn co http://svn.freepascal.org/svn/fpc/trunk src > cd src > make install INSTALL_PREFIX=C:\FPC\2.5.1 > make crossinstall INSTALL_PREFIX=C:\FPC\2.5.1 OS_TARGET=win64 CPU_TARGET=x86_64 > make clean > > > Done. Now you set the compiler (in Lazarus) to C:\FPC\2.5.1\bin\i386-win32\fpc.exe and switch the target architecture/OS in the project options depending on your needs - the 32bit fpc.exe will then either invoke the 32bit ppcx86.exe to compile for 32bit, or the 32bit ppccrossx86_86.exe to compile for 64bit. > My command: make clean all crossinstall UPXPROG=echo COPYTREE=echo OPT="-gl" INSTALL_PREFIX=%myFPC% PP=%myBINUTILS%\ppc386.exe

Sorry, I did mean:
My command:
make clean all crossinstall UPXPROG=echo COPYTREE=echo OPT="-gl" OS_TARGET=win64 CPU_TARGET=x86_64 INSTALL_PREFIX=%myFPC% PP=%myBINUTILS%\ppc386.exe

Marcos Douglas

Reply by email

Marcos Douglas
to Marcos Douglas
Marcos Douglas wrote 5 lines
Sorry, I did mean: My command: make clean all crossinstall UPXPROG=echo COPYTREE=echo OPT="-gl" OS_TARGET=win64 CPU_TARGET=x86_64 INSTALL_PREFIX=%myFPC% PP=%myBINUTILS%\ppc386.exe

I think fpc.cfg is missing something or lack some utility.

To compile FPC at the first time I use this BINUTILS: http://svn.freepascal.org/svn/fpcbuild/branches/fixes_2_6/install/binw32

I can compile FPC to 64-bit (on Win 7 64-bit) using this BINUTILS: http://svn.freepascal.org/svn/fpcbuild/branches/fixes_2_6/install/binw64

To cross-compiling I need something else?
My fpc.cfg is in attachment.

Marcos Douglas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fpc.cfg
Type: application/octet-stream
Size: 7191 bytes
Desc: not available
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20110825/0ed0b273/attachment.obj>

Reply by email