]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Undo many of the recent changes, substituting these instead:
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 24 Apr 2006 19:36:01 +0000 (19:36 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 24 Apr 2006 19:36:01 +0000 (19:36 +0000)
* doc/autoconf.texi (Programming in M4sh): Comment out the
documentation of AS_BASENAME, for now.
(Shell Substitutions): Do not use AS_DIRNAME in an example.
(Limitations of Builtins) <basename>: Do not refer to
AS_BASENAME.
* bin/autoconf.as (me): Don't use AS_BASENAME.
(dir): Remove the unused variable.
* lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED): Renamed from
AS_DETECT_REQUIRED.  All uses changed.
(_AS_DETECT_SUGGESTED): Renamed from AS_DETECT_SUGGESTED.
All uses changed.
(_AS_DETECT_BETTER_SHELL): Put ;; at the end of a case.
(AS_BASENAME): Use "basename --" to protect against leading "-".
(_AS_BASENAME_EXPR): Renamed from AS_BASENAME_EXPR.  All uses changed.
(_AS_BASENAME_SED): Renamed from AS_BASENAME_SED.  All uses changed.
(_AS_BASENAME_PREPARE): Reject implementations that cannot handle "--".
(_AS_DIRNAME_PREPARE): Likewise.
(_AS_DIRNAME_EXPR): Renamed from AS_DIRNAME_EXPR.  All uses changed.
(_AS_DIRNAME_SED): Renamed from AS_DIRNAME_SED.  All uses changed.
(AS_DIRNAME): Use "dirname --".

ChangeLog
doc/autoconf.texi
lib/autoconf/general.m4
lib/autoconf/status.m4
lib/m4sugar/m4sh.m4
tests/m4sh.at

index bde9073f8d8650ac40bccc3338f0b5b5b40e0dd0..5d90a6980f60a17117fd7a706ed7092e0d2c296c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,58 +1,47 @@
 2006-04-23  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * doc/autoconf.texi (Run Time): Document the exit status situation
-       with more accuracy and detail.
-
-       * NEWS: Remove mention of AS_VAR_SET_BASENAME and AS_VAR_SET_DIRNAME.
-       * doc/autoconf.texi (Programming in M4sh): Remove mention of
-       AS_VAR_SET_BASENAME, AS_VAR_SET_DIRNAME, and AS_BASENAME.
-       We have to keep AS_DIRNAME since it was part of a stable Autoconf,
-       but AS_BASENAME doesn't have to be supported.
-
-       * lib/m4sugar/m4sh.m4 (AS_BASENAME, AS_DIRNAME): Bring these back.
-
-2006-04-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * doc/autoconf.texi (Introduction): The GNU Autoconf Macro
-       Archive is not officially `GNU' any more.  Update URL.
-       (Defining Directories): Likewise
-       * lib/autoconf/c.m4 (AC_C_RESTRICT): Update URL.
-
-2006-04-22  Paul Eggert  <eggert@cs.ucla.edu>
-
-       * NEWS: Remove AS_DIRNAME and AS_BASENAME, replacing them with
-       AS_VAR_SET_DIRNAME and AS_VAR_SET_BASENAME.
-       * doc/autoconf.texi (Programming in M4sh): Document this.  All uses
-       changed.  The newer interfaces are more reliable, as they allow
-       implementations that handle trailing newline correctly.  For now,
-       we're in a freeze, so I did not include the more-reliable
-       implementations, but I wanted to correct the interface before 2.60
-       goes out.
+       Prepare for deprecation of AS_BASENAME and AS_DIRNAME, and fix
+       a few minor bugs in this area.
+
+       * doc/autoconf.texi (Programming in M4sh): Comment out the
+       documentation of AS_BASENAME, for now.
+       (Shell Substitutions): Do not use AS_DIRNAME in an example.
+       (Limitations of Builtins) <basename>: Do not refer to
+       AS_BASENAME.
+       * bin/autoconf.as (me): Don't use AS_BASENAME.
+       (dir): Remove the unused variable.
        * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED): Renamed from
        AS_DETECT_REQUIRED.  All uses changed.
        (_AS_DETECT_SUGGESTED): Renamed from AS_DETECT_SUGGESTED.
        All uses changed.
        (_AS_DETECT_BETTER_SHELL): Put ;; at the end of a case.
-       (_AS_BASENAME): Renamed from AS_BASENAME.  All uses changed.
-       Use "basename --" to protect against leading "-".
+       (AS_BASENAME): Use "basename --" to protect against leading "-".
        (_AS_BASENAME_EXPR): Renamed from AS_BASENAME_EXPR.  All uses changed.
        (_AS_BASENAME_SED): Renamed from AS_BASENAME_SED.  All uses changed.
        (_AS_BASENAME_PREPARE): Reject implementations that cannot handle "--".
        (_AS_DIRNAME_PREPARE): Likewise.
-       (_AS_DIRNAME): Renamed from AS_DIRNAME.  All uses changed.
        (_AS_DIRNAME_EXPR): Renamed from AS_DIRNAME_EXPR.  All uses changed.
        (_AS_DIRNAME_SED): Renamed from AS_DIRNAME_SED.  All uses changed.
-       Use "dirname --".
-       (AS_VAR_SET_BASENAME, AS_VAR_SET_DIRNAME): New macros.
-       * tests/m4sh.at (AS_VAR_SET_DIRNAME): Renamed from AS_DIRNAME.
-       Test the new API.  Don't test internals, since they're probably
-       going to change anyway.
-       (AS_VAR_SET_BASENAME): Likewise, renamed from AS_BASENAME.
-
-       * bin/autoconf.as: Don't use AS_BASENAME or AS_DIRNAME.  This
-       removes a bootstrapping problem with the changes described above.
-       The AS_DIRNAME part wasn't used, anyway, and the AS_BASENAME
-       part can be done portably without all the deep Autoconf magic.
+       (AS_DIRNAME): Use "dirname --".
+
+2006-04-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/autoconf.texi (Runtime): Renamed from "Run Time".  All uses
+       of "run time" and "run-time" changed to "runtime", for consistency.
+       * lib/autoconf/fortran.m4: Likewise (in comment).
+       * lib/autoconf/functions.m4: Likewise.
+       * lib/autoconf/general.m4: Likewise.
+       * lib/autoconf/headers.m4: Likewise.
+
+       * doc/autoconf.texi (Run Time): Document the exit status situation
+       with more accuracy and detail.
+
+2006-04-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * doc/autoconf.texi (Introduction): The GNU Autoconf Macro
+       Archive is not officially `GNU' any more.  Update URL.
+       (Defining Directories): Likewise
+       * lib/autoconf/c.m4 (AC_C_RESTRICT): Update URL.
 
 2006-04-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
