fi
# NLS nuisances.
-$ac_unset LANG || test ${LANG+set} != set || LANG=C && export LANG
-$ac_unset LC_ALL || test ${LC_ALL+set} != set || LC_ALL=C && export LC_ALL
-$ac_unset LC_CTYPE || test ${LC_CTYPE+set} != set || LC_CTYPE=C && export LC_CTYPE
-$ac_unset LC_MESSAGES || test ${LC_MESSAGES+set} != set || LC_MESSAGES=C && export LC_MESSAGES
+$ac_unset LANG || test "${LANG+set}" != set || LANG=C && export LANG
+$ac_unset LC_ALL || test "${LC_ALL+set}" != set || LC_ALL=C && export LC_ALL
+$ac_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || LC_CTYPE=C && export LC_CTYPE
+$ac_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || LC_MESSAGES=C && export LC_MESSAGES
# IFS
# We need space, tab and new line, in precisely that order.
IFS=" $ac_nl"
# CDPATH.
-$ac_unset CDPATH || test ${CDPATH+set} != set || CDPATH=: && export CDPATH
+$ac_unset CDPATH || test "${CDPATH+set}" != set || CDPATH=: && export CDPATH
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
The following answer is based on one written by Richard Pixley:
+@quotation
Autoconf generated scripts frequently work on machines which it has
never been set up to handle before. That is, it does a good job of
inferring a configuration for a new system. Imake cannot do this.
Imake templates are a form of standardization. The @sc{gnu} coding
standards address the same issues without necessarily imposing the same
restrictions.
+@end quotation
+
Here is some further explanation, written by Per Bothner:
+@quotation
One of the advantages of Imake is that it easy to generate large
Makefiles using @code{cpp}'s @samp{#include} and macro mechanisms.
However, @code{cpp} is not programmable: it has limited conditional
@code{cpp}. The shell is fully programmable, has macro substitution,
can execute (or source) other shell scripts, and can inspect its
environment.
+@end quotation
+
Paul Eggert elaborates more:
+@quotation
With Autoconf, installers need not assume that Imake itself is already
installed and working well. This may not seem like much of an advantage
to people who are accustomed to Imake. But on many hosts Imake is not
which uses the general-purpose preprocessor @code{m4}, and where the
package's author (rather than the installer) does the preprocessing in a
standard way.
+@end quotation
+
Finally, Mark Eichin notes:
+@quotation
Imake isn't all that extensible, either. In order to add new features to
Imake, you need to provide your own project template, and duplicate most
of the features of the existing one. This means that for a sophisticated
@file{post.in} and @file{pre.in} @file{Makefile} fragments for the
entire tree. This means that a lot of common things don't have to be
duplicated, even though they normally are in @code{configure} setups.
+@end quotation
+
@c ================================================= Upgrading From Version 1.