Copyright 2000, International Business Machines Corporation and others.
All Rights Reserved.

This software has been released under the terms of the IBM Public
License.  For details, see the LICENSE file in the top-level source
directory or online at http://www.openafs.org/dl/license10.html

Building OpenAFS on UNIX and LINUX
----------------------------------

A. Creating the proper directory structure.

   Uncompress the source into a directory of your choice.
   Preferrably, afs space. In the directory that you uncompressed the
   source in, you will only have an src directory.
	
   1. Make a directory for each system type that you plan on
      building. Current tested system types include the following
     (this step is skipped for the i386_nt40 system type):

      alpha_dux40/
      i386_linux22/
      rs_aix42/
      sun4x_56/
      sun4x_57/

      Example:
      % mkdir i386_linux22
      % ls -CF
      i386_linux22/     src/

      Builds for the following platforms will not fully compile:

      hp_ux110/
      sgi_65/

   2. Within each of those directories, create a dest/ and obj/ directory.

      Example:
      % mkdir i386_linux22/dest
      % mkdir i386_linux22/obj

   3. Create symbolic links to the system type you are about to build

      Example:
      % ln -s @sys/dest dest
      % ln -s @sys/obj  obj
      % ls -CF
      Makefile@     dest@     i386_linux22/     obj@     src/

   4. If this source is NOT in AFS space, You must make a link from
      @sys to your current system type. 

      Example:
      % ln -s i386_linux22 @sys

      Within AFS space, the AFS Cache Manager automatically
      substitutes the local machine's AFS system name (CPU/operating
      system type [ie: alpha_dux40, i386_linux22, ...]) for the @sys
      variable.

   5. Create the top level Makefile:
      a. For LINUX and UNIX versions

         Example:
         % ln -s src/Makefile Makefile
         % ls -CF
         Makefile@     i386_linux22/     src/

B  Building

   1. Make the obj links. This creates links from the @sys/obj/ tree
      back to the source tree. The source tree remains unchanged and
      builds are done in the platform specific object tree.

      % make links

   2. Begin building
      a. For Linux
         % make SYS_NAME="i386_linux22" LINUX_VERS="2.2.14"

      b. For UNIX versions, specify the system name as given by
         the system type defined in step A1.
         % make SYS_NAME="<system_name>"

         Example for the rs_aix42 operating system:
	 % make SYS_NAME="rs_aix42" 

C  Problems
   If you have a problem building this source, you may want to visit
   http://www.openafs.org/ to see if any problems have been reported 
   or to find out how to get more help.

   Mailing lists have been set up to help; More details can be found
   on the openafs.org site.