index 1e3791d24615ff88c1b139ba46af1990a5466b60..9b63c6a7c09687325aa85ece14e82280a68bc763 100644 (file)
@@ -9666,6 +9666,16 @@ For the time being, it is not mature enough to be widely used.
 M4sh provides portable alternatives for some common shell constructs
 that unfortunately are not portable in practice.
 
+@c Deprecated, to be replaced by a better API
+@ignore
+@defmac AS_BASENAME (@var{file-name})
+@asindex{BASENAME}
+Output the non-directory portion of @var{file-name}.  For example,
+if @code{$file} is @samp{/one/two/three}, the command
+@code{base=`AS_BASENAME(["$file"])`} sets @code{base} to @samp{three}.
+@end defmac
+@end ignore
+
 @defmac AS_BOURNE_COMPATIBLE
 @asindex{BOURNE_COMPATIBLE}
 Set up the shell to be more compatible with the Bourne shell as
@@ -12483,6 +12493,27 @@ fields in a record.  You may be able to circumvent this problem by using
 Not all hosts have a working @command{basename}.
 You can use @command{expr} instead.
 
+@c AS_BASENAME is to be replaced by a better API.
+@ignore
+Not all hosts have a working @command{basename}, and you should instead
+use @code{AS_BASENAME} (@pxref{Programming in M4sh}), followed by
+@command{expr} if you need to strip a suffix.  For example:
+
+@example
+a=`basename "$aname"`       # This is not portable.
+a=`AS_BASENAME(["$aname"])` # This is more portable.
+
+# This is not portable.
+c=`basename "$cname" .c`
+
+# This is more portable.
+c=`AS_BASENAME(["$cname"])`
+case $c in
+?*.c) c=`expr "X$c" : 'X\(.*\)\.c'`;;
+esac
+@end example
+@end ignore
+
 
 @item @command{cat}
 @c ----------------
index 2c1bae8aa1360f6e52ebd842aee1aefdf20b635a..73174085e13f0fb7a3e38f97aa34b36f75947455 100644 (file)
@@ -440,8 +440,8 @@ dnl We reimplement AC_MSG_CHECKING (mostly) to avoid the ... in the middle.
   _AS_ECHO_N([checking for prefix by ])
   AC_PATH_PROG(ac_prefix_program, [$1])
   if test -n "$ac_prefix_program"; then
