+++ /dev/null
-
-
-
-
-
-
-
-
-
- Building and Installing the X Window System
-
-
-
-
-
-
-
-
- Stephen Gildea
-
- X Consortium
-
-
-
-
-
-
- March 5, 1996
-
- Updated For Release 6.3
-
-
-
-
-
-
-
-
-
-
-Copyright c 1995, 1996 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish, dis-
-tribute, sublicense, and/or sell copies of the Software, and to permit
-persons to whom the Software is furnished to do so, subject to the fol-
-lowing conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABIL-
-ITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization from
-the X Consortium.
-
-X Window System is a trademark of X Consortium, Inc.
-
-
-1. Easy Build Instructions
-
-This quick summary is no substitute for reading the full build instruc-
-tions later in this document.
-
-Edit xc/config/cf/site.def for local preferences. If you want to build
-with gcc uncomment the HasGcc2 line. If you want to install somewhere
-other than /usr/X11R6.3, change ProjectRoot. (Do not use DESTDIR.)
-
-If any fixes have been released by the X Consortium, stop here and fol-
-low the instructions at the top of each patch, but don't do any of the
-make commands suggested in the patches. Then continue here.
-
-Check the appropriate vendor-specific .cf file in xc/config/cf/ to make
-sure that OSMajorVersion and OSMinorVersion are set correctly for your
-system. Override them in site.def if necessary.
-
-See if there is a BootstrapCFlags mentioned in the comments in the
-vendor-specific .cf file. If there isn't one, cd to the xc directory
-and type:
-
- % make World >& world.log
-
-
-If there is a BootstrapCFlags, take its value and type:
-
- % make World BOOTSTRAPCFLAGS="value" >& world.log
-
-
-Do not call the output file "make.log" when doing "make World". After a
-successful build, you can install with:
-
- % make install >& install.log
-
-
-You can install manual pages with:
-
- % make install.man >& man.log
-
-
-While the system is building (or if things fail), read the rest of these
-installation instructions.
-
-
-
-2. Building X
-
-
-This document gives detailed instructions for building Release 6: get-
-ting it off the distribution medium, configuring, compiling, installing,
-running, and updating.
-
-Release Notes are in xc/RELNOTES.* (various formats) in the distribu-
-tion.
-
-More recent information about newly-discovered problems may be found in
-the Frequently Asked Questions posting appearing monthly on the
-comp.windows.x newsgroup and xpert mailing list. It is also available
-via anonymous FTP on ftp.x.org in the file contrib/faqs/FAQ.Z, or on
-your local X mirror site.
-
-
-2.1. Preparing the Site
-
-
-If you are unpacking tar files, you will need about 130 Mb to hold the
-xc/ part. To install requires 30-50 Mb assuming you have shared
-libraries (80-100 Mb without). You will need an equivalent amount of
-extra space to build, since you also need room for all the object files.
-
-Distributed as tar files, Release 6.3 core is divided into parts as fol-
-lows:
-
-
- xc-1.tar contains everything in xc/ that isn't in the other tar files
- xc-2.tar contains xc/fonts, xc/doc/specs, xc/util
- xc-3.tar contains xc/doc/hardcopy
-
-
-If you define BuildFonts to NO, you only need to unpack xc-1.tar to
-build. If you build fonts, then you will also need xc-2.tar to build.
-
-
-2.2. Unpacking the Distribution
-
-
-The distribution normally comes as multiple tar files, either on tape or
-across a network, or as a CD-ROM.
-
-
-2.2.1. Unpacking a Compressed FTP Distribution
-
-
-If you have obtained compressed tar files over the network, create a
-directory to hold the sources and cd into it:
-
- mkdir sourcedir
- cd sourcedir
-
-Then for each tar file xc-*.tar.Z, execute this:
-
- zcat ftp-dir/xc-N.tar.Z | tar xf -
-
-
-
-2.2.2. Unpacking a gzipped FTP Distribution
-
-
-If you have obtained gzipped tar files over the network, create a direc-
-tory to hold the sources and cd into it:
-
- mkdir sourcedir
- cd sourcedir
-
-Then for each tar file xc-*.tar.gz, execute this:
-
- gunzip -c ftp-dir/xc-N.tar.gz | tar xf -
-
-
-
-2.2.3. Unpacking a Split Compressed FTP Distribution
-
-
-If you have obtained compressed and split tar files over the network,
-create a directory to hold the sources:
-
- mkdir sourcedir
-
-Then for each directory xc-*:
-
- cd ftp-dir/xc-N
- cat xc-N.?? | uncompress | (cd sourcedir; tar xf -)
-
-
-
-2.2.4. Unpacking the Tape Distribution
-
-
-If you have obtained a tape, create a directory to hold the sources and
-untar everything into that directory:
-
- mkdir sourcedir
- cd sourcedir
- tar xf tape-device
-
-
-
-2.2.5. Using the CD-ROM
-
-
-If you have obtained a CD-ROM, you don't have to do anything to unpack
-it. However, you will have to create a symbolic link tree to build X.
-See the next section.
-
-To mount the CD-ROM, see the mount(8) manual page on your system or the
-liner notes that came with the CD-ROM. Some systems, e.g., Solaris 2,
-can automatically mount the CD-ROM for you.
-
-
-2.3. Apply Patches
-
-
-If there are fixes released that are more recent than your distribution,
-apply them now. Follow the instructions at the top of each patch, but
-don't do any make commands. See the section "Public Patches" later in
-this document. Then continue here.
-
-
-2.4. Symbolic Link Trees
-
-
-If you expect to build the distribution on more than one machine using a
-shared source tree, or you are building from CD-ROM, or you just want to
-keep the source tree pure, you may want to use the program
-xc/config/util/lndir.c to create a symbolic link tree on each build
-machine. The links may use an additional 10 megabytes, but it is
-cheaper than having multiple copies of the source tree.
-
-It may be tricky to compile lndir before the distribution is built. If
-you have a copy from a previous release, use that. Makefile.ini can be
-used for building lndir the first time. You may have to specify
-OSFLAGS=-Dsomething to get it to compile. What you would pass as
-BOOTSTRAPCFLAGS might work. The command line looks something like this:
-
- make -f Makefile.ini OSFLAGS=-Dflag
-
-
-To use a symbolic link tree, create a directory for the build, cd to it,
-and type this:
-
- lndir sourcedir
-
-
-where sourcedir is the pathname of the directory where you stored the
-sources. All of the build instructions given below should then be done
-in the build directory on each machine, rather than in the source direc-
-tory.
-
-xc/config/util/mkshadow/ contains mkshadow, an alternative program to
-lndir.
-
-
-2.5. Configuration Parameters
-
-
-Build information for each source directory is in files called
-Imakefile. An Imakefile, along with local configuration information in
-xc/config/cf/, is used by the program imake to generate a Makefile.
-
-Most of the configuration work prior to building the release is to set
-parameters so that imake will generate correct files. Most of those
-parameters are set in xc/config/cf/site.def. You will also need to
-check the appropriate vendor-specific .cf file in xc/config/cf/ to make
-sure that OSMajorVersion, OSMinorVersion, and OsTeenyVersion are set
-correctly for your system. Override them in site.def if necessary.
-
-The site.def file has two parts, one protected with "#ifdef BeforeVen-
-dorCF" and one with "#ifdef AfterVendorCF". The file is actually pro-
-cessed twice, once before the .cf file and once after. About the only
-thing you need to set in the "before" section is HasGcc2; just about
-everything else can be set in the "after" section.
-
-The sample site.def also has commented out support to include another
-file, host.def. This scheme may be useful if you want to set most
-parameters site-wide, but some parameters vary from machine to machine.
-If you use a symbolic link tree, you can share site.def across all
-machines, and give each machine its own copy of host.def.
-
-The config parameters are listed in xc/config/cf/README, but here are
-some of the more common parameters that you may wish to set in site.def.
-
-ProjectRoot
- The destination where X will be installed. This variable needs to
- be set before you build, as some programs that read files at run-
- time have the installation directory compiled in to them. Assuming
- you have set the variable to some value /path, files will be
- installed into /path/bin, /path/include/X11, /path/lib, and
- /path/man.
-
-HasGccSet to YES to build with gcc version 1.
-
-HasGcc2
- Set to YES to build with gcc version 2. Both this option and
- HasGcc look for a compiler named gcc, but HasGcc2 will cause the
- build to use more features of gcc 2, such as the ability to compile
- shared libraries.
-
-BuildXInputExt
- Set to YES to build the X Input Extension. This extension requires
- device-dependent support in the X server, which exists only in Xhp
- in our implementation.
-
-BuildPexExt
- Set to NO to not build the PEX server extension and fonts.
-
-DefaultUsrBin
- This is a directory where programs will be found even if PATH is
- not set in the environment. It is independent of ProjectRoot and
- defaults to /usr/bin. It is used, for example, when connecting
- from a remote system via rsh. The rstart program installs its
- server in this directory.
-
-InstallServerSetUID
- Some systems require the X server to run as root to access the dev-
- ices it needs. If you are on such a system and will not be using
- xdm, you can set this variable to YES to install the X server
- setuid to root. Note that the X server has not been analyzed by
- the X Consortium for security in such an installation; talk to your
- system manager before setting this variable.
-
-InstallXdmConfig
- By default set to NO, which suppresses installing xdm config files
- over existing ones. Leave it set to NO if your site has customized
- the files in /usr/X11R6.3/lib/X11/xdm, as many sites do. If you
- don't install the new files, merge any changes present in the new
- files.
-
-MotifBC
- Causes Xlib and Xt to work around some bugs in older versions of
- Motif. Set to YES only if you will be linking with Motif version
- 1.1.1, 1.1.2, or 1.1.3.
-
-GetValuesBC
- Setting this variable to YES allows illegal XtGetValues requests
- with NULL ArgVal to usually succeed, as R5 did. Some applications
- erroneously rely on this behavior. Support for this will be
- removed in a future release.
-
-The following vendor-specific .cf files are in the release but have not
-been tested recently and hence probably need changes to work:
-apollo.cf, bsd.cf, convex.cf, DGUX.cf, luna.cf, macII.cf, Mips.cf,
-moto.cf, Oki.cf, pegasus.cf, x386.cf. Amoeba.cf is known to require
-additional patches.
-
-The file xc/lib/Xdmcp/Wraphelp.c, for XDM-AUTHORIZATION-1, is not
-included in this release.
-
-
-2.6. System Build Notes
-
-
-This section contains hints on building X with specific compilers and
-operating systems.
-
-If the build isn't finding things right, make sure you are using a com-
-piler for your operating system. For example, a pre-compiled gcc for a
-different OS will not have right symbols defined, so imake will not work
-correctly.
-
-
-2.6.1. gcc
-
-gcc version 2 is in regular use at the X Consortium on Sparc platforms.
-Set the variable HasGcc2. X will not compile on some systems with gcc
-version 2.5, 2.5.1, or 2.5.2 because of an incorrect declaration of mem-
-move() in a gcc include file.
-
-If you are using a gcc version older than 2.7 on Solaris x86, you need
-to specify BOOTSTRAPCFLAGS="-Dsun" in the "make World" command.
-
-
-2.6.2. Other GNU tools
-
-Use of the GNU assembler, as, or linker, ld, is not supported. GNU make
-is not supported.
-
-
-2.6.3. SparcWorks 2.0
-
-
-If you have a non-threaded program and want to debug it with the old
-SparcWorks 2.0 dbx, you will need to use the thread stubs library in
-xc/util/misc/thr_stubs.c. Compile it as follows:
-
- cc -c thr_stubs.c
- ar cq libthr_stubs.a thr_stubs.o
- ranlib libthr_stubs.a
-
-Install libthr_stubs.a in the same directory with your X libraries
-(e.g., /usr/X11R6.3/lib/libthr_stubs.a). Add the following line to
-site.def:
-
- #define ExtraLibraries -lsocket -lnsl $(CDEBUGFLAGS:-g=-lthr_stubs)
-
-This example uses a make macro substitution; not all make implementa-
-tions support this feature.
-
-
-2.6.4. CenterLine C under Solaris 2
-
-
-If you are using the CenterLine C compiler to compile the distribution
-under Solaris 2, place the following line in your site.def:
-
- #define HasCenterLineC YES
-
-If clcc is not in your default search path, add this line to site.def:
-
- #define CcCmd /path/to/your/clcc
-
-
-If you are using CodeCenter 4.0.4 or earlier, the following files
-trigger bugs in the clcc optimizer:
-
- xc/programs/Xserver/cfb16/cfbgetsp.c
- xc/programs/Xserver/cfb16/cfbfillsp.c
- xc/programs/Xserver/cfb/cfbgetsp.c
-
-
-Thus to build the server, you will have to compile these files by hand
-with the -g flag:
-
- % cd xc/programs/Xserver/cfb16
- % make CDEBUGFLAGS="-g" cfbgetsp.o cfbfillsp.o
- % cd ../cfb
- % make CDEBUGFLAGS="-g" cfbgetsp.o
-
-This optimizer bug appears to be fixed in CodeCenter 4.0.6.
-
-
-2.6.5. IBM AIX 4.1.4
-
-
-On AIX 4.1.4, the file lib/font/Type1/objects.c must be compiled without
-optimization (-O) else the X server will exit when Type 1 fonts are
-used.
-
-
-2.6.6. SunOS 4
-
-
-SunOS 4.0 and earlier need BOOTSTRAPCFLAGS=-DNOSTDHDRS because they do
-not have unistd.h nor stdlib.h. Do not supply a BOOTSTRAPCFLAGS when
-building any SunOS 4.1 version.
-
-
-2.6.7. Microsoft Windows NT
-
-
-All of the base libraries are supported, including multi-threading in
-Xlib and Xt, but some of the more complicated applications, specifically
-xterm and xdm, are not supported.
-
-There are also some other rough edges in the implementation, such as
-lack of support for non-socket file descriptors as Xt alternate inputs
-and not using the registry for configurable parameters like the system
-filenames and search paths.
-
-The Xnest server has been made to run on NT. It requires a real X
-server for output still.
-
-
-2.6.8. Omron Luna
-
-
-The Omron Luna platform is no longer supported. The Luna version of the
-make program doesn't define the standard macro MAKE, so you must run it
-as "make MAKE=make" at top level, e.g., "make MAKE=make World".
-
-
-2.7. The Build
-
-
-On NT, type
-
- nmake World.Win32 > world.log
-
-On other systems, find the BootstrapCFlags line, if any, in the vendor-
-specific .cf file. If there isn't one, type
-
- % make World >& world.log
-
-otherwise type
-
- % make World BOOTSTRAPCFLAGS="value" >& world.log
-
-
-You can call the output file something other than "world.log", but do
-not call it "make.log" because files with this name are automatically
-deleted during the "cleaning" stage of the build.
-
-Because the build can take several hours to complete, you will probably
-want to run it in the background and keep a watch on the output. For
-example:
-
- % make World >& world.log &
- % tail -f world.log
-
-
-If something goes wrong, the easiest thing is to just start over (typing
-"make World" again) once you have corrected the problem.
-
-
-2.8. Installing X
-
-
-If everything is built successfully, you can install the software by
-typing the following as root:
-
- % make install >& install.log
-
-
-Again, you might want to run this in the background and use tail to
-watch the progress.
-
-You can install the manual pages by typing the following as root:
-
- % make install.man >& man.log
-
-
-
-2.8.1. System Installation Notes
-
-
-This section contains hints on installing and using X with specific com-
-pilers and operating systems.
-
-
-2.8.1.1. The X Server on AIX 4
-
-
-For IBM's AIX 4, you need to make sure the LFT device is associated with
-the correct graphics adapter. It's a one-time setup that does not hap-
-pen automatically, even if there's only one graphics adapter in the sys-
-tem. To configure the LFT device properly, become root and start SMIT.
-Go to the "Devices" category, choose "LFT", then "Displays", then "Move
-the LFT to Another Display".
-
-Select "Both" for when the change should take effect, then select the
-display adapter where you want to run the X server. Confirm the changes
-and exit SMIT; from now on, you should be able to run the server just
-fine.
-
-To run Xibm from xdm, you must provide the "-force" flag on the server
-command line in the Xservers file.
-
-
-2.9. Shared Libraries
-
-
-The version number of some of the the shared libraries has been changed.
-On SunOS 4, which supports minor version numbers for shared libraries,
-programs linked with the R6 libraries will use the new libraries with no
-special action required. On other platforms you have the following
-choices:
-
-1. Keep the old versions of the libraries around.
-
-2. Relink all applications with the new libraries.
-
-3. Create a link from the old name to the new name.
-
- For example, to have programs that were linked against
- libX11.so.6.0 use libX11.so.6.3, make this link:
-
- ln -s libX11.so.6.3 libX11.so.6.0
-
-
-
-2.10. Setting Up xterm
-
-
-If your /etc/termcap and /usr/lib/terminfo databases do not have correct
-entries for xterm, use the sample entries provided in the directory
-xc/programs/xterm/. System V users may need to compile and install the
-terminfo entry with the tic utility.
-
-Since each xterm will need a separate pseudoterminal, you need a reason-
-able number of them for normal execution. You probably will want at
-least 32 on a small, multiuser system. On most systems, each pty has
-two devices, a master and a slave, which are usually named
-/dev/tty[pqrstu][0-f] and /dev/pty[pqrstu][0-f]. If you don't have at
-least the "p" and "q" sets configured (try typing "ls /dev/?ty??"), you
-should have your system administrator add them. This is commonly done
-by running the MAKEDEV script in the /dev directory with appropriate ar-
-guments.
-
-
-2.11. Starting Servers at System Boot
-
-
-The xfs and xdm programs are designed to be run automatically at system
-startup. Please read the manual pages for details on setting up confi-
-guration files; reasonable sample files are in xc/programs/xdm/config/
-and xc/programs/xfs/.
-
-
-2.11.1. On BSD-based systems using /etc/rc
-
-
-If your system uses an /etc/rc file at boot time, you can usually enable
-these programs by placing the following at or near the end of the file:
-
- if [ -f /usr/X11R6.3/bin/xfs ]; then
- /usr/X11R6.3/bin/xfs & echo -n ' xfs'
- fi
-
- if [ -f /usr/X11R6.3/bin/xdm ]; then
- /usr/X11R6.3/bin/xdm; echo -n ' xdm'
- fi
-
-
-Since xfs can serve fonts over the network, you do not need to run a
-font server on every machine with an X display. You should start xfs
-before xdm, since xdm may start an X server which is a client of the
-font server.
-
-The examples here use /usr/X11R6.3/bin, but if you have installed into a
-different directory by setting (or unsetting) ProjectRoot then you need
-to substitute the correct directory.
-
-If you are unsure about how system boot works, or if your system does
-not use /etc/rc, consult your system administrator for help.
-
-
-2.11.2. On SystemV-based systems
-
-
-There are two ways you can get On systems with a /etc/inittab file, you
-can edit this file to add the lines
-
- xfs:3:once:/usr/X11R6.3/bin/xfs
- xdm:3:once:/usr/X11R6.3/bin/xdm
-
-
-On some systems, you can edit a file in /etc/init.d to run the X Consor-
-tium xdm instead of the vendor's product xdm. On Sony this file is
-/etc/init.d/consxdm. On IRIX edit /etc/init.d/xdm.
-
-
-2.12. Using OPEN LOOK applications
-
-
-You can use the X11R6 Xsun server with OPEN LOOK applications, but you
-must pass the -swapLkeys flag to the server on startup, or the OPEN LOOK
-Undo, Copy, Paste, Find, and Cut keys may not work correctly. For exam-
-ple, to run Sun's OpenWindows 3.3 desktop environment with an X11R6
-server, use the command:
-
- % openwin -server /usr/X11R6.3/bin/Xsun -swapLkeys
-
-
-The keysyms reported by keys on the numeric keypad have also changed
-since X11R5; if you find that OpenWindows applications do not respond to
-keypad keys and cursor control keys when using the R6 server, you can
-remap the keypad to generate R5 style keysyms using the following xmod-
-map commands:
-
- keysym Pause = F21
- keysym Print = F22
- keysym Break = F23
- keysym KP_Equal = F24
- keysym KP_Divide = F25
- keysym KP_Multiply = F26
- keysym KP_Home = F27
- keysym KP_Up = Up
- keysym KP_Prior = F29
- keysym KP_Left = Left
- keycode 100 = F31
- keysym KP_Right = Right
- keysym KP_End = F33
- keysym KP_Down = Down
- keysym KP_Next = F35
- keysym KP_Insert = Insert
- keysym KP_Delete = Delete
-
-
-
-2.13. Rebuilding after Patches
-
-
-You shouldn't need this right away, but eventually you are probably go-
-ing to make changes to the sources, for example by applying any public
-patches that may be released.
-
-Each patch comes with explicit instructions at the top of it saying what
-to do. Thus the procedure here is only an overview of the types of com-
-mands that might be necessary to rebuild X after changing it.
-
-If you are building from CD-ROM, apply the patches to the symbolic link
-tree. The links to changed files will be replaced with local files con-
-taining the new contents.
-
-If only source files are changed, you should be able to rebuild just by
-going to the xc directory in your build tree and typing:
-
- % make >& make.log
-
-
-If configuration files are changed, the safest thing to do is type:
-
- % make Everything >& every.log
-
-
-"Everything" is similar to "World" in that it rebuilds every Makefile,
-but unlike "World" it does not delete the existing objects, libraries,
-and executables, and only rebuilds what is out of date.
-
-
-2.14. Formatting the Documentation
-
-
-The PostScript files in xc/doc/hardcopy can be generated from the
-sources in xc/doc/specs. Most of the documentation is in troff using
-the -ms macros. The easiest way to format it is to use the Imakefiles
-provided.
-
-Set the name of your local troff program by setting the variable
-TroffCmd in xc/config/cf/site.def. Then build the Makefiles:
-
- cd xc/doc
- make SUBDIRS=specs Makefiles
-
-
-Finally, go to the directory you are interested in and type "make"
-there. This command will generate .PS files. You can also generate
-text files by specifying the document name with a .txt extension as a
-make target, e.g., "make icccm.txt".
-
-