# @(#)README.multiarch 1.1 4/15/91 This file describes a scheme for building versions of ups for multiple different architectures in one NFS mounted source directory. This is switched off by default in the distribution. You probably only want to look at enabling this if you are doing development work on ups for multiple architectures. The ups makefiles have optional support for multi-architecture compilation. By default they build .o files in the current directory, but if certain environment variables are set they will drop .o files in subdirectories. This way you can have parallel builds for different machine architectures in a single NFS mounted source directory. To enable the multi-architecture support, you need to ensure that four make variables are set. The variables are: OBJDIR a path from this directory to where you want .o files to go. SRCDIR path that takes you back from ${OBJDIR} to this source directory. SLASH set to the single character string `/'. IN_OBJDIR set to 'cd ${OBJDIR} && ' The last two are ugly, but are necessary to make this scheme drop back to a normal build if no variables are set. Locally I like to have all object files below a directory obj with subdirectories for the various machine types. So on a Sun 4 I have the following set: OBJDIR "obj/sun4_sunos4" SRCDIR "../.." SLASH "/" IN_OBJDIR "cd ${OBJDIR} && " On machines where make imports environment variables you can just setenv these in your .login file. If you have a command like Sun's arch utility you can say something like "setenv OBJDIR obj/`arch`" and wherever you go the object files will get dropped in the right place. This scheme can also be used to keep gcc and cc built object files separate - I have a makegcc shell script which builds things with gcc.