[Python-Dev] Usage of --with- configure options

Guido van Rossum guido@python.org
Mon, 02 Oct 2000 06:30:45 -0500


> I noticed that Python's configure.in does not follow the autoconf
> style for using --enable- options. The autoconf documentation says
> 
> #   Some packages require, or can optionally use, other software packages
> # which are already installed.  The user can give `configure' command
> # line options to specify which such external software to use.  The
> #  options have one of these forms:
> #
> #     --with-PACKAGE[=ARG]
> #     --without-PACKAGE
> ...
> #    If a software package has optional compile-time features, the user
> # can give `configure' command line options to specify whether to compile
> # them.  The options have one of these forms:
> #
> #     --enable-FEATURE[=ARG]
> #     --disable-FEATURE
> 
> So --with- options should be used for integrating 3rd party libraries,
> --enable- options for features that that can be independently turned
> on or off.
> 
> I'd conclude that the following options are provided incorrectly in
> Python 2.0: --with-pydebug (should be --enable-pydebug),
> --with(out)-cycle-gc (should be --disable-cycle-gc). Is this something
> that should change?

I noticed that too.  (Arguably also for --with-thread?)  I think it's
a forgiveable sin against the autoconf style guide, and not worth the
work of fixing it.

Either way the autoconf --with- or --enable- syntax is stupid because
it doesn't check for spelling errors in the options.  The rationale
for that is that some folks like to pass in unsupported options to a
whole tree of configure scripts.  I think that stinks, but what can I
do.  This would make the fix even more work, because we would have to
trap --with*-pydebug and --with*-cycle-gc to give an error message,
else developers used to the old syntax would never notice the change.

--Guido van Rossum (home page: http://www.python.org/~guido/)