2

I am seeking some ideas for how to build and install software with some parameters. These including target OS, target platform CPU details, debugging variant, etc. Some parts of the install are shared, such as documentation and many platform independent files, others are not, such as 64 and 32 bit libraries when these are separated and not together in a multi-arch library.

On big networked platforms one often has multiple computers sharing some large server space, so there is actually cause to have even Windows and Unix binaries on the same disk.

My product has already fixed an install philosophy of $INSTALL_ROOT/genericname/version/ so that multiple versions can coexist.

The question is: how to manage the layout of all the other stuff?

Yttrill
  • 727

3 Answers3

1

Given that when a package is installed in a system - there is only 1 system at hand. i.e. OS, CPU/Arch, 32/64 bits variables are fixed for that system target.

In this context, usually i would NOT make separate folder like

$INSTALL_ROOT/package//<64-32bit>/versions/

Rather, i would define it as part of the naming. Look at it for example the RPM file naming convention:

name-version-release.architecture.rpm

It does include the distribution version number as like like fc8 or fc11 etc.

Debian follows a similar naming convention but probably the packages have some internal directory layout. (Sorry donno details here!)

Dipan Mehta
  • 10,612
1

At one time, I worked for an SAN manufacturer in the build group. We had to support about 40 different operating systems.

The distributions were organized by major OS families at the root level of the distribution media (CD and DVD), such as HPUX, Z/OS and Windows, with versions branching off those. So for example, the Windows branch would have Server and Workstation off that folder, and each would have a set of x86, x64, ia64 and Alpha folders, each with their own installs.

Tangurena
  • 13,324
0

Use a build tool which allows different source and target directories. For each platform have a separate target directory into which the platform specific files are generated.

Builds may run faster if you use a common build directory for non-platform specific files.

BillThor
  • 6,310