Hello,
AC_CONFIG_LIBOBJ_DIR contains m4_bmatch call which ensures
that the dir name doesn't start with
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789
which is not much probable, indeed. :-)
This was an obvious mistake; but it's not so clear how a good solution
should look like.
One possible solutions is in the patch attached to this mail.
(I made this patch last week, but I presented it in an unrelated thread.
So I repost it here, with proper explanation.)
Have a nice day,
Stepan Kasal
2005-04-20 Stepan Kasal <[EMAIL PROTECTED]>
* lib/autoconf/general.m4 (AC_CONFIG_LIBOBJ_DIR): Really check whether
the given path looks sane.
* lib/m4sugar/m4sugar.m4 (m4_bmatch): Halt with error if we don't get
enough arguments, similarly as m4_bpatsubsts.
(m4_re_relative_path): New macro; matches well named subdirectory of
the package.
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.851
diff -u -r1.851 general.m4
--- lib/autoconf/general.m4 20 Apr 2005 05:34:25 -0000 1.851
+++ lib/autoconf/general.m4 20 Apr 2005 08:27:18 -0000
@@ -2501,9 +2501,9 @@
# -----------------------------
# Announce LIBOBJ replacement files are in $top_srcdir/DIRNAME.
AC_DEFUN_ONCE([AC_CONFIG_LIBOBJ_DIR],
-[m4_bmatch([$1], [^]m4_defn([m4_cr_symbols2]),
- [AC_WARNING([invalid replacement directory: $1])])dnl
-m4_divert_text([DEFAULTS], [ac_config_libobj_dir=$1])[]dnl
+[m4_bmatch([$1], m4_defn([m4_re_relative_path]),
+ [m4_divert_text([DEFAULTS], [ac_config_libobj_dir=$1])],
+ [AC_WARNING([invalid replacement directory: $1])])[]dnl
])
Index: lib/m4sugar/m4sugar.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/m4sugar/m4sugar.m4,v
retrieving revision 2.84
diff -u -r2.84 m4sugar.m4
--- lib/m4sugar/m4sugar.m4 19 Apr 2005 06:20:38 -0000 2.84
+++ lib/m4sugar/m4sugar.m4 20 Apr 2005 08:27:19 -0000
@@ -374,8 +374,8 @@
# All the values are optional, and the macro is robust to active symbols
# properly quoted.
m4_define([m4_bmatch],
-[m4_if([$#], 0, [],
- [$#], 1, [],
+[m4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
+ [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])],
[$#], 2, [$2],
[m4_if(m4_bregexp([$1], [$2]), -1, [$0([$1], m4_shiftn(3, $@))],
[$3])])])
@@ -1343,6 +1343,17 @@
)
+# m4_re_relative_path
+# -------------------
+# Regexp for `^[-.a-zA-Z_0-9][-.a-zA-Z_0-9/]*$'
+m4_define([m4_re_relative_path],
+[^]dnl
+m4_dquote([-.]m4_defn([m4_cr_symbols2]))dnl
+m4_dquote([-.]m4_defn([m4_cr_symbols2])/)dnl
+[*$]dnl
+)
+
+
# m4_tolower(STRING)
# m4_toupper(STRING)
# ------------------