[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?
From: |
Stepan Kasal |
Subject: |
Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"? |
Date: |
Tue, 11 Jan 2005 11:09:53 +0100 |
User-agent: |
Mutt/1.4.1i |
Hi Bruce,
On Mon, Jan 10, 2005 at 08:35:27AM -0800, Bruce Korb wrote:
> > if [some-shell-script-test]
> > then
> > ...
> > AM_CONDITIONAL([XXX], [true])
> > else
> > ...
> > AM_CONDITIONAL([XXX], [false])
> > fi
> reading the docs some more, they explicitly state to not do this.
I re-read the node ``Conditionals'' of automake manual (CVS version) just
now. I don't see any problem:
``you must arrange for _every_ `AM_CONDITIONAL' to be invoked every
time `configure' is run''
and you are doing this.
But Ralf said that this practice is not reliable, and I'd believe his
experience.
If I can add a bit of my experience, then I witness that using commands
`true' or `false' as the second part of AM_CONDITIONAL is often sign
of bad style. This might apply to your ``set_XXX'' too. Let me explain:
You said:
> This is more-or-less exactly what is going on, except that
> the "some-shell-script-test" includes (but is not exactly
> limited to) some compile-and-link macros.
Oh, then the following if should not probably test for `$?', but for
a variable value, or something else which represents the result of the
previous tests.
In most cases, you can follow this pattern:
AC_CHECK_FOR_ELEPHANTS(...)
if test "x$ELEPHANTS_FOUND" = xyes; then
...
else
...
fi
AM_CONDITIONAL([XXX], [test "x$ELEPHANTS_FOUND" = xyes])
or perhaps this pattern:
AC_CHECK_FOR_ELEPHANTS(...)
HAVE_ELEPHANTS=yes
case $ELEPHANT_TYPE in
indian)
...;;
african)
...;;
*)
HAVE_ELEPHANTS=no;;
esac
AM_CONDITIONAL([HAVE_ELEPHANTS], [test $HAVE_ELEPHANTS = yes])
AM_CONDITIONAL([INDIAN_ELEPHANTS], [test "x$ELEPHANT_TYPE" = xindian])
A side note: yes, you could set HAVE_ELEPHANTS to `true' or `false' here
and call ``AM_CONDITIONAL([HAVE_ELEPHANTS], [$HAVE_ELEPHANTS])''.
It's a matter of taste.
Another side note: this example probably explains the Ralf's recommendation
to have AM_CONDITIONALa out of any if is right: you could easily imagine
that one forgets to set INDIAN_ELEPHANTS when no elephants are available.
Have a nice day,
Stepan
- What is meant by, "XXX does not appear in AM_CONDITIONAL"?, Bruce Korb, 2005/01/08
- Never mind: Re: What is meant by, "XXX does not appear, Bruce Korb, 2005/01/08
- Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?, Alexandre Duret-Lutz, 2005/01/08
- Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?, Bruce Korb, 2005/01/08
- Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?, Stepan Kasal, 2005/01/10
- Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?, Bruce Korb, 2005/01/10
- Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?, Ralf Corsepius, 2005/01/11
- Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?,
Stepan Kasal <=
- Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?, Ralf Corsepius, 2005/01/11
- Re: What is meant by, "XXX does not appear in AM_CONDITIONAL"?, Alexandre Duret-Lutz, 2005/01/13