[HarfBuzz] question about new autogen.sh

suzuki toshiya mpsuzuki at hiroshima-u.ac.jp
Sun Jan 9 23:17:56 PST 2011


Dear Behdad,

The latest commit reduces autogen.sh extremely (using
autoreconf only), and it fails on my Debian GNU/Linux
system. What is wrong?


$ sh -x ./autogen.sh
+ test -n ''
++ dirname ./autogen.sh
+ srcdir=.
+ test -n .
++ pwd
+ olddir=/media/usbdisk/tmp/harfbuzz-ng
+ cd .
++ which autoreconf
+ AUTORECONF=/usr/bin/autoreconf
+ test -z /usr/bin/autoreconf
+ autoreconf --force --install
aclocal: couldn't open directory `m4': No such file or directory
autoreconf: aclocal failed with exit status: 1
+ exit 1

$ autoreconf --version
autoreconf (GNU Autoconf) 2.63
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later
<http://gnu.org/licenses/old-licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.

Regards,
mpsuzuki

Behdad Esfahbod wrote:
>  Makefile.am     |    2 
>  autogen.sh      |  188 +++-----------------------------------------------------
>  configure.ac    |   22 ++++--
>  src/Makefile.am |    7 +-
>  4 files changed, 33 insertions(+), 186 deletions(-)
> 
> New commits:
> commit 7bbe14bed8a886ea5b293c927c4bf937cbfc6f51
> Author: Behdad Esfahbod <behdad at behdad.org>
> Date:   Sun Jan 9 22:29:14 2011 -0500
> 
>     Fix 'make distcheck'
> 
> diff --git a/src/Makefile.am b/src/Makefile.am
> index ae9cf4c..751465d 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -1,7 +1,7 @@
>  # Process this file with automake to produce Makefile.in
>  
>  NULL =
> -EXTRA_DIST = 
> +EXTRA_DIST =
>  
>  # The following warning options are useful for debugging: -Wpadded -Wcast-align
>  #AM_CXXFLAGS =
> @@ -119,7 +119,7 @@ test_SOURCES = test.c
>  test_CPPFLAGS = $(HBCFLAGS)
>  test_LDADD = libharfbuzz.la $(HBLIBS)
>  
> -TESTS = \
> +dist_check_SCRIPTS = \
>  	check-c-linkage-decls.sh \
>  	check-header-guards.sh \
>  	check-internal-symbols.sh \
> @@ -127,7 +127,8 @@ TESTS = \
>  
>  if HAVE_ICU
>  else
> -TESTS += check-libstdc++.sh
> +dist_check_SCRIPTS += check-libstdc++.sh
>  endif
>  
> +
>  -include $(top_srcdir)/git.mk
> commit 2abe1264a580858bf7803af1701117a462375fb4
> Author: Javier Jardón <jjardon at gnome.org>
> Date:   Sun Jan 9 22:18:53 2011 -0500
> 
>     Bug 31174 - Update autotools configuration
> 
> diff --git a/Makefile.am b/Makefile.am
> index e81c0bc..8ec2c1e 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -1,3 +1,5 @@
> +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
> +
>  SUBDIRS = src
>  
>  pkgconfigdir = $(libdir)/pkgconfig
> diff --git a/autogen.sh b/autogen.sh
> index fb0148b..f207aa7 100755
> --- a/autogen.sh
> +++ b/autogen.sh
> @@ -1,185 +1,19 @@
>  #!/bin/sh
>  # Run this to generate all the initial makefiles, etc.
> -set -e
>  
> -ARGV0=$0
> +test -n "$srcdir" || srcdir=`dirname "$0"`
> +test -n "$srcdir" || srcdir=.
>  
> -# 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`
> -test -z "$srcdir" && srcdir=.
> -
> -ORIGDIR=`pwd`
> +olddir=`pwd`
>  cd $srcdir
>  
> -PACKAGE=harfbuzz
> -
> -LIBTOOLIZE_FLAGS="--copy --force --automake"
> -ACLOCAL_FLAGS=""
> -AUTOHEADER=${AUTOHEADER-autoheader}
> -GTKDOCIZE_FLAGS="--copy"
> -GTKDOCIZE=${GTKDOCIZE-gtkdocize}
> -AUTOMAKE_FLAGS="--add-missing --gnu -Wall"
> -AUTOCONF=${AUTOCONF-autoconf}
> -
> -CONFIGURE_AC=
> -test -f configure.ac && CONFIGURE_AC=configure.ac
> -
> -if test "X$CONFIGURE_AC" = X; then
> -  echo "$ARGV0: ERROR: No $srcdir/configure.in or $srcdir/configure.ac found."
> -  exit 1
> +AUTORECONF=`which autoreconf`
> +if test -z $AUTORECONF; then
> +	echo "*** No autoreconf found, please install it ***"
> +	exit 1
> +else
> +	autoreconf --force --install || exit $?
>  fi
>  
> -extract_version() {
> -	grep "^ *$1" "$CONFIGURE_AC" | sed 's/.*(\[*\([^])]*\)]*).*/\1/'
> -}
> -
> -autoconf_min_vers=`extract_version AC_PREREQ`
> -automake_min_vers=`extract_version AM_INIT_AUTOMAKE`
> -libtoolize_min_vers=`extract_version AC_PROG_LIBTOOL`
> -aclocal_min_vers=$automake_min_vers
> -
> -
> -# 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
> -}
> -
> -# 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
> -
> -    vc_checkprog=`eval echo "\\$$vc_variable"`
> -    if [ -n "$vc_checkprog" ]; then
> -	printbold "using $vc_checkprog for $vc_package"
> -	return 0
> -    fi
> -
> -    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
> -
> -#
> -# Hunt for an appropriate version of automake and aclocal; we can't
> -# assume that 'automake' is necessarily the most recent installed version
> -#
> -# We check automake first to allow it to be a newer version than we know about.
> -#
> -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
> -fi
> -
> -do_cmd() {
> -    echo "$ARGV0: running \`$@'"
> -    $@
> -}
> -
> -do_cmd $LIBTOOLIZE $LIBTOOLIZE_FLAGS
> -
> -do_cmd $ACLOCAL $ACLOCAL_FLAGS
> -
> -do_cmd $AUTOHEADER
> -
> -touch ChangeLog
> -
> -#do_cmd $GTKDOCIZE $GTKDOCIZE_FLAGS
> -
> -do_cmd $AUTOMAKE $AUTOMAKE_FLAGS
> -
> -do_cmd $AUTOCONF
> -
> -cd "$ORIGDIR" || exit 1
> -
> -rm -f config.cache
> -
> -do_cmd $srcdir/configure \
> -	${1+"$@"} && echo "Now type \`make' to compile $PROJECT." || exit 1
> +cd $olddir
> +test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
> diff --git a/configure.ac b/configure.ac
> index 8f308dc..3c0d7af 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1,17 +1,27 @@
> -AC_PREREQ(2.59)
> -AC_INIT(harfbuzz, 0.3, [http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz])
> +AC_PREREQ([2.64])
> +AC_INIT([harfbuzz],
> +        [0.3],
> +        [http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
> +        [harfbuzz],
> +        [http://freedesktop.org/wiki/Software/harfbuzz])
> +
>  AC_CONFIG_SRCDIR([harfbuzz.pc.in])
>  AC_CONFIG_HEADERS([config.h])
> -AM_INIT_AUTOMAKE([1.9.6 gnu dist-bzip2 no-dist-gzip -Wall no-define])
> -m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
> +AC_CONFIG_MACRO_DIR([m4])
> +
> +AM_INIT_AUTOMAKE([1.11.1 gnu dist-bzip2 no-dist-gzip -Wall no-define])
>  
> -AC_LIBTOOL_WIN32_DLL
> -AC_PROG_LIBTOOL dnl ([1.4]) Don't remove!
> +AM_SILENT_RULES([yes])
>  
> +# Check for programs
>  AC_PROG_CC
>  AM_PROG_CC_C_O
>  AC_PROG_CXX
>  
> +# Initialize libtool
> +LT_PREREQ([2.2])
> +LT_INIT([win32-dll])
> +
>  AC_CHECK_FUNCS(mprotect sysconf getpagesize)
>  AC_CHECK_HEADERS(unistd.h sys/mman.h)
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/harfbuzz




More information about the HarfBuzz mailing list