>>>> "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>