-    AS_VAR_SET_DIRNAME([prefix], ["$ac_prefix_program"])
-    AS_VAR_SET_DIRNAME([prefix], ["$prefix"])
+    prefix=`AS_DIRNAME(["$ac_prefix_program"])`
+    prefix=`AS_DIRNAME(["$prefix"])`
   fi
 fi
 ])# AC_PREFIX_PROGRAM
@@ -489,7 +489,7 @@ m4_divert_push([PARSE_ARGS])dnl
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then the parent directory.
-  AS_VAR_SET_DIRNAME([ac_confdir], ["$[0]"])
+  ac_confdir=`AS_DIRNAME(["$[0]"])`
   srcdir=$ac_confdir
   if test ! -r "$srcdir/$ac_unique_file"; then
     srcdir=..
index 221576672ff6ebe672cf1b3cab78f46692cf5a77..a0239a518fc70e61562694ff5690f89dfdc753d8 100644 (file)
@@ -1427,7 +1427,7 @@ do
     ;;
   esac
 
-  AS_VAR_SET_DIRNAME([ac_dir], ["$ac_file"])
+  ac_dir=`AS_DIRNAME(["$ac_file"])`
   AS_MKDIR_P(["$ac_dir"])
   _AC_SRCDIRS(["$ac_dir"])
 
index 2baec9c53e47b20e73b102b5586608666e3af262..35aba585ea868f0f17ca684474cd1b992b61c5f8 100644 (file)
@@ -382,7 +382,7 @@ _AS_EXPR_PREPARE
 _AS_BASENAME_PREPARE
 
 # Name of the executable.
-AS_VAR_SET_BASENAME([as_me], [$[0]])
+as_me=`AS_BASENAME("$[0]")`
 
 # CDPATH.
 $as_unset CDPATH
