>>>> "Ben" == Ben Wing <ben(a)xemacs.org>
writes: 
Ben> I'm a little confused.  What is the objection to just using `with-foo'
Ben> always, and never using `enable-foo' at all, no aliasing provided?
The objection is: That's not the way autoconf 2.5X would like it done.
For the sake of comparison listed below are the configure options for XEmacs
21.5, GNU Emacs from CVS, Mozilla, xscreensaver and PostgreSQL.  I chose these
because they're all fairly large and complex packages.
Mozilla tends to prefer --enable while the rest have a larger proportion of
--with.  Selecting a X toolkit can be either, but in other areas our choices
are not too dissimilar to existing practise.
However this list does show is that we have a very large number of options,
especially compared to GNU Emacs.  Do we need them all?
From a technical perspective, autoconf 2.5X will support the exclusive
use of 
--with just fine and won't cause our configuration script any extra
problems
when we upgrade.  Autoconf 2.5X documentation and culture prefer using --with
and --enable.  Which way shall we go?
Malcolm
---------------------------------------------------------------------------
XEmacs:
  --enable-mule           
  --enable-default-eol-detection
  --enable-external-widget
  --enable-kkcc           Enable new GC algorithms.
  --enable-mc-alloc       Enable new allocator.
  --enable-union-type
  --enable-pdump          Enable portable LISP preloader.
  --enable-dump-in-exec
  --enable-debug          Enable additional debugging information. No time
                          cost.
  --enable-assertions
  --enable-memory-usage-stats
                          Enable LISP memory usage API.
  --enable-clash-detection
  --enable-modules
  --enable-quick-build    
  --enable-database=TYPE
  --enable-sound=TYPE
  --enable-bignum=TYPE    
  --enable-error-checking=TYPE
  --enable-menubars=TYPE  
  --enable-scrollbars=TYPE
  --enable-dialogs=TYPE
  --enable-widgets=TYPE
  --enable-toolbars         Enable toolbar support. Default: yes.
  --with-prefix=no        
  --with-site-lisp=no     
  --with-site-modules     
  --with-gtk              Support GTK on the X Window System. (EXPERIMENTAL)
  --with-gnome            Support GNOME on the X Window System. (EXPERIMENTAL)
  --with-msw              
  --with-gcc              Use GCC to compile XEmacs.
  --with-dynamic          
  --with-ncurses          Use the ncurses library for tty support.
  --with-dnet             Compile with support for DECnet.
  --with-socks            Compile with support for SOCKS (an Internet proxy).
  --with-dragndrop        
  --with-cde              Compile in support for CDE drag and drop.
  --with-offix            
  --with-gpm              Compile in GPM mouse support for ttys.
  --with-xpm              
  --with-xface            Compile with support for X-Face mail headers.
                          Requires the compface package.
  --with-gif              
  --with-jpeg             
  --with-png              
  --with-tiff             
  --with-zlib             Support inflate (de)compression internally.
  --with-wmcommand        
  --with-xmu              Use Xmu utilities. Default: yes.
  --with-purify           Support memory debugging using Purify.
  --with-quantify         Support performance debugging using Quantify.
  --with-tty              Enable TTY support. Default: yes.
  --with-xfs              
  --with-canna            
  --with-wnn              
  --with-wnn6             
  --with-workshop         
  --with-sparcworks       Alias for --with-workshop
  --with-tooltalk         Support the ToolTalk IPC protocol.
  --with-ldap             Support the LDAP protocol.
  --with-postgresql       Support the PostgreSQL RDBMS.
  --with-pop              Support POP for mail retrieval.
  --with-kerberos         Support Kerberos-authenticated POP.
  --with-hesiod           Support Hesiod to get the POP server host.
  --with-infodock         Support the Infodock version of XEmacs. Infodock is
                          a SourceForge project).
  --with-native-sound-lib Path to sound library (for systems with name
                          conflicts).
  --with-netinstall       Support for installation over the internet. Only
                          functional on the MS Windows platforms.
  --with-optimization     
  --with-ipv6-cname       
  --with-site-includes    Prepend to include search path.
  --with-site-libraries   Prepend to library search path.
  --with-site-prefixes    
  --with-statedir
  --with-lispdir
  --with-archlibdir
  --with-moduledir
  --with-etcdir
  --with-infopath
  --with-docdir
  --with-site-runtime-libraries
  --with-package-prefix   Specify packages root.
  --with-package-path     Search path for package hierarchies.
  --with-compiler         C compiler to use
  --with-xemacs-compiler  
  --with-cflags           
  --with-cflags-warning   
  --with-cflags-optimization=FLAGS
  --with-cflags-debugging=FLAGS
  --with-cpp              
  --with-cppflags         C preprocessor flags (e.g. -I/foo or -Dfoo=bar)
  --with-libs             Additional libraries (e.g. -lfoo)
  --with-ldflags          Additional linker flags (e.g. -L/foo)
  --with-rel-alloc        Enable the relocating allocator.
  --with-dlmalloc         Use Doug Lea's malloc implementation.
  --with-debug-malloc     Use a debugging malloc.
  --with-system-malloc    
  --with-athena           Use TYPE Athena widgets (xaw, 3d, next, 95, or xpm).
  --with-mail-locking=TYPE
  --with-x                use the X Window System
---------------------------------------------------------------------------
Emacs:
  --enable-carbon-app[=DIR]  [DIR=/Application]
                          specify install directory for Emacs.app on Mac OS X
  --enable-asserts        compile code with asserts enabled
  --enable-maintainer-mode enable make rules and dependencies not useful
                          (and sometimes confusing) to the casual installer
  --enable-locallisppath=PATH
                          directories Emacs should search for lisp files
                          specific to this site
  --disable-largefile     omit support for large files
  --without-gcc           don't use GCC to compile Emacs if GCC is found
  --without-pop           don't support POP mail retrieval with movemail
  --with-kerberos         support Kerberos-authenticated POP
  --with-kerberos5        support Kerberos version 5 authenticated POP
  --with-hesiod           support Hesiod to get the POP server host
  --without-sound         don't compile with sound support
  --with-x-toolkit=KIT    use an X toolkit
                              (KIT = yes/lucid/athena/motif/gtk/no)
  --with-xpm              use -lXpm for displaying XPM images
  --with-jpeg             use -ljpeg for displaying JPEG images
  --with-tiff             use -ltiff for displaying TIFF images
  --with-gif              use -lungif for displaying GIF images
  --with-png              use -lpng for displaying PNG images
  --with-gtk              use GTK (same as --with-x-toolkit=gtk)
  --with-pkg-config-prog  Path to pkg-config to use for finding GTK
  --without-toolkit-scroll-bars
                          don't use Motif or Xaw3d scroll bars
  --without-xim           don't use X11 XIM
  --without-carbon        don't use Carbon GUI on Mac OS X
  --with-x                use the X Window System
---------------------------------------------------------------------------
Mozilla:
  --disable-freetypetest
                          Do not try to compile and run a test FreeType program
  --enable-macos-target=VER (default=10.1)
                          Set the minimum MacOS version needed at runtime
  --enable-default-toolkit=TK
                          Select default toolkit
                          Platform specific defaults:
                            BeOS - beos
                            Mac OS X - mac (carbon)
                            Neutrino/QNX - photon
                            OS/2 - os2
                            Win32 - windows
                            * - gtk
  --disable-gtktest       Do not try to compile and run a test GTK program
  --enable-calendar       Enable building of the calendar client
  --disable-mailnews      Disable building of mail & news components
  --enable-static-mail Enable static mail build support
  --disable-ldap          Disable LDAP support
  --enable-official-branding    Enable Official Branding
  --disable-freetype2     Disable FreeType2 support 
  --enable-xft            Enable Xft support 
  --disable-postscript    Disable PostScript printing support 
  --disable-xprint        Disable Xprint printing support 
  --disable-gnomevfs      Disable GnomeVFS support 
  --enable-crypto         Enable crypto support (Personal Security Manager)
  --disable-jsd           Disable JavaScript debug library
  --disable-oji           Disable Open JVM Integration support
  --enable-xinerama       Enable Xinerama support
                           ( not safe for Red Hat 7.0 ) 
  --enable-ctl            Enable Thai Complex Script support
  --disable-view-source     Disable view source support
  --disable-accessibility Disable accessibility support
  --disable-xpfe-components
                          Disable xpfe components
  --disable-xpinstall     Disable xpinstall support
  --enable-single-profile Enable single profile support 
  --disable-jsloader      Disable xpcom js loader support
  --enable-native-uconv   Enable iconv support
  --enable-plaintext-editor-only
                          Allow only plaintext editing
  --disable-composer      Disable building of Composer
  --enable-extensions     Enable extensions
  --enable-image-decoders[={mod1,mod2,default,all,none}]
                          Enable specific image decoders
  --enable-ldap-experimental
                          Enable LDAP experimental features
  --disable-mathml        Disable MathML support
  --enable-svg            Enable SVG support
  --enable-svg-renderer-gdiplus Enable SVG gdi+ renderer
  --enable-svg-renderer-libart Enable SVG libart renderer
  --enable-svg-renderer-cairo Enable SVG cairo renderer 
  --disable-installer     Disable building of installer
  --disable-activex       Disable building of ActiveX control (win32 only)
  --disable-activex-scripting
                          Disable building of ActiveX scripting support (win32)
  --enable-leaky          Build leaky memory tool
  --enable-xpctools       Build JS profiling tool
  --disable-tests         Do not build test libraries & programs
  --enable-xpcom-lea      Use Lea malloc in xpcom 
  --enable-js-ultrasparc  Use UltraSPARC optimizations in JS
  --disable-debug         Disable building with debug info
  --enable-optimize[=OPT] Enable optimizations using compiler flags [OPT=-O]
  --enable-debug-modules  Enable/disable debug info for specific modules
  --enable-debugger-info-modules
                          Enable/disable debugger info for specific modules
  --enable-boehm          Enable the Boehm Garbage Collector
  --disable-logging       Disable logging facilities
  --enable-crash-on-assert
                          Make NS_ASSERTION crash on Unix
  --enable-reorder        Enable function reordering (requires GNU ld) 
  --enable-logrefcnt      Enable logging of refcounts (default=debug) 
  --enable-detect-webshell-leaks
                          Enable detection of webshell leaks 
                          (default=debug)
  --enable-wrap-malloc    Wrap malloc calls (gnu linker only)
  --enable-efence         Link with Electric Fence
  --enable-jprof          Enable jprof profiling tool (needs mozilla/tools/jprof)
  --enable-strip          Enable stripping of libs & executables 
  --enable-elf-dynstr-gc  Enable elf dynstr garbage collector (opt builds only)
  --enable-old-abi-compat-wrappers
                          Support old GCC ABI symbols to ease the pain 
                          of the linux compiler change
  --enable-prebinding     Enable prebinding (Mac OS X only)
  --enable-timeline       Enable timeline services 
  --enable-reflow-perf    Enable reflow performance tracing
  --enable-perf-metrics   Enable performance metrics
  --enable-codesighs      Enable code size analysis tools
  --enable-trace-malloc   Enable malloc tracing
  --enable-eazel-profiler-support
                          Enable Corel/Eazel profiler support
  --enable-profile-modules
                          Enable/disable profiling for specific modules
  --enable-insure         Enable insure++ instrumentation (linux only)
  --enable-quantify      Enable Quantify support (Windows only) 
  --enable-xterm-updates  Update XTERM titles with current command.
  --enable-chrome-format=jar|flat|both|symlink
                          Select FORMAT of chrome files (default=jar)
  --enable-long-long-warning 
                          Warn about use of non-ANSI long long type
  --disable-pedantic      Issue all warnings demanded by strict ANSI C 
  --enable-cpp-rtti       Enable C++ RTTI 
  --enable-cpp-exceptions Enable C++ exceptions 
  --disable-auto-deps     Do not automatically generate dependency info
  --disable-md            Do not use compiler-based dependencies 
  --disable-shared        Disable building of internal shared libs
  --enable-static         Enable building of internal static libs
  --disable-static-component-loader
                          Disable the static component loader
  --enable-meta-component-modules=mod1[,mod2]
                          Build single meta-component from specified modules
  --enable-meta-components
                          Build predefined meta-components
  --enable-componentlib  Build a shared library containing all of the components
  --enable-standalone-modules=mod1[,mod2]
                          Enable standalone build of specific modules
  --disable-libIDLtest    Do not try to compile and run a test libIDL program
  --disable-glibtest      Do not try to compile and run a test GLIB program
  --disable-glibtest      Do not try to compile and run a test GLIB program
  --disable-xul           Disable XUL
  --disable-profilesharing           Disable profile sharing
  --disable-profilelocking           Disable profile locking
  --enable-necko-protocols[={http,ftp,default,all,none}]
                          Enable/disable specific protocol handlers
  --disable-necko-disk-cache
                          Disable necko disk cache
  --enable-necko-small-buffers
                          Minimize size of necko's i/o buffers
  --with-macos-sdk=dir   Location of platform SDK to use (Mac OS X only)
  --with-x                use the X Window System
  --with-ft-prefix=PFX    Prefix where FreeType is installed (optional)
  --with-ft-exec-prefix=PFX
                          Exec prefix where FreeType is installed (optional)
  --with-pthreads         Force use of system pthread library with NSPR 
  --with-system-nspr      Use system installed NSPR
  --with-nspr-prefix=PFX  Prefix where NSPR is installed
  --with-nspr-exec-prefix=PFX
                          Exec prefix where NSPR is installed
  --with-system-jpeg[=PFX]
                          Use system libjpeg [installed at prefix PFX]
  --with-system-zlib[=PFX]
                          Use system libz [installed at prefix PFX]
  --with-system-png[=PFX]
                          Use system libpng [installed at prefix PFX]
  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)
  --with-gtk-exec-prefix=PFX 
                          Exec prefix where GTK is installed (optional)
  --with-gssapi=PFX	   Location of GSSAPI libraries
  --with-wrap-malloc=DIR  Location of malloc wrapper library
  --with-insure-dirs=DIRS
                          Dirs to instrument with insure 
  --with-insure-exclude-dirs=DIRS
                          Dirs to not instrument with insure 
  --with-default-mozilla-five-home
                          Set the default value for MOZILLA_FIVE_HOME
  --with-user-appdir=DIR  Set user-specific appdir (default=.mozilla)
  --with-doc-input-dirs=DIRS
                          Header/idl dirs to create docs from
  --with-doc-include-dirs=DIRS  
                          Include dirs to preprocess doc headers
  --with-doc-output-dir=DIR
                          Dir to generate docs into
  --without-libIDL        Skip check for libIDL (standalone modules only)
  --with-libIDL-prefix=PFX
                          Prefix where libIDL is installed (optional)
  --with-libIDL-exec-prefix=PFX
                          Exec prefix where libIDL is installed (optional)
  --with-glib-prefix=PFX  Prefix where GLIB is installed (optional)
  --with-glib-exec-prefix=PFX
                          Exec prefix where GLIB is installed (optional)
  --with-glib-prefix=PFX  Prefix where GLIB is installed (optional)
  --with-glib-exec-prefix=PFX
                          Exec prefix where GLIB is installed (optional)
---------------------------------------------------------------------------
xscreensaver:
  --enable-locking        Compile in support for locking the display.
  --disable-locking       Do not allow locking at all.
  --with-hackdir=DIR      Where to install the hundreds of demo executables.
                          Default: `EPREFIX/lib/xscreensaver/'
  --with-configdir=DIR    Where to install the data files that describe each
                          of the display modes to the GUI.
                          Default: `PREFIX/share/xscreensaver/config/'
  --with-sgi-ext          Include support for the SGI SCREEN_SAVER extension.
  --with-xidle-ext        Include support for the XIDLE extension.
  --with-sgivc-ext        Include support for the SGI-VIDEO-CONTROL extension.
  --with-dpms-ext         Include support for the DPMS extension.
  --with-xinerama-ext     Include support for the XINERAMA extension.
  --with-xf86vmode-ext    Include support for XFree86 virtual screens.
  --with-xf86gamma-ext    Include support for XFree86 gamma fading.
  --with-randr-ext        Include support for the X Resize+Rotate extension.
  --with-proc-interrupts  Include support for consulting the /proc/interrupts
                          file to notice keyboard activity.
  --with-pam              Include support for PAM (Pluggable Auth Modules.)
  --with-kerberos         Include support for Kerberos authentication.
  --with-shadow           Include support for shadow password authentication.
  --with-passwd-helper    Include support for an external password
                          verification helper program.
  --with-login-manager    Put a "New Login" button on the unlock dialog that
  --with-gtk              Use the Gtk toolkit for the user interface.
  --with-motif            Use the Motif toolkit for the user interface
  --with-gl               Build those demos which depend on OpenGL.
  --with-gle              Build those demos which depend on GLE
                          (the OpenGL "extrusion" library.)
  --with-pixbuf           Include support for the GDK-Pixbuf library in some
                          demos, which will make it possible for them to read
                          GIF, JPEG, and PNG files as well.
  --with-xpm              Include support for XPM files in some demos.
                          (Not needed if Pixbuf is used.)
  --with-jpeg             Include support for the JPEG library.
  --with-xshm-ext         Include support for the Shared Memory extension.
  --with-xdbe-ext         Include support for the DOUBLE-BUFFER extension.
  --with-readdisplay      Include support for the XReadDisplay extension.
  --with-image-directory=DIR  By default, some screen savers may load
                          random images out of this directory.
  --with-setuid-hacks     Allow some demos to be installed `setuid root'
                          (which is needed in order to ping other hosts.)
