|
Packit |
fcad23 |
#!/bin/sh
|
|
Packit |
fcad23 |
#----------------------------------------------------------------------
|
|
Packit |
fcad23 |
# $Id$
|
|
Packit |
fcad23 |
# Author: Robert Story <rstory@freesnmp.com>
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#----------------------------------------------------------------------
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# source user config
|
|
Packit |
fcad23 |
if [ -f $HOME/.snmp/nsb-rc ]; then
|
|
Packit |
fcad23 |
. $HOME/.snmp/nsb-rc
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#----------------------------------------------------------------------
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
nsb_sysname()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
echo `uname -mrs | tr ' /' '__'`
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#----------------------------------------------------------------------
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# Utility vars
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
NSB_VERSION=${NSB_VERSION:=""}
|
|
Packit |
fcad23 |
NSB_BUILD_DIR=${NSB_BUILD_DIR:=""}
|
|
Packit |
fcad23 |
NSB_BUILD_SUFFIX=${NSB_BUILD_SUFFIX:=""}
|
|
Packit |
fcad23 |
NSB_SRC_DIR=${NSB_SRC_DIR:=""}
|
|
Packit |
fcad23 |
NSB_INSTALL_DIR=${NSB_INSTALL_DIR:=""}
|
|
Packit |
fcad23 |
NSB_INSTALL_DIR_DEFAULT=${NSB_INSTALL_DIR_DEFAULT:="$NSB_BUILD_DIR/usr"}
|
|
Packit |
fcad23 |
NSB_PLATFORM=${NSB_PLATFORM:=`nsb_sysname`}
|
|
Packit |
fcad23 |
# sun doesn't support hostname -s
|
|
Packit |
fcad23 |
NSB_HOST=${NSB_HOST:=`hostname | cut -f1 -d.`}
|
|
Packit |
fcad23 |
NSB_QUIET=${NSB_QUIET:=0}
|
|
Packit |
fcad23 |
NSB_PROMPT=${NSB_PROMPT:=0}
|
|
Packit |
fcad23 |
NSB_CLEAN=${NSB_CLEAN:=1}
|
|
Packit |
fcad23 |
NSB_CONFIG_ALL=${NSB_CONFIG_ALL:=0}
|
|
Packit |
fcad23 |
NSB_SKIP_CONFIG=${NSB_SKIP_CONFIG:=0}
|
|
Packit |
fcad23 |
NSB_SKIP_BUILD=${NSB_SKIP_BUILD:=0}
|
|
Packit |
fcad23 |
NSB_SKIP_TEST=${NSB_SKIP_TEST:=0}
|
|
Packit |
fcad23 |
NSB_SKIP_INSTALL=${NSB_SKIP_INSTALL:=0}
|
|
Packit |
fcad23 |
NSB_ERR_CTX_LINES=${NSB_ERR_CTX_LINES:=25}
|
|
Packit |
fcad23 |
NSB_DIST_TRANSPORTS="UDP TCP Unix Callback"
|
|
Packit |
fcad23 |
NSB_EXTRA_TRANSPORTS=""
|
|
Packit |
fcad23 |
NSB_DIST_MODULES=${NSB_DIST_MODULES:="host disman/event-mib smux"}
|
|
Packit |
fcad23 |
NSB_EXTRA_MODULES=${NSB_EXTRA_MODULES:="examples examples/example smux Rmon"}
|
|
Packit |
fcad23 |
#testhandler
|
|
Packit |
fcad23 |
NSB_EXTRA_CONFIG=${NSB_EXTRA_CONFIG:=""}
|
|
Packit |
fcad23 |
NSB_PREFIX=${NSB_PREFIX:="/usr"}
|
|
Packit |
fcad23 |
NSB_EXTRA_INSTALL=${NSB_EXTRA_INSTALL:=""}
|
|
Packit |
fcad23 |
NSB_SHARED=${NSB_SHARED:="--enable-shared"}
|
|
Packit |
fcad23 |
NSB_VIEW=cat
|
|
Packit |
fcad23 |
NSB_FLOW=
|
|
Packit |
fcad23 |
NSB_DATE=${NSB_DATE:=`date +%y%m%d_%H%M`}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
## embedded perl
|
|
Packit |
fcad23 |
NSB_DIRLINK_DIRS="perl mibs include python"
|
|
Packit |
fcad23 |
NSB_PERL=${NSB_PERL:=""}
|
|
Packit |
fcad23 |
#NSB_PERL=${NSB_PERL:="--enable-embedded-perl"}
|
|
Packit |
fcad23 |
if [ "x$NSB_PERL" != "x" ]; then
|
|
Packit |
fcad23 |
NSB_SKIP_DIRLINK=${NSB_SKIP_DIRLINK:=0}
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
NSB_SKIP_DIRLINK=${NSB_SKIP_DIRLINK:=1}
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# System specific additions
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
case `uname -s` in
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
SunOS)
|
|
Packit |
fcad23 |
NSB_TAIL_ARGS="-$NSB_ERR_CTX_LINES"
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
*)
|
|
Packit |
fcad23 |
NSB_TAIL_ARGS="-n $NSB_ERR_CTX_LINES"
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
esac
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#----------------------------------------------------------------------
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# Utility functions
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_abort()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
echo
|
|
Packit |
fcad23 |
echo "ABORTING: $@" >&2
|
|
Packit |
fcad23 |
exit 255
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_info()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
if [ $NSB_QUIET -ne 1 ]; then
|
|
Packit |
fcad23 |
echo $@
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_prompt()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
if [ "x$1" = "x-f" ]; then
|
|
Packit |
fcad23 |
shift 1
|
|
Packit |
fcad23 |
tmp_nsb_prompt=1
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
tmp_nsb_prompt=$NSB_PROMPT
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
if [ $tmp_nsb_prompt -eq 1 ]; then
|
|
Packit |
fcad23 |
echo $@
|
|
Packit |
fcad23 |
read nsb_prompt_dummy
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
echo "$@ (PROMPT SKIPPED)"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_flow()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
NSB_FLOW=$NSB_FLOW:$@
|
|
Packit |
fcad23 |
echo "Running $@" >&2
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#----------------------------------------------------------------------
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
nsb_config_dist()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
nsb_flow config_dist
|
|
Packit |
fcad23 |
if [ $# -lt 1 ]; then
|
|
Packit |
fcad23 |
nsb_abort "usage: nsb_config_dist src_dir"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
ngc_src=$1
|
|
Packit |
fcad23 |
if [ ! -d $ngc_src ]; then
|
|
Packit |
fcad23 |
nsb_abort "$ngc_src does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
if [ ! -d $ngc_src/agent/mibgroup ]; then
|
|
Packit |
fcad23 |
nsb_abort "agent/mibgroup directory in $ngc_src does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
ngc_dest=$2
|
|
Packit |
fcad23 |
if [ "X$ngc_dest" != "X" -a ! -d $ngc_dest ]; then
|
|
Packit |
fcad23 |
nsb_abort "$ngc_dest does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# some modules might be release specific, so make sure they
|
|
Packit |
fcad23 |
# exist before we send them off to configure
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
NSB_FINAL_MODULES=
|
|
Packit |
fcad23 |
for ncd_x in $NSB_DIST_MODULES
|
|
Packit |
fcad23 |
do
|
|
Packit |
fcad23 |
if [ -r $ngc_src/agent/mibgroup/$ncd_x.h ]; then
|
|
Packit |
fcad23 |
NSB_FINAL_MODULES="$NSB_FINAL_MODULES $ncd_x"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
done
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# NOTE: for some reason, bash does not expand variables
|
|
Packit |
fcad23 |
# inside of single quotes, so use double quotes
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
echo $ngc_src/configure --with-sys-location=Unknown \
|
|
Packit |
fcad23 |
--prefix="$NSB_PREFIX" \
|
|
Packit |
fcad23 |
--disable-developer $NSB_EXTRA_CONFIG \
|
|
Packit |
fcad23 |
--with-sys-contact='System Administrator' \
|
|
Packit |
fcad23 |
--with-defaults --with-mib-modules="$NSB_FINAL_MODULES"
|
|
Packit |
fcad23 |
$ngc_src/configure --with-sys-location=Unknown \
|
|
Packit |
fcad23 |
--prefix="$NSB_PREFIX" \
|
|
Packit |
fcad23 |
--disable-developer $NSB_EXTRA_CONFIG \
|
|
Packit |
fcad23 |
--with-sys-contact='System Administrator' \
|
|
Packit |
fcad23 |
--with-defaults --with-mib-modules="$NSB_FINAL_MODULES"
|
|
Packit |
fcad23 |
# I'd like to add ' | tee nsb_config.$NSB_DATE' to save output, but then
|
|
Packit |
fcad23 |
# I'd lose the rc from configure, which I need... sigh
|
|
Packit |
fcad23 |
ngc_rc=$?
|
|
Packit |
fcad23 |
if [ $ngc_rc -ne 0 ];then
|
|
Packit |
fcad23 |
nsb_abort "Error during configure dist (rc=$ngc_rc)"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_config_all()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
nsb_flow config_all
|
|
Packit |
fcad23 |
if [ $# -lt 1 ]; then
|
|
Packit |
fcad23 |
nsb_abort "usage: nsb_config_all src_dir"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
ngc_src=$1
|
|
Packit |
fcad23 |
if [ ! -d $ngc_src ]; then
|
|
Packit |
fcad23 |
nsb_abort "$ngc_src does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
if [ ! -d $ngc_src/agent/mibgroup ]; then
|
|
Packit |
fcad23 |
nsb_abort "agent/mibgroup directory in $ngc_src does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
ngc_dest=$2
|
|
Packit |
fcad23 |
if [ "X$ngc_dest" != "X" -a ! -d $ngc_dest ]; then
|
|
Packit |
fcad23 |
nsb_abort "$ngc_dest does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# System specific additions
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
case `uname -s` in
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
Linux)
|
|
Packit |
fcad23 |
NSB_IPV6=${NSB_IPV6:="--enable-ipv6"}
|
|
Packit |
fcad23 |
NSB_EXTRA_TRANSPORTS="IPX"
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#Darwin)
|
|
Packit |
fcad23 |
# ;;
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
*)
|
|
Packit |
fcad23 |
NSB_IPV6=${NSB_IPV6:="--enable-ipv6"}
|
|
Packit |
fcad23 |
;;
|
|
Packit |
fcad23 |
esac
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# use libwrap if we can find the header
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
if [ -f /usr/include/tcpd.h ]; then
|
|
Packit |
fcad23 |
NSB_LIBWRAP=${NSB_LIBWRAP:="--with-libwrap"}
|
|
Packit |
fcad23 |
NSB_EXTRA_CONFIG="$NSB_EXTRA_CONFIG $NSB_LIBWRAP"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# some modules might be release specific, so make sure they
|
|
Packit |
fcad23 |
# exist before we send them off to configure
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
NSB_FINAL_MODULES=
|
|
Packit |
fcad23 |
for ncd_x in $NSB_DIST_MODULES $NSB_EXTRA_MODULES
|
|
Packit |
fcad23 |
do
|
|
Packit |
fcad23 |
if [ -r $ngc_src/agent/mibgroup/$ncd_x.h ]; then
|
|
Packit |
fcad23 |
NSB_FINAL_MODULES="$NSB_FINAL_MODULES $ncd_x"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
done
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# configure
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# NOTE: for some reason, bash does not expand variables
|
|
Packit |
fcad23 |
# inside of single quotes, so use double quotes
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
echo $ngc_src/configure --with-defaults \
|
|
Packit |
fcad23 |
--prefix="$NSB_PREFIX" \
|
|
Packit |
fcad23 |
--disable-developer $NSB_EXTRA_CONFIG \
|
|
Packit |
fcad23 |
"--with-mib-modules=$NSB_FINAL_MODULES" \
|
|
Packit |
fcad23 |
"--with-transports=$NSB_DIST_TRANSPORTS $NSB_EXTRA_TRANSPORTS" \
|
|
Packit |
fcad23 |
$NSB_SHARED $NSB_IPV6 $NSB_PERL
|
|
Packit |
fcad23 |
$ngc_src/configure --with-defaults \
|
|
Packit |
fcad23 |
--prefix="$NSB_PREFIX" \
|
|
Packit |
fcad23 |
--disable-developer $NSB_EXTRA_CONFIG \
|
|
Packit |
fcad23 |
"--with-mib-modules=$NSB_FINAL_MODULES" \
|
|
Packit |
fcad23 |
"--with-transports=$NSB_DIST_TRANSPORTS $NSB_EXTRA_TRANSPORTS" \
|
|
Packit |
fcad23 |
$NSB_SHARED $NSB_IPV6 $NSB_PERL
|
|
Packit |
fcad23 |
# I'd like to add ' | tee nsb_config.$NSB_DATE' to save output, but then
|
|
Packit |
fcad23 |
# I'd lose the rc from configure, which I need... sigh
|
|
Packit |
fcad23 |
ngc_rc=$?
|
|
Packit |
fcad23 |
if [ $ngc_rc -ne 0 ];then
|
|
Packit |
fcad23 |
nsb_abort "Error during configure all (rc=$ngc_rc)"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_zip()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
if [ $# -ne 3 ]; then
|
|
Packit |
fcad23 |
nsb_abort "usage: $0 release build_directory dest_dir"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
release=$1
|
|
Packit |
fcad23 |
build_dir=$2
|
|
Packit |
fcad23 |
dest_dir=$3
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
build=$build_dir/$NSB_PLATFORM
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ ! -d $build ]; then
|
|
Packit |
fcad23 |
nsb_abort "$build directory does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ ! -d $build/usr ]; then
|
|
Packit |
fcad23 |
nsb_abort "install directory $build/usr directory does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
cd $build
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
rm -f $dest_dir/$release-$NSB_PLATFORM.tar
|
|
Packit |
fcad23 |
nsb_info "tar cf $dest_dir/$release-$NSB_PLATFORM.tar usr"
|
|
Packit |
fcad23 |
tar cf $dest_dir/$release-$NSB_PLATFORM.tar usr
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_info "gzip --best $dest_dir/$release-$NSB_PLATFORM.tar"
|
|
Packit |
fcad23 |
gzip --best $dest_dir/$release-$NSB_PLATFORM.tar
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ $NSB_QUIET -ne 1 ]; then
|
|
Packit |
fcad23 |
ls -lt $dest_dir
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_upload()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
build_dir=$1
|
|
Packit |
fcad23 |
target=$2
|
|
Packit |
fcad23 |
nsb_flow upload to $target: config.log configure-summary nsb_make-all.$NSB_DATE nsb_make-test.$NSB_DATE
|
|
Packit |
fcad23 |
dir=$PWD
|
|
Packit |
fcad23 |
cd $build_dir
|
|
Packit |
fcad23 |
/usr/bin/scp config.log configure-summary nsb_make-all.$NSB_DATE nsb_make-test.$NSB_DATE\
|
|
Packit |
fcad23 |
$target
|
|
Packit |
fcad23 |
cd $dir
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_dir_link()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
if [ $# -lt 2 ]; then
|
|
Packit |
fcad23 |
nsb_abort "usage: nsb_dir_link src_dir dst_dir"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
link_src_dir=$1
|
|
Packit |
fcad23 |
link_dst_dir=$2
|
|
Packit |
fcad23 |
if [ -d $link_src_dir ]; then
|
|
Packit |
fcad23 |
nsb_flow set up shadow directory $link_dst_dir
|
|
Packit |
fcad23 |
$NSB_DIRLINK $link_src_dir $link_dst_dir
|
|
Packit |
fcad23 |
rc=$?
|
|
Packit |
fcad23 |
if [ $rc -ne 0 ];then
|
|
Packit |
fcad23 |
nsb_abort "Error during nsb_dir_link (rc=$rc)"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
nsb_info "Skipping $link_src_dir"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_make()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
nsb_flow make $1
|
|
Packit |
fcad23 |
target=$1
|
|
Packit |
fcad23 |
shift 1
|
|
Packit |
fcad23 |
parms=$@
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ "x$NSB_MAKE" = "x" ];then
|
|
Packit |
fcad23 |
#nsb_info "Searching for GNU make (set NSB_MAKE to skip this step)"
|
|
Packit |
fcad23 |
for p in `echo $PATH | tr ':' ' '`
|
|
Packit |
fcad23 |
do
|
|
Packit |
fcad23 |
#echo $p
|
|
Packit |
fcad23 |
if [ -x $p/make ];then
|
|
Packit |
fcad23 |
dummy=`$p/make --version 2>&1 | grep GNU`
|
|
Packit |
fcad23 |
if [ $? -eq 0 ];then
|
|
Packit |
fcad23 |
#nsb_info "using $p/make ($dummy)"
|
|
Packit |
fcad23 |
NSB_MAKE=$p/make
|
|
Packit |
fcad23 |
break
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
if [ -x $p/gmake ];then
|
|
Packit |
fcad23 |
dummy=`$p/gmake --version 2>&1 | grep GNU`
|
|
Packit |
fcad23 |
if [ $? -eq 0 ];then
|
|
Packit |
fcad23 |
#nsb_info "using $p/gmake ($dummy)"
|
|
Packit |
fcad23 |
NSB_MAKE=$p/gmake
|
|
Packit |
fcad23 |
break
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
done
|
|
Packit |
fcad23 |
if [ "x$NSB_MAKE" = "x" ];then
|
|
Packit |
fcad23 |
nsb_abort "GNU make not found. Set NSB_MAKE to your make executable."
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_make_OUTPUT=nsb_make-$target.$NSB_DATE
|
|
Packit |
fcad23 |
nsb_info "Making $target... (log is $nsb_make_OUTPUT)"
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
if [ "x$target" = "xall" ]; then
|
|
Packit |
fcad23 |
$NSB_MAKE NOAUTODEPS=y touchit 2>&1 | tee $nsb_make_OUTPUT
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
$NSB_MAKE $NSB_MAKE_EXTRA NOAUTODEPS=y start-flag $target $parms end-flag 2>&1 | tee -a $nsb_make_OUTPUT
|
|
Packit |
fcad23 |
# checking $? would only get us the rc from tee, which is useless
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_info "Checking for errors..."
|
|
Packit |
fcad23 |
egrep -i "error|fail|warn|no such|exists|t find |ermission denied" $nsb_make_OUTPUT \
|
|
Packit |
fcad23 |
> nsb_make-$target-allerrs.$NSB_DATE
|
|
Packit |
fcad23 |
# allow for a few exceptions
|
|
Packit |
fcad23 |
egrep -v -i "^ok|testing .*failure|[a-z&_](fail|error)|warn|error(mib|\.3)|(LOG|SNMP)_ERR|In function|= FAILURE|DEBUGMSG|/\*|static library .* is not portable" nsb_make-$target-allerrs.$NSB_DATE \
|
|
Packit |
fcad23 |
> nsb_make-$target-errs.$NSB_DATE
|
|
Packit |
fcad23 |
if [ -s nsb_make-$target-errs.$NSB_DATE ]; then
|
|
Packit |
fcad23 |
nsb_prompt "press enter to view errors"
|
|
Packit |
fcad23 |
# grep ':' $nsb_make_OUTPUT > nsb_make-$target-errs2.$NSB_DATE
|
|
Packit |
fcad23 |
# tail -n $NSB_ERR_CTX_LINES nsb_make-$target-errs2.$NSB_DATE >&2
|
|
Packit |
fcad23 |
tail $NSB_TAIL_ARGS nsb_make-$target-errs.$NSB_DATE >&2
|
|
Packit |
fcad23 |
nsb_abort "Error(s) during make $target"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ -f build-in-progress-flag ];then
|
|
Packit |
fcad23 |
nsb_abort "make $target incomplete"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_default_paths()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
if [ "x$NSB_VERSION" = "x" ]; then
|
|
Packit |
fcad23 |
NSB_VERSION="unknown-version"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
if [ "x$NSB_SRC_DIR" = "x" ]; then
|
|
Packit |
fcad23 |
NSB_SRC_DIR=$HOME/src/net-snmp-$NSB_VERSION
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
if [ "x$NSB_BUILD_DIR" = "x" ]; then
|
|
Packit |
fcad23 |
NSB_BUILD_DIR=$HOME/build/$NSB_VERSION
|
|
Packit |
fcad23 |
if [ "x$NSB_SUFFIX" != "x" ]; then
|
|
Packit |
fcad23 |
NSB_BUILD_DIR=$NSB_BUILD_DIR/$NSB_SUFFIX
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
if [ "x$NSB_INSTALL_DIR" = "x" ]; then
|
|
Packit |
fcad23 |
NSB_INSTALL_DIR="$NSB_INSTALL_DIR_DEFAULT"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
}
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_build()
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
if [ $# -lt 5 ]; then
|
|
Packit |
fcad23 |
nsb_abort "usage: $0 release src_dir build_directory dest_dir config_all_flag ($@)"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_config_all_flag=0
|
|
Packit |
fcad23 |
release=$1
|
|
Packit |
fcad23 |
src_dir=$2
|
|
Packit |
fcad23 |
build_dir=$3
|
|
Packit |
fcad23 |
dest_dir=$4
|
|
Packit |
fcad23 |
nsb_config_all_flag=$5
|
|
Packit |
fcad23 |
shift 5
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_flow build in $build_dir
|
|
Packit |
fcad23 |
nsb_flow host $NSB_HOST
|
|
Packit |
fcad23 |
nsb_flow platform $NSB_PLATFORM
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ ! -d $src_dir ]; then
|
|
Packit |
fcad23 |
nsb_abort "$src_dir does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ ! -d $build_dir ]; then
|
|
Packit |
fcad23 |
mkdir $build_dir
|
|
Packit |
fcad23 |
if [ ! -d $build_dir ]; then
|
|
Packit |
fcad23 |
nsb_abort "$build_dir directory does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
nsb_info "Changing directories to $build_dir"
|
|
Packit |
fcad23 |
cd $build_dir
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ $NSB_CLEAN -gt 0 ]; then
|
|
Packit |
fcad23 |
nsb_info "Cleaning up..."
|
|
Packit |
fcad23 |
if [ $NSB_CLEAN -eq 2 ];then
|
|
Packit |
fcad23 |
if [ "x$PWD" = "x/" ]; then
|
|
Packit |
fcad23 |
nsb_abort "Not running rm -fR from /"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
nsb_info "rm -fR * .[a-zA-Z]* > /dev/null 2>&1"
|
|
Packit |
fcad23 |
rm -fR * .[a-zA-Z]* > /dev/null 2>&1
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
if [ "x$dest_dir" != "x" -a "x$dest_dir" != "x/" ]; then
|
|
Packit |
fcad23 |
nsb_info "rm -fR nsb_* $dest_dir > /dev/null 2>&1"
|
|
Packit |
fcad23 |
#rm -fR nsb_* $dest_dir > /dev/null 2>&1
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
if [ -f Makefile ]; then
|
|
Packit |
fcad23 |
nsb_make NOAUTODEPS=y distclean
|
|
Packit |
fcad23 |
nsb_build_rc=$?
|
|
Packit |
fcad23 |
if [ $nsb_build_rc -ne 0 ]; then
|
|
Packit |
fcad23 |
nsb_abort "Error during make distclean (rc=$nsb_build_rc)"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ "X$dest_dir" != "X" -a ! -d $dest_dir ]; then
|
|
Packit |
fcad23 |
mkdir -p $dest_dir
|
|
Packit |
fcad23 |
if [ ! -d $dest_dir ]; then
|
|
Packit |
fcad23 |
nsb_abort "$dest_dir directory does not exist!"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ $NSB_SKIP_DIRLINK -eq 1 ]; then
|
|
Packit |
fcad23 |
nsb_info "Skipping nsb_dir_link"
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
for d in $NSB_DIRLINK_DIRS; do
|
|
Packit |
fcad23 |
nsb_dir_link $src_dir/$d $build_dir/$d
|
|
Packit |
fcad23 |
done
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ $NSB_SKIP_CONFIG -ne 1 ]; then
|
|
Packit |
fcad23 |
nsb_info "Configuring... (log is nsb_config.$NSB_DATE)"
|
|
Packit |
fcad23 |
if [ "x$nsb_config_all_flag" = "x0" ]; then
|
|
Packit |
fcad23 |
nsb_config_dist $src_dir "$dest_dir"
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
nsb_config_all $src_dir "$dest_dir"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
nsb_prompt "press enter to continue"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ $NSB_SKIP_BUILD -eq 1 ]; then
|
|
Packit |
fcad23 |
nsb_info "Skipping 'make all'"
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
nsb_make all
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ $NSB_SKIP_TEST -eq 1 ]; then
|
|
Packit |
fcad23 |
nsb_info "Skipping 'make test'"
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
nsb_prompt "No errors found, press enter to run tests"
|
|
Packit |
fcad23 |
SNMP_TMPDIR_BASE=$build_dir/tests
|
|
Packit |
fcad23 |
export SNMP_TMPDIR_BASE
|
|
Packit |
fcad23 |
nsb_make test
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
if [ $NSB_SKIP_INSTALL -eq 1 ]; then
|
|
Packit |
fcad23 |
nsb_info "Skipping 'make install'"
|
|
Packit |
fcad23 |
else
|
|
Packit |
fcad23 |
nsb_prompt "No errors found, press enter to install"
|
|
Packit |
fcad23 |
# DESTDIR makes sure the perl stuff goes into $dest_dir, too
|
|
Packit |
fcad23 |
nsb_make install DESTDIR="$dest_dir" $NSB_EXTRA_INSTALL
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
return 0
|
|
Packit |
fcad23 |
}
|