INSTALL revision d522f475
1-- $XTermId: INSTALL,v 1.117 2007/12/12 01:30:43 tom Exp $ 2------------------------------------------------------------------------------- 3-- Copyright 1997-2006,2007 by Thomas E. Dickey 4-- 5-- All Rights Reserved 6-- 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: 14-- 15-- The above copyright notice and this permission notice shall be included 16-- in all copies or substantial portions of the Software. 17-- 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. 25-- 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 29-- authorization. 30------------------------------------------------------------------------------- 31 32Xterm is normally built as part of the X Window System source tree, using 33imake to generate a Makefile from Imakefile. You can also use the 34configure script to generate a Makefile from Makefile.in: 35 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. 39 40 Ultimately, imake will not be necessary, since it is possible 41 to add configure tests that derive the information that imake 42 would supply. 43 44 + You need the Athena widgets (or a clone, such as Xaw3d or 45 neXtaw), to provide the popup menus. 46 47Even if you have imake, the configure script is still convenient because 48it allows you to build different configurations more easily than with 49imake, simply by specifying options to the configure script. 50 51Options: 52------- 53 54Autoconf configure scripts recognize two types of application-defined 55options, enable/disable and with/without. The latter, by convention, are 56used for denoting inclusion of external packages, while the former denote 57enabling/disabling of internal features. The configure --help option lists 58the available options. This script uses "enable" and "disable" to indicate 59the sense of the default behavior. 60 61The options (in alphabetic order): 62 63 --disable-16-color disable 16-color support 64 65 Do not compile-in code to recognize aixterm-style control sequences 66 that support color values 8-15. 67 68 Most color applications know only about 8 ANSI colors, but some 69 (e.g., ones built with ncurses) do. 70 71 --disable-active-icon disable X11R6.3 active-icon feature 72 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 75 support needed. 76 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. 80 81 --disable-ansi-color disable ANSI color 82 83 Do not compile-in code for ANSI colors. 84 85 --disable-blink-cursor disable support for blinking cursor 86 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. 89 90 --disable-bold-color disable PC-style mapping of bold colors 91 92 Do not compile-in code that maps colors 8-15 to bold versions of 93 colors 0-7. 94 95 Some applications have hardcoded logic that assumes this. It does 96 not interfere with the 16-color support. 97 98 --disable-boxchars disable fallback-support for box chars 99 100 Do not compile-in code to generate approximations for box/graphic 101 characters. 102 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. 107 108 --disable-c1-print disallow -k8 option for printable 128-159], 109 110 Use this option to suppress support for nonstandard use of codes 111 128-159, which normally are considered control characters. Some users 112 have fonts which use those positions. The default value for the 113 allowC1Printable resource is false, so this feature does not impact 114 normal users. 115 116 --disable-color-class disable color class resources 117 118 Use this option to change most of the color resources to use Foreground 119 as the color class. This is the older (before patch #157) behavior 120 which has the drawback that setting the Foreground resource on most 121 platforms prevents use of color since the class is evaluated before 122 the instance. 123 124 --disable-color-mode disable default colorMode resource 125 126 Do not compile-in code that sets the default value of the colorMode 127 resource to ``true''. 128 129 --disable-desktop disable install of xterm desktop files 130 131 Do not install the xterm desktop files, used in menus. 132 These use the icons installed in the --with-icondir option. 133 Use the environment variable $DESKTOP_FLAGS to supply options 134 required by desktop-file-install. 135 136 Note: If desktop-utils is not found they will not be installed anyway. 137 138 --disable-doublechars disable support for double-size chars 139 140 Do not compile-in code that supports font-manipulation needed to 141 implement vt100-style double-sized characters. 142 143 --disable-echo test: display "compiling" commands 144 145 Modify the generated Makefile so that most compiler options are 146 not shown. This makes it simpler to read a build log and see the 147 actual warning messages. 148 149 --disable-freetype disable freetype library-support 150 151 Do not use freetype libraries if they are found. Normally they will 152 be used automatically. 153 154 --disable-full-tgetent disable check for termcap library 155 156 Do not look for the tgetent() function specifically in the termcap 157 library, accept the first library (from termlib, ncurses and curses) 158 which contains this function rather than continuing to search for 159 a termcap implementation rather than terminfo. The former would 160 supply the complete $TERMCAP data needed for some legacy programs. 161 162 --disable-highlighting disable support for color highlighting 163 164 Do not compile-in code that allows the selected region to be a 165 different color than the reverse of foreground/background colors. 166 167 See the discussion of highlightColor in the manual. 168 169 --disable-i18n disable internationalization 170 171 Do not compile-in code to handle multi-byte characters. This is 172 related to, but not identical with the input method logic. 173 174 --disable-imake disable use of imake for definitions 175 176 Do not attempt to use imake to determine compiler options. 177 178 The main.c file has many ifdef's which rely on obscure combinations 179 known only to imake. The configure script implements only a 180 portion of the tests needed to supplant imake. 181 182 --disable-initial-erase disable setup for stty erase 183 184 Do not compile-in code which aligns the stty erase and the backarrow 185 key. When compiled-in, xterm will optionally use the pty's sense 186 of stty erase and apply that to the backarrow mode (sending 8 or 127), 187 or go the other way, setting stty erase to match xterm's configuration. 188 189 --disable-input-method disable input-method 190 191 Do not compile-in code for "input method". This is an X11R6 192 feature which deals with translation of composite characters. 193 194 Some users report problems with their configuration, e.g., messages 195 stating that there is no input method defined for the given preedit 196 type. If you do not need input method (and are troubled by the 197 warning messages), it is safe to disable this option. 198 199 --disable-leaks test: set to test memory leaks 200 201 Compile-in code which frees memory which might confuse a leak-testing 202 tool. Normally these chunks of memory are retained as long as xterm 203 is running. 204 205 --disable-maximize disable actions for iconify/deiconify/maximize/restore 206 207 Do not compile-in code that implements runtime 'actions' for 208 iconifying, maximizing, etc. 209 210 Most users will find that the window manager is more suitable for 211 this sort of manipulation than putting the capabilities into xterm. 212 213 --disable-num-lock disable NumLock keypad support 214 215 Do not compile-in code that looks for the actual NumLock key to 216 support vt100/vt220 keypad translation. 217 218 This is used in xterm to simplify logic, and to workaround some 219 quirks of the keyboard tables. Use the ``numLock'' resource to 220 disable this feature if you must customize xterm in some other way. 221 222 (The same ifdef controls the metaSendsEscape support). 223 224 --disable-pty-handshake disable support for pty handshakes 225 226 This feature is used to ensure that the child process's terminal modes 227 match the parent's. In particular, it addresses a problem where the 228 terminal size is not defined in the stty settings. 229 230 --disable-rectangles disable VT420 rectangle support 231 232 Do not compile-in code to support VT420 rectangle control-sequences. 233 234 --disable-regex disable regular-expression selections 235 236 Do not compile-in code to support the "regex" option for multiple 237 mouse clicks. 238 239 --disable-rightbar disable right-scrollbar support 240 241 Do not compile-in code that supports a scrollbar on the right. 242 243 Left/right scrollbars are a matter of taste. Some older libraries 244 (e.g., X11R5) do not perform the geometry computation correctly, 245 leaving the right scrollbar incorrectly positioned after changing 246 the font size. 247 248 --disable-samename disable check for redundant name-change 249 250 Do not compile-in code that suppresses redundant updates to the 251 titlebar when the text has not changed. 252 253 --disable-session-mgt enable support for session management 254 255 Do not compile-in code which adds simple session management hooks 256 which are used when closing an xterm. Normally the code is 257 compiled-in, except for systems which do not support it. 258 259 --disable-setgid disable setgid 260 261 Do not install xterm using setuid/setgid permissions. Drop setgid 262 permissions on startup. 263 264 --disable-setuid disable setuid 265 266 Do not install xterm using setuid/setgid permissions. Drop setuid 267 permissions on startup. 268 269 --disable-sun-fkeys 270 271 Do not compile-in code to support Sun-style function keys. 272 273 --disable-tcap-fkeys disable termcap function-keys 274 275 Compile-in code to support feature which allows xterm to use the 276 function-key definitions from the termcap/terminfo entry which it used 277 to set the $TERM variable on startup. 278 279 --disable-tek4014 disable tek4014 emulation 280 281 Do not compile-in code to support Tektronix 4014 emulation. 282 283 This reduces the executable size by 17% (checked 1999/3/13). 284 285 Some people use the Tektronix emulation (which has been in xterm 286 for many years) as an example of code bloat, though this is not an 287 accurate impression. 288 289 --disable-vt52 disable VT52 emulation 290 291 Do not compile-in code to support vt52 emulation. 292 293 A genuine vt100 emulates a vt52. 294 295 --disable-ziconbeep disable -ziconbeep option 296 297 Do not compile-in code that modifies the icon's title and sounds a 298 beep when they receive output. 299 300 --enable-256-color enable 256-color support 301 302 Compile-in code that interprets SGR 38 and 48 for 256-colors. 303 304 --enable-88-color enable 88-color support 305 306 Compile-in code that interprets SGR 38 and 48 for 88-colors. 307 308 --enable-broken-osc allow broken Linux OSC-strings], 309 310 Compile-in code to accommodate scripts that write Linux's malformed 311 palette control strings without checking. The result makes xterm 312 appear to freeze. This workaround makes xterm ignore the strings, 313 and is compiled-in by default for Linux. 314 315 --enable-broken-st allow broken string-terminators], 316 317 Compile-in code that works around a bug in some ISDN routers (and 318 possibly other applications written by the same people): they send an 319 unterminated control string in their banner text, making xterm freeze. 320 The workaround tells xterm to stop processing the control string when 321 it receives one of the whitespace control characters such as newline. 322 That was the behavior before patch #171. 323 324 --enable-dabbrev enable dynamic-abbreviation support 325 326 Compile-in support for "dabbrev-expand()" action and related key 327 translation. 328 329 --enable-dec-locator enable DECterm Locator support 330 Add support for DEC Locator control sequences for xterm: 331 332 DECEFR - Enable Filter Rectangle 333 DECELR - Enable Locator Reports 334 DECSLE - Select Locator Events 335 DECRQLP - Request Locator Position 336 337 This allows the xterm mouse to be used with applications that use the 338 DEC Locator sequences, such as VAX Tpu, or SMG$ based applications. 339 340 --enable-exec-xterm enable "spawn-new-terminal" action 341 342 If your platform supports the process filesystem "cwd" link, 343 compile-in support for the "spawn-new-terminal" action, which 344 allows you to define a key translation that runs a new xterm 345 using the same working directory as the current process within 346 xterm. 347 348 --enable-hp-fkeys enable support for HP-style function keys 349 350 Compile-in code to support HP-style function keys. 351 352 --enable-load-vt-fonts enable load-vt-fonts() action 353 354 Compile-in code that allows user to define load different VT-font 355 definitions at runtime. 356 357 --enable-logfile-exec enable exec'd logfile filter 358 359 Compile-in code that allows logging piped via an external filter. 360 361 --enable-logging enable logging 362 363 Compile-in code that allows logging. 364 365 Logging was disabled in X11R5 xterm because of security problems. 366 They were addressed in X11R6, but the feature was not reinstated. 367 368 --enable-luit enable support for luit filter (Unicode translation) 369 370 Luit is a filter that can be run between an arbitrary application and a 371 UTF-8 terminal emulator. It will convert application output from the 372 locale's encoding into UTF-8, and convert terminal input from UTF-8 373 into the locale's encoding. 374 375 This sets "--enable-wide-chars" as a side-effect. 376 377 --enable-mini-luit enable support for poor man's luit filter (Latin-9) 378 379 Provide built-in support for Latin-9, relying on having specified 380 Unicode (ISO10646) fonts and setting the locale resource to "checkfont". 381 382 This sets "--enable-luit" as a side-effect. 383 384 --enable-narrowproto enable narrow prototypes for X libraries 385 386 Originally xterm was built using imake rather than a configure script. 387 One feature of imake that is not possible to guess within the 388 configure script is the wide-prototype compile-time definition 389 NARROWPROTO. When this is not set properly, the Athena widget 390 scrollbars do not work properly. xterm's configure script has a 391 fallback case which allows disabling imake. However, this is moot 392 with the X.org "modular" build, whose compiler options are unrelated to 393 imake or older versions of any libraries that it may distribute. In 394 this case, the configure script needs some help. Use this option to 395 enable or disable NARROW proto (and disable imake with the 396 --disable-imake option) to match the whims of X.org hackers. 397 398 For instance 399 400 configure --disable-imake --disable-narrowproto 401 402 --enable-paste64 enable support for bracketed paste mode 403 404 Compile-in code to support experimental bracketed paste mode, i.e., 405 provide functions for setting/getting the selection data. 406 407 (see ctlseqs.ms description of OSC 52). 408 409 --enable-readline-mouse enable support for mouse in readline applications 410 411 Compile-in code to support experimental bracketed paste mode, i.e., 412 provide functions for setting/getting the selection data. Essentially 413 this puts xterm into a mode that sends special function-key strings to 414 bracket the data. 415 416 (See --enable-paste64, which fits xterm's protocol better). 417 418 --enable-sco-fkeys enable support for SCO-style function keys 419 420 Compile-in code to support SCO-style function keys. 421 422 --enable-sun-fkeys enable support for Sun-style function keys 423 424 Compile-in code to support Sun-style function keys. 425 426 --enable-tcap-query enable termcap query/report 427 428 Compile-in code to support experimental DCS '+' control sequence, which 429 allows an application to ask xterm what control sequences it would 430 transmit for specified function keys, given the termcap or terminfo 431 names. 432 433 --enable-toolbar enable pulldown menus on toolbar 434 435 Compile-in code that builds a toolbar with pulldown menus. The 436 normal popup menus are still available. 437 438 This is an experimental option. As of patch #206, it is known to 439 work well with fvwm, but not as well with some other window managers, 440 e.g., KDE's Kwin and IceWM. 441 442 In addition to isolated layout problems, it is reported that some 443 flavors of the Athena widget library perform badly with ISO-10646 444 fonts. You can work around those by setting the menu fonts to 445 an ISO-8859 variant in your X resources. 446 447 --enable-trace test: set to enable debugging traces 448 449 Compile-in code to trace xterm's internal states. 450 451 This is a debugging feature. It causes xterm to produce two files 452 (Trace-parent.out and Trace-child.out). 453 454 --enable-warnings test: turn on GCC compiler warnings 455 456 Modify the generate Makefile to turn on gcc compiler warnings. 457 458 I use this option regularly, and correct all but a few (difficult) 459 problems. 460 461 --enable-wide-chars enable wide-character support 462 463 Compile-in code that supports 16-bit characters. Includes support 464 for UTF-8. 465 466 --enable-xmc-glitch test: enable xmc magic-cookie emulation 467 468 Compile-in code that simulates the terminfo "magic cookie" glitch. 469 470 This is for testing ncurses. 471 472 --with-Xaw3d link with Xaw 3d library 473 474 Look for, compile and link with the Xaw 3d widget library. 475 476 --with-XawPlus link with Athena-Plus library 477 478 Look for, compile and link with the Xaw Plus widget library. 479 480 --with-app-defaults=DIR directory in which to install resource files (default: EPREFIX/lib/X11/app-defaults) 481 482 autoconf scripts assume that all of the files should be installed 483 under the same top-level directory. But X applications defaults 484 must be installed into a special directory, e.g., 485 486 /usr/X11/lib/app-defaults 487 488 However, there is no standard for this pathname. The manual page 489 for X notes that the environment variable $XUSERFILESEARCHPATH can 490 specify a list of places where X searches for applications defaults. 491 Also, it may look in $XAPPLRESDIR, but that usually is not related 492 to where xterm might be installed. To keep it simple, the configure 493 script uses 494 495 EPREFIX/lib/X11/app-defaults 496 497 as the default (EPREFIX is --prefix). That makes it work normally 498 for most systems if --prefix is /usr. For other installs, e.g., to 499 /usr/local, you should use this option to customize the location to 500 match your system configuration. 501 502 Use --without-app-defaults or --with-app-defaults=no to disable the 503 feature. 504 505 --with-freetype-cflags -D/-I options for compiling with FreeType library 506 507 Override options provided by xft-config or freetype-config. 508 509 --with-freetype-libs -L/-l options for linking with FreeType library 510 511 Override options provided by xft-config or freetype-config. 512 513 --with-icondir=DIR directory in which to install icon files (default: EPREFIX/share/pixmaps) 514 515 The X libraries may automatically search these locations: 516 517 $HOME/.icons 518 $XDG_DATA_DIRS/icons 519 /usr/share/pixmaps 520 521 See also 522 http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html 523 524 Use --without-icondir or --with-icondir=no to disable the feature. 525 526 --with-neXtaw link with neXT Athena library 527 528 Look for, compile and link with the neXT Athena widget library. 529 530 --with-own-terminfo=P set default $TERMINFO (default: from environment) 531 532 Modify the generated Makefile to set the target for the 'install-ti' 533 rule to point to the given directory. 534 535 If you have the $TERMINFO variable defined in your environment, the 536 configure script will use that value. If no option and no variable 537 are are given, the configure script uses /usr/lib/terminfo, if it 538 exists. 539 540 You do not have to run "make install-ti", if there is already a 541 workable terminfo description. Be advised, however, that the 542 common variety of "xterm-color" is not suited for xterm, but is 543 directed to other variations (such as nxterm) which do not 544 support the background-color erase capability. 545 546 --with-pcre use PCRE for regular-expressions 547 548 If regular expressions are not disable (--disable-regex), use PCRE 549 rather than the POSIX regular expressions. 550 551 --with-reference=XXX program to use as permissions-reference 552 553 To install xterm with setuid permissions, the scripts usually compare 554 it with a previous install. That works well for individual 555 maintainers, but can be a problem for packagers who may be 556 cross-compiling, etc. This option lets the package builder specify 557 the file used for permissions reference. 558 559 --with-setuid=XXX use the given setuid user 560 561 Install xterm setuid'd to the given user. If no parameter value 562 is given, assume it is root. 563 564 See also --with-utmp-setgid and --with-utempter, which manipulate 565 the setgid group. 566 567 --with-tty-group=XXX use XXX for the tty-group 568 569 If xterm is installed setuid'd to root, change the group of the tty 570 device to the given value on startup. Three cases are possible: 571 572 a) If this option is not given, the configure script will attempt to 573 find a suitable value (usually "tty"), and verify that it exists in 574 the group database. 575 576 b) If the option value is given, it will use the value even if it does 577 not exist in the group database (allowing packagers to work about 578 deficient environments). 579 580 c) If the option is disabled, e.g., --without-tty-group, the 581 permissions change will use the group-id of the process. 582 583 If xterm is not installed setuid'd to root, this option is not needed, 584 since it cannot change the tty device's ownership. 585 586 --with-xterm-symlink=XXX make symbolic link to installed xterm 587 588 If any of the configure options to modify the program name i.e., 589 --program-prefix, --program-suffix or --program-transform-name 590 are given, this option allows the makefile to create a symbolic link, 591 e.g., to "xterm" on install. The option value gives the name for 592 the link, which defaults to "xterm". 593 594 Use --without-xterm-symlink to disable a link to "xterm" if none 595 is wanted. 596 597 --with-terminal-id[=V] set default decTerminalID (default: vt100) 598 599 Set the default emulation level. 600 601 DEC terminals vt52/vt100/vt220/etc form a series where succeeding 602 models emulate features of the older terminals. While most 603 features of these terminals are recognized by xterm at all levels, 604 a few behave differently according to the emulation level. 605 606 You can always override this with the command-line option "-ti". 607 608 --with-terminal-type=T set default $TERM (default: xterm) 609 610 Set the default value for $TERM. Xterm supports legacy termcap 611 applications by constructing a modified version of the $TERMCAP 612 variable at initialization, which supplies the resulting screen 613 size. It also sets $TERM, if not already set, for use by programs 614 running within xterm. 615 616 The default value "xterm", can be overridden to avoid conflict 617 with older versions of xterm, e.g., those that do not implement 618 vt220 emulation. 619 620 You can always override this with the command-line option "-tn". 621 622 --with-utempter use utempter library for access to utmp 623 624 The utempter library is a set-uid wrapper for the utmp facility. 625 On systems with Unix98 pty's, xterm can use this library when 626 available so it need not be installed set-uid. 627 628 --with-utmp-setgid=XXX use setgid for access to utmp 629 630 The option value specifies a group to use when installing. 631 xterm will be installed with setgid privilege to this group. 632 At runtime, xterm will drop the setuid privilege immediately 633 after opening the pseudo-terminal, and will have only the 634 group privilege needed to access the utmp file. This relies 635 on having POSIX setuid behavior. 636 637-- vile:txtmode 638