avoiding undesired macro expansion after AS_TR_CPP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I would like to avoid undesired macro expansion on the result of AS_TR_CPP,
and cannot get it to work. Can someone help, please?

================================ configure.ac =============================
AC_INIT([dummy], [0])
AM_INIT_AUTOMAKE

dnl m4_define([FOO_BAR], [undesired substitution])

AC_DEFUN([MYCOND],
[
  AM_CONDITIONAL([LIBUNISTRING_]AS_TR_CPP([$1]), [true])
])

MYCOND([foo/bar])

AC_OUTPUT
============================================================================

After

  $ aclocal
  $ autoconf

everything looks fine.

Now uncomment the line 4 of configure.ac.

  $ autoconf
  configure.ac:11: error: AC_SUBST: `LIBUNISTRING_undesired substitution_TRUE' is not a valid shell variable name
  aclocal.m4:125: AM_CONDITIONAL is expanded from...
  configure.ac:6: MYCOND is expanded from...
  configure.ac:11: the top level

So I guess some more quoting is needed.

Attempt #1: Use brackets. Change line 8 to

  AM_CONDITIONAL([LIBUNISTRING_][AS_TR_CPP([$1])], [true])
  $ autoconf
  configure.ac:11: error: AC_SUBST: `LIBUNISTRING_AS_TR_CPP([foo/bar])_TRUE' is not a valid shell variable name
  aclocal.m4:125: AM_CONDITIONAL is expanded from...
  configure.ac:6: MYCOND is expanded from...
  configure.ac:11: the top level

Attempt #2: Use m4_quote. Change line 8 to

  AM_CONDITIONAL([LIBUNISTRING_]m4_quote(AS_TR_CPP([$1])), [true])
  $ autoconf
  configure.ac:11: error: AC_SUBST: `LIBUNISTRING_undesired substitution_TRUE' is not a valid shell variable name
  aclocal.m4:125: AM_CONDITIONAL is expanded from...
  configure.ac:6: MYCOND is expanded from...
  configure.ac:11: the top level

Attempt #3: Use m4_dquote. Change line 8 to

  AM_CONDITIONAL([LIBUNISTRING_]m4_dquote(AS_TR_CPP([$1])), [true])
  $ autoconf
  configure.ac:11: error: AC_SUBST: `LIBUNISTRING_[undesired substitution]_TRUE' is not a valid shell variable name
  aclocal.m4:125: AM_CONDITIONAL is expanded from...
  configure.ac:6: MYCOND is expanded from...
  configure.ac:11: the top level

Attempt #4: Use m4_quote and brackets. Change line 8 to

  AM_CONDITIONAL([LIBUNISTRING_]m4_quote([AS_TR_CPP([$1])]), [true])
  $ autoconf
  configure.ac:11: error: AC_SUBST: `LIBUNISTRING_AS_TR_CPP([foo/bar])_TRUE' is not a valid shell variable name
  aclocal.m4:125: AM_CONDITIONAL is expanded from...
  configure.ac:6: MYCOND is expanded from...
  configure.ac:11: the top level


Yes, I know I could write
  AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_$1]), [true])
but this feels like cheating, because it exploits a particular fact about the
AS_TR_CPP macro.

What am I missing?

Bruno

_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf


[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux