On 08/26/2008 07:52 AM, Per Jessen wrote:
our production environment is AMD64, so x86_64. Our test environment is still old i386, and will likely be for a while. How do you guys go about building for an i386 target on your x86_64 workstations? In plain practical terms - I know how to build 32bit objects, but how do you organise source code, builds etc? A typical project would involve one or more binaries, some of our own libraries and some external ditto.
My company's product is built for a 32-bit environment. We actually have
a very complex build environment because we build for RHEL, SUSE,
Solaris, and AIX. One of the things we do is to maintain a directory
where we have all the specific compilers, such as gcc-4.1.2. Under that
we have directories for the appropriate OS, such as sles-i686-9.0 or
rhel-i686-4.0. Then each of our makefiles include another file, that has
a macro, in my build envoronment it is
DIR=/nfsmounts/tools/gcc-4.1.2/rhel-i686-4.0
In another make include file, we specify the OS, and the appropriate
CFLAGS and CXXFLAGS. One of the defines is -D__rhel_i686__.
Most of the source code is reasonably generic with some ifdefs for some
header differences. But, when I was building code of IA64, I had to
create some makefiles. A lot of the system specifics are actually in
makefiles where they have some specific makefiles for the different
platforms.
The company uses Rational Clearcase in their development build
environments, but we use CVS in this office. Both allow for branches.
I've never worked in our company's Toronto office, and I don't know the
specifics of how the source control is arranged.
--
Jerry Feldman