2005-11-02 16:19:10 +03:00
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
2010-02-23 03:01:31 +03:00
srcdir = ` dirname " $0 " `
2008-02-05 22:27:37 +03:00
test -z " $srcdir " && srcdir = .
2005-11-02 16:19:10 +03:00
THEDIR = ` pwd `
2010-02-23 03:01:31 +03:00
cd " $srcdir "
2005-11-02 16:19:10 +03:00
2006-02-10 11:40:20 +03:00
test -f src/libvirt.c || {
2011-02-11 20:35:54 +03:00
echo "You must run this script in the top-level libvirt directory"
exit 1
2005-11-02 16:19:10 +03:00
}
2009-11-26 17:38:50 +03:00
EXTRA_ARGS =
2011-01-21 19:34:35 +03:00
no_git =
if test " x $1 " = "x--no-git" ; then
no_git = " $1 "
shift
fi
2012-06-21 17:50:41 +04:00
if test -z " $NOCONFIGURE " ; then
if test " x $1 " = "x--system" ; then
2009-11-26 17:38:50 +03:00
shift
2011-01-19 15:24:26 +03: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 17:38:50 +03:00
echo " Running ./configure with $EXTRA_ARGS $@ "
2012-06-21 17:50:41 +04:00
else
2010-03-26 02:37:32 +03: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 16:19:10 +03:00
echo " to pass any to it, please specify them on the $0 command line. "
2009-11-26 17:38:50 +03:00
fi
2012-06-21 17:50:41 +04:00
fi
2005-11-02 16:19:10 +03:00
fi
2010-03-16 23:08:31 +03: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 04:06:27 +04:00
# The third ensures that whenever we change the set of local gnulib diffs,
# we rerun bootstrap to pull in those diffs.
2010-03-16 23:08:31 +03:00
bootstrap_hash( )
{
git submodule status | sed 's/^[ +-]//;s/ .*//'
git hash-object bootstrap.conf
2011-11-09 04:06:27 +04:00
git ls-tree -d HEAD gnulib/local | awk '{print $3}'
2010-03-16 23:08:31 +03:00
}
2009-07-10 12:01:04 +04: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 00:35:41 +04: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-11 20:35:54 +03: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 12:01:04 +04:00
fi
2012-06-21 17:50:41 +04:00
test -n " $NOCONFIGURE " && exit 0
2010-02-23 03:01:31 +03:00
cd " $THEDIR "
2005-11-02 16:19:10 +03:00
2010-02-23 03:01:31 +03:00
if test " x $OBJ_DIR " != x; then
2005-11-02 16:19:10 +03:00
mkdir -p " $OBJ_DIR "
cd " $OBJ_DIR "
fi
2012-06-15 21:46:51 +04:00
if test -z " $* " && test -z " $EXTRA_ARGS " && test -f config.status; then
2010-03-26 02:37:32 +03:00
./config.status --recheck
else
$srcdir /configure $EXTRA_ARGS " $@ "
fi && {
2008-02-05 22:27:37 +03:00
echo
2007-01-26 14:12:56 +03:00
echo "Now type 'make' to compile libvirt."
}