INSTALL revision e39b573c
1-- $XTermId: INSTALL,v 1.125 2011/07/07 01:01:14 tom Exp $ 2------------------------------------------------------------------------------- 3-- Copyright 1997-2010,2011 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 was originally built as part of the X Window System source tree, using 33imake to generate a Makefile from Imakefile. You can also use the configure 34script 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-broken-st disallow broken string-terminators], 109 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 113 freeze. 114 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. 118 119 See also --enable-broken-osc 120 121 --disable-c1-print disallow -k8 option for printable 128-159], 122 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 127 normal users. 128 129 --disable-color-class disable color class resources 130 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 135 the instance. 136 137 --disable-color-mode disable default colorMode resource 138 139 Do not compile-in code that sets the default value of the colorMode 140 resource to ``true''. 141 142 --disable-desktop disable install of xterm desktop files 143 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. 148 149 Note: If desktop-utils is not found they will not be installed anyway. 150 151 --disable-doublechars disable support for double-size chars 152 153 Do not compile-in code that supports font-manipulation needed to 154 implement vt100-style double-sized characters. 155 156 --disable-echo test: display "compiling" commands 157 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. 161 162 --disable-fifo-lines enable FIFO-storage for saved-lines 163 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. 167 168 --disable-freetype disable freetype library-support 169 170 Do not use freetype libraries if they are found. Normally they will 171 be used automatically. 172 173 --disable-full-tgetent disable check for termcap library 174 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. 180 181 --disable-highlighting disable support for color highlighting 182 183 Do not compile-in code that allows the selected region to be a 184 different color than the reverse of foreground/background colors. 185 186 See the discussion of highlightColor in the manual. 187 188 --disable-i18n disable internationalization 189 190 Do not compile-in code to handle multi-byte characters. This is 191 related to, but not identical with the input method logic. 192 193 --disable-imake disable use of imake for definitions 194 195 Do not attempt to use imake to determine compiler options. 196 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. 200 201 --disable-initial-erase disable setup for stty erase 202 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. 207 208 --disable-input-method disable input-method 209 210 Do not compile-in code for "input method". This is an X11R6 211 feature which deals with translation of composite characters. 212 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. 217 218 --disable-leaks test: set to test memory leaks 219 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 222 is running. 223 224 --disable-maximize disable actions for iconify/deiconify/maximize/restore 225 226 Do not compile-in code that implements runtime 'actions' for 227 iconifying, maximizing, etc. 228 229 Most users will find that the window manager is more suitable for 230 this sort of manipulation than putting the capabilities into xterm. 231 232 --disable-num-lock disable NumLock keypad support 233 234 Do not compile-in code that looks for the actual NumLock key to 235 support vt100/vt220 keypad translation. 236 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. 240 241 (The same ifdef controls the metaSendsEscape support). 242 243 --disable-paste64 disable support for bracketed paste mode 244 245 Do not compile-in code to support experimental bracketed paste mode, 246 i.e., provide functions for setting/getting the selection data. 247 248 (see ctlseqs.ms description of OSC 52). 249 250 --disable-pty-handshake disable support for pty handshakes 251 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. 255 256 --disable-rectangles disable VT420 rectangle support 257 258 Do not compile-in code to support VT420 rectangle control-sequences. 259 260 --disable-regex disable regular-expression selections 261 262 Do not compile-in code to support the "regex" option for multiple 263 mouse clicks. 264 265 --disable-rightbar disable right-scrollbar support 266 267 Do not compile-in code that supports a scrollbar on the right. 268 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 272 the font size. 273 274 --disable-rpath-hack don't add rpath options for additional libraries 275 276 By default, the configure script looks for libraries in unusual places 277 and adds an rpath linker option to help. 278 279 --disable-samename disable check for redundant name-change 280 281 Do not compile-in code that suppresses redundant updates to the 282 titlebar when the text has not changed. 283 284 --disable-session-mgt enable support for session management 285 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. 289 290 --disable-setgid disable setgid 291 292 Do not install xterm using setuid/setgid permissions. Drop setgid 293 permissions on startup. 294 295 --disable-setuid disable setuid 296 297 Do not install xterm using setuid/setgid permissions. Drop setuid 298 permissions on startup. 299 300 --disable-sun-fkeys 301 302 Do not compile-in code to support Sun-style function keys. 303 304 --disable-tcap-fkeys disable termcap function-keys 305 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. 309 310 --disable-tcap-query disable termcap query/report 311 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 315 names. 316 317 --disable-tek4014 disable tek4014 emulation 318 319 Do not compile-in code to support Tektronix 4014 emulation. 320 321 This reduces the executable size by 17% (checked 1999/3/13). 322 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 325 accurate impression. 326 327 --disable-vt52 disable VT52 emulation 328 329 Do not compile-in code to support vt52 emulation. 330 331 A genuine vt100 emulates a vt52. 332 333 --disable-ziconbeep disable -ziconbeep option 334 335 Do not compile-in code that modifies the icon's title and sounds a 336 beep when they receive output. 337 338 --enable-16bit-chars enable 16-bit characters support 339 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. 344 345 --enable-256-color enable 256-color support 346 347 Compile-in code that interprets SGR 38 and 48 for 256-colors. 348 349 --enable-88-color enable 88-color support 350 351 Compile-in code that interprets SGR 38 and 48 for 88-colors. 352 353 --enable-broken-osc allow broken Linux OSC-strings], 354 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. 359 360 --enable-dabbrev enable dynamic-abbreviation support 361 362 Compile-in support for "dabbrev-expand()" action and related key 363 translation. 364 365 --enable-dec-locator enable DECterm Locator support 366 Add support for DEC Locator control sequences for xterm: 367 368 DECEFR - Enable Filter Rectangle 369 DECELR - Enable Locator Reports 370 DECSLE - Select Locator Events 371 DECRQLP - Request Locator Position 372 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. 375 376 --enable-exec-xterm enable "spawn-new-terminal" action 377 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 382 xterm. 383 384 --enable-hp-fkeys enable support for HP-style function keys 385 386 Compile-in code to support HP-style function keys. 387 388 --enable-load-vt-fonts enable load-vt-fonts() action 389 390 Compile-in code that allows user to define load different VT-font 391 definitions at runtime. 392 393 --enable-logfile-exec enable exec'd logfile filter 394 395 Compile-in code that allows logging piped via an external filter. 396 397 --enable-logging enable logging 398 399 Compile-in code that allows logging. 400 401 Logging was disabled in X11R5 xterm because of security problems. 402 They were addressed in X11R6, but the feature was not reinstated. 403 404 --enable-luit enable support for luit filter (Unicode translation) 405 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. 410 411 This sets "--enable-wide-chars" as a side-effect. 412 413 --enable-mini-luit enable support for poor man's luit filter (Latin-9) 414 415 Provide built-in support for Latin-9, relying on having specified 416 Unicode (ISO10646) fonts and setting the locale resource to "checkfont". 417 418 This sets "--enable-luit" as a side-effect. 419 420 --enable-narrowproto enable narrow prototypes for X libraries 421 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. 433 434 For instance 435 436 configure --disable-imake --disable-narrowproto 437 438 --enable-readline-mouse enable support for mouse in readline applications 439 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 443 bracket the data. 444 445 (See --enable-paste64, which fits xterm's protocol better). 446 447 --enable-sco-fkeys enable support for SCO-style function keys 448 449 Compile-in code to support SCO-style function keys. 450 451 --enable-sun-fkeys enable support for Sun-style function keys 452 453 Compile-in code to support Sun-style function keys. 454 455 --enable-toolbar enable pulldown menus on toolbar 456 457 Compile-in code that builds a toolbar with pulldown menus. The 458 normal popup menus are still available. 459 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. 463 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. 468 469 --enable-trace test: set to enable debugging traces 470 471 Compile-in code to trace xterm's internal states. 472 473 This is a debugging feature. It causes xterm to produce two files 474 (Trace-parent.out and Trace-child.out). 475 476 --enable-warnings test: turn on GCC compiler warnings 477 478 Modify the generate Makefile to turn on gcc compiler warnings. 479 480 I use this option regularly, and correct all but a few (difficult) 481 problems. 482 483 --enable-wide-chars enable wide-character support 484 485 Compile-in code that supports 16-bit characters. Includes support 486 for UTF-8. 487 488 --enable-xmc-glitch test: enable xmc magic-cookie emulation 489 490 Compile-in code that simulates the terminfo "magic cookie" glitch. 491 492 This is for testing ncurses. 493 494 --with-Xaw3d link with Xaw 3d library 495 496 Look for, compile and link with the Xaw 3d widget library. 497 498 --with-XawPlus link with Athena-Plus library 499 500 Look for, compile and link with the Xaw Plus widget library. 501 502 --with-app-class=XXX X resource class (default: XTerm) 503 504 Rename the X resource class, e.g., for packaging a development version 505 of xterm with different result names. 506 507 --with-app-defaults=DIR directory in which to install resource files (default: EPREFIX/lib/X11/app-defaults) 508 509 autoconf scripts assume that all of the files should be installed 510 under the same top-level directory. But X applications defaults 511 must be installed into a special directory, e.g., 512 513 /usr/X11/lib/app-defaults 514 515 However, there is no standard for this pathname. The manual page 516 for X notes that the environment variable $XUSERFILESEARCHPATH can 517 specify a list of places where X searches for applications defaults. 518 Also, it may look in $XAPPLRESDIR, but that usually is not related 519 to where xterm might be installed. To keep it simple, the configure 520 script uses 521 522 EPREFIX/lib/X11/app-defaults 523 524 as the default (EPREFIX is --prefix). That makes it work normally 525 for most systems if --prefix is /usr. For other installs, e.g., to 526 /usr/local, you should use this option to customize the location to 527 match your system configuration. 528 529 Use --without-app-defaults or --with-app-defaults=no to disable the 530 feature. 531 532 --with-desktop-category=XXX one or more desktop catgories or auto 533 This is a list of names. The configure script maps blanks and commas 534 to semicolons (";") which are used by the desktop utils as a separator. 535 536 The default value "auto" tells the configure script to look 537 at existing ".desktop" files for xterm and common terminal 538 emulators, to use those. 539 540 --with-freetype-cflags -D/-I options for compiling with FreeType library 541 542 Override options provided by xft-config or freetype-config. 543 544 --with-freetype-libs -L/-l options for linking with FreeType library 545 546 Override options provided by xft-config or freetype-config. 547 548 --with-icondir=DIR directory in which to install icon files (default: EPREFIX/share/pixmaps) 549 550 The X libraries may automatically search these locations: 551 552 $HOME/.icons 553 $XDG_DATA_DIRS/icons 554 /usr/share/pixmaps 555 556 See also 557 http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html 558 559 Use --without-icondir or --with-icondir=no to disable the feature. 560 561 --with-neXtaw link with neXT Athena library 562 563 Look for, compile and link with the neXT Athena widget library. 564 565 --with-own-terminfo=P set default $TERMINFO (default: from environment) 566 567 Modify the generated Makefile to set the target for the 'install-ti' 568 rule to point to the given directory. 569 570 If you have the $TERMINFO variable defined in your environment, the 571 configure script will use that value. If no option and no variable 572 are are given, the configure script uses /usr/lib/terminfo, if it 573 exists. 574 575 You do not have to run "make install-ti", if there is already a 576 workable terminfo description. Be advised, however, that the 577 common variety of "xterm-color" is not suited for xterm, but is 578 directed to other variations (such as nxterm) which do not 579 support the background-color erase capability. 580 581 --with-pcre use PCRE for regular-expressions 582 583 If regular expressions are not disable (--disable-regex), use PCRE 584 rather than the POSIX regular expressions. 585 586 --with-pkg-config{=path} enable/disable use of pkg-config 587 588 The configure script looks for certain libraries which have well 589 established pkg-config scripts, and will use those settings if 590 available. Not all pkg-config scripts work; this option suppresses 591 the check and relies on normal library search paths. 592 593 --with-reference=XXX program to use as permissions-reference 594 595 To install xterm with setuid permissions, the scripts usually compare 596 it with a previous install. That works well for individual 597 maintainers, but can be a problem for packagers who may be 598 cross-compiling, etc. This option lets the package builder specify 599 the file used for permissions reference. 600 601 --with-setuid=XXX use the given setuid user 602 603 Install xterm setuid'd to the given user. If no parameter value 604 is given, assume it is root. 605 606 See also --with-utmp-setgid and --with-utempter, which manipulate 607 the setgid group. 608 609 --with-tty-group=XXX use XXX for the tty-group 610 611 If xterm is installed setuid'd to root, change the group of the tty 612 device to the given value on startup. Three cases are possible: 613 614 a) If this option is not given, the configure script will attempt to 615 find a suitable value (usually "tty"), and verify that it exists in 616 the group database. 617 618 b) If the option value is given, it will use the value even if it does 619 not exist in the group database (allowing packagers to work about 620 deficient environments). 621 622 c) If the option is disabled, e.g., --without-tty-group, the 623 permissions change will use the group-id of the process. 624 625 If xterm is not installed setuid'd to root, this option is not needed, 626 since it cannot change the tty device's ownership. 627 628 --with-xterm-symlink=XXX make symbolic link to installed xterm 629 630 If any of the configure options to modify the program name i.e., 631 --program-prefix, --program-suffix or --program-transform-name 632 are given, this option allows the makefile to create a symbolic link, 633 e.g., to "xterm" on install. The option value gives the name for 634 the link, which defaults to "xterm". 635 636 Use --without-xterm-symlink to disable a link to "xterm" if none 637 is wanted. 638 639 --with-terminal-id[=V] set default decTerminalID (default: vt100) 640 641 Set the default emulation level. 642 643 DEC terminals vt52/vt100/vt220/etc form a series where succeeding 644 models emulate features of the older terminals. While most 645 features of these terminals are recognized by xterm at all levels, 646 a few behave differently according to the emulation level. 647 648 You can always override this with the command-line option "-ti". 649 650 --with-terminal-type=T set default $TERM (default: xterm) 651 652 Set the default value for $TERM. Xterm supports legacy termcap 653 applications by constructing a modified version of the $TERMCAP 654 variable at initialization, which supplies the resulting screen 655 size. It also sets $TERM, if not already set, for use by programs 656 running within xterm. 657 658 The default value "xterm", can be overridden to avoid conflict 659 with older versions of xterm, e.g., those that do not implement 660 vt220 emulation. 661 662 You can always override this with the command-line option "-tn". 663 664 --with-utempter use utempter library for access to utmp 665 666 The utempter library is a set-uid wrapper for the utmp facility. 667 On systems with Unix98 pty's, xterm can use this library when 668 available so it need not be installed set-uid. 669 670 --with-utmp-setgid=XXX use setgid for access to utmp 671 672 The option value specifies a group to use when installing. 673 xterm will be installed with setgid privilege to this group. 674 At runtime, xterm will drop the setuid privilege immediately 675 after opening the pseudo-terminal, and will have only the 676 group privilege needed to access the utmp file. This relies 677 on having POSIX setuid behavior. 678 679-- vile:txtmode 680