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. GCC-2 is available from prep.ai.mit.edu and other sites archiving GNU source. Note that both gcc-2.8.0 and egcs have been proven to break the code multiple times. Especially egcs seems to fail in several modules when optimizing.
There are a few starting points for getting the XFree86 source. One option is to start directly with the XFree86 3.3.4 source distribution. In this case, the procedure is as follows:
X334src-1.tgz
,
X334src-2.tgz
and X334src-3.tgz
. These can be found
at ftp://ftp.xfree86.org/pub/XFree86/3.3.4/source/ and similar
locations on XFree86 mirror sites. X334src-2.tgz
contains
the fonts and documentation source. X334src-3.tgz
contains
the hardcopy documentation. X334src-1.tgz
contains
everything else. If you don't need the docs or fonts you can get
by with only X334src-1.tgz
.gzip -d < X334src-1.tgz | tar vxf - gzip -d < X334src-2.tgz | tar vxf - gzip -d < X334src-3.tgz | tar vxf -
Another option is to start with the X11R6.3 source distribution and patch it up to XFree86 3.3.3 and then patch that to XFree86 3.3.4 (see below). In this case you need to do the following:
R6.3pl2-3.3.3.diff1.gz
,
R6.3pl2-3.3.3.diff2.gz
, R6.3pl2-3.3.3.diff3.gz
,
and R6.3pl2-3.3.3.diff4.gz
from ftp://ftp.xfree86.org/pub/XFree86/3.3.3/patches/ (or a similar
location on mirror sites). To upgrade the source to XFree86 3.3.3,
run the following from directory containing the xc
directory of the X11R6.3 pl2 source tree:
Be sure to do this with a clean unmodified source tree. If you don't some patches may fail.gzip -d < R6.3pl2-3.3.3.diff1.gz | patch -p0 -E gzip -d < R6.3pl2-3.3.3.diff2.gz | patch -p0 -E gzip -d < R6.3pl2-3.3.3.diff3.gz | patch -p0 -E gzip -d < R6.3pl2-3.3.3.diff4.gz | patch -p0 -E
A further option is to start with the XFree86 3.3.3 source, and patch it up to XFree86 3.3.4. In this case you need to do the following:
3.3.3-3.3.4.diff.gz
from ftp://ftp.xfree86.org/pub/XFree86/3.3.4/patches/ (or a similar
location on mirror sites). To upgrade the source to XFree86 3.3.4,
run the following from directory containing the xc
directory of the XFree86 3.3.3 source tree:
Be sure to do this with a clean unmodified source tree. If you don't some patches may fail.gzip -d < 3.3.3-3.3.4.diff.gz | patch -p0 -E
If you only want to build the XFree86 X servers, you can use a cut-down version of the XFree86 source tree called the ``servers only'' distribution. If you choose this option, do the following:
X334servonly.tgz
file from
ftp://ftp.xfree86.org/pub/XFree86/3.3.4/source/ (or a similar
locations on mirror sites.gzip -d < X334servonly.tgz | tar vxf -
XFree86 supports a small subset of the X Consortium X11R6.1 contrib distribution. If you wish to build this, you will need at least the following files/directories from that distribution:
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
You will also need the XFree86 patch contrib-3.3.3.diff.gz
. To
apply the patch, run the following from the directory containing the
contrib
directory:
gzip -d < contrib-3.3.3.diff.gz | patch -p0 -E
Alternatively, you can just get the file X333contrib.tgz
from
the XFree86 source directory, and extract it by running:
gzip -d < X333contrib.tgz | tar vxf -
If you wish to build the xtest distribution, get the source distribution
X33test.tgz
from the XFree86 source directory, and extract it
by running:
gzip -d < X33test.tgz | tar vxf -
Note, xtest is no longer part of the core X11 distribution (since X11R6.3).
It is recommended that you start the configuration process by going to the
xc/config/cf
directory, and copying the file xf86site.def
to host.def
. Then read through the host.def
file
(which is heavily commented), and set any parameters that you want for
your configuration. You can usually find out what the default settings
are by checking the .cf
file(s) relevant to your OS.
Unlike previous versions, imake can now automatically detect and set the various OS*Version parameters, so you shouldn't need to enter those settings explicitly.
If you are using just the X334src-1.tgz
part of the source dist,
you will need to define BuildFonts to NO.
If you are using the ``servers only'' distribution, you will need to define BuildServersOnly to YES.
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 (if necessary). It is
advisable to redirect stdout and stderr to World.Log
so that you
can track down problems that might occur during the build.
When the build is finished, 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 ``servers only''
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 ``make install.linkkit
'' from the xc
directory.
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.
To build/run the xtest distribution, refer to the instructions in
the file test/xsuite/NOTES.xf86
.