openafs/doc/html/QuickStartUnix/auqbg008.htm
Derrick Brashear d7da1acc31 initial-html-documentation-20010606
pull in all documentation from IBM
2001-06-06 19:09:07 +00:00

214 lines
9.2 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 4//EN">
<HTML><HEAD>
<TITLE>Quick Beginnings</TITLE>
<!-- Begin Header Records ========================================== -->
<!-- /tmp/idwt3574/auqbg000.scr converted by idb2h R4.2 (359) ID -->
<!-- Workbench Version (AIX) on 2 Oct 2000 at 12:25:35 -->
<META HTTP-EQUIV="updated" CONTENT="Mon, 02 Oct 2000 12:25:35">
<META HTTP-EQUIV="review" CONTENT="Tue, 02 Oct 2001 12:25:35">
<META HTTP-EQUIV="expires" CONTENT="Wed, 02 Oct 2002 12:25:35">
</HEAD><BODY>
<!-- (C) IBM Corporation 2000. All Rights Reserved -->
<BODY bgcolor="ffffff">
<!-- End Header Records ============================================ -->
<A NAME="Top_Of_Page"></A>
<H1>Quick Beginnings</H1>
<HR><P ALIGN="center"> <A HREF="../index.htm"><IMG SRC="../books.gif" BORDER="0" ALT="[Return to Library]"></A> <A HREF="auqbg002.htm#ToC"><IMG SRC="../toc.gif" BORDER="0" ALT="[Contents]"></A> <A HREF="auqbg007.htm"><IMG SRC="../prev.gif" BORDER="0" ALT="[Previous Topic]"></A> <A HREF="#Bot_Of_Page"><IMG SRC="../bot.gif" BORDER="0" ALT="[Bottom of Topic]"></A> <A HREF="auqbg009.htm"><IMG SRC="../next.gif" BORDER="0" ALT="[Next Topic]"></A> <A HREF="auqbg009.htm#HDRINDEX"><IMG SRC="../index.gif" BORDER="0" ALT="[Index]"></A> <P>
<P>
<HR><H1><A NAME="HDRWQ163" HREF="auqbg002.htm#ToC_153">Appendix A. Building AFS from Source Code</A></H1>
<P>This chapter describes how to build AFS from source
code.
<A NAME="IDX3090"></A>
<A NAME="IDX3091"></A>
<A NAME="IDX3092"></A>
<A NAME="IDX3093"></A>
<A NAME="IDX3094"></A>
<HR><H2><A NAME="HDRWQ164" HREF="auqbg002.htm#ToC_154">Loading the Source Files</A></H2>
<P>Working on an AFS client machine, perform these steps to
load the AFS source tree from the AFS Source Distribution.
<OL TYPE=1>
<A NAME="IDX3095"></A>
<A NAME="IDX3096"></A>
<A NAME="IDX3097"></A>
<A NAME="IDX3098"></A>
<A NAME="IDX3099"></A>
<P><LI>Create and mount a volume for housing the AFS source tree. These
instructions name the volume <B>src.afs</B> and mount it at the
<B>/afs/</B><VAR>cellname</VAR><B>/afs/src</B> directory.
<P>Setting the <B>-maxquota</B> argument to <B>0</B> (zero) sets an
unlimited quota on the volume, which enables you to copy all of the files into
the volume without exceeding its quota. If you wish, you can set the
volume's quota to a finite value after you complete the copying
operation. At that point, use the <B>vos examine</B> command to
determine how much space the volume is occupying. Then issue the
<B>fs setquota</B> command to set a quota that is slightly larger.
<PRE>
# <B>vos create</B> &lt;<VAR>machine&nbsp;name</VAR>> &lt;<VAR>partition&nbsp;name</VAR>> <B>src.afs -maxquota 0</B>
# <B>cd /afs/.</B><VAR>cellname</VAR>
# <B>mkdir afs</B>
# <B>fs mkmount afs/src src.afs</B>
# <B>vos release root.cell</B>
# <B>fs checkvolumes</B>
</PRE>
<P><LI>On the local <B>/cdrom</B> directory, mount the CD-ROM that contains
the AFS source files. For instructions on mounting CD-ROMs (either
locally or remotely via NFS), consult the operating system
documentation.
<A NAME="IDX3100"></A>
<A NAME="IDX3101"></A>
<P><LI>Copy the source files from the CD-ROM into the newly created
volume.
<PRE>
# <B>cd /cdrom/src</B>
# <B>cp -rp * /afs/.</B><VAR>cellname</VAR>/<B>afs/src</B>
</PRE>
</OL>
<A NAME="IDX3102"></A>
<A NAME="IDX3103"></A>
<A NAME="IDX3104"></A>
<HR><H2><A NAME="HDRWQ165" HREF="auqbg002.htm#ToC_155">Compiling AFS Binaries Using the washtool Program</A></H2>
<P>The AFS distribution includes the <B>washtool</B>
program for managing a hierarchy of software development projects. The
program builds project trees for program editing, compilation, and
installation.
<OL TYPE=1>
<P><LI>Create a subdirectory under the
<B>/afs/.</B><VAR>cellname</VAR><B>/afs</B> directory for each
system type for which you will build AFS binaries. Creating and
mounting a volume for each system type is recommended, but you can also simply
use the <B>mkdir</B> command. If you create a new volume, grant it
an unlimited quota to avoid running out of space during the build
process.
<PRE>
# <B>cd /afs/.</B><VAR>cellname</VAR><B>/afs</B>
</PRE>
<P>If creating a new volume:
<PRE>
# <B>vos create</B> &lt;<VAR>machine&nbsp;name</VAR>> &lt;<VAR>partition&nbsp;name</VAR>> <VAR>sysname</VAR> <B>-maxquota 0</B>
# <B>fs mkmount</B> <VAR>sysname</VAR> <VAR>sysname</VAR>
</PRE>
<P>If not creating a new volume:
<PRE>
# <B>mkdir</B> <VAR>sysname</VAR>
</PRE>
<P><LI>In the directory for each system type, create subdirectories called
<B>dest</B>, <B>dest/bin</B>, and <B>obj</B>. If you plan
to use the <I>@sys</I> variable in pathnames that refer to these
directories, then you must use the conventional system names listed in the
<I>IBM AFS Release Notes</I>.
<PRE>
# <B>cd</B> <VAR>sysname</VAR>
# <B>mkdir dest</B>
# <B>mkdir dest/bin</B>
# <B>mkdir obj</B>
</PRE>
<P><LI>Create the indicated directories and symbolic links in the
<B>/afs/.</B><VAR>cellname</VAR><B>/afs</B> directory.
<PRE>
# <B>cd /afs/.</B><VAR>cellname</VAR><B>/afs</B>
# <B>ln -s @sys/dest dest</B>
# <B>ln -s @sys/obj obj</B>
# <B>ln -s . PARENT</B>
# <B>ln -s src/Makefile Makefile</B>
</PRE>
<P>The following is an example directory listing for the
<B>/afs/.</B><VAR>cellname</VAR><B>/afs</B> directory after
completing the preceding steps. It includes two example system
types.
<PRE>
lrwxr-xr-x admin 12 Jun 18 11:26 Makefile->src/Makefile
lrwxr-xr-x admin 1 Jun 18 11:26 PARENT -> .
lrwxr-xr-x admin 9 Jun 18 11:25 dest -> @sys/dest
lrwxr-xr-x admin 8 Jun 18 11:25 obj -> @sys/obj
drwxrwxrwx admin 4096 Jun 18 11:24 rcs
drwxrwxrwx admin 2048 Jun 18 11:27 rs_aix42
drwxrwxrwx admin 2048 Jun 18 11:10 src
drwxrwxrwx admin 2048 Jun 18 11:27 sun4x_56
</PRE>
<P><LI><B>(Optional)</B> By default, the build procedure writes its results
into a destination directory for each system type called
<B>/afs/.</B><VAR>cellname</VAR><B>/afs/</B><VAR>sysname</VAR><B>/dest</B>.
To write the results to a different destination directory, create a link from
the <B>dest</B> directory to it.
<PRE>
# <B>cd /afs/.</B><VAR>cellname</VAR><B>/afs/</B><VAR>sysname</VAR>
# <B>ln -s</B> <VAR>full_path_of_alternate_directory</VAR> <B>dest</B>
</PRE>
<A NAME="IDX3105"></A>
<A NAME="IDX3106"></A>
<P><LI>For each system type you plan to build, copy the binary for the
<B>washtool</B> program to the directory specified in the AFS
<B>Makefile</B>, which is
<B>/afs/</B><VAR>cellname</VAR><B>/afs/</B><VAR>sysname</VAR><B>/dest/bin</B>.
If you prefer to store the program in a different directory, you can use the
WASHTOOL variable on the <B>make</B> command line as described in Step <A HREF="#LIWQ166">6</A>.
<P>If there is a volume that houses the AFS binaries for each system type (as
recommended), the conventional location for the <B>washtool</B> binary is
the
<B>/afs/</B><VAR>cellname</VAR><B>/</B><VAR>sysname</VAR><B>/usr/afsws/bin</B>
directory. Use the following instruction to copy it.
<PRE>
# <B>cd /afs/</B><VAR>cellname</VAR><B>/</B><VAR>sysname</VAR><B>/usr/afsws/bin</B>
# <B>cp washtool</B> <B>/afs/.</B><VAR>cellname</VAR><B>/afs/</B><VAR>sysname</VAR><B>/dest/bin</B>
</PRE>
<P>Otherwise, mount the (binary) AFS CD-ROM for this system type on the local
<B>/cdrom</B> directory, and copy the <B>washtool</B> binary directly
from it.
<PRE>
# <B>cd /cdrom/</B><VAR>sysname</VAR><B>/bin</B>
# <B>cp washtool</B> <B>/afs/.</B><VAR>cellname</VAR><B>/afs/</B><VAR>sysname</VAR><B>/dest/bin</B>
</PRE>
<A NAME="IDX3107"></A>
<A NAME="IDX3108"></A>
<A NAME="IDX3109"></A>
<A NAME="IDX3110"></A>
<A NAME="IDX3111"></A>
<A NAME="IDX3112"></A>
<P><LI><A NAME="LIWQ166"></A>Working in the
<B>/afs/.</B><VAR>cellname</VAR><B>/afs</B> directory on a
machine of the system type for which you are building AFS, issue the <B>make
install</B> command. Set the SYS_NAME variable to the appropriate
system type name.
<P>If the <B>washtool</B> binary is not in the conventional directory
(<B>/afs/</B><VAR>cellname</VAR><B>/afs/</B><VAR>sysname</VAR><B>/dest/bin</B>),
set the WASHTOOL variable to the alternate full pathname of the binary.
<PRE>
# <B>cd /afs/.</B><VAR>cellname</VAR><B>/afs</B>
# <B>make SYS_NAME=</B><VAR>sysname</VAR> [<B>WASHTOOL=</B><VAR>alternate_washtool_directory</VAR>] <B>install</B>
</PRE>
</OL>
<HR><P ALIGN="center"> <A HREF="../index.htm"><IMG SRC="../books.gif" BORDER="0" ALT="[Return to Library]"></A> <A HREF="auqbg002.htm#ToC"><IMG SRC="../toc.gif" BORDER="0" ALT="[Contents]"></A> <A HREF="auqbg007.htm"><IMG SRC="../prev.gif" BORDER="0" ALT="[Previous Topic]"></A> <A HREF="#Top_Of_Page"><IMG SRC="../top.gif" BORDER="0" ALT="[Top of Topic]"></A> <A HREF="auqbg009.htm"><IMG SRC="../next.gif" BORDER="0" ALT="[Next Topic]"></A> <A HREF="auqbg009.htm#HDRINDEX"><IMG SRC="../index.gif" BORDER="0" ALT="[Index]"></A> <P>
<!-- Begin Footer Records ========================================== -->
<P><HR><B>
<br>&#169; <A HREF="http://www.ibm.com/">IBM Corporation 2000.</A> All Rights Reserved
</B>
<!-- End Footer Records ============================================ -->
<A NAME="Bot_Of_Page"></A>
</BODY></HTML>