---------------------------------------------------------------------------
PostgreSQL:
Optional Features:
  --enable-integer-datetimes  enable 64-bit integer date/time support
  --enable-nls[=LANGUAGES]  enable Native Language Support
  --disable-shared        do not build shared libraries
  --disable-rpath         do not embed shared library search path in executables
  --disable-spinlocks     do not use spinlocks
  --enable-debug          build with debugging symbols (-g)
  --enable-depend         turn on automatic dependency tracking
  --enable-cassert        enable assertion checks (for debugging)
  --enable-thread-safety  make client libraries thread-safe
  --enable-thread-safety-force  force thread-safety in spite of thread test failure
  --disable-largefile     omit support for large files
Optional Packages:
  --with-docdir=DIR       install the documentation in DIR [PREFIX/doc]
  --without-docdir        do not install the documentation
  --with-includes=DIRS    look for additional header files in DIRS
  --with-libraries=DIRS   look for additional libraries in DIRS
  --with-libs=DIRS        alternative spelling of --with-libraries
  --with-pgport=PORTNUM   change default port number 5432
  --with-tcl              build Tcl modules (PL/Tcl)
  --with-tclconfig=DIR    tclConfig.sh is in DIR
  --with-perl             build Perl modules (PL/Perl)
  --with-python           build Python modules (PL/Python)
  --with-krb4             build with Kerberos 4 support
  --with-krb5             build with Kerberos 5 support
  --with-krb-srvnam=NAME  name of the service principal in Kerberos [postgres]
  --with-pam              build with PAM support
  --with-rendezvous       build with Rendezvous support
  --with-openssl          build with OpenSSL support
  --without-readline      do not use Readline
  --without-zlib          do not use Zlib
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
---------------------------------------------------------------------------
-- 
		     Malcolm Purvis <malcolmp(a)xemacs.org>