Using a shadow directory of symbolic links for the build
A recommended practice is to use a shadow directory of symbolic links
to do the build of XFree86. This permits to keep the source directory
unmodified during the build, which has the following benefits:
- In the case where CVS is used to maintain the source tree up to
date, the update process is not disturbed by foreign files not under
the control of CVS.
- It is possible to build XFree86 for several different Operating
System or architectures from the same sources, shared by NFS.
- It is possible to build XFree86 with different configuration
options, just by putting a real copyhost.def in each build
tree and by customizing it separately in each build tree.
To make a shadow directory of symbolic links, use the following steps:
- create the directory at the top of the build tree. It is often
created at the same level that the xc directory, but this is
not mandatory.
cd the directory containing the xcdirectory
mkdir build
- use the lndircommand to make the shadow tree:
lndir ../xc
Note that you can refer to the xc directory with an absolute
path if needed.
See the for details.
If lndir is not already installed on your system, you can
build it manually from the XFree86 sources by running the following
commands:
cd xc/config/util
make -f Makefile.ini lndir
cp lndir some directory in your PATH
d154 1
a154 1
Building and installing the distribution
d158 3
a160 6
you. Once those OS-specific details have been taken care of, go your
build directory
(either the
With Bourne-like shells (Bash, the Korn shell, zsh, etc.) use
a command like:
make World > World.log 2>&1
Witch C-shell variants (csh, tcsh, etc), use:
make World >& World.log
You can follow the progress of the build by running:
tail -f World.log
in a terminal.
a163 1
d166 4
a169 1
the binaries.
d177 12
d195 2
a196 2
driver source should be in a subdirectory of
xc/programs/Xserver/hw/xfree86/drivers).
a205 1
make includes
d211 2
a212 9
Other useful make targets
There are some other useful targets defined in the top level
Makefileof XFree86:
- make World, make
Everythingdoes everything a make World does, except the
cleaning of the tree. It is a way to quickly rebuild the tree after a
source patch, but it is not 100% bullet proof. There are cases were it
is better to force a full build by using make World.
d214 4
a217 32
- make clean
you need to re-run
make includes
make depend
make
to rebuild the XFree86.
- make distclean,
make World is the only option to rebuild XFree86.
- make clean.
- .depend. This target needs the generated include files
produced by make includes.
- host.def and report the problem to
XFree86@@XFree86.org.
d220 1
a220 1
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml,v 3.6 2001/11/15 17:32:16 dawes Exp $
@
1.1.1.5
log
@Import of XFree86 4.2.1.
@
text
@d33 1
a33 3
is to start directly with the XFree86 &fullrelvers; source
distribution. In this
d36 9
a44 13
- The XFree86 source is contained in files
X&fullsrcvers;src-1.tgz, X&fullsrcvers;src-2.tgz
and X&fullsrcvers;src-3.tgz. These can be found at
and similar locations on XFree86 mirror sites.
X&fullsrcvers;src-2.tgz contains the fonts and
documentation source. X&fullsrcvers;src-3.tgz contains
the hardcopy documentation. X&fullsrcvers;src-1.tgz
contains everything else. If you don't need the docs or fonts
you can get by with only X&fullsrcvers;src-1.tgz.
d50 3
a52 3
gzip -d < X&fullsrcvers;src-1.tgz | tar vxf -
gzip -d < X&fullsrcvers;src-2.tgz | tar vxf -
gzip -d < X&fullsrcvers;src-3.tgz | tar vxf -
d54 14
a67 17
A patch relative to &fullrelvers is available at
.
The patch file is &fullrelvers;-&relvers;.diff.gz.
The patch can be applied by running:
cd the directory containing the xc directory
gzip -d < &fullrelvers;-&relvers;.diff.gz | patch -s -p0 -E
Look for special patching instructions in the .
]]>
d75 1
a75 1
All methods will produce one main source directory called xc.
d243 1
a243 1
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml,v 3.6.4.1 2002/09/04 03:33:11 dawes Exp $
@
1.1.1.6
log
@Import of XFree86 4.3.0.
@
text
@d8 1
a8 5
26 February 2003
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml,v 3.11 2003/02/27 01:17:36 dawes Exp $
d30 1
d32 5
a36 13
The recommended way of getting the XFree86 &relvers; source is to
get it directly from the XFree86 CVS repository. There are several
ways of doing that, and they are described at our The CVS tag for this release is
"&reltag;", and the tag for the maintenance branch for this
release is "&relbranchtag;".
. The procedure for this is as follows:
d38 3
a40 5
- The XFree86 &fullrelvers; source is contained in the files
X&fullsrcvers;src-1.tgz, X&fullsrcvers;src-2.tgz,
X&fullsrcvers;src-3.tgz, X&fullsrcvers;src-4.tgz,
X&fullsrcvers;src-5.tgz, X&fullsrcvers;src-6.tgz
and X&fullsrcvers;src-7.tgz. These can be found at
d45 5
a49 10
X&fullsrcvers;src-4.tgz and
X&fullsrcvers;src-5.tgz contains the fonts.
X&fullsrcvers;src-6.tgz contains the documentation
source. X&fullsrcvers;src-7.tgz contains the hardcopy
documentation. X&fullsrcvers;src-1.tgz,
X&fullsrcvers;src-2.tgz and
X&fullsrcvers;src-3.tgz contains everything else. If
you don't need the docs or fonts you can get by with only
X&fullsrcvers;src-1.tgz, X&fullsrcvers;src-2.tgz
and X&fullsrcvers;src-3.tgz.
d53 1
a53 1
around 305MB, and a similar amount is required in addition to this
a58 4
gzip -d < X&fullsrcvers;src-4.tgz | tar vxf -
gzip -d < X&fullsrcvers;src-5.tgz | tar vxf -
gzip -d < X&fullsrcvers;src-6.tgz | tar vxf -
gzip -d < X&fullsrcvers;src-7.tgz | tar vxf -
d74 2
a75 3
Look for special patching instructions in the "How to get XFree86"
section of the for
this release.
d79 4
a82 9
that will allow
you to convert it to &relvers;. Information about which patch files to
download and how to apply them can be found in the "How to get XFree86"
section of the for this release.
]]>
a84 11
]]>
The source for the XFree86 &relvers; snapshot is available from the XFree86
CVS repository. See See for details. The tag for this snapshot
is "&reltag;". To get the current development version, don't specify any
tag.
]]>
d88 10
a97 1
In most cases it shouldn't be necessary to configure anything before building.
d99 2
a100 23
If you do want to make configuration changes, it is recommended that
you start 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.
A general rule to follow is to only change things that you understand
and have a good reason to change. It is easy to create build problems
by changing the default configuration. Many of the configuration
parameters are documented in xc/config/cf/README.
X&srcvers;src-1.tgz,
X&srcvers;src-2.tgz and X&srcvers;src-3.tgz parts of
the source dist, you will need to define BuildFonts to
a101 1
]]>
d113 1
a113 2
System or architectures from the same sources, shared by read-only NFS
mounts.
d115 2
a116 2
options, just by putting a real copy of the host.def file in
each build tree and by customizing it separately in each build tree.
d128 1
a128 1
- use the "lndir" command to make the shadow tree:
d135 2
a136 3
See the manual page for
details.
a146 9
From time to time there may be some stale links in the build tree, for
example, when files in the source tree are removed or renamed. These can
be cleaned up by running the "cleanlinks" script from the build
directory (see the
manual page). Rarely there will be changes that will require the build
tree to be re-created from scratch. A symptom of this can be mysterious
build problems. The best solution for this is to remove the build tree,
and then re-create it using the steps outlined above.
d154 1
a154 1
run "
make WORLDOPTS= World > World.log 2>&1
for C-shell variants:
make WORLDOPTS= World >& World.log
To do the install, run "/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.
d202 1
a202 1
make includes
d213 1
a213 1
Everything does everything a make World does, except the
d248 1
a248 1
XFree86@@XFree86.org.
d251 3
a253 6
@
1.1.1.7
log
@Import of XFree86 4.4.0.
@
text
@d8 1
a8 1
23 February 2004
d11 1
a11 1
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml,v 3.14 2004/02/24 03:41:39 dawes Exp $
d16 2
a17 2
distribution and is designed to
be used in conjunction with the operating system (OS) specific README files.
d25 2
a26 2
to build XFree86. These files often contain additional information that
you need to successfully build for your OS.
d30 2
a31 2
We highly recommend using gcc to build XFree86, but XFree86 also
generally builds with the native compiler for each OS platform;
d37 1
a37 1
obtain it directly from the XFree86 CVS repository. There are several
d40 2
a41 2
"&reltag;". &relbranchtag;".]]>
d49 6
a54 13
- The XFree86 &fullrelvers; source is contained in the files:
XFree86-&fullrelvers;-src-1.tgz
XFree86-&fullrelvers;-src-2.tgz
XFree86-&fullrelvers;-src-3.tgz
XFree86-&fullrelvers;-src-4.tgz
XFree86-&fullrelvers;-src-5.tgz
XFree86-&fullrelvers;-src-6.tgz
XFree86-&fullrelvers;-src-7.tgz
These can be found at XFree86-&fullrelvers;-src-4.tgz and
XFree86-&fullrelvers;-src-5.tgz contains the fonts.
XFree86-&fullrelvers;-src-6.tgz contains the documentation
source. XFree86-&fullrelvers;-src-7.tgz contains the
hardcopy documentation. XFree86-&fullrelvers;-src-1.tgz,
XFree86-&fullrelvers;-src-2.tgz and
XFree86-&fullrelvers;-src-3.tgz contains everything
else. If you don't need the docs or fonts you can get by with
only XFree86-&fullrelvers;-src-1.tgz,
XFree86-&fullrelvers;-src-2.tgz and
XFree86-&fullrelvers;-src-3.tgz.
d74 7
a80 7
gzip -d < XFree86-&fullrelvers;-src-1.tgz | tar vxf -
gzip -d < XFree86-&fullrelvers;-src-2.tgz | tar vxf -
gzip -d < XFree86-&fullrelvers;-src-3.tgz | tar vxf -
gzip -d < XFree86-&fullrelvers;-src-4.tgz | tar vxf -
gzip -d < XFree86-&fullrelvers;-src-5.tgz | tar vxf -
gzip -d < XFree86-&fullrelvers;-src-6.tgz | tar vxf -
gzip -d < XFree86-&fullrelvers;-src-7.tgz | tar vxf -
d111 2
d117 5
a121 10
Alternatively you can download the source for the XFree86 &relvers;
snapshot as a tarball from .
This can be extracted by running:
bzip2 -d < XFree86-&relvers;.tar.bz2 | tar vxf -
a123 2
All methods will produce one main source directory called xc.
d132 9
a140 7
the host.def file (which is heavily commented), and set your
configuration parameters. Usually you can find
the default settings by checking the .cf file(s) relevant to your OS.
A good rule to follow is only to change things that you understand
as it's easy to create build problems by changing the default configuration.
Check the configuration parameters specified in the xc/config/cf/README.
d143 3
a145 2
Another spot to check is a section [
with information about configuration settings.
d149 4
a152 4
If you are using just the XFree86-&fullrelvers;-src-1.tgz,
XFree86-&fullrelvers;-src-2.tgz and
XFree86-&fullrelvers;-src-3.tgz parts of the source dist, you
will need to define BuildFonts to NO.
d158 2
a159 2
to do the build of XFree86 as this allows you to keep the source directory
unmodified during the build. It has the following benefits:
d161 3
a163 3
]- When you are using CVS to maintain your source tree,
the update process is not disturbed by foreign files not under
CVS's control.
d168 1
a168 1
options, by putting a real copy of the host.def file in
d201 2
a202 2
Occasionally there may be stale links in the build tree, like
when files in the source tree are removed or renamed. These can
d214 1
a214 1
you. Once you have addressed the OS-specific details, go your
d292 1
a292 1
Makefile of XFree86:
@
1.1.1.7.6.1
log
@Apply patch (requested by jmc in ticket #114):
Update XFree86 to version 4.5.0.
@
text
@d6 1
a6 1
Building XFree86® from a Source Distribution
d8 1
a8 1
16 March 2005
d11 1
a11 1
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml,v 3.19 2005/03/16 17:12:47 dawes Exp $
d16 2
a17 2
distribution and is designed to be used in conjunction with the operating
system (OS) specific README files.
d24 3
a26 3
NOTE: Refer to the appropriate OS-specific README file before
attempting to build XFree86. These files often contain additional
information that you need to successfully build for your OS.
d30 2
a31 2
We recommend using gcc to build XFree86, but XFree86 generally builds
with the native compiler for each OS platform.
d39 3
a41 5
url="http://www.xfree86.org/cvs/">.
The CVS tag for this release is "&reltag;". &relbranchtag;".]]>
d68 2
a69 4
source.
XFree86-&fullrelvers;-src-7.tgz contains the
hardcopy documentation.
XFree86-&fullrelvers;-src-1.tgz,
d72 2
a73 4
else.
If you do not need either the documentation or the fonts, then
you need only XFree86-&fullrelvers;-src-1.tgz,
d79 2
a80 2
around 270MB, with a similar amount being required for the
compiled binaries):
d98 1
a98 1
The patch is applied by running:
d100 1
a100 1
cd the directory containing the xc directory
d104 2
a105 2
Look for the patching instructions in the "How to get XFree86"
section of the of
d123 1
a123 1
Another method is that you download the source for the XFree86 &relvers;
d127 1
a127 1
This tarball can be extracted by running:
d135 1
a135 2
Each of the methods outlined above will produce one main source directory
called xc.
d140 1
a140 2
In most cases it should not be necessary to configure anything before
building.
d142 10
a151 12
If you do want to make configuration changes, you should start by going
to the xc/config/cf directory, and copying the file
xf86site.def to host.def. After that, read thoroughly
the the host.def file, which is heavily commented, and set
your configuration parameters. Usually you can find the default settings
by checking the .cf file(s) relevant to your OS.
A good rule of thumb is to only change that you understand, as it is
very easy to create build problems by changing the default configuration
unnecessarily. Before making too many modifications, check the
configuration parameters specified in the xc/config/cf/README
file.
d167 3
a169 4
We recommend that you use a shadow directory of symbolic links to do the
build of XFree86, because it allows you to keep the source directory
unmodified during the build process. It has the following benefits:
d171 9
a179 10
- Foreign files not under CVS's control are not touched.
- Greater flexibility in building XFree86 for several different
Operating Systems or hardware architectures from the same sources; shared
by read-only NFS mounts.
- Different configuration options can be created by putting a real
copy of the host.def file in each build tree and by customizing
it separately in each build tree, and then customizing it separately.
a180 1
d184 3
a186 2
- create the directory at the top of the build tree. This is often
created at the same level that the xc directory.
d188 1
a188 1
cd the directory containing the xc directory
a192 1
cd build
d195 2
a196 2
Note: You can refer to the xc directory by referencing it with an absolute
path also.
d202 1
a202 1
If the lndir command is not already available on your system, you can
d211 3
a213 3
Occasionally there may be stale links in the build tree. This happens
when files in the source tree are either removed or renamed. These stale links
can be cleaned by running the "cleanlinks" script from the build
d215 4
a218 7
manual page for further details).
Rarely will there be changes that require the build
tree to be re-created from scratch. If you think that this may be the case,
look for build problems, which could indicate that this is the problem. The best
solution in this scenario is to remove the build tree,and then re-create it
using the steps outlined above.
d222 10
a231 10
Before building the distribution, read through your OS-specific
documentation in README file in
xc/programs/Xserver/hw/xfree86/doc. After that go to your build
directory which will either be the xc directory or the shadow
tree which was create previously, and run "make World".
It is also advisable to that you redirect standard output stdout
and standard error output stderr to World.Log, so that
you can track down problems that might occur during the build.
d233 2
a234 2
With Bourne-like shells (examples include the Bash, the Korn, and
zsh shells) use the following command:
d238 1
a238 1
for C-shell variants (csh, tcsh, etc), use:
d242 1
a242 2
You can then follow the progress of the build by running:
d245 1
a245 2
in a terminal window.
d248 9
a256 4
When the build is finished, you should check the World.Log file to
see if there were any problems. If there were not, then install the binaries.
By default "make World" stops when the first error is found. To restart that
same build process after correcting the various problems, run just 'make'.
d258 2
a259 5
If Imakefiles or part of the build configuration were changed as part of
correcting the problem, then either re-run "make World", or run "make Everything".
If instead, you want "make World" to continue past errors, then instead execute
it as follows:
d263 1
a263 1
make WORLDOPTS=-k World > World.log 2>&1
d267 1
a267 1
make WORLDOPTS=-k World >& World.log
d270 5
a274 6
For installation, run "make install" and "make install.man"
and ensure that there is enough space in the /usr/X11R6 directory.
If instead you want to install XFree86 on a filesystem other than
/usr, make a symbolic link to /usr/X11R6 before running the
install process.
d277 1
a277 1
Reconfiguring the server (using the source distribution)
d279 2
a280 3
If you would like to build several different sets of servers or server(s)
with a various sets of drivers then you should follow this procedure:
d282 2
a283 2
- Ensure that the source for any new drivers is in the correct place (e.g.,
all driver source should be in a subdirectory of
d286 2
a287 2
- Change the settings of the server definitions
in host.def to specify which servers you
d303 6
a308 7
Everything
After a make World, make Everything replicates make
World except for the cleaning of the source tree. make
Everything very quickly rebuilds the tree after a source patch, but
there are times when it is better to force a full build by using make
World.
d311 1
a311 2
clean
This does a partial cleaning of the source tree. Removes
d323 1
a323 2
distclean
This does a full cleaning of the source tree,
d327 1
a327 2
includes
This generates all generated header files and in-tree
d331 1
a331 2
depend
This recomputes the dependencies for the various targets
d337 1
a337 2
VerifyOS
This displays the detected operating system version. If
d341 1
a341 1
@
1.1.1.8
log
@Import of XFree86 4.5.0.
@
text
@d6 1
a6 1
Building XFree86® from a Source Distribution
d8 1
a8 1
16 March 2005
d11 1
a11 1
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml,v 3.19 2005/03/16 17:12:47 dawes Exp $
d16 2
a17 2
distribution and is designed to be used in conjunction with the operating
system (OS) specific README files.
d24 3
a26 3
NOTE: Refer to the appropriate OS-specific README file before
attempting to build XFree86. These files often contain additional
information that you need to successfully build for your OS.
d30 2
a31 2
We recommend using gcc to build XFree86, but XFree86 generally builds
with the native compiler for each OS platform.
d39 3
a41 5
url="http://www.xfree86.org/cvs/">.
The CVS tag for this release is "&reltag;". &relbranchtag;".]]>
d68 2
a69 4
source.
XFree86-&fullrelvers;-src-7.tgz contains the
hardcopy documentation.
XFree86-&fullrelvers;-src-1.tgz,
d72 2
a73 4
else.
If you do not need either the documentation or the fonts, then
you need only XFree86-&fullrelvers;-src-1.tgz,
d79 2
a80 2
around 270MB, with a similar amount being required for the
compiled binaries):
d98 1
a98 1
The patch is applied by running:
d100 1
a100 1
cd the directory containing the xc directory
d104 2
a105 2
Look for the patching instructions in the "How to get XFree86"
section of the of
d123 1
a123 1
Another method is that you download the source for the XFree86 &relvers;
d127 1
a127 1
This tarball can be extracted by running:
d135 1
a135 2
Each of the methods outlined above will produce one main source directory
called xc.
d140 1
a140 2
In most cases it should not be necessary to configure anything before
building.
d142 10
a151 12
If you do want to make configuration changes, you should start by going
to the xc/config/cf directory, and copying the file
xf86site.def to host.def. After that, read thoroughly
the the host.def file, which is heavily commented, and set
your configuration parameters. Usually you can find the default settings
by checking the .cf file(s) relevant to your OS.
A good rule of thumb is to only change that you understand, as it is
very easy to create build problems by changing the default configuration
unnecessarily. Before making too many modifications, check the
configuration parameters specified in the xc/config/cf/README
file.
d167 3
a169 4
We recommend that you use a shadow directory of symbolic links to do the
build of XFree86, because it allows you to keep the source directory
unmodified during the build process. It has the following benefits:
d171 9
a179 10
- Foreign files not under CVS's control are not touched.
- Greater flexibility in building XFree86 for several different
Operating Systems or hardware architectures from the same sources; shared
by read-only NFS mounts.
- Different configuration options can be created by putting a real
copy of the host.def file in each build tree and by customizing
it separately in each build tree, and then customizing it separately.
a180 1
d184 3
a186 2
- create the directory at the top of the build tree. This is often
created at the same level that the xc directory.
d188 1
a188 1
cd the directory containing the xc directory
a192 1
cd build
d195 2
a196 2
Note: You can refer to the xc directory by referencing it with an absolute
path also.
d202 1
a202 1
If the lndir command is not already available on your system, you can
d211 3
a213 3
Occasionally there may be stale links in the build tree. This happens
when files in the source tree are either removed or renamed. These stale links
can be cleaned by running the "cleanlinks" script from the build
d215 4
a218 7
manual page for further details).
Rarely will there be changes that require the build
tree to be re-created from scratch. If you think that this may be the case,
look for build problems, which could indicate that this is the problem. The best
solution in this scenario is to remove the build tree,and then re-create it
using the steps outlined above.
d222 10
a231 10
Before building the distribution, read through your OS-specific
documentation in README file in
xc/programs/Xserver/hw/xfree86/doc. After that go to your build
directory which will either be the xc directory or the shadow
tree which was create previously, and run "make World".
It is also advisable to that you redirect standard output stdout
and standard error output stderr to World.Log, so that
you can track down problems that might occur during the build.
d233 2
a234 2
With Bourne-like shells (examples include the Bash, the Korn, and
zsh shells) use the following command:
d238 1
a238 1
for C-shell variants (csh, tcsh, etc), use:
d242 1
a242 2
You can then follow the progress of the build by running:
d245 1
a245 2
in a terminal window.
d248 9
a256 4
When the build is finished, you should check the World.Log file to
see if there were any problems. If there were not, then install the binaries.
By default "make World" stops when the first error is found. To restart that
same build process after correcting the various problems, run just 'make'.
d258 2
a259 5
If Imakefiles or part of the build configuration were changed as part of
correcting the problem, then either re-run "make World", or run "make Everything".
If instead, you want "make World" to continue past errors, then instead execute
it as follows:
d263 1
a263 1
make WORLDOPTS=-k World > World.log 2>&1
d267 1
a267 1
make WORLDOPTS=-k World >& World.log
d270 5
a274 6
For installation, run "make install" and "make install.man"
and ensure that there is enough space in the /usr/X11R6 directory.
If instead you want to install XFree86 on a filesystem other than
/usr, make a symbolic link to /usr/X11R6 before running the
install process.
d277 1
a277 1
Reconfiguring the server (using the source distribution)
d279 2
a280 3
If you would like to build several different sets of servers or server(s)
with a various sets of drivers then you should follow this procedure:
d282 2
a283 2
- Ensure that the source for any new drivers is in the correct place (e.g.,
all driver source should be in a subdirectory of
d286 2
a287 2
- Change the settings of the server definitions
in host.def to specify which servers you
d303 6
a308 7
Everything
After a make World, make Everything replicates make
World except for the cleaning of the source tree. make
Everything very quickly rebuilds the tree after a source patch, but
there are times when it is better to force a full build by using make
World.
d311 1
a311 2
clean
This does a partial cleaning of the source tree. Removes
d323 1
a323 2
distclean
This does a full cleaning of the source tree,
d327 1
a327 2
includes
This generates all generated header files and in-tree
d331 1
a331 2
depend
This recomputes the dependencies for the various targets
d337 1
a337 2
VerifyOS
This displays the detected operating system version. If
d341 1
a341 1
@