Subject: Re: Compiling XFree86
To: C Kane <ckane@best.com>
From: Matthieu Herrb <matthieu@laas.fr>
List: current-users
Date: 02/23/1999 22:24:04
You wrote (in your message from Fri 19)
> Hello.
>
> Someone has posted a reasonably complete "crib sheet" for recompiling
> netbsd, including how to build distribution sets. It's been useful.
>
> Does anyone have such a thing for XFree86?
Not in a usable form, but I can try to help.
There is a Makefile in xsrc that has a 'build' target with the same
meaning as in /usr/src: build and install everything.
To be a less monolithic, you will need to use the standard X targets
in xsrc/xc:
- 'make World' generates all Makefiles, cleans old obs, and compiles
all the tree. It is equivalent to
- 'make install' installs all binaries and config files
- 'make install.man' installs all man pages
- 'make install.linkkit' (i386 only) installs the XFree86 Linkkit.
- 'make Everything' generates all Makefiles and compiles all the tree
without a clean.
- 'make includes' generates some symbolic links needed to build the
tree
- 'make', 'make clean' and 'make depend' do what you can expect
- 'make Makefile' regenerates the Makefile in the current dir
- 'make Makefiles' regenerates recursively all Makefiles from the
current dir.
Make World is equivalent to 'make Makefiles && make cleandir && make
includes && make depend && make'
Make Everything is equivalent to 'make Makefiles && make includes &&
make depend && make'.
After building and installing xc, you can go to 'contrib'.
- 'xmkmf -a' generates all Makefiles
- 'make' builds the tree
- 'make install' && 'make install.man' installs everything.
The concept similar to the BSD obj directories for X11 is the shadow
link trees. To build xsrc in a separate tree, you start by build a
shadow link tree with the 'lndir' command. For instance:
mkdir xobj.i386
cd xobj.i386
lndir /usr/xsrc
make build
> In particular, is it
> advisable or possible to make incremental compiles of XFree86 (without
> doing a make clean which seems to be done automatically)?
Yes. see 'make Everything' above.
> What needs
> to be done to compile and install XF86Setup which is part of the
> distribution but isn't built by default?
you can create a xc/config/cf/host.def file to customize your build.
It may include all configuration options defined in
xc/config/cf/xf86site.def or other files in xc/config/cf. For example
Here's the file I use to reenable the build of XF86Setup (you need to
have the tcl and tk packages installed):
-- Cut Here --
#define InstallEmptyHostDef
#define BuildXF86Setup YES
#define HasTcl YES
#define HasTk YES
#define TclIncDir /usr/pkg/include/tcl8.0
#define TclLibDir /usr/pkg/lib
#define TkIncDir /usr/pkg/include/tk8.0
#define TkLibDir /usr/pkg/lib
#define TkLibName tk80
#define TclLibName tcl80
-- Cut Here --
Hope this helps.
--
Matthieu