altbuild.sh revision 247bf378605811d695e968dbe930a7fc45c0038e
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt#!/bin/sh
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews#
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * Copyright (C) 2004, 2007, 2008, 2012 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2000-2002 Internet Software Consortium.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews *
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Permission to use, copy, modify, and/or distribute this software for any
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * purpose with or without fee is hereby granted, provided that the above
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * copyright notice and this permission notice appear in all copies.
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt *
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt * PERFORMANCE OF THIS SOFTWARE.
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt# $Id$
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt#
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt# "Alternative build" test.
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt#
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt# Build BIND9 with build options that are seldom tested otherwise.
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt# Specify the CVS tag or the name of a kit .tar.gz file as a
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt# command line argument.
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt#
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt
2c089bf6d24936de631a57b4958ba6b8b5e3b23dMark Andrewstmpdir=/tmp
2c089bf6d24936de631a57b4958ba6b8b5e3b23dMark Andrewscase $# in
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt 2) arg=$1 tmpdir="$2" ;;
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt 1) arg=$1 ;;
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt *) echo "usage: $0 cvs-tag | absolute-path-to-gzipped-tar-file [tmpdir]" >&2; exit 1 ;;
2c089bf6d24936de631a57b4958ba6b8b5e3b23dMark Andrewsesac
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunt
2855e2772342e369cc8962659beac7b3001b4ec6Evan Hunthere=`pwd`
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewstest -f util/check-instincludes.sh || {
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews echo "$0: must be run from top of CVS tree";
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews exit 1;
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews}
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewskitdir=${tmpdir}/kit
2855e2772342e369cc8962659beac7b3001b4ec6Evan Huntsrcdir=${tmpdir}/src
2855e2772342e369cc8962659beac7b3001b4ec6Evan Huntbuilddir=${tmpdir}/build
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewsinstdir=${tmpdir}/inst
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewstest -d $tmpdir || mkdir $tmpdir
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewstest ! -d $kitdir || rm -rf $kitdir
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewsmkdir $kitdir
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewstest ! -d $srcdir || rm -rf $srcdir
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewsmkdir $srcdir
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewstest ! -d $builddir || rm -rf $builddir
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewsmkdir $builddir
b4e114e3cd99b8875fc677a1a1c7c8257ef5a7a6Mukund Sivaraman
b4e114e3cd99b8875fc677a1a1c7c8257ef5a7a6Mukund Sivaramantest ! -d $instdir || rm -rf $instdir
b4e114e3cd99b8875fc677a1a1c7c8257ef5a7a6Mukund Sivaramanmkdir $instdir
b4e114e3cd99b8875fc677a1a1c7c8257ef5a7a6Mukund Sivaraman
b4e114e3cd99b8875fc677a1a1c7c8257ef5a7a6Mukund Sivaramancase $arg in
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews *.tar.gz)
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews kit="$arg"
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews ;;
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews *)
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews tag="$arg"
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews sh util/kit.sh $tag $kitdir || exit 1
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews kit=$kitdir/*.tar.gz
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrews ;;
c38341ec435fb78de6d12c1001201f9ac7487b68Mark Andrewsesac
7d65cbaca0839ae23358dce26de426be1301657aMark Andrews
cd $srcdir || exit 1
gzcat $kit | tar xf -
cd $builddir || exit 1
# Test a libtool / separate object dir / threadless build.
CFLAGS="-g -DISC_CHECK_NONE -DISC_MEM_FILL=0 -DISC_LIST_CHECKINIT" \
sh $srcdir/bind-*/configure --with-libtool \
--disable-threads --with-openssl --prefix=$instdir
gmake clean
gmake
gmake install
# Rebuild in the source tree so that the test suite
# works, then run it.
cd $srcdir/bind-* || exit 1
CFLAGS="-g -DISC_CHECK_NONE -DISC_MEM_FILL=0 -DISC_LIST_CHECKINIT" \
sh configure --with-libtool --disable-threads --prefix=$instdir
make
make install
( cd bin/tests && make test )
# Check the installed header files
cd $here
sh util/check-instincludes.sh $instdir