@@ -659,8 +659,8 @@ m4_define([AS_ERROR],
 # This section is lexicographically sorted.
 
 
-# _AS_BASENAME(FILE-NAME)
-# -----------------------
+# AS_BASENAME(FILE-NAME)
+# ----------------------
 # Simulate the command 'basename FILE-NAME'.  Not all systems have basename.
 # Also see the comments for AS_DIRNAME.
 
@@ -686,24 +686,19 @@ m4_defun([_AS_BASENAME_SED],
          }
          s/.*/./; q']])
 
-m4_defun([_AS_BASENAME],
-[AS_REQUIRE([$0_PREPARE])dnl
+m4_defun([AS_BASENAME],
+[AS_REQUIRE([_$0_PREPARE])dnl
 $as_basename -- $1 ||
 _AS_BASENAME_EXPR([$1]) 2>/dev/null ||
 _AS_BASENAME_SED([$1])])
 
-# Some programs rely on _AS_BASENAME being called AS_BASENAME.
-# They should be rewritten to use AS_VAR_SET_BASENAME, but in
-# the meantime we'll leave AS_BASENAME in as an undocumented macro.
-m4_defun([AS_BASENAME], [_AS_BASENAME([$1])])
-
 
 # _AS_BASENAME_PREPARE
 # --------------------
 # Avoid Solaris 9 /usr/ucb/basename, as `basename /' outputs an empty line.
 # Also, traditional basename mishandles --.
 m4_defun([_AS_BASENAME_PREPARE],
-[if as_basename=`(basename -- /) 2>&1` && test "X$as_basename" = "X/"; then
+[if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
   as_basename=basename
 else
   as_basename=false
@@ -711,8 +706,8 @@ fi
 ])# _AS_BASENAME_PREPARE
 
 
-# _AS_DIRNAME(FILE-NAME)
-# ----------------------
+# AS_DIRNAME(FILE-NAME)
+# ---------------------
 # Simulate the command 'dirname FILE-NAME'.  Not all systems have dirname.
 # This macro must be usable from inside ` `.
 #
@@ -749,17 +744,12 @@ m4_defun([_AS_DIRNAME_SED],
          }
          s/.*/./; q']])
 
-m4_defun([_AS_DIRNAME],
-[AS_REQUIRE([$0_PREPARE])dnl
+m4_defun([AS_DIRNAME],
+[AS_REQUIRE([_$0_PREPARE])dnl
 $as_dirname -- $1 ||
 _AS_DIRNAME_EXPR([$1]) 2>/dev/null ||
 _AS_DIRNAME_SED([$1])])
 
-# Some programs rely on _AS_DIRNAME being called AS_DIRNAME.
-# They should be rewritten to use AS_VAR_SET_DIRNAME, but in
-# the meantime we'll leave AS_DIRNAME in as an undocumented macro.
-m4_defun([AS_DIRNAME], [_AS_DIRNAME([$1])])
-
 
 # _AS_DIRNAME_PREPARE
 # --------------------
@@ -917,7 +907,7 @@ m4_define([AS_MKDIR_P],
     as_dirs=
     while test ! -d "$as_dir"; do
       as_dirs="$as_dir $as_dirs"
-      AS_VAR_SET_DIRNAME([as_dir], ["$as_dir"])
+      as_dir=`AS_DIRNAME("$as_dir")`
     done
     test ! -n "$as_dirs" || mkdir $as_dirs
   fi || AS_ERROR([cannot create directory $1]); }dnl
@@ -1020,22 +1010,6 @@ rm -f conf$$.file
 ])# _AS_TEST_PREPARE
 
 
-# AS_VAR_SET_BASENAME(VARIABLE, FILE-NAME)
-# ----------------------------------------
-# Simulate VARIABLE=`basename FILE-NAME`.
-m4_defun([AS_VAR_SET_BASENAME],
-[$1=$2
-$1=`_AS_BASENAME(["$$1"])`])
-
-
-# AS_VAR_SET_DIRNAME(VARIABLE, FILE-NAME)
-# ---------------------------------------
-# Simulate the command VARIABLE=`dirname FILE-NAME`.
-m4_defun([AS_VAR_SET_DIRNAME],
-[$1=$2
-$1=`_AS_DIRNAME(["$$1"])`])
-
-
 
 
 ## ------------------ ##
index 2f51e7029f96f17d6ff98cbad1835e648510237f..7339fc941e0b9ca98c8b4b31525118fd9b1906c0 100644 (file)
@@ -95,20 +95,32 @@ AT_CLEANUP
 
 
 
-## -------------------- ##
-## AS_VAR_SET_DIRNAME.  ##
-## -------------------- ##
+## ------------ ##
+## AS_DIRNAME.  ##
+## ------------ ##
 
 # Build nested dirs.
-AT_SETUP([AS@&t@_VAR_SET_DIRNAME])
+AT_SETUP([AS@&t@_DIRNAME])
 
 AT_DATA_M4SH([script.as],
 [[AS_INIT
 
+# The EXPR variant is allowed to fail if `expr' was considered as too
+# weak for us, in which case `as_expr=false'.
 m4_define([DIRNAME_TEST],
-[AS_VAR_SET_DIRNAME([dir], [$1])
+[dir=`AS_DIRNAME([$1])`
+test "$dir" = "$2" || (test -n "$3" && test "$dir" = "$3") ||
+  echo "dirname($1) = $dir instead of $2" >&2
+
+if test "$as_expr" != false; then
+  dir=`_AS_DIRNAME_EXPR([$1])`
+  test "$dir" = "$2" || (test -n "$3" && test "$dir" = "$3") ||
+    echo "dirname_expr($1) = $dir instead of $2" >&2
+fi
+
+dir=`_AS_DIRNAME_SED([$1])`
 test "$dir" = "$2" || (test -n "$3" && test "$dir" = "$3") ||
-  echo "dirname($1) = $dir instead of $2" >&2])
+  echo "dirname_sed($1) = $dir instead of $2" >&2])
 
 DIRNAME_TEST([/],              [/])
 DIRNAME_TEST([//],             [//],   [/])
@@ -143,20 +155,24 @@ AT_CLEANUP
 
 
 
-## --------------------- ##
-## AS_VAR_SET_BASENAME.  ##
-## --------------------- ##
+## ------------- ##
+## AS_BASENAME.  ##
+## ------------- ##
 
 # Build nested dirs.
-AT_SETUP([AS@&t@_VAR_SET_BASENAME])
+AT_SETUP([AS@&t@_BASENAME])
 
 AT_DATA_M4SH([script.as],
 [[AS_INIT
 
 m4_define([BASENAME_TEST],
-[AS_VAR_SET_BASENAME([base], [$1])
+[base=`AS_BASENAME([$1])`
+test "$base" = "$2" ||
+  echo "basename($1) = $base instead of $2" >&2
+
+base=`_AS_BASENAME_SED([$1])`
 test "$base" = "$2" ||
-  echo "basename($1) = $base instead of $2" >&2])
+  echo "basename_sed($1) = $base instead of $2" >&2])
 
 BASENAME_TEST([//1],             [1])
 BASENAME_TEST([/1],              [1])