On Wed, Nov 28, 2012 at 10:08 AM, David Ashley <w.david.ashley@gmail.com> wrote:
Can a 64-bit version of Windows build both the 32 and 64-bit version of
ooRexx? If so, how do I set that up?

David,

I think it can, but I have not actually set it up to do it.  You will just need to cross-compile the 32-bit version.

The compiler, 64-bit or 32-bit, is set by the environment set up command you use.  Either vcvarsall.bat if you set things up through VCPP or SetEnv.cmd if you set things up through  the Windows SDK.

As you may remember, the exact flags vary depending on which version of VCPP or the Windows SDK you are using.  You can usually get a print of the flags by running the command with /?  Like so:

C:\work.ooRexx>\Tools\VisualStudio.10.0\VC\vcvarsall.bat /?
Error in script usage. The correct usage is:
    \Tools\VisualStudio.10.0\VC\vcvarsall.bat [option]
where [option] is: x86 | ia64 | amd64 | x86_amd64 | x86_ia64

So, on a 64-bit system, for VCPP 2010, if you run vcvarsall.bat with x86 as a flag, it does a 32-bit build using the cross compiler.  If you use amd64 it does a 64-bit build using the native compiler.

x86_amd64 is the cross compiler to do a 64-bit build on a 32-bit system

It would not be possible to build both versions on a 32-bit system.  The cross compiler would build the 64-bit binaries okay.  But then rexx.img would not get built because you would be trying to run a 64-bit binary on a 32-bit system.

But, it should work the other way, building both 32-bit and 64-bit on a 64-bit system.

You need to start 2 separate processes I would think to do it.  I don't think, from the same console process you can set things for a 64-bit build and then switch to a 32-bit build.

This is also dependent on having the cross-compilers installed.  When you do an install, it will default to only installing the native compiler.  You need to be sure and select to install the cross compilers.

One other problem might be if you are using the express edition of VCPP.  I don't thing the express edition comes with the cross compilers.  However, I'm pretty sure you could work around that by installing the right Windows SDK.

The

Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO)

comes with the cross compilers.  If you install that and set things up to use its compilers, it should work.

You can download it from here:

http://www.microsoft.com/en-us/download/details.aspx?id=8442c

--
Mark Miesfeld