  Installation Guide for XFree86 3.2
  David Dawes
  24 October 1996

  This document describes how to build XFree86 from the source distribu-
  tion.  It covers building from the full source distribution as well as
  from the cut-down source distribution available for building only the
  X servers.  It is designed to be used in conjunction with the OS-
  specific README files.  This document does not describe how to install
  or upgrade a binary distribution.  That information is contained
  either in the RELNOTES, OS-specific README files, or in separate docu-
  mentation accompanying the various binary distributions.

  1.  Building XFree86 From a Source Distribution


       NOTE:  Refer to the appropriate OS-specific README file
       before attempting to build XFree86.  These files contain
       additional information that you may need to successfully
       build under your OS.


  We highly recommend using GCC-2 to build XFree86.  Do not use version
  2.6.0 or 2.4.x versions prior to 2.4.5 due to bugs that cause either
  build or execution failures.  Use of GCC's -m486 option will yield
  approximately 5% better performance on a 486, with no degradation
  (other than larger binaries) on a 386.  (gcc-2 is available from
  prep.ai.mit.edu and other sites archiving GNU source.)


     1. You need the following:


        o  X Consortium X11R6.1 distribution with fix 01 applied.

        o  R6.1pl1-3.2.diff.gz, cfont32.tgz

        o  Optionally the X Consortium X11R6.1 contrib distribution.

        o  contrib-3.2.diff.gz (an optional patch for some of the X
           Consortium's ``contrib'' distribution)

        o  If you want to only build the XFree86 X servers, you only
           need the X32servonly.tgz file which is the ``ServersOnly''
           cut-down source distribution.

        o  The full XFree86 source tree requires about 130MB.  An
           additional 130MB (more for OSs without shared libraries) is
           required to build everything.  About 55-65MB (for OSs with
           shared libraries) is required to install the full
           distribution.  It is possible to reduce the space required by
           removing some parts which are not essential to the build
           process:



              xc/test                      16MB
              xc/doc/hardcopy              11MB
              xc/doc/specs                 27MB





        If you don't need to build the fonts, xc/fonts can be removed

        saving 30MB.  If you don't want to build PEX or XIE you can
        remove:


              xc/programs/Xserver/XIE       3MB
              xc/programs/Xserver/PEX5      2MB





        A few more MB can be freed by removing the non-XFree86 directo-
        ries under xc/programs/Xserver/hw/.

        o  It is possible to configure a cut-down source tree for
           building only the XFree86 servers.  Building from a cut-down
           source tree requires about 50-55MB of disk space.

        o  The contrib-3.2.diff.gz patch provides patches to a small
           part of the X Consortium's R6.1 contrib distribution.  It
           mostly covers those clients which were in the core
           distribution of X11R5 but were moved to the contrib
           distribution for X11R6.  To use this patch, you need to have
           the following files/directories from the final X Consortium
           R6.1 contrib release.



                       contrib/Imakefile
                       contrib/programs/Imakefile
                       contrib/programs/ico
                       contrib/programs/listres
                       contrib/programs/showfont
                       contrib/programs/viewres
                       contrib/programs/xbiff
                       contrib/programs/xcalc
                       contrib/programs/xditview
                       contrib/programs/xedit
                       contrib/programs/xev
                       contrib/programs/xeyes
                       contrib/programs/xfontsel
                       contrib/programs/xgc
                       contrib/programs/xload
                       contrib/programs/xman
                       contrib/programs/xmessage






     2. If you are starting from the stock X Consortium R6.1 PL01 source
        distribution, go to the directory above your xc directory, and
        run:



                gzip -d < R6.1pl1-3.2.diff.gz | patch -p -E
                gzip -d < cfont32.tgz | tar vxf -





     If you are installing in an unmodified tree there shouldn't be any

     problems.  Check for any patch rejections and resolve them. If
     you've modified some files (e.g. xf86site.def, site.def) you should
     rename them, and restore the standard versions before patching. If
     you don't have backups of the originals, individual files can be
     easily obtained from ftp://ftp.x.org/pub/R6.1/xc.

     If you are patching a tree that you've previously used, make sure
     you run ``make clean'' from the xc directory before applying the
     diffs.

     If you are using the patch for the contrib code, go to the direc-
     tory above your contrib directory, and run:



                gzip -d < contrib-3.2.diff.gz | patch -p -E






     3. Read through config/cf/xf86site.def.  Set the various parameters
        to suit your configuration.  If it is your first build, you
        should set BuildFonts to YES.

        If you are using a cut-down source tree for building only the X
        servers, set BuildServersOnly to YES, and XnestServer to NO.

        Set the defines to specify which server(s) you want to build:



           Colour SVGA server (XF86_SVGA):           XF86SVGAServer
           16 colour (S)VGA server (XF86_VGA16):     XF86VGA16Server
           ET4000/W32 accelerated server (XF86_W32): XF86W32Server
           Monochrome server  (XF86_Mono):           XF86MonoServer
           S3 accelerated server (XF86_S3):          XF86S3Server
           S3 ViRGE accelerated server (XF86_S3V):   XF86S3VServer
           8514/A accelerated server (XF86_8514):    XF86I8514Server
           Mach8 accelerated server (XF86_Mach8):    XF86Mach8Server
           Mach32 accelerated server (XF86_Mach32):  XF86Mach32Server
           Mach64 accelerated server (XF86_Mach64):  XF86Mach64Server
           P9000 accelerated server (XF86_P9000):    XF86P9000Server
           AGX accelerated server (XF86_AGX):        XF86AGXServer
           I128 server (XF86_I128):                  XF86I128Server





     To build a dual headed Mono+VGA2 server, set XF86MonoDualServer to
     YES.

     To build a dual headed Mono+VGA16 server, set XF86VGA16DualServer
     to YES.

     Set ServerToInstall to the server you want linked to X.  If this
     isn't specified, it will default to the first one in the above list
     which is being built.

     The drivers you wish to include in the server are also selected in
     xf86site.def.  The drivers used for the SVGA server are set by the
     XF86SvgaDrivers parameter.  This should be a list of the driver
     directory names (in lower case).  The ordering determines the order

     in which the drivers are probed at startup.  The default is to
     include all supplied drivers.  Similarly the following parameters
     specify drivers for the other servers:


           XF86Vga16Drivers            XF86_VGA16
           XF86Vga2Drivers             XF86_Mono (vga2 drivers)
           XF86MonoDrivers             XF86_Mono, XF86_VGA16 (other mono drivers)





     The SVGA, VGA16 and VGA2 screens each have ``generic'' drivers, and
     these should always be last in the list because their probe will
     succeed for any VGA card.

     4. If you want to be able to format the XFree86 documentation
        (which is now in LinuxDoc/SGML form), you will need to get and
        install linuxdoc-sgml-1.2.tar.gz plus the patches which can be
        found on ftp://ftp.xfree86.org/pub/XFree86/3.2/Linuxdoc.  Check
        in the xf86site.def file and uncomment the appropriate Linuxdoc
        options.


     5. Before building the distribution, read through the OS-specific
        README file in xc/programs/Xserver/hw/xfree86/doc that is
        relevant to you.  Once those OS-specific details have been taken
        care of, go the xc directory and run ``make World'' with the
        BOOTSTRAPCFLAGS set as described in the OS-specific README.  It
        is advisable to redirect stdout and stderr to World.Log so that
        you can track down problems that might occur during the build.
        If you are using one of the cut-down source distributions, you
        should run ``make -f Makefile.ini World'' because they will
        usually not include the top level Makefile.

     6. If all goes well, that will finish successfully in anything from
        two to twelve hours depending on your system.  You should check
        World.Log to see if there were any problems.  If there weren't
        any then you can install the binaries.  When using the full
        source distribution, the installation should be done from the xc
        directory.  When using the ServersOnly distribution, the install
        should be done from the xc/programs/Xserver directory To do the
        install, run ``make install'' and ``make install.man''.  Make
        sure you have enough space in /usr/X11R6 for the install to
        succeed.  If you want to install on a filesystem other than
        /usr, make a symbolic link to /usr/X11R6 before installing.

        To install the binary LinkKit (in /usr/X11R6/lib/Server), run
        the following from the xc directory (when using either the full
        source distribution or the ServersOnly distribution):


               make install.linkkit





     7. To build the subset of the contrib release supported by XFree86,
        make sure that you have first built and installed the core
        distribution.  Then go to the contrib directory and run ``xmkmf
        -a; make''.  When that is completed, run ``make install'' and
        ``make install.man'' to install it.


  2.  Reconfiguring the server (source distribution)

  To build a different set of servers or servers with a different set of
  drivers installed:

     1. Make sure the source for any new drivers is in the correct place
        (e.g., driver source for the SVGA server should be in a
        subdirectory of xc/programs/Xserver/hw/xfree86/vga256/drivers).

     2. Change the settings of the server defines (eg XF86SVGAServer as
        described above) in xf86site.def to specify which servers you
        wish to build.  Also, change the driver lists to suit your
        needs.

     3. From xc/programs/Xserver, run:


               make Makefile
               make Makefiles
               make depend
               make




  3.  Reconfiguring the server (binary distribution)

  If you have installed the server Binary LinkKit, it is possible to
  reconfigure the drivers and some of the extensions in the servers.
  For details of how to do this, please refer to the README.LinkKit
  file.


  Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/INSTALL.sgml,v 3.17 1996/10/26 09:38:49 dawes Exp $





  $XConsortium: INSTALL.sgml /main/6 1995/11/12 19:59:30 kaleb $



























$XFree86: xc/programs/Xserver/hw/xfree86/doc/INSTALL,v 3.23 1996/10/26 10:34:49 dawes Exp $
