Thursday, April 16, 2009

An issue with 32 bit and 64 machine

Problem :
 
Installerwhich build the application for multiple platforms (targeting Linux, AIX, HP-UX, Solaris and Windows).

My application has  binaries for above 5 platforms each of 32bit and 64bit (so kind of 10 platforms).

 

I have a directory structure like below

 

Application

|

|-----Linux

|              |-Linux32

|              |-Linux64

|

|-----AIX

|              |-AIX32

|              |-AIX64

|

|-----HP-UX

|              |-HP-UX32

|              |-HP-UX64

|

|-----Solaris

|              |-Solaris32

|              |-Solaris64

|

|-----Windows

|              |-Windows32

|              |-Windows64

|

 

Now what required is when I build as shown below my application and check the Linux box it should prompt  me to take input as "Linux32" or "Linux64" (user input) so that the  Linux installer of 32bit or 64bit is built.

 

 

 

 Solution :


Its quite easy to do that, installanywhere  has an inbuild functionality to check the OS architecture. You can store the OS architecture in the IA variable and implement your logic once you are known to end users OS architecture.

You will find this feature in Organization settings.

InstallAnywhere buildoutputs are independent to platform architecture, you can build your application for any desired platform with or without VM and run it. At the run time have a user input panel or at rutime decide the architecture of the user machine and cotinue with your installation logic.

Like this


Application ----
                      Folder 1 <Only if 32 bit>
                      Folder 2 <Only if 64 bit>

In the install section you can put a rule of compare installAnywhere variable so that it gets installed only when the rule is met.
 

No comments: