2005-11-02 21:19:10 +08:00
|
|
|
#!/bin/sh
|
|
|
|
# Run this to generate all the initial makefiles, etc.
|
|
|
|
|
2012-09-20 01:45:24 +08:00
|
|
|
set -e
|
|
|
|
|
2010-02-23 08:01:31 +08:00
|
|
|
srcdir=`dirname "$0"`
|
2008-02-06 03:27:37 +08:00
|
|
|
test -z "$srcdir" && srcdir=.
|
2005-11-02 21:19:10 +08:00
|
|
|
|
|
|
|
THEDIR=`pwd`
|
2010-02-23 08:01:31 +08:00
|
|
|
cd "$srcdir"
|
2005-11-02 21:19:10 +08:00
|
|
|
|
2006-02-10 16:40:20 +08:00
|
|
|
test -f src/libvirt.c || {
|
2011-02-12 01:35:54 +08:00
|
|
|
echo "You must run this script in the top-level libvirt directory"
|
|
|
|
exit 1
|
2005-11-02 21:19:10 +08:00
|
|
|
}
|
|
|
|
|
2009-11-26 22:38:50 +08:00
|
|
|
|
|
|
|
EXTRA_ARGS=
|
2011-01-22 00:34:35 +08:00
|
|
|
no_git=
|
|
|
|
if test "x$1" = "x--no-git"; then
|
|
|
|
no_git=" $1"
|
|
|
|
shift
|
|
|
|
fi
|
2012-06-21 21:50:41 +08:00
|
|
|
if test -z "$NOCONFIGURE" ; then
|
|
|
|
if test "x$1" = "x--system"; then
|
2009-11-26 22:38:50 +08:00
|
|
|
shift
|
2011-01-19 20:24:26 +08:00
|
|
|
prefix=/usr
|
|
|
|
libdir=$prefix/lib
|
|
|
|
sysconfdir=/etc
|
|
|
|
localstatedir=/var
|
|
|
|
if [ -d /usr/lib64 ]; then
|
|
|
|
libdir=$prefix/lib64
|
|
|
|
fi
|
|
|
|
EXTRA_ARGS="--prefix=$prefix --sysconfdir=$sysconfdir --localstatedir=$localstatedir --libdir=$libdir"
|
2009-11-26 22:38:50 +08:00
|
|
|
echo "Running ./configure with $EXTRA_ARGS $@"
|
2012-06-21 21:50:41 +08:00
|
|
|
else
|
2010-03-26 07:37:32 +08:00
|
|
|
if test -z "$*" && test ! -f "$THEDIR/config.status"; then
|
|
|
|
echo "I am going to run ./configure with no arguments - if you wish "
|
2005-11-02 21:19:10 +08:00
|
|
|
echo "to pass any to it, please specify them on the $0 command line."
|
2009-11-26 22:38:50 +08:00
|
|
|
fi
|
2012-06-21 21:50:41 +08:00
|
|
|
fi
|
2005-11-02 21:19:10 +08:00
|
|
|
fi
|
|
|
|
|
2010-03-17 04:08:31 +08:00
|
|
|
# Compute the hash we'll use to determine whether rerunning bootstrap
|
|
|
|
# is required. The first is just the SHA1 that selects a gnulib snapshot.
|
|
|
|
# The second ensures that whenever we change the set of gnulib modules used
|
|
|
|
# by this package, we rerun bootstrap to pull in the matching set of files.
|
2011-11-09 08:06:27 +08:00
|
|
|
# The third ensures that whenever we change the set of local gnulib diffs,
|
|
|
|
# we rerun bootstrap to pull in those diffs.
|
2010-03-17 04:08:31 +08:00
|
|
|
bootstrap_hash()
|
|
|
|
{
|
|
|
|
git submodule status | sed 's/^[ +-]//;s/ .*//'
|
|
|
|
git hash-object bootstrap.conf
|
2011-11-09 08:06:27 +08:00
|
|
|
git ls-tree -d HEAD gnulib/local | awk '{print $3}'
|
2010-03-17 04:08:31 +08:00
|
|
|
}
|
|
|
|
|
2009-07-10 16:01:04 +08:00
|
|
|
# Ensure that whenever we pull in a gnulib update or otherwise change to a
|
|
|
|
# different version (i.e., when switching branches), we also rerun ./bootstrap.
|
2010-08-05 04:35:41 +08:00
|
|
|
# Also, running 'make rpm' tends to litter the po/ directory, and some people
|
|
|
|
# like to run 'git clean -x -f po' to fix it; but only ./bootstrap regenerates
|
|
|
|
# the required file po/Makevars.
|
2011-02-12 01:35:54 +08:00
|
|
|
# Only run bootstrap from a git checkout, never from a tarball.
|
|
|
|
if test -d .git; then
|
|
|
|
curr_status=.git-module-status
|
|
|
|
t=$(bootstrap_hash; git diff .gnulib)
|
|
|
|
if test "$t" = "$(cat $curr_status 2>/dev/null)" \
|
|
|
|
&& test -f "po/Makevars"; then
|
|
|
|
# good, it's up to date, all we need is autoreconf
|
|
|
|
autoreconf -if
|
|
|
|
else
|
|
|
|
echo running bootstrap$no_git...
|
|
|
|
./bootstrap$no_git --bootstrap-sync && bootstrap_hash > $curr_status \
|
|
|
|
|| { echo "Failed to bootstrap, please investigate."; exit 1; }
|
|
|
|
fi
|
2009-07-10 16:01:04 +08:00
|
|
|
fi
|
|
|
|
|
2012-06-21 21:50:41 +08:00
|
|
|
test -n "$NOCONFIGURE" && exit 0
|
|
|
|
|
2010-02-23 08:01:31 +08:00
|
|
|
cd "$THEDIR"
|
2005-11-02 21:19:10 +08:00
|
|
|
|
2010-02-23 08:01:31 +08:00
|
|
|
if test "x$OBJ_DIR" != x; then
|
2005-11-02 21:19:10 +08:00
|
|
|
mkdir -p "$OBJ_DIR"
|
|
|
|
cd "$OBJ_DIR"
|
|
|
|
fi
|
|
|
|
|
2012-06-16 01:46:51 +08:00
|
|
|
if test -z "$*" && test -z "$EXTRA_ARGS" && test -f config.status; then
|
2010-03-26 07:37:32 +08:00
|
|
|
./config.status --recheck
|
|
|
|
else
|
|
|
|
$srcdir/configure $EXTRA_ARGS "$@"
|
|
|
|
fi && {
|
2008-02-06 03:27:37 +08:00
|
|
|
echo
|
2007-01-26 19:12:56 +08:00
|
|
|
echo "Now type 'make' to compile libvirt."
|
|
|
|
}
|