******************************************************************************
*
* README.build-scripts
*
* Author: Robert Story <rstory@freesnmp.com>
*
* $Id$
*
******************************************************************************


Introduction
============

The automated build script will automatically run configure, 'make all',
'make test' and 'make install'. Log files are kept for each step, and the
scripts should abort when errors occur.

The usage of nsb-package is:

 Usage: nsb-package [-c] [-d] [-p] [-s SRCD] [-b BUILDD] [-i INSTALLD] VERSION
  
    VERSION    : release number (eg 5.2.2)
    -s SRCDIR  : soure directory [$HOME/src/net-snmp-VERSION]
    -b BUILDD  : build directory [$HOME/build/]
                 NOTE-platform will be appended to build directory
    -i INSTALLD: install directory [$HOME/build/\$PLATFORM/usr/local]
   
    -c : skip configure
    -d : dirty build (don't make distclean)
    -m : skip 'make all'
    -p : don't pause at prompts in between stages
    -t : skip 'make test'


The defaults assume you have a 'src', 'build' and 'binaries' directory in
your home directory.



Recommended Procedure
=====================

1) Log into Sourceforge Compile Farm Server

2) Update source (this will likely be automated in the future)

   For example, for release 5.0.3:

   $ cd ~/src
   $ CVS_RSH=ssh cvs -d $USER@cvs.net-snmp.org:/cvsroot/net-snmp \
         -q co -r Ext-5-0-3 -d ~/src/net-snmp-Ext-5-0-3 net-snmp

3) Run the package script. 

   $ $HOME/src/net-snmp-cvs/dist/nsb-package -r \
        -s $HOME/src/net-snmp-5.0.5 5.0.5

4) Create tarball (assuming no errors; see next section if there are errors)

   $ cd ~/build/`nsb-platform`
   $ tar cvf net-snmp-5.0.3-`nsb-platform`.tar usr
   $ gzip --best *.tar

5) Copy tarball to Sourceforge shell sever

   $ scp *.gz net-snmp.sourceforge.net:~/binaries/

6) Log out of compile farm server, log into shell server

7) Upload to Sourceforge

   $ ftp upload.sourceforge.net
     >bin
     >put *.gz

8) Update binaries via Sourceforge admin page



Builds with errors
==================

Should you encounter a build error, you will most likely want to skip the
'make distclean' and configure step (assuming the problem wasn't with
configure!). To do this, specify the 'dirty' and 'skip configure' options:

   $ nsb-package -p -d -c Ext-5-0-3


Should the build succeed, but some tests fail during 'make test', you probably
can to skip the test step to get to the install step:

   $ nsb-package -p -d -c -t Ext-5-0-3


OTHER PROBLEMS
--------------
* "Cannot find nsb-functions"
  
   It's a hack, but symlink nsb-functions and nsb-package to your local
   bin directory ($HOME/bin).  I'm trying to think of a better solution.

* "gcc: snmp_version.lo: No such file or directory"

   This is a good indication that you have previously build in your
   source directory. 'make distclean' in your source directory, or
   check out a fresh new version from CVS.
