[Spice-devel] [PATCH spice 1/2] build-sys: use spice-protocol as a submodule

Christophe Fergeau cfergeau at redhat.com
Thu Mar 1 01:49:39 PST 2012


On Thu, Mar 01, 2012 at 12:39:40AM +0100, Marc-André Lureau wrote:
> ---
>  .gitmodules    |    3 +
>  Makefile.am    |    3 +
>  autogen.sh     |  167 +++----------------------------------------------------

NACK for the autogen.sh changes, if you want to switch to
autoreconf -v --force --install || exit 1
I'd rather this is not hidden in the "switch to submodules" commit.

Christophe

>  configure.ac   |    4 +-
>  spice-protocol |    1 +
>  5 files changed, 20 insertions(+), 158 deletions(-)
>  create mode 100644 .gitmodules
>  create mode 160000 spice-protocol
> 
> diff --git a/.gitmodules b/.gitmodules
> new file mode 100644
> index 0000000..f7de75d
> --- /dev/null
> +++ b/.gitmodules
> @@ -0,0 +1,3 @@
> +[submodule "spice-protocol"]
> +	path = spice-protocol
> +	url = ../spice-protocol
> diff --git a/Makefile.am b/Makefile.am
> index c807359..6c27750 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -1,4 +1,7 @@
> +ACLOCAL_AMFLAGS = -I m4
> +
>  SUBDIRS = common server python_modules
> +DIST_SUBDIRS = spice-protocol $(SUBDIRS)
>  
>  if SUPPORT_CLIENT
>  SUBDIRS += client
> diff --git a/autogen.sh b/autogen.sh
> index 48ee9a2..0630e73 100755
> --- a/autogen.sh
> +++ b/autogen.sh
> @@ -1,166 +1,19 @@
> -#! /bin/sh
> +#!/bin/sh
>  
>  set -e # exit on errors
>  
> -# FIXME: can replace this entire script with
> -# the following line if we can require autoconf 2.60:
> -# autoreconf -v --force --install || exit 1
> -
> -PACKAGE=spice
> -
> -ACLOCAL_FLAGS=""
> -LIBTOOLIZE=${LIBTOOLIZE-libtoolize}
> -LIBTOOLIZE_FLAGS="--copy --force"
> -AUTOHEADER=${AUTOHEADER-autoheader}
> -AUTOMAKE=${AUTOMAKE-automake}
> -AUTOMAKE_FLAGS="--add-missing --gnu"
> -AUTOCONF=${AUTOCONF-autoconf}
> -
> -# automake 1.8 requires autoconf 2.58
> -# automake 1.7 requires autoconf 2.54
> -automake_min_vers=1.7
> -aclocal_min_vers=$automake_min_vers
> -autoconf_min_vers=2.54
> -libtoolize_min_vers=1.4
> -
> -# The awk-based string->number conversion we use needs a C locale to work
> -# as expected. Setting LC_ALL overrides whether the user set LC_ALL,
> -# LC_NUMERIC, or LANG.
> -LC_ALL=C
> -
> -ARGV0=$0
> -
> -# Allow invocation from a separate build directory; in that case, we change
> -# to the source directory to run the auto*, then change back before running configure
> -srcdir=`dirname $ARGV0`
> +srcdir=`dirname $0`
>  test -z "$srcdir" && srcdir=.
>  
> -ORIGDIR=`pwd`
> -cd $srcdir
> -
> -# Not all echo versions allow -n, so we check what is possible. This test is
> -# based on the one in autoconf.
> -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
> -  *c*,-n*) ECHO_N= ;;
> -  *c*,*  ) ECHO_N=-n ;;
> -  *)       ECHO_N= ;;
> -esac
> -
> -
> -# some terminal codes ...
> -boldface="`tput bold 2>/dev/null || true`"
> -normal="`tput sgr0 2>/dev/null || true`"
> -printbold() {
> -    echo $ECHO_N "$boldface"
> -    echo "$@"
> -    echo $ECHO_N "$normal"
> -}
> -printerr() {
> -    echo "$@" >&2
> -}
> -
> -
> -# Usage:
> -#     compare_versions MIN_VERSION ACTUAL_VERSION
> -# returns true if ACTUAL_VERSION >= MIN_VERSION
> -compare_versions() {
> -    ch_min_version=$1
> -    ch_actual_version=$2
> -    ch_status=0
> -    IFS="${IFS=         }"; ch_save_IFS="$IFS"; IFS="."
> -    set $ch_actual_version
> -    for ch_min in $ch_min_version; do
> -        ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes
> -        if [ -z "$ch_min" ]; then break; fi
> -        if [ -z "$ch_cur" ]; then ch_status=1; break; fi
> -        if [ $ch_cur -gt $ch_min ]; then break; fi
> -        if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi
> -    done
> -    IFS="$ch_save_IFS"
> -    return $ch_status
> -}
> +olddir=`pwd`
> +cd "$srcdir"
>  
> -# Usage:
> -#     version_check PACKAGE VARIABLE CHECKPROGS MIN_VERSION SOURCE
> -# checks to see if the package is available
> -version_check() {
> -    vc_package=$1
> -    vc_variable=$2
> -    vc_checkprogs=$3
> -    vc_min_version=$4
> -    vc_source=$5
> -    vc_status=1
> +git submodule init
> +git submodule update
>  
> -    vc_checkprog=`eval echo "\\$$vc_variable"`
> -    if [ -n "$vc_checkprog" ]; then
> -        printbold "using $vc_checkprog for $vc_package"
> -        return 0
> -    fi
> +autoreconf --verbose --force --install
>  
> -    printbold "checking for $vc_package >= $vc_min_version..."
> -    for vc_checkprog in $vc_checkprogs; do
> -        echo $ECHO_N "  testing $vc_checkprog... "
> -        if $vc_checkprog --version < /dev/null > /dev/null 2>&1; then
> -            vc_actual_version=`$vc_checkprog --version | head -n 1 | \
> -                               sed 's/^.*[ 	]\([0-9.]*[a-z]*\).*$/\1/'`
> -            if compare_versions $vc_min_version $vc_actual_version; then
> -                echo "found $vc_actual_version"
> -                # set variable
> -                eval "$vc_variable=$vc_checkprog"
> -                vc_status=0
> -                break
> -            else
> -                echo "too old (found version $vc_actual_version)"
> -            fi
> -        else
> -            echo "not found."
> -        fi
> -    done
> -    if [ "$vc_status" != 0 ]; then
> -        printerr "***Error***: You must have $vc_package >= $vc_min_version installed"
> -        printerr "  to build $PROJECT.  Download the appropriate package for"
> -        printerr "  from your distribution or get the source tarball at"
> -        printerr "    $vc_source"
> -        printerr
> -    fi
> -    return $vc_status
> -}
> -
> -version_check autoconf AUTOCONF $AUTOCONF $autoconf_min_vers \
> -    "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-${autoconf_min_vers}.tar.gz" || DIE=1
> -version_check automake AUTOMAKE "$AUTOMAKE automake automake-1.10 automake-1.9 automake-1.8 automake-1.7" $automake_min_vers \
> -    "http://ftp.gnu.org/pub/gnu/automake/automake-${automake_min_vers}.tar.gz" || DIE=1
> -ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/`
> -version_check libtool LIBTOOLIZE "$LIBTOOLIZE glibtoolize libtoolize" $libtoolize_min_vers \
> -    "http://ftp.gnu.org/pub/gnu/libtool/libtool-${libtool_min_vers}.tar.gz" || DIE=1
> -
> -if test -n "$DIE"; then
> -  exit 1
> -fi
> -
> -
> -if test -z "$*"; then
> -  echo "$ARGV0:	Note: \`./configure' will be run with no arguments."
> -  echo "		If you wish to pass any to it, please specify them on the"
> -  echo "		\`$0' command line."
> -  echo
> +cd "$olddir"
> +if [ -z "$NOCONFIGURE" ]; then
> +    "$srcdir"/configure --enable-maintainer-mode --enable-gtk-doc --with-gtk=3.0 $enable_vala ${1+"$@"}
>  fi
> -
> -do_cmd() {
> -    echo "$ARGV0: running \`$@'"
> -    $@
> -}
> -
> -# Run for top level directory
> -
> -printbold "Setting up $PACKAGE toplevel"
> -do_cmd $LIBTOOLIZE $LIBTOOLIZE_FLAGS
> -do_cmd $ACLOCAL $ACLOCAL_FLAGS
> -do_cmd $AUTOHEADER
> -do_cmd $AUTOMAKE $AUTOMAKE_FLAGS
> -do_cmd $AUTOCONF
> -
> -cd $ORIGDIR || exit $?
> -rm -f config.cache
> -
> -do_cmd $srcdir/configure --enable-maintainer-mode ${1+"$@"} || exit 1
> diff --git a/configure.ac b/configure.ac
> index b8acfa9..5552bd3 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -139,7 +139,8 @@ AM_CONDITIONAL(SUPPORT_AUTOMATED_TESTS, test "x$enable_automated_tests" != "xno"
>  dnl =========================================================================
>  dnl Check deps
>  
> -PKG_CHECK_MODULES(PROTOCOL, spice-protocol >= 0.10.1)
> +AC_CONFIG_SUBDIRS([spice-protocol])
> +PROTOCOL_CFLAGS='-I ${top_srcdir}/spice-protocol'
>  AC_SUBST(PROTOCOL_CFLAGS)
>  
>  AC_CHECK_LIBM
> @@ -179,6 +180,7 @@ AC_DEFINE_UNQUOTED([POSIX_YIELD_FUNC],$posix_yield_func,[The POSIX RT yield func
>  
>  SPICE_REQUIRES=""
>  
> +PKG_PROG_PKG_CONFIG
>  if test "x$enable_gui" = "xyes"; then
>      PKG_CHECK_MODULES(CEGUI06, CEGUI-0.6 >= 0.6.0 CEGUI-0.6 < 0.7.0,
>      [
> diff --git a/spice-protocol b/spice-protocol
> new file mode 160000
> index 0000000..d5edafd
> --- /dev/null
> +++ b/spice-protocol
> @@ -0,0 +1 @@
> +Subproject commit d5edafd28ab762b1b5f663aec449d3e3743f1184
> -- 
> 1.7.7.6
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20120301/606ed078/attachment-0001.pgp>


More information about the Spice-devel mailing list