Skip to content

Improving ./configure --help output #136700

@dilyanpalauzov

Description

@dilyanpalauzov

./configure --help should only show how to alter the default behaviour. Thus not articulating explicitly the default on --help, implies that not passing an option to ./configure will not imply that option. See also my article https://ab.bapha.be/posts/help-output/.

With Python 3.15.3 ./configure --help:

  --enable-universalsdk[=SDKDIR]
                          create a universal binary build. SDKDIR specifies
                          which macOS SDK should be used to perform the build,
                          see Mac/README.rst. (default is no)
  --enable-framework[=INSTALLDIR]
                          create a Python.framework rather than a traditional
                          Unix install. optional INSTALLDIR specifies the
                          installation path. see Mac/README.rst (default is
                          no)
  --enable-wasm-dynamic-linking
                          Enable dynamic linking support for WebAssembly
                          (default is no)
  --enable-wasm-pthreads  Enable pthread emulation for WebAssembly (default is
                          no)
  --enable-shared         enable building a shared Python library (default is
                          no)
  --enable-profiling      enable C-level code profiling with gprof (default is
                          no)
  --disable-gil           enable experimental support for running without the
                          GIL (default is no)
  --enable-pystats        enable internal statistics gathering (default is no)
  --enable-optimizations  enable expensive, stable optimizations (PGO, etc.)
                          (default is no)
  --enable-bolt           enable usage of the llvm-bolt post-link optimizer
                          (default is no)
  --enable-loadable-sqlite-extensions
                          support loadable extensions in the sqlite3 module,
                          see Doc/library/sqlite3.rst (default is no)
  --disable-test-modules  don't build nor install test modules
  --without-static-libpython
                          do not build libpythonMAJOR.MINOR.a and do not
                          install python.o (default is yes)

and more…

--disable-test-modules is used as I suggested. --disable-gil should be renamed to --enable-gil. All (default is no) and (default is yes) should be removed, when the option is binary (on/off/yes/no/with/without/enabled/disabled).

When a parameter has many possible values, sometimes --help emits =[ and sometimes [=. This is inconsistent:

  --enable-big-digits[=15|30]
                          use big digits (30 or 15 bits) for Python longs
                          (default is 30)]
  --with-pkg-config=[yes|no|check]
                          use pkg-config to detect build options (default is
                          check)

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildThe build process and cross-buildtriagedThe issue has been accepted as valid by a triager.type-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions