Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Brian Barrett (brbarret_at_[hidden])
Date: 2006-01-20 21:38:24


Ralf -

I'm running into some problems with the patch. Unfortunately, sed is
not my strong point. On Mac OS X 10.4 (possibly others), I get the
errors below. Any ideas? If you need a machine to play on, try
frood.osl.iu.edu -- your normal IU username / password should work.

Brian

[Running] aclocal
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T
sed: 9: " t clear
         : clear
         s/^m ...": invalid command code T

On Jan 18, 2006, at 1:22 PM, Ralf Wildenhues wrote:

> Hello there,
>
> Proposed below is a patch to remove the redundant instance of the
> version algorithm, together with some cleanup (for unification of
> the two algorithms, which have diverged a little) and a micro bit
> more efficiency.
>
> One could add a rebuilding rule to config/Makefile.am, if you think
> it's
> useful, just as Automake adds them for 'configure' and Makefiles.
>
> If you apply this, you should add config/ompi_get_version.m4sh to svn,
> and remove config/ompi_get_version.sh, as it's now a generated file.
> The latter should still be distributed so users don't need autom4te
> (done in patch below).
>
> In case ompi_get_version.sh may be used in other configure.ac files
> than
> the toplevel one, the script should be generated before autoconf is
> run
> there.
>
> Cheers,
> Ralf
>
> * config/ompi_get_version.m4sh: New (distributed) file, acts as
> input to
> ompi_get_version.sh. Common functionality factored in
> ompi_get_version.m4, generation done by autom4te in autogen.
>
> --- /dev/null 1970-01-01 12:00:00.000000000 +0000
> +++ config/ompi_get_version.m4sh 2006-01-18 20:57:14.000000000 +0100
> @@ -0,0 +1,98 @@
> +m4_define([_m4_divert(SCRIPT)], 100)
> +m4_divert_push([SCRIPT])dnl
> +#!/bin/sh
> +#
> +# ompi_get_version is created from ompi_get_version.m4 and
> ompi_get_version.m4sh.
> +#
> +# Copyright (c) 2004-2005 The Trustees of Indiana University and
> Indiana
> +# University Research and Technology
> +# Corporation. All rights reserved.
> +# Copyright (c) 2004-2005 The University of Tennessee and The
> University
> +# of Tennessee Research Foundation. All
> rights
> +# reserved.
> +# Copyright (c) 2004-2005 High Performance Computing Center
> Stuttgart,
> +# University of Stuttgart. All rights
> reserved.
> +# Copyright (c) 2004-2005 The Regents of the University of
> California.
> +# All rights reserved.
> +# $COPYRIGHT$
> +#
> +# Additional copyrights may follow
> +#
> +# $HEADER$
> +#
> +
> +m4_include([ompi_get_version.m4])
> +
> +srcfile="$1"
> +option="$2"
> +
> +case "$option" in
> + # svnversion can take a while to run. If we don't need it,
> don't run it.
> + --major|--minor|--release|--greek|--base|--help)
> + gv_need_svn=0
> + ;;
> + *)
> + gv_need_svn=1
> +esac
> +
> +
> +if test -z "$srcfile"; then
> + option="--help"
> +else
> + OMPI_GET_VERSION([$srcfile],[OMPI])
> +
> + if test "$option" = ""; then
> + option="--full"
> + fi
> +fi
> +
> +case "$option" in
> + --full|-v|--version)
> + echo $OMPI_VERSION
> + ;;
> + --major)
> + echo $OMPI_MAJOR_VERSION
> + ;;
> + --minor)
> + echo $OMPI_MINOR_VERSION
> + ;;
> + --release)
> + echo $OMPI_RELEASE_VERSION
> + ;;
> + --greek)
> + echo $OMPI_GREEK_VERSION
> + ;;
> + --svn)
> + echo $OMPI_SVN_R
> + ;;
> + --base)
> + echo $OMPI_BASE_VERSION
> + ;;
> + --all)
> + echo ${OMPI_VERSION} ${OMPI_MAJOR_VERSION} $
> {OMPI_MINOR_VERSION} ${OMPI_RELEASE_VERSION} ${OMPI_GREEK_VERSION} $
> {OMPI_SVN_R}
> + ;;
> + -h|--help)
> + cat <<EOF
> +$0 <srcfile> [<option>]
> +
> +<srcfile> - Text version file
> +<option> - One of:
> + --full - Full version number
> + --major - Major version number
> + --minor - Minor version number
> + --release - Release version number
> + --greek - Greek (alpha, beta, etc) version number
> + --svn - Subversion repository number
> + --all - Show all version numbers, separated by :
> + --base - Show base version number (no svn number)
> + --help - This message
> +EOF
> + ;;
> + *)
> + echo "Unrecognized option $option. Run $0 --help for
> options"
> + ;;
> +esac
> +
> +# All done
> +
> +exit 0
> Index: config/ompi_get_version.m4
> ===================================================================
> --- config/ompi_get_version.m4 (revision 8727)
> +++ config/ompi_get_version.m4 (working copy)
> @@ -18,32 +18,30 @@
> dnl
>
> dnl
> -dnl This file is almost identical in functionality to
> -dnl ompi_get_version.sh. It is unfortunate that we have to
> duplicate code,
> -dnl but it is really the only what that I can think to do it. :-
> ( Hence,
> -dnl if you change the logic here for determining version numbers,
> YOU MUST
> -dnl ALSO CHANGE IT IN ompi_get_version.sh!!
> -dnl
> +dnl This file is also used as input to ompi_get_version.sh.
> +dnl
>
> -AC_DEFUN([OMPI_GET_VERSION],[
> +m4_define([OMPI_GET_VERSION],[
> gv_ver_file="$1"
> gv_prefix="$2"
> +: ${gv_need_svn=0}
> +: ${srcdir=.}
>
> dnl quote eval to suppress macro expansion with non-GNU m4
>
> -gv_run() {
> - str="${gv_prefix}_${2}=\$gv_${1}"
> - [eval] $str
> -}
> -
> -if test -n "$gv_ver_file" -a -f "$gv_ver_file"; then
> - gv_major_version="`egrep '^major=' $gv_ver_file | cut -d= -f2`"
> - gv_minor_version="`egrep '^minor=' $gv_ver_file | cut -d= -f2`"
> - gv_release_version="`egrep '^release=' $gv_ver_file | cut -d= -
> f2`"
> - gv_greek_version="`egrep '^greek=' $gv_ver_file | cut -d= -f2`"
> - gv_want_svn="`egrep '^want_svn=' $gv_ver_file | cut -d= -f2`"
> - gv_svn_r="`egrep '^svn_r=' $gv_ver_file | cut -d= -f2`"
> -
> +if test -n "$gv_ver_file" && test -f "$gv_ver_file"; then
> + [eval] "`sed -n \"\
> + t clear
> + : clear
> + s/^major/gv_&_version/
> + s/^minor/gv_&_version/
> + s/^release/gv_&_version/
> + s/^greek/gv_&_version/
> + s/^want_svn/gv_&/
> + s/^svn_r/gv_&/
> + T
> + p\" < \"\$gv_ver_file\"`"
> +
> if test -n "$gv_release_version" -a "$gv_release_version" !=
> "0"; then
> gv_full_version="$gv_major_version.$gv_minor_version.
> $gv_release_version"
> else
> @@ -52,12 +50,14 @@
>
> gv_full_version="${gv_full_version}${gv_greek_version}"
>
> - if test "$gv_want_svn" = "1"; then
> - if test "$gv_svn_r" = "-1"; then
> + gv_base_version=$gv_full_version
> +
> + if test "$gv_want_svn" = 1 && test "$gv_need_svn" = 1; then
> + if test "$gv_svn_r" = -1; then
> if test -d "$srcdir/.svn"; then
> ver=r`svnversion "$srcdir"`
> # make sure svnversion worked
> - if test "$?" != "0" ; then
> + if test "$?" != 0 ; then
> ver=svn`date '+%m%d%Y'`
> fi
> else
> @@ -69,14 +69,14 @@
> fi
>
> # Set the values
> -
> - gv_run full_version VERSION
> - gv_run major_version MAJOR_VERSION
> - gv_run minor_version MINOR_VERSION
> - gv_run release_version RELEASE_VERSION
> - gv_run greek_version GREEK_VERSION
> - gv_run want_svn WANT_SVN
> - gv_run svn_r SVN_R
> + [eval] "${gv_prefix}_VERSION=\$gv_full_version
> + ${gv_prefix}_BASE_VERSION=\$gv_base_version
> + ${gv_prefix}_MAJOR_VERSION=\$gv_major_version
> + ${gv_prefix}_MINOR_VERSION=\$gv_minor_version
> + ${gv_prefix}_RELEASE_VERSION=\$gv_release_version
> + ${gv_prefix}_GREEK_VERSION=\$gv_greek_version
> + ${gv_prefix}_WANT_SVN=\$gv_want_svn
> + ${gv_prefix}_SVN_R=\$gv_svn_r"
> fi
>
> # Clean up
> Index: config/Makefile.am
> ===================================================================
> --- config/Makefile.am (revision 8727)
> +++ config/Makefile.am (working copy)
> @@ -49,6 +49,7 @@
> ompi_configure_options.m4 \
> ompi_functions.m4 \
> ompi_get_version.m4 \
> + ompi_get_version.m4sh \
> ompi_get_version.sh \
> ompi_make_stripped_flags.m4 \
> ompi_mca.m4 \
> Index: autogen.sh
> ===================================================================
> --- autogen.sh (revision 8727)
> +++ autogen.sh (working copy)
> @@ -40,6 +40,10 @@
> if test ! -z "$AUTOCONF"; then
> ompi_autoconf_search="$AUTOCONF"
> fi
> +ompi_autom4te_search="autom4te"
> +if test ! -z "$AUTOM4TE"; then
> + ompi_autom4te_search="$AUTOM4TE"
> +fi
> ompi_libtoolize_search="libtoolize;glibtoolize"
> if test ! -z "$LIBTOOLIZE"; then
> ompi_libtoolize_search="$LIBTOOLIZE"
> @@ -375,6 +379,12 @@
>
> echo "*** Running GNU tools"
>
> + if test -f include/mpi.h.in; then
> + cd config
> + run_and_check $ompi_autom4te --language=m4sh
> ompi_get_version.m4sh -o ompi_get_version.sh
> + cd ..
> + fi
> +
> run_and_check $ompi_aclocal
> if test "`grep AC_CONFIG_HEADER $file`" != "" -o \
> "`grep AM_CONFIG_HEADER $file`" != ""; then
> @@ -1088,6 +1098,7 @@
> fi
>
> # find all the apps we are going to run
> +find_app "autom4te"
> find_app "aclocal"
> find_app "autoheader"
> find_app "autoconf"
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel