1 -- $XTermId: INSTALL,v 1.123 2010/06/14 08:57:22 tom Exp $
2 -------------------------------------------------------------------------------
3 -- Copyright 1997-2009,2010 by Thomas E. Dickey
7 -- Permission is hereby granted, free of charge, to any person obtaining a
8 -- copy of this software and associated documentation files (the
9 -- "Software"), to deal in the Software without restriction, including
10 -- without limitation the rights to use, copy, modify, merge, publish,
11 -- distribute, sublicense, and/or sell copies of the Software, and to
12 -- permit persons to whom the Software is furnished to do so, subject to
13 -- the following conditions:
15 -- The above copyright notice and this permission notice shall be included
16 -- in all copies or substantial portions of the Software.
18 -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 -- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21 -- IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
22 -- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 -- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 -- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 -- Except as contained in this notice, the name(s) of the above copyright
27 -- holders shall not be used in advertising or otherwise to promote the
28 -- sale, use or other dealings in this Software without prior written
30 -------------------------------------------------------------------------------
32 Xterm is normally built as part of the X Window System source tree, using
33 imake to generate a Makefile from Imakefile. You can also use the
34 configure script to generate a Makefile from Makefile.in:
36 + If you have imake (or xmkmf), then you can use those directly,
37 or use the configure script, which normally uses those tools
38 to obtain the special definitions needed to build xterm.
40 Ultimately, imake will not be necessary, since it is possible
41 to add configure tests that derive the information that imake
44 + You need the Athena widgets (or a clone, such as Xaw3d or
45 neXtaw), to provide the popup menus.
47 Even if you have imake, the configure script is still convenient because
48 it allows you to build different configurations more easily than with
49 imake, simply by specifying options to the configure script.
54 Autoconf configure scripts recognize two types of application-defined
55 options, enable/disable and with/without. The latter, by convention, are
56 used for denoting inclusion of external packages, while the former denote
57 enabling/disabling of internal features. The configure --help option lists
58 the available options. This script uses "enable" and "disable" to indicate
59 the sense of the default behavior.
61 The options (in alphabetic order):
63 --disable-16-color disable 16-color support
65 Do not compile-in code to recognize aixterm-style control sequences
66 that support color values 8-15.
68 Most color applications know only about 8 ANSI colors, but some
69 (e.g., ones built with ncurses) do.
71 --disable-active-icon disable X11R6.3 active-icon feature
73 Do not compile-in code to support the active-icon feature. This is
74 not configured on systems (e.g., X11R5) which lack the library
77 Xterms with an active icon continue to respond to input and update
78 their display when iconified. Not all window managers support
79 active icons. Those that do include fvwm, olvwm and mwm.
81 --disable-ansi-color disable ANSI color
83 Do not compile-in code for ANSI colors.
85 --disable-blink-cursor disable support for blinking cursor
87 Do not compile-in code that implements a blinking cursor. The blinking
88 cursor is enabled either by resource setting or by popup menu entry.
90 --disable-bold-color disable PC-style mapping of bold colors
92 Do not compile-in code that maps colors 8-15 to bold versions of
95 Some applications have hardcoded logic that assumes this. It does
96 not interfere with the 16-color support.
98 --disable-boxchars disable fallback-support for box chars
100 Do not compile-in code to generate approximations for box/graphic
103 Most fonts do not contain the vt100-style graphic characters in
104 positions 0-31. Many applications use the line-drawing characters,
105 e.g., to make boxes. When xterm loads a font, it checks if those
106 characters are present, and draws its own if they are missing.
108 --disable-broken-st disallow broken string-terminators],
110 Do not compile-in code that works around a bug in some ISDN routers
111 (and possibly other applications written by the same people): they
112 send an unterminated control string in their banner text, making xterm
115 The workaround tells xterm to stop processing the control string when
116 it receives one of the whitespace control characters such as newline.
117 That was the behavior before patch #171.
119 See also --enable-broken-osc
121 --disable-c1-print disallow -k8 option for printable 128-159],
123 Use this option to suppress support for nonstandard use of codes
124 128-159, which normally are considered control characters. Some users
125 have fonts which use those positions. The default value for the
126 allowC1Printable resource is false, so this feature does not impact
129 --disable-color-class disable color class resources
131 Use this option to change most of the color resources to use Foreground
132 as the color class. This is the older (before patch #157) behavior
133 which has the drawback that setting the Foreground resource on most
134 platforms prevents use of color since the class is evaluated before
137 --disable-color-mode disable default colorMode resource
139 Do not compile-in code that sets the default value of the colorMode
140 resource to ``true''.
142 --disable-desktop disable install of xterm desktop files
144 Do not install the xterm desktop files, used in menus.
145 These use the icons installed in the --with-icondir option.
146 Use the environment variable $DESKTOP_FLAGS to supply options
147 required by desktop-file-install.
149 Note: If desktop-utils is not found they will not be installed anyway.
151 --disable-doublechars disable support for double-size chars
153 Do not compile-in code that supports font-manipulation needed to
154 implement vt100-style double-sized characters.
156 --disable-echo test: display "compiling" commands
158 Modify the generated Makefile so that most compiler options are
159 not shown. This makes it simpler to read a build log and see the
160 actual warning messages.
162 --disable-fifo-lines enable FIFO-storage for saved-lines
164 With patch #244, xterm by default stores saved-lines in a FIFO
165 (circular buffer), which improves performance when the number of saved
166 lines is large. Disable this option to revert to the pre-244 layout.
168 --disable-freetype disable freetype library-support
170 Do not use freetype libraries if they are found. Normally they will
171 be used automatically.
173 --disable-full-tgetent disable check for termcap library
175 Do not look for the tgetent() function specifically in the termcap
176 library, accept the first library (from termlib, ncurses and curses)
177 which contains this function rather than continuing to search for
178 a termcap implementation rather than terminfo. The former would
179 supply the complete $TERMCAP data needed for some legacy programs.
181 --disable-highlighting disable support for color highlighting
183 Do not compile-in code that allows the selected region to be a
184 different color than the reverse of foreground/background colors.
186 See the discussion of highlightColor in the manual.
188 --disable-i18n disable internationalization
190 Do not compile-in code to handle multi-byte characters. This is
191 related to, but not identical with the input method logic.
193 --disable-imake disable use of imake for definitions
195 Do not attempt to use imake to determine compiler options.
197 The main.c file has many ifdef's which rely on obscure combinations
198 known only to imake. The configure script implements only a
199 portion of the tests needed to supplant imake.
201 --disable-initial-erase disable setup for stty erase
203 Do not compile-in code which aligns the stty erase and the backarrow
204 key. When compiled-in, xterm will optionally use the pty's sense
205 of stty erase and apply that to the backarrow mode (sending 8 or 127),
206 or go the other way, setting stty erase to match xterm's configuration.
208 --disable-input-method disable input-method
210 Do not compile-in code for "input method". This is an X11R6
211 feature which deals with translation of composite characters.
213 Some users report problems with their configuration, e.g., messages
214 stating that there is no input method defined for the given preedit
215 type. If you do not need input method (and are troubled by the
216 warning messages), it is safe to disable this option.
218 --disable-leaks test: set to test memory leaks
220 Compile-in code which frees memory which might confuse a leak-testing
221 tool. Normally these chunks of memory are retained as long as xterm
224 --disable-maximize disable actions for iconify/deiconify/maximize/restore
226 Do not compile-in code that implements runtime 'actions' for
227 iconifying, maximizing, etc.
229 Most users will find that the window manager is more suitable for
230 this sort of manipulation than putting the capabilities into xterm.
232 --disable-num-lock disable NumLock keypad support
234 Do not compile-in code that looks for the actual NumLock key to
235 support vt100/vt220 keypad translation.
237 This is used in xterm to simplify logic, and to workaround some
238 quirks of the keyboard tables. Use the ``numLock'' resource to
239 disable this feature if you must customize xterm in some other way.
241 (The same ifdef controls the metaSendsEscape support).
243 --disable-paste64 disable support for bracketed paste mode
245 Do not compile-in code to support experimental bracketed paste mode,
246 i.e., provide functions for setting/getting the selection data.
248 (see ctlseqs.ms description of OSC 52).
250 --disable-pty-handshake disable support for pty handshakes
252 This feature is used to ensure that the child process's terminal modes
253 match the parent's. In particular, it addresses a problem where the
254 terminal size is not defined in the stty settings.
256 --disable-rectangles disable VT420 rectangle support
258 Do not compile-in code to support VT420 rectangle control-sequences.
260 --disable-regex disable regular-expression selections
262 Do not compile-in code to support the "regex" option for multiple
265 --disable-rightbar disable right-scrollbar support
267 Do not compile-in code that supports a scrollbar on the right.
269 Left/right scrollbars are a matter of taste. Some older libraries
270 (e.g., X11R5) do not perform the geometry computation correctly,
271 leaving the right scrollbar incorrectly positioned after changing
274 --disable-rpath-hack don't add rpath options for additional libraries
276 By default, the configure script looks for libraries in unusual places
277 and adds an rpath linker option to help.
279 --disable-samename disable check for redundant name-change
281 Do not compile-in code that suppresses redundant updates to the
282 titlebar when the text has not changed.
284 --disable-session-mgt enable support for session management
286 Do not compile-in code which adds simple session management hooks
287 which are used when closing an xterm. Normally the code is
288 compiled-in, except for systems which do not support it.
290 --disable-setgid disable setgid
292 Do not install xterm using setuid/setgid permissions. Drop setgid
293 permissions on startup.
295 --disable-setuid disable setuid
297 Do not install xterm using setuid/setgid permissions. Drop setuid
298 permissions on startup.
302 Do not compile-in code to support Sun-style function keys.
304 --disable-tcap-fkeys disable termcap function-keys
306 Do not compile-in code to support feature which allows xterm to use the
307 function-key definitions from the termcap/terminfo entry which it used
308 to set the $TERM variable on startup.
310 --disable-tcap-query disable termcap query/report
312 Do not compile-in code to support DCS '+' control sequence, which
313 allows an application to ask xterm what control sequences it would
314 transmit for specified function keys, given the termcap or terminfo
317 --disable-tek4014 disable tek4014 emulation
319 Do not compile-in code to support Tektronix 4014 emulation.
321 This reduces the executable size by 17% (checked 1999/3/13).
323 Some people use the Tektronix emulation (which has been in xterm
324 for many years) as an example of code bloat, though this is not an
327 --disable-vt52 disable VT52 emulation
329 Do not compile-in code to support vt52 emulation.
331 A genuine vt100 emulates a vt52.
333 --disable-ziconbeep disable -ziconbeep option
335 Do not compile-in code that modifies the icon's title and sounds a
336 beep when they receive output.
338 --enable-16bit-chars enable 16-bit characters support
340 Enable wide-character support, but store only 16-bits for each wide
341 character. Unicode values can be larger than 16-bits, up to 21-bits.
342 This uses less memory, but is less complete. However, most languages
343 are covered by the 16-bit encoding.
345 --enable-256-color enable 256-color support
347 Compile-in code that interprets SGR 38 and 48 for 256-colors.
349 --enable-88-color enable 88-color support
351 Compile-in code that interprets SGR 38 and 48 for 88-colors.
353 --enable-broken-osc allow broken Linux OSC-strings],
355 Compile-in code to accommodate scripts that write Linux's malformed
356 palette control strings without checking. The result makes xterm
357 appear to freeze. This workaround makes xterm ignore the strings,
358 and is compiled-in by default for Linux.
360 --enable-dabbrev enable dynamic-abbreviation support
362 Compile-in support for "dabbrev-expand()" action and related key
365 --enable-dec-locator enable DECterm Locator support
366 Add support for DEC Locator control sequences for xterm:
368 DECEFR - Enable Filter Rectangle
369 DECELR - Enable Locator Reports
370 DECSLE - Select Locator Events
371 DECRQLP - Request Locator Position
373 This allows the xterm mouse to be used with applications that use the
374 DEC Locator sequences, such as VAX Tpu, or SMG$ based applications.
376 --enable-exec-xterm enable "spawn-new-terminal" action
378 If your platform supports the process filesystem "cwd" link,
379 compile-in support for the "spawn-new-terminal" action, which
380 allows you to define a key translation that runs a new xterm
381 using the same working directory as the current process within
384 --enable-hp-fkeys enable support for HP-style function keys
386 Compile-in code to support HP-style function keys.
388 --enable-load-vt-fonts enable load-vt-fonts() action
390 Compile-in code that allows user to define load different VT-font
391 definitions at runtime.
393 --enable-logfile-exec enable exec'd logfile filter
395 Compile-in code that allows logging piped via an external filter.
397 --enable-logging enable logging
399 Compile-in code that allows logging.
401 Logging was disabled in X11R5 xterm because of security problems.
402 They were addressed in X11R6, but the feature was not reinstated.
404 --enable-luit enable support for luit filter (Unicode translation)
406 Luit is a filter that can be run between an arbitrary application and a
407 UTF-8 terminal emulator. It will convert application output from the
408 locale's encoding into UTF-8, and convert terminal input from UTF-8
409 into the locale's encoding.
411 This sets "--enable-wide-chars" as a side-effect.
413 --enable-mini-luit enable support for poor man's luit filter (Latin-9)
415 Provide built-in support for Latin-9, relying on having specified
416 Unicode (ISO10646) fonts and setting the locale resource to "checkfont".
418 This sets "--enable-luit" as a side-effect.
420 --enable-narrowproto enable narrow prototypes for X libraries
422 Originally xterm was built using imake rather than a configure script.
423 One feature of imake that is not possible to guess within the
424 configure script is the wide-prototype compile-time definition
425 NARROWPROTO. When this is not set properly, the Athena widget
426 scrollbars do not work properly. xterm's configure script has a
427 fallback case which allows disabling imake. However, this is moot
428 with the X.org "modular" build, whose compiler options are unrelated to
429 imake or older versions of any libraries that it may distribute. In
430 this case, the configure script needs some help. Use this option to
431 enable or disable NARROW proto (and disable imake with the
432 --disable-imake option) to match the whims of X.org hackers.
436 configure --disable-imake --disable-narrowproto
438 --enable-readline-mouse enable support for mouse in readline applications
440 Compile-in code to support experimental bracketed paste mode, i.e.,
441 provide functions for setting/getting the selection data. Essentially
442 this puts xterm into a mode that sends special function-key strings to
445 (See --enable-paste64, which fits xterm's protocol better).
447 --enable-sco-fkeys enable support for SCO-style function keys
449 Compile-in code to support SCO-style function keys.
451 --enable-sun-fkeys enable support for Sun-style function keys
453 Compile-in code to support Sun-style function keys.
455 --enable-toolbar enable pulldown menus on toolbar
457 Compile-in code that builds a toolbar with pulldown menus. The
458 normal popup menus are still available.
460 This is an experimental option. As of patch #206, it is known to
461 work well with fvwm, but not as well with some other window managers,
462 e.g., KDE's Kwin and IceWM.
464 In addition to isolated layout problems, it is reported that some
465 flavors of the Athena widget library perform badly with ISO-10646
466 fonts. You can work around those by setting the menu fonts to
467 an ISO-8859 variant in your X resources.
469 --enable-trace test: set to enable debugging traces
471 Compile-in code to trace xterm's internal states.
473 This is a debugging feature. It causes xterm to produce two files
474 (Trace-parent.out and Trace-child.out).
476 --enable-warnings test: turn on GCC compiler warnings
478 Modify the generate Makefile to turn on gcc compiler warnings.
480 I use this option regularly, and correct all but a few (difficult)
483 --enable-wide-chars enable wide-character support
485 Compile-in code that supports 16-bit characters. Includes support
488 --enable-xmc-glitch test: enable xmc magic-cookie emulation
490 Compile-in code that simulates the terminfo "magic cookie" glitch.
492 This is for testing ncurses.
494 --with-Xaw3d link with Xaw 3d library
496 Look for, compile and link with the Xaw 3d widget library.
498 --with-XawPlus link with Athena-Plus library
500 Look for, compile and link with the Xaw Plus widget library.
502 --with-app-defaults=DIR directory in which to install resource files (default: EPREFIX/lib/X11/app-defaults)
504 autoconf scripts assume that all of the files should be installed
505 under the same top-level directory. But X applications defaults
506 must be installed into a special directory, e.g.,
508 /usr/X11/lib/app-defaults
510 However, there is no standard for this pathname. The manual page
511 for X notes that the environment variable $XUSERFILESEARCHPATH can
512 specify a list of places where X searches for applications defaults.
513 Also, it may look in $XAPPLRESDIR, but that usually is not related
514 to where xterm might be installed. To keep it simple, the configure
517 EPREFIX/lib/X11/app-defaults
519 as the default (EPREFIX is --prefix). That makes it work normally
520 for most systems if --prefix is /usr. For other installs, e.g., to
521 /usr/local, you should use this option to customize the location to
522 match your system configuration.
524 Use --without-app-defaults or --with-app-defaults=no to disable the
527 --with-freetype-cflags -D/-I options for compiling with FreeType library
529 Override options provided by xft-config or freetype-config.
531 --with-freetype-libs -L/-l options for linking with FreeType library
533 Override options provided by xft-config or freetype-config.
535 --with-icondir=DIR directory in which to install icon files (default: EPREFIX/share/pixmaps)
537 The X libraries may automatically search these locations:
544 http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
546 Use --without-icondir or --with-icondir=no to disable the feature.
548 --with-neXtaw link with neXT Athena library
550 Look for, compile and link with the neXT Athena widget library.
552 --with-own-terminfo=P set default $TERMINFO (default: from environment)
554 Modify the generated Makefile to set the target for the 'install-ti'
555 rule to point to the given directory.
557 If you have the $TERMINFO variable defined in your environment, the
558 configure script will use that value. If no option and no variable
559 are are given, the configure script uses /usr/lib/terminfo, if it
562 You do not have to run "make install-ti", if there is already a
563 workable terminfo description. Be advised, however, that the
564 common variety of "xterm-color" is not suited for xterm, but is
565 directed to other variations (such as nxterm) which do not
566 support the background-color erase capability.
568 --with-pcre use PCRE for regular-expressions
570 If regular expressions are not disable (--disable-regex), use PCRE
571 rather than the POSIX regular expressions.
573 --with-pkg-config{=path} enable/disable use of pkg-config
575 The configure script looks for certain libraries which have well
576 established pkg-config scripts, and will use those settings if
577 available. Not all pkg-config scripts work; this option suppresses
578 the check and relies on normal library search paths.
580 --with-reference=XXX program to use as permissions-reference
582 To install xterm with setuid permissions, the scripts usually compare
583 it with a previous install. That works well for individual
584 maintainers, but can be a problem for packagers who may be
585 cross-compiling, etc. This option lets the package builder specify
586 the file used for permissions reference.
588 --with-setuid=XXX use the given setuid user
590 Install xterm setuid'd to the given user. If no parameter value
591 is given, assume it is root.
593 See also --with-utmp-setgid and --with-utempter, which manipulate
596 --with-tty-group=XXX use XXX for the tty-group
598 If xterm is installed setuid'd to root, change the group of the tty
599 device to the given value on startup. Three cases are possible:
601 a) If this option is not given, the configure script will attempt to
602 find a suitable value (usually "tty"), and verify that it exists in
605 b) If the option value is given, it will use the value even if it does
606 not exist in the group database (allowing packagers to work about
607 deficient environments).
609 c) If the option is disabled, e.g., --without-tty-group, the
610 permissions change will use the group-id of the process.
612 If xterm is not installed setuid'd to root, this option is not needed,
613 since it cannot change the tty device's ownership.
615 --with-xterm-symlink=XXX make symbolic link to installed xterm
617 If any of the configure options to modify the program name i.e.,
618 --program-prefix, --program-suffix or --program-transform-name
619 are given, this option allows the makefile to create a symbolic link,
620 e.g., to "xterm" on install. The option value gives the name for
621 the link, which defaults to "xterm".
623 Use --without-xterm-symlink to disable a link to "xterm" if none
626 --with-terminal-id[=V] set default decTerminalID (default: vt100)
628 Set the default emulation level.
630 DEC terminals vt52/vt100/vt220/etc form a series where succeeding
631 models emulate features of the older terminals. While most
632 features of these terminals are recognized by xterm at all levels,
633 a few behave differently according to the emulation level.
635 You can always override this with the command-line option "-ti".
637 --with-terminal-type=T set default $TERM (default: xterm)
639 Set the default value for $TERM. Xterm supports legacy termcap
640 applications by constructing a modified version of the $TERMCAP
641 variable at initialization, which supplies the resulting screen
642 size. It also sets $TERM, if not already set, for use by programs
643 running within xterm.
645 The default value "xterm", can be overridden to avoid conflict
646 with older versions of xterm, e.g., those that do not implement
649 You can always override this with the command-line option "-tn".
651 --with-utempter use utempter library for access to utmp
653 The utempter library is a set-uid wrapper for the utmp facility.
654 On systems with Unix98 pty's, xterm can use this library when
655 available so it need not be installed set-uid.
657 --with-utmp-setgid=XXX use setgid for access to utmp
659 The option value specifies a group to use when installing.
660 xterm will be installed with setgid privilege to this group.
661 At runtime, xterm will drop the setuid privilege immediately
662 after opening the pseudo-terminal, and will have only the
663 group privilege needed to access the utmp file. This relies
664 on having POSIX setuid behavior.