On Mon, Feb 22, 2010 at 05:01:32PM -0700, Eric Blake wrote:
> Borrow ideas from gnulib/build-aux/bootstrap, in order to factor the
> specifics of libvirt into bootstrap.conf, while allowing future
> upgrades of bootstrap to happen with less effort.
>
> * bootstrap (gnulib_tool): Update invocation to be closer to
> gnulib's version. Move libvirt specifics...
> * bootstrap.conf: ...into new file.
> ---
>
> All manual edits at this point, but it creates a bootstrap.conf
> similar to the template in .gnulib/build-aux/bootstrap.conf.
>
> bootstrap | 133
> +++++++++++++++++++++++++++++++++-----------------------
> bootstrap.conf | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 203 insertions(+), 54 deletions(-)
> create mode 100644 bootstrap.conf
>
> diff --git a/bootstrap b/bootstrap
> index 113cc0f..269de3a 100755
> --- a/bootstrap
> +++ b/bootstrap
> @@ -20,6 +20,72 @@ Running without arguments will suffice in most cases.
> "
> }
>
> +# Configuration.
> +
> +# List of gnulib modules needed.
> +gnulib_modules=
> +
> +extract_package_name='
> + /^AC_INIT(/{
> + /.*,.*,.*, */{
> + s///
> + s/[][]//g
> + s/)$//
> + p
> + q
> + }
> + s/AC_INIT(\[*//
> + s/]*,.*//
> + s/^GNU //
> + y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
> + s/[^A-Za-z0-9_]/-/g
> + p
> + }
> +'
> +package=`sed -n "$extract_package_name" configure.ac` || exit
> +gnulib_name=lib$package
> +
> +build_aux=build-aux
> +source_base=lib
> +m4_base=m4
> +doc_base=doc
> +tests_base=tests
> +
> +# Extra files from gnulib, which override files from other sources.
> +gnulib_extra_files="
> + $build_aux/install-sh
> + $build_aux/missing
> + $build_aux/mdate-sh
> + $build_aux/texinfo.tex
> + $build_aux/depcomp
> + $build_aux/config.guess
> + $build_aux/config.sub
> + doc/INSTALL
> +"
> +
> +# Additional gnulib-tool options to use. Use "\newline" to break lines.
> +gnulib_tool_option_extras=
> +
> +# Other locale categories that need message catalogs.
> +EXTRA_LOCALE_CATEGORIES=
> +
> +# Additional xgettext options to use. Use "\\\newline" to break lines.
> +XGETTEXT_OPTIONS='\\\
> + --flag=_:1:pass-c-format\\\
> + --flag=N_:1:pass-c-format\\\
> + --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
> +'
> +
> +# Override the default configuration, if necessary.
> +# Make sure that bootstrap.conf is sourced from the current directory
> +# if we were invoked as "sh bootstrap".
> +case "$0" in
> + */*) test -r "$0.conf" && . "$0.conf" ;;
> + *) test -r "$0.conf" && . ./"$0.conf" ;;
> +esac
> +
> +# Parse options.
> +
> for option
> do
> case $option in
> @@ -64,57 +130,16 @@ esac
> gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
> <$gnulib_tool || exit
>
> -modules='
> -areadlink
> -base64
> -c-ctype
> -canonicalize-lgpl
> -close
> -connect
> -dirname-lgpl
> -getaddrinfo
> -gethostname
> -getpass
> -gettext
> -gitlog-to-changelog
> -gnumakefile
> -ignore-value
> -inet_pton
> -ioctl
> -maintainer-makefile
> -mkstemp
> -mktempd
> -perror
> -physmem
> -poll
> -posix-shell
> -recv
> -random_r
> -send
> -setsockopt
> -socket
> -stpcpy
> -strchrnul
> -strndup
> -strerror
> -strsep
> -sys_stat
> -time_r
> -useless-if-before-free
> -vasprintf
> -verify
> -vc-list-files
> -'
> -
> -# Tell gnulib to:
> -# require LGPLv2+
> -# put *.m4 files in new gnulib/m4/ dir
> -# put *.[ch] files in new gnulib/lib/ dir.
> -
> -$gnulib_tool \
> - --lgpl=2 \
> - --with-tests \
> - --m4-base=gnulib/m4 \
> - --source-base=gnulib/lib \
> - --tests-base=gnulib/tests \
> - --import $modules
> +gnulib_tool_options="\
> + --import\
> + --no-changelog\
> + --aux-dir $build_aux\
> + --doc-base $doc_base\
> + --lib $gnulib_name\
> + --m4-base $m4_base/\
> + --source-base $source_base/\
> + --tests-base $tests_base\
> + $gnulib_tool_option_extras\
> +"
> +echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
> +$gnulib_tool $gnulib_tool_options --import $gnulib_modules
> diff --git a/bootstrap.conf b/bootstrap.conf
> new file mode 100644
> index 0000000..fd3c1cb
> --- /dev/null
> +++ b/bootstrap.conf
> @@ -0,0 +1,124 @@
> +# Bootstrap configuration.
> +
> +# Copyright (C) 2010 Red Hat, Inc.
> +
> +# This library is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU Lesser General Public
> +# License as published by the Free Software Foundation; either
> +# version 2.1 of the License, or (at your option) any later version.
> +
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +
> +# You should have received a copy of the GNU Lesser General Public
> +# License along with this library; if not, write to the Free Software
> +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> +
> +
> +# gnulib modules used by this package.
> +gnulib_modules='
> +areadlink
> +base64
> +c-ctype
> +canonicalize-lgpl
> +close
> +connect
> +dirname-lgpl
> +getaddrinfo
> +gethostname
> +getpass
> +gettext
> +gitlog-to-changelog
> +gnumakefile
> +ignore-value
> +inet_pton
> +ioctl
> +maintainer-makefile
> +mkstemp
> +mktempd
> +perror
> +physmem
> +poll
> +posix-shell
> +recv
> +random_r
> +send
> +setsockopt
> +socket
> +stpcpy
> +strchrnul
> +strndup
> +strerror
> +strsep
> +sys_stat
> +time_r
> +useless-if-before-free
> +vasprintf
> +verify
> +vc-list-files
> +'
> +
> +# Additional xgettext options to use. Use "\\\newline" to break lines.
> +XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
> + --flag=virAsprintf:2:c-format\\\
> + --from-code=UTF-8\\\
> +'
> +
> +# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
> +# appears in configure.ac, exclude some unnecessary files.
> +# Without grep's -E option (not portable enough, pre-configure),
> +# the following test is ugly. Also, this depends on the existence
> +# of configure.ac, not the obsolescent-named configure.in. But if
> +# you're using this infrastructure, you should care about such things.
> +
> +gettext_external=0
> +grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
> + gettext_external=1
> +grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
> + gettext_external=1
> +
> +if test $gettext_external = 1; then
> + # Gettext supplies these files, but we don't need them since
> + # we don't have an intl subdirectory.
> + excluded_files='
> + m4/glibc2.m4
> + m4/intdiv0.m4
> + m4/lcmessage.m4
> + m4/uintmax_t.m4
> + m4/ulonglong.m4
> + m4/visibility.m4
> + '
> +fi
> +
> +# Tell gnulib to:
> +# require LGPLv2+
> +# put *.m4 files in new gnulib/m4/ dir
> +# put *.[ch] files in new gnulib/lib/ dir.
> +# import gnulib tests in new gnulib/tests/ dir.
> +gnulib_name=libgnu
> +m4_base=gnulib/m4
> +source_base=gnulib/lib
> +tests_base=gnulib/tests
> +gnulib_tool_option_extras="\
> + --lgpl=2\
> + --with-tests\
> +"
> +
> +# Build prerequisites
> +buildreq="\
> +autoconf 2.59
> +automake 1.9.6
> +autopoint -
> +gettext -
> +git 1.6.4
> +gzip -
> +libtool -
> +perl 5.5
> +rsync -
> +tar -
> +"
> +
> +# Automake requires that ChangeLog exist.
> +touch ChangeLog || exit 1
> --
ACK
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list