1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
QuickStart Instructions
=======================
% ./chores.3dfx --clean --generate \
--configure[=whatever configuration options you want] \
--build
% cd build
% ./build.3dfx install
N.B.: The last command may have to be executed as root. It will
install libglide3x.so into /usr/lib, and the glide include
files into /usr/include/glide3.
SwiftButNotQuickButMoreConventionalStart Instructions
=====================================================
% aclocal && automake && autoconf
% mkdir build
% cd build
% ../configure [ whatever options you want ]
% make -f makefile.autoconf all 2>&1 | tee make.hst
SlowStart Instructions
======================
This is generally a standard GNU automake/autoconf project.
o There is a script named "configure" in the root of the
source directory which creates makefiles with parameters
set as appropriate for a particular system.
o We use automake to make makefile templates and autoconf
to make a configure script from configure.in.
However, there are some small wrinkles.
0.) Building from the CVS archive requires several tools,
notably automake autoconf and libtool. These, in
turn, have their own requirements. The versions of some of the
tools used to create the configuration are:
o automake: 1.4
o autoconf: 2.13
o libtool: 1.3.3
o GNU m4: 1.4 (used by autoconf.)
o perl 5.005_03
FWIW, this was debugged on a Debian distribution, using
a not-completely-current frozen release.
1.) The makefiles are all named makefile.autoconf. This is because
the Glide code is built for several platforms, one of which
is Win32. The Win32 build uses the name makefile, and so we need
to use another. Except for the top build, the makefile.autoconf
makefiles take care of choosing the right names. (But see
the note below about build.3dfx.)
2.) The (canonical) sequence of files is:
makefile.autoconf.am --> makefile.autoconf.in (b)
--> makefile.autoconf (c)
Note:
(a) You will have to run aclocal before automake.
(b) makefile.autoconf.in is created by automake as usual.
(c) makefile.autoconf is created by the configure script,
as usual. It is the concatenation of the
makefile.autoconf.in file created by automake, and
some constant boilerplate from the file
swlibs/include/make/makefile.autoconf.bottom
3.) The configuration options are:
--enable-fx-debug: Build for debugging. This is
actually the default. Turn it
off by --disable-fx-debug or
else --enable-fx-debug=no.
--enable-fx-glide-hw=<asic> Build for the given asic.
asic HW
h5 Voodoo4/VoodooV
h3 Voodoo3/Banshee
cvg Voodoo2. (It's not clear that this
works at all.)
--enable-fx-dri-build Make links called *.c to the files
named *.c.dri. This will build
h3 for DRI. To build h3 stand alone,
use --disable-fx-dri-build.
--enable-amd3d Build with 3DNow instructions.
--enable-fx-texus=library Choose which texture manipulation
library to use. The default value,
texus, is the only one which is
currently functional.
--enable-build-architecture Choose which architecture to build
for. The legal values are i[3456]86,
or the alpha.
4.) There is a script, build.3dfx, which is installed by the
configure script at the root of every build directory. It
is essentially the single line:
make -f makefile.autoconf "$@"2>&1
however, there is some cruft to determine how much time and
disk space is used by the compilation. There is also some
stuff there to put information in the title bar of xterms,
because I like it. If you don't like this, don't use it,
and build your own script.
5.) There is a second script, chores.3dfx, which takes care of some
chores, such as cleaning emacs backup files, deleting old makefiles,
generating new makefiles and configuring. I find this is useful,
but it is not required. The --help command gives usage.
6.) A special note about H3:
The Glide3 H3 source can be built as a DRI client or as a
stand alone library. Controlling which gets built is done by
setting up symlinks. The configuration script sets up the
symlinks in the build directory.
To setup glide3x/h3 to build as a DRI client, configure with
the --enable-fx-dri-build. To setup glide3x/h3 to build as a
stand alone client, configure with --disable-fx-dri-build.
The default is to build as a DRI client.
7.) A special note about H5:
The Glide3 H5 source can only be built as a DRI client, so the
symlinks necessary for the H3 tree are not necessary for the H3
tree.
So, to make things from absolute scratch, run one of these command
sequences:
1.) Using chores.3dfx
% ./chores.3dfx --clean --generate --configure --build
This will build in a directory named "build". If you want to
use another name, use "--build=build_dir". For example,
--build=/tmp/glide.build
2.) Not using chores.3dfx
#
# Create the makefile.autoconf files.
#
% aclocal && automake && autoconf
#
# Make a build directory and configure it.
#
% mkdir build
% cd build
% ../configure [whatever options you want here]
#
# Build everything, using one of these two commands:
1.) % ./build.3dfx all | tee make.hst
2.) % make -f makefile.autoconf all 2>&1 | tee make.hst
#
